我正在開發一個帶有CSS3和jQuery的HTML5應用程序。多語言HTML5應用程序
我有一些我想用用戶語言顯示的文本。你知道我該怎麼做嗎?
此應用程序將運行在黑莓手冊和其他移動設備上。
我不知道如何獲取用戶操作系統語言,或者我必須把我的本地化字符串等
任何線索?
我正在開發一個帶有CSS3和jQuery的HTML5應用程序。多語言HTML5應用程序
我有一些我想用用戶語言顯示的文本。你知道我該怎麼做嗎?
此應用程序將運行在黑莓手冊和其他移動設備上。
我不知道如何獲取用戶操作系統語言,或者我必須把我的本地化字符串等
任何線索?
我會建議嘗試使用Javascript檢測瀏覽器語言。我沒有看到使用HTML檢測它的直接方式。
下面是解決該問題的鏈接:
我存儲在JS文件我的本地化字符串(1爲每個支持的語言)。防爆。 :
字符串en.js:
MyApp.STR = {"Hi":"Hi","By":"By", etc.};
字符串fr.js:
MyApp.STR = {"Hi":"Salut","By":"Par", etc.};
而且在啓動時,我就加載導航的語言正確的文件:
loadLocalizedString: function(langParam/*optional*/) {
var language = window.navigator.language, lang;
console.log('loadLocalizedString with Navigator Language: ' + language);
if (!langParam) {
//Try to guess the best suited language
if(language) {
lang = language.substring(0,2);
} else {
lang = 'en';
}
if($.inArray(lang, this.SUPPORTED_LANGUAGE) <= -1) {
lang = 'en';//If the language is not available : english by default
}
} else {
lang = langParam;
}
console.log('language: ' + lang);
this.loadString('lib/string-'+lang+'.js');
},
SUPPORTED_LANGUAGE : ["en", "fr", "es", "it"],
loadString:function(fileName) {
try {
$.ajaxSetup({async: false});
$.getScript(fileName);//We don't use the async callback, because we need the translation in the next method
$.ajaxSetup({async: true});
} catch (e) {
console.error('Error while loading : ' + fileName);
}
}
並使用應用中的本地化字符串:
html = MyApp.STR.Hi+' '+userName+' !';