我正在构建一个本地化为39种语言的Android应用程序的WebWorks版本。
目前,所有本地化都在键值对的xml文件中,每种语言一个文件。 每种语言文件大约有400行(每个文件大约40k)。
用户可以更改应用中使用的语言。
WebWorks有哪些选项可以解决这种情况?
我非常乐意将资源文件转换为任何其他格式,以便在平台上更好地使用它。
答案 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。