Chrome 浏览器插件进行 i18n 国际化多语言适配需要进行三处修改:
- 在特定目录按照特定格式编写多语言配置的
messages.json
文件; - 在
manifest.json
中设置默认语言; - 修改项目代码,通过
__MSG_messagename__
或getMessage
方法获取本地化内容;
编写多语言配置
多语言文件位于扩展根目录的 _locales/{_localeCode_}/messages.json
路径下
支持的 _localeCode_
可参考 languages.cc
以英语 en
为例,_localCode_/en/messages.json
如下:
{
"title": {
"message": "hello world", // title 字段的英语表示,必填
"description": "Title string" // 当前字段的描述信息(注释),可选
},
...
}
配置默认语言
多语言配置编写完成后,还必须在 manifest.json
中设置默认语言 default_locale
才能生效。
使用本地化内容
在 Javascript 中,可通过调用 getMessage
方法获取本地化之后的内容,具体参数参考 getMessage API
在不支持 getMessage
方法的环境下(例如 json、css、html),可使用 __MSG_messagename__
占位符获取本地化内容。
多语言降级
当扩展程序在特定 _localeCode_
目录下没有找到本地化内容时,会按照一定规则进行搜索:
- 未找到当前地区的语言时,降级到当前大的语言环境,例如未找到
en_US
时,会尝试搜索en
目录; - 未满足上述条件时,则会使用
default_locale
配置的语言; - 否则返回
""
空字符;
多语言调试
调试多语言配置时,需要修改到特定的语言环境,具体方法参考: