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

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

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

网络工程中有哪些选择来解决这种情况?

我很乐意将资源文件转换为任何其他类型的格式,以使使用它在平台上成为更好的体验。

有帮助吗?

解决方案

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

例如(只是 忽视 我的翻译...我只是在谷歌搜索过,我绝不会流利的西班牙语)

//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