@fouro/i18n v1.0.16
说明
本工具包业务需求和使用场景较为单一,不具备通用性,不推荐下载。 具体业务流程及使用详情请前往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 的匹配。