Google переводит настройки сохранения языка в файл cookie - PullRequest
0 голосов
/ 11 мая 2011

Можно ли сохранить настройки google.translate в файле cookie?Например, я установил свой язык с «Английский» на «Испанский» и перешел на другие страницы (например, «О программе») моего сайта, и он все равно сохранит свой язык на «Испанский».Мне нужна помощь в реализации этого, я знаю, что это возможно, я просто не знаю, как правильно это реализовать.

Здесь (http://jsbin.com/esiga3) код, который яВ настоящее время я работаю ". Мне нужно, чтобы он обнаружил, был ли установлен файл cookie для этого языка, и если нет, он создаст файл cookie для установки языка.

Я думаю, что можно установить настройку языкаgoogle translate api временно на стороне пользователя, используя некоторый JavaScript или cookie.

Спасибо!

1 Ответ

1 голос
/ 12 мая 2011

с некоторыми улучшениями, чтобы избежать плохих переводов и т. Д. Или с английского на английский.- 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

...