🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@fouro/i18n

Package Overview
Dependencies
Maintainers
6
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fouro/i18n

本工具包业务需求和使用场景较为单一,不具备通用性,不推荐下载。 具体业务流程及使用详情请前往[wiki->传送门](http://10.20.70.27:8090/pages/viewpage.action?pageId=11927763)

latest
npmnpm
Version
1.0.16
Version published
Maintainers
6
Created
Source

说明

本工具包业务需求和使用场景较为单一,不具备通用性,不推荐下载。 具体业务流程及使用详情请前往wiki->传送门

使用步骤

  • 安装工具包 npm install @fouro/i18n --save-dev
  • 初始化工具的配置文件 config.js, 放置在项目的一级目录 constant 下,samples 下有一个示例 projectA, 可以参考该项目中的 config 模板。
  • 对 config.js 中的配置项进行配置
  • 对项目的 package.json 进行配置,增加工具所需要的 script:
  "initTemplate": "node node_modules/@fouro/i18n/src/init-template.js",
  "sendMail": "node node_modules/@fouro/i18n/src/email.js",
  "template": "node node_modules/@fouro/i18n/src/template.js",
  "generate": "node node_modules/@fouro/i18n/src/generator.js",

工具包提供的脚本工具说明

initTemplate

该脚本在国际化流程建立初期使用。由开发人员直接在项目国际化源码中添加所需要的字段 key & value。此时产品的字库中并没有及时补充开发人员新添加的字段,这个脚本第一个功能就是检测产品字库中缺失的字段,并产出一个 missing_keys.properties 文件进行记录;第二个功能是将国际化源码中的 key 找出在字库中对应的字段 id,并保存在 projectName.template.properties 文件中,这个文件又被称为模板文件。 该脚本需要在 config 中指明: 注意:本步骤与模板处理相关,建议目录都设置在 'constant/i18nTemplate/' 下

  • fieldsRepo:产品的字库文件(目前为 excel)存放的 gitlab 地址;
  • excelPath: 字库文件会从上面仓库中拉取并存储在本项设定的存储目录,要包含文件名, 例如 constant/i18nTemplate/template.xlsx;
  • templateName:产出的 key = id 对应关系表的文件名,该文件在后面的生成源文件的步骤中也会被使用, 命名规则为项目名称作为前缀,后面保持示例风格一致,例如 saas.template.properties;
  • projectName:项目名称,该名称会作为字库匹配时key的前缀进行一次优先匹配。比如项目名称为 'saas_web', 源文件中的key 为 common.test, 则会优先匹配字库中 key 为 'saas_web.common.test' 的数据,再匹配key 值为 'common.test'的数据;
  • idField:字库中的字段 ID 的列名;
  • templatePath: 模板文件的存储目录,不包括文件名, 例如 'constant/i18nTemplate/'。
  • i18nObjPath: 通常是源文件的中文目录的index.js, 是为了获取整个 i18n 对象的所有 key 值。

sendMail

该脚本实现的是将【保存字库缺失的字段】的文件,以邮件附件的形式发送给字库维护人员。该脚本的使用比较简单,需要配置的项目也较少。

  • email 邮箱配置相关
    • attachment
      • filename:附件名称,例如 'saas.missing_keys.properties'
      • path:附件地址,例如 'constant/i18nTemplate/missing_keys.properties'
    • config:邮箱配置,采用现有模板的默认配置
    • option:收发信人的信息,自定义邮件主题和内容。

template

该脚本应该在国际化流程标准化以后执行。首先,产品在原型中标注完整的文案和对应的字段 ID。我们在开发过程中,如在国际化源文件中新增 key, 对应的 value 要使用双花括号包裹的 id,例如 testKey: '{{S00010}}'。尤其需要注意的是,此时字库维护人员将不再字库表中添加我们的 key, 所以我们就只能依赖双花括号中的值去补充国际化模板。然后根据模板和项目源文件 key 再生成所需要的目标源文件。所以这个时候新增的 key 对应的值不要直接写文案 value,否则将无法添加至模板中并形成与字库的对应关系。

  • 与 initTemplate 所需的配置项基本相同

generate

该脚本是根据项目源文件的key, 模板的 key id 对应关系,字库中的 id value 对应关系,重新生成源文件的过程,目的是将字库中的 value 更新到源文件中,并为每种语言生成一个静态的 json 文件。

  • 基本配置项与 initTemplate 相同
  • lang:支持的语言以及每种语言对应的值在字库文件中存放的列名
  • i18nOutput:脚本的输出目录,源文件会存放在该目录下的 i18n 文件夹内,各语言的 json 文件会输出在该目录的 lang 文件夹下。目前约定设置为 'constant'。

Tips

  • config 文件中设置的路径相关都是默认项目根目录,不需要加 '/' 或者 './' 前缀。
  • 国际化语言的静态文件部署,需要一个静态配置文件 projectName.conf.json 文件,该文件约定放置在 constant/lang 目录下。
  • initTemplate 会重写模板文件而 template 不会,template 是增量添加的。
  • 不要轻易修改之前已经设定的 projectName, 因为字库中的部分字段 key 值已经添加了与项目名称相关的前缀,修改以后可能会影响 initTemplate 对于字段 key 的匹配。

FAQs

Package last updated on 11 Oct 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts