i18n 解决方案,多是采用 ICU 实现,搞起来有点繁琐。
一个翻译字段包含三部分信息 :
- id,i18n 库和应用程序用
- 描述,通用语言,一般为英文;翻译公司/人员用
- 本地化语言,默认语言,业务用户用
分三步解决这个字段的翻译:
- 定义/声明/标记,开发人员定义好需要翻译的文本字段,包含上面的三部分信息
- 翻译模板,通过 i18n 库,将声明提取转换成翻译模板文件,发给翻译公司/人员,进行翻译
- 翻译文件,通过 i18n 库,将翻译模板转换成最终本地化文件,应用程序中使用
另外,一个翻译字段是可以模板化的,如 ICU 风格:插值 (Interpolation)、格式化 (Formatting) …
以 Web 应用程序简要说明:
// 翻译文件 zh/translations.json
{
"