在WebWorks中进行本地化有哪些选择?

时间:2011-11-28 18:07:51

标签: blackberry blackberry-webworks

我正在构建一个本地化为39种语言的Android应用程序的WebWorks版本。

目前,所有本地化都在键值对的xml文件中,每种语言一个文件。 每种语言文件大约有400行(每个文件大约40k)。

用户可以更改应用中使用的语言。

WebWorks有哪些选项可以解决这种情况?

我非常乐意将资源文件转换为任何其他格式,以便在平台上更好地使用它。

1 个答案:

答案 0 :(得分:1)

您可以将每种语言集存储在您根据需要包含/加载的JavaScript文件中。 (我已经将XML数据转换为“Map”,因为它只是键/值对)

e.g。 (只是 忽略 我的翻译......我只是用Google搜索,我不会说流利的西班牙语)

//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>中,您可以拥有通用脚本标记,只需根据需要更改源代码。

e.g。

<script id="langFile" src="js/lang_english.js"></script>

如果您需要其他语言,只需从DOM中删除此脚本并添加新脚本即可。 e.g。

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。

相关问题