我正在使用CSS3和jQuery开发HTML5应用程序。
我想用用户语言显示一些文字。你知道我怎么做吗?
此应用程序将在Blackberry Playbook和其他移动设备上运行。
我不知道如何获取用户操作系统语言,或者我必须放置我的本地化字符串等。
有任何线索吗?
答案 0 :(得分:4)
我将本地化的字符串存储在JS文件中(每种支持的语言为1)。防爆。 :
string-en.js:
MyApp.STR = {"Hi":"Hi","By":"By", etc.};
string-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+' !';
答案 1 :(得分:0)
我建议尝试使用Javascript检测浏览器语言。我没有看到使用HTML检测它的直接方法。
以下是解决此问题的链接: