@fouro/i18n
本工具包业务需求和使用场景较为单一,不具备通用性,不推荐下载。 具体业务流程及使用详情请前往[wiki->传送门](http://10.20.70.27:8090/pages/viewpage.action?pageId=11927763)
Last updated 7 months ago by danielliu .
ISC · Original npm · Tarball · package.json
$ cnpm install @fouro/i18n 
SYNC missed versions from official npm registry.

说明

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

使用步骤

  1. 安装工具包 npm install @fouro/i18n --save-dev
  2. 初始化工具的配置文件 config.js, 放置在项目的一级目录 constant 下,samples 下有一个示例 projectA, 可以参考该项目中的 config 模板。
  3. 对 config.js 中的配置项进行配置
  4. 对项目的 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 的匹配。

Current Tags

  • 1.0.16                                ...           latest (7 months ago)

17 Versions

  • 1.0.16                                ...           7 months ago
  • 1.0.15                                ...           8 months ago
  • 1.0.14                                ...           10 months ago
  • 1.0.13                                ...           10 months ago
  • 1.0.12                                ...           10 months ago
  • 1.0.11                                ...           10 months ago
  • 1.0.10                                ...           10 months ago
  • 1.0.9                                ...           10 months ago
  • 1.0.8                                ...           a year ago
  • 1.0.7                                ...           a year ago
  • 1.0.6                                ...           a year ago
  • 1.0.5                                ...           a year ago
  • 1.0.4                                ...           a year ago
  • 1.0.3                                ...           a year ago
  • 1.0.2                                ...           a year ago
  • 1.0.1                                ...           a year ago
  • 1.0.0                                ...           a year ago
Downloads
Today 0
This Week 0
This Month 18
Last Day 17
Last Week 17
Last Month 0
Dependencies (7)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |