質問

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しか必要とすることを考えると、過剰に過剰になるようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top