什么是国际化i18n
i18n,简而言之就是将一个软件,发布到全球市场,在每个地方打开,显示不同的语言的功能。
目前能根据你的系统,进行判断,加载不同的语言文件,默认支持中文和英文,也希望有更多的人加入翻译,提交到官方。
功能用法
1. __(text,{...})
在全局有一个名为"__"的function方法,第一个参数是要显示的文本在json中的key,key最好是;英文字母数字的组合。
value是要显示的文本,文本中可以使用变量占位符,每个变量用"${"和"}"阔起来。例如:`hello ${world}`
第二个参数是一个hash table,他用来映射到第一个参数的变量占位符部分,k是变量名,v是变量要显示的文本。
若变量占位符在第二个参数hash table里没有找到值的时候,会在当前语言json环境内寻找同样key的值进行替换。
最后根据当前语言环境,"__"会返回对应的字符串结果。
而环境json,啧是key=value的json文本数据,位于resources/langs/目录里。
一般你的模块的语言文件在(resources/langs/module/<你的模块名>/<language Code>.json)里。例如: resources/langs/module/card/zh.json
注意事项
1. (Language code)语言代码,一般有头部2个字符和减号后的编码组成。若完整的编码无法找到相应的语言文件,软件啧会尝试加载父级的语言文件。例如: zh-CN编码下,若没有zh-CN.json,他会尝试加载zh.json
2. 若都没找到语言文件啧表明当前软件无法加载你平台的语言,你可以给官方提供支持,加入翻译工作。这个情况下,软件会加载默认语言(en-US)
3. 尽量做到国际化支持,如果你希望你的模块能被更多的人使用的话。