使用i18n接口实现扩展应用程序的国际化。本节内容部分参考https://crxdoc-zh.appspot.com/apps/i18n。
在扩展应用程序的根目录下创建_locales文件夹,在_locales下以每个支持的语言的代码为名称创建子文件夹,然后在其中放入message.json指定对应语言的字符串。支持的语言和对应的语言代码参加https://developer.chrome.com/webstore/i18n#localeTable。
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();
从Chrome 35开始支持。
-----------------------------------------------------
转载请注明来源此处
原地址:#
发表