在不重新加载页面的情况下集成多种语言的最佳方法

时间:2015-11-27 11:37:44

标签: php ajax dynamic

我正在寻找一种在网页中集成多种语言而无需重新加载整个网站的有效方法。您还应该不时地添加更多语言。 此外,我想通过地理定位用户ip来动态设置语言。

我听说过ajax,但我很陌生,我不知道这是不是最好的方式。在谷歌无休止地搜索之前,我只是想问你们,如果你能给我一个提示。

谢谢

1 个答案:

答案 0 :(得分:2)

很难说最好的方法,真的取决于你的应用程序。一种简单的方法是使用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>

这是一个小提琴 - https://jsfiddle.net/xrbs2mga/