谷歌翻译保存语言设置到cookie



是否可以将google.translate的设置保存在cookie中?例如,我将语言从"英语"设置为"西班牙语"并导航到其他页面(例如。关于)的网站,它仍将保留其语言为"西班牙语"。我需要一些关于如何实现这一点的帮助,我知道这是可能的,我只是不知道如何正确实现它。

这是(http://jsbin.com/esiga3)我目前正在处理的代码"。我需要它来检测是否为该语言设置了cookie,如果没有,它将创建一个cookie来设置语言。

我认为可以使用一些javascript或cookie在用户端临时设置谷歌翻译api的语言设置。

谢谢!

进行了一些改进,以避免错误的翻译等或英语到英语的问题。 - http://jsfiddle.net/F248G/3/

// Set the original/default language
var lang = "en";
var currentClass = "currentLang";
// Load the language lib
google.load("language", 1);
// When the DOM is ready....
window.addEvent("domready", function() {
    // Retrieve the DIV to be translated.
    var translateDiv = document.id("languageBlock");
    // Define a function to switch from the currentlanguage to another
    var callback = function(result) {
        if (result.translation) {
            translateDiv.set("html", result.translation);
        }
    };
    // is language set? if so, auto translate
    (function() {
        // to avoid "lost in translation" on stacking up, i.e.
        // translate from english to spanish, then from translated spanish back to english or others
        // with errors, always use english as base language.
        if (!translateDiv.retrieve("orig_en")) {
            translateDiv.store("orig_en", translateDiv.get("html"));
        }
        // check cookie and if so, translate and set new base language
        var toLang = Cookie.read("googleLang");
        if (toLang && toLang != lang) {
            google.language.translate(translateDiv.retrieve("orig_en"), lang, toLang, callback);
            lang = toLang;
        }
    })();
    // Add a click listener to update the DIV
    $$("#languages a").addEvent("click", function(e) {
        // Stop the event
        if (e) e.stop();
        // Get the "to" language
        var toLang = this.get("rel");
        if (toLang === lang)
            return;
        // Set the translation into motion
        google.language.translate(translateDiv.get("html"), lang, toLang, callback);
        // Set the new language
        lang = toLang;
        // Add class to current
        this.getSiblings().removeClass(currentClass);
        this.addClass(currentClass);
        // ... and add here the code to save the last choice
        Cookie.write("googleLang", toLang, {
            path: "/"
        });
    });
});

当然,你可以看看 http://mootools.net/docs/core/Utilities/Cookie

最新更新