首页 > 代码库 > Chrome插件i18n多语言实现
Chrome插件i18n多语言实现
i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。Chrome插件框架中i18n的封装API:
chrome.i18n.getMessage(name)
用到的字符都可以定义成__MSG_extName__类似这样的格式,然后通过这个API来调用,例如:
chrome.i18n.getMessage(‘extName‘)
在调用这个接口前还需要做一些准备工作:
1. 插件的目录结构定义, 蓝色高亮部分为多语言文件夹:
myextension
|
|---_locales
| |------ en --------- messages.json
| |------ zh_CN ---- messages.json
| |------ ...
|--- *.js
|--- *.html
|--- *.*
2. manifest.json 定义, 如果创建了_locales, default_locale字段必须要定义:
{ "name": "name", "version": "1.6", "default_locale" : "zh_CN", "manifest_version": 2, ...}
3.messages.json 文件定义多语言符号,格式如下:
{ "extName": { "message": "插件名称", "description": "描述" }, "extDescription": { "message": "插件描述", "description": "描述2" },
"width": {
"message": "200px",
"description": "css width"
}}
在messages.json定义的符号可以在manifest.json和*.css文件中直接使用, 例如:
manifest.json:
{ "name": "__MSG_extName__", "version": "1.6", "default_locale" : "zh_CN", "manifest_version": 2, "description": "__MSG_extDescription__", ...}
css文件
#div-test { width: __MSG_width__;}
javascript文件:
var title = chrome.i18n.getMessage("extName");document.getElementById(‘div-test‘).innerHTML = title;
*.html文件
暂时还没找到对应的接口,按照帮助文档的说法,HTML界面的多语言初始化放在js文件中, 这样就工作OK了。但是这种方式不推荐,另外一种方案: 正则。
在标签里面使用__MSG_XXX__, 遍历所有TextNode节点,替换节点内容。
点此下载
Chrome插件i18n多语言实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。