无需重新加载页面即可集成多种语言的最佳方式
The best way to integrate multiple languages without reloading the page
我正在寻找一种无需重新加载整个站点即可在网页中集成多种语言的有效方法。有时您还应该可以轻松添加更多语言。
此外,我想通过地理定位用户 ip 来动态设置语言。
我听说过 ajax,但我对它很陌生,我不知道它是否是最好的方法。在 google 无休止的搜索之前,我只是想问问你们是否可以给我一个提示。
谢谢
很难说什么是最好的方法,这取决于您的应用程序。一种简单的方法是使用 jquery 在用户选择语言时动态替换文本。
您可以像这样存储语言文件:
var strings = {
english: {
hello: "Hello",
world: "World"
},
french: {
hello: "Bonjour",
world: "blah.."
}
}
然后使用函数更新字符串:
var strLang = "english";
// update selected language
function localizeStrings(strLang) {
$(strings[strLang]).each(function(key, lang){
$.each(lang, function(id, string) {
$("#"+id).html(string);
});
});
}
并给每个 html 实体一个 id
<a id="hello" class="button"></a>
<a id="world" class="button"></a>
这里是 fiddle - https://jsfiddle.net/xrbs2mga/
我正在寻找一种无需重新加载整个站点即可在网页中集成多种语言的有效方法。有时您还应该可以轻松添加更多语言。 此外,我想通过地理定位用户 ip 来动态设置语言。
我听说过 ajax,但我对它很陌生,我不知道它是否是最好的方法。在 google 无休止的搜索之前,我只是想问问你们是否可以给我一个提示。
谢谢
很难说什么是最好的方法,这取决于您的应用程序。一种简单的方法是使用 jquery 在用户选择语言时动态替换文本。
您可以像这样存储语言文件:
var strings = {
english: {
hello: "Hello",
world: "World"
},
french: {
hello: "Bonjour",
world: "blah.."
}
}
然后使用函数更新字符串:
var strLang = "english";
// update selected language
function localizeStrings(strLang) {
$(strings[strLang]).each(function(key, lang){
$.each(lang, function(id, string) {
$("#"+id).html(string);
});
});
}
并给每个 html 实体一个 id
<a id="hello" class="button"></a>
<a id="world" class="button"></a>
这里是 fiddle - https://jsfiddle.net/xrbs2mga/