WebWorksのローカリゼーションにはオプションがありますか?
-
22-10-2019 - |
質問
39の言語にローカライズされたAndroidアプリのWebWorksバージョンを構築しています。
現時点では、すべてのローカリゼーションは、言語ごとに1つのファイル、キー価値ペアのXMLファイルにあります。各言語ファイルには約400行(ファイルあたり約40k)があります。
ユーザーはアプリで使用される言語を変更できます。
この種の状況を解決するためのWebWorksにはどのような選択肢がありますか?
リソースファイルを他の種類の形式に変換して、プラットフォームでのより良い体験にすることを喜んでいます。
解決
必要に応じて、/ロードするJavaScriptファイルに各言語セットを保存できます。 (XMLデータを「マップ」に変換しました。なぜなら、それは単なるキー/値のペアであるためです)
例(Just 無視 私の翻訳...私はこれをグーグルで検索しました、私は決してスペイン語に堪能ではありません)
//Spanish File "lang_spanish.js"
var translations = {
"lose_a_turn": "pierde un turno",
"do_not_pass_go": "huele como un camello",
"take_a_card": "tener una tarjeta de",
"you_win_the_game":"sin motocicletas en la biblioteca",
"you_can_not_move":"desbordamiento de la pila puede ser un lugar divertido"
};
あなたの中で <head>
その後、必要に応じてソースを変更するだけの一般的なスクリプトタグを使用できます。
例えば
<script id="langFile" src="js/lang_english.js"></script>
別の言語が必要な場合は、このスクリプトをDOMから削除して新しい言語を追加してください。例えば
function switchLang(langName){
var headTag = document.getElementsByTagName('head')[0];
var scriptFile = document.getElementById('langFile');
headTag.removeChild(scriptFile);
var newScript = document.createElement('script');
newScript.id = 'langFile';
newScript.src = 'js/lang_' + langName + '.js';
headTag.appendChild(newScript);
}
//call with:
switchLang('spanish');
別の方法は、デフォルトで39の言語すべてをロードすることです...しかし、それは、ほとんどが1つまたは2しか必要とすることを考えると、過剰に過剰になるようです。
所属していません StackOverflow