范围
国际化与本地化工作的焦点包括但不限于如下:
语言
- 不同国家的语言;
- 文字书写方向;(比如德语是从左到右,而波斯语、希伯来语和阿拉伯语是由右到左。)
- 图片中包含的文字;
- 程序中的音频;
- 程序中的视频字幕;
文化
- 图片和颜色:这牵涉到理解和文化适宜的议题;
- 名字和称谓;
- 政府给定的编码(如美国的社会安全码,英国的National Insurance number,爱沙尼亚的Isikukood及其它各国的身份证号码)和护照;
- 电话号码前缀、地址和国际邮递区号;
- 货币 (符号、货币标志的位置);
- 长度、容积、重量单位;
- 标准纸张大小;
书写习惯
- 日期跟时间的格式,包含各式日历。
- 时区(在国际场合会使用世界标准时间)
- 数字格式(小数点、分隔点的位置、分隔所用的字符)
产品和服务所要面向的法规
程序的内容、运营方式及方向需要遵守当地法律、法规;
多语言翻译方案
自己实现
- 一个翻译函数(封装一个通过key获取message的函数)
- 一个i18n字典(自己配置翻译文件)
- 一个配置(语言类型)
- 前端可能涉及地区、语言类型,后端服务器应该只涉及语言类型
库
i18n-node
- 参考该库的 configure 接口设计
[1] npm
[2] github
polyglot
- 参考该库的插入式翻译接口设计
[1] github
相关
ICU
International Components for Unicode 国际化组件 Unicode 函数库
node 自 v13 之后已经集成