jQuery语言切换器

Sch*_*fel 4 jquery

我想建立一个内容为两种语言的网站.我想使用jQuery进行语言切换.我的想法是这样的:

而不是HTML页面中的实际内容:

<div>Hello there</div>
Run Code Online (Sandbox Code Playgroud)

我想使用类:

HTML:

<div class="hello_EN"></div>
Run Code Online (Sandbox Code Playgroud)

JS(我不擅长JS;我把它与一些PHP相结合,所以我可以让自己理解):

var EN = new array('hello_EN' => 'Hello there');
foreach($EN as $class => $content)
$(".$class").text("$content"); //this should populate all my HTML classes with its content
Run Code Online (Sandbox Code Playgroud)

然后,我必须有我的第二语言数组:

var RO = new array('hello_RO' => 'Salut');
Run Code Online (Sandbox Code Playgroud)

现在,切换:

$("#change_to_RO").click(function() {
       $(EN).replaceWith(RO);
});
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?谢谢.

Sam*_*son 6

最好不要从JavaScript中解决这个问题.话虽这么说,作为一个学术和学习练习,这里只是一个粗略的想法,你可以如何做这样的事情:

<select id="lang">
    <option>English</option>
    <option>Portuguese</option>
    <option>Russian</option>
</select>
<span data-translate="_hello">Hello</span>, 
<span data-translate="_january">January</span>!?
Run Code Online (Sandbox Code Playgroud)
// Some variables for later
var dictionary, set_lang;

// Object literal behaving as multi-dictionary
dictionary = {
    "english": {
        "_hello": "Hello",
        "_january": "January"
    },
    "portuguese": {
        "_hello": "Oie",
        "_january": "Janeiro"
    },
    "russian": {
        "_hello": "??????",
        "_january": "??????"
    }
};

$(function () {

    // Lets be professional, shall we?
    "use strict";

    // Function for swapping dictionaries
    set_lang = function (dictionary) {
        $("[data-translate]").text(function () {
            var key = $(this).data("translate");
            if (dictionary.hasOwnProperty(key)) {
                return dictionary[key];
            }
        });
    };

    // Swap languages when menu changes
    $("#lang").on("change", function () {
        var language = $(this).val().toLowerCase();
        if (dictionary.hasOwnProperty(language)) {
            set_lang(dictionary[language]);
        }
    });

    // Set initial language to English
    set_lang(dictionary.english);

});?
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/MBRG4/5/