原文地点:http://www.pwhack.me/archives/phonegap-localization.html
此次列入“iOS7 Tech Talk”,了解了Localization和”Think Globally”的重要性。决定在现在已上线到app store的PhoneGap app(暂不发在博客)中增添英文的支撑。查了下PhoneGap的文档发明并没有Localization的插件,因而在github上搜刮了一下,找到了一个不错的localization插件然则并不支撑3.0。另有一个原生js完成的l10n,然则个中用到的特征不被webview和UIWebView中的浏览器支撑。
想一想实在完成Localization并不难,因而就本身完成了一个。希望能举一反三,给人人供应一个思绪:在app初始化的时刻替代笔墨内容就ok了。
Requirements:
Globalization插件
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-globalization.git
jQuery
虽然不必jQuery也能完成,但我照样比较懒的= =
localization.js
var localization = {};
localization.strings = {};
localization.initialize = function () {
console.log('initializing l10n.');
//这是默许显现英文,支撑中文的体式格局,请依据现实需求自行修正,比如用switch
if (this.locale == 'zh_CN') {
for (var property in localization.strings) {
$('.str_' + property).html(localization.strings[property].zh_CN);
}
} else {
for (var property in localization.strings) {
$('.str_' + property).html(localization.strings[property].en_US);
}
}
};
// just two examples
localization.strings.hello = {
zh_CN: '你好',
en_US: 'hello'
};
localization.strings.name = {
zh_CN: '小菜逼',
en_US: 'Little Noob'
};
HTML
<span class="str_hello"></span>, I'm <span class="str_name"></span>.
Usage
在deviceready的时刻挪用:
navigator.globalization.getLocaleName(function (locale) {
localization.locale = locale.value;
localization.initialize();
}, function () {
console.log('an error occurred while getting locale name');
});