私はCSS3とjQueryでHTML5アプリケーションを開発しています。多言語HTML5アプリケーション
ユーザーの言語で表示したいテキストがあります。私はそれをどのようにすることができるか知っていますか?
このアプリケーションは、Blackberryプレイブックなどのモバイルデバイスで動作します。
どれでも手がかりを私は、ユーザーのOSの言語を取得する方法がわからない、またはどこで私のローカライズ文字列を入れなければならない、など?
私はCSS3とjQueryでHTML5アプリケーションを開発しています。多言語HTML5アプリケーション
ユーザーの言語で表示したいテキストがあります。私はそれをどのようにすることができるか知っていますか?
このアプリケーションは、Blackberryプレイブックなどのモバイルデバイスで動作します。
どれでも手がかりを私は、ユーザーのOSの言語を取得する方法がわからない、またはどこで私のローカライズ文字列を入れなければならない、など?
Javascriptを使用してブラウザ言語を検出しようとするとよいでしょう。 HTMLを使って直接検出する方法はありません。ここで
はこの問題に対処したリンクです:
私はJSファイル(サポートされている各言語の1)で、私のローカライズされた文字列を格納します。 Ex。 :
文字列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+' !';