Google translate save language setting to a cookie
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
精彩评论