附录B i18n
优质
小牛编辑
132浏览
2023-12-01
使用i18n
接口实现扩展应用程序的国际化。本节内容部分参考https://crxdoc-zh.appspot.com/apps/i18n。
在扩展应用程序的根目录下创建_locales
文件夹,在_locales
下以每个支持的语言的代码为名称创建子文件夹,然后在其中放入message.json
指定对应语言的字符串。支持的语言和对应的语言代码参加https://developer.chrome.com/webstore/i18n。
root directiory
|- manifest.json
|- *.html, *.js
|- _locales
|- en
|- message.json
|- zh-CN
|- message.json
在message.json
指定字符串:
{
"extName": {
"message": "一个国际化扩展",
"description": "Extension Name"
},
...
}
在Manifest中调用国际化字符串:
{
"name": "__MSG_extName__",
"default_locale": "en",
...
}
在JavaScript中获取国际化字符串:
title = chrome.i18n.getMessage('extName');
有一些预定的国际化字符串:
@@extension_id:扩展应用id
@@ui_locale:当前语言
@@bidi_dir:当前语言的文字方向,ltr或rtl
@@bidi_reversed_dir:如果@@bidi_dir是ltr则该消息为rtl,否则为ltr
@@bidi_start_edge:如果@@bidi_dir是ltr则该消息为left,否则为right
@@bidi_end_edge:如果@@bidi_dir是ltr则该消息为right,否则为left
上面这些预定义字符串可以直接在JavaScript和CSS中引用,如:
body {
direction: __MSG_@@bidi_dir__;
}
div#header {
margin-bottom: 1.05em;
overflow: hidden;
padding-bottom: 1.5em;
padding-__MSG_@@bidi_start_edge__: 0;
padding-__MSG_@@bidi_end_edge__: 1.5em;
position: relative;
}
获取浏览器可接受的语言:
chome.i18n.getAcceptLanguages(function(languageArray){
//do something with languageArray
});
获得指定消息的本地化字符串。如果消息不存在,该方法返回空字符串""
:
var msg = chrome.i18n.getMessage(messageName, substitutions);
获取浏览器用户界面的语言1:
var currentLanguage = chrome.i18n.getUILanguage();
1 从Chrome 35开始支持。