开发者

Google translate save language setting to a cookie

开发者 https://www.devze.com 2023-03-04 21:57 出处:网络
Will it be possible to save the settings of google.translate in a cookie? For example I set my language from \'English\' to \'Spanish\' and navigate to other pages (eg. Ab开发者_运维问答out) of my sit

Will it be possible to save the settings of google.translate in a cookie? For example I set my language from 'English' to 'Spanish' and navigate to other pages (eg. Ab开发者_运维问答out) of my site and it will still retain its language to 'Spanish'. I need some help on how to implement this, I know it's possible, I just don't know how to properly implement it.

Here's (http://jsbin.com/esiga3) the code that I'm currently working". I need it to detect if theres a cookie that has been set for this language and if not it will create a cookie to set the language.

I think its possible to set the language setting of google translate api temporarily in the user side using some javascript or cookie.

Thank You!


with a few improvements to avoid bad translations etc or english to english issues. - 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: "/"
        });
    });
});

of course, you could just look at http://mootools.net/docs/core/Utilities/Cookie

0

精彩评论

暂无评论...
验证码 换一张
取 消