是否可以将google.translate的设置保存在Cookie中?例如,我将我的语言从“英语”设置为“西班牙语”并导航到我网站的其他页面(例如,关于),并且仍将其语言保留为“西班牙语”。我需要一些关于如何实现这一点的帮助,我知道这是可能的,我只是不知道如何正确实现它。
Here(http://jsbin.com/esiga3)我正在使用的代码“。我需要它来检测是否为此语言设置了cookie,如果没有它会创建一个cookie来设置语言。
我认为可以使用一些javascript或cookie暂时在用户端设置google translate api的语言设置。
谢谢!
答案 0 :(得分:1)
进行一些改进,以避免不良翻译等或英语到英语问题。 - 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: "/"
});
});
});