#javascript #cookies #mootools #google-translate
#javascript #файлы cookie #mootools #google-translate
Вопрос:
Можно ли будет сохранить настройки google.translate в cookie? Например, я меняю свой язык с «английского» на «испанский» и перехожу на другие страницы (например. О моем сайте, и он по-прежнему сохранит свой язык «испанский». Мне нужна помощь в том, как это реализовать, я знаю, что это возможно, я просто не знаю, как это правильно реализовать.
Здесь(http://jsbin.com/esiga3 ) код, над которым я сейчас работаю». Мне нужно, чтобы он определял, установлен ли файл cookie для этого языка, и если нет, он создаст файл cookie для настройки языка.
Я думаю, что можно временно установить языковые настройки api Google translate на стороне пользователя, используя какой-либо javascript или cookie.
Спасибо!
Ответ №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 amp;amp; 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
Комментарии:
1. нет. обновленный ответ. очевидно, что вам нужно больше, чем фрагменты… tbh Я переписываю это только потому, что думаю, что смогу сам найти применение этому фрагменту кода в качестве основы для некоторой многоязычной работы.
2. Ты потрясающий чувак, большое спасибо за помощь! Я рылся в Интернете, чтобы найти какую-нибудь хорошую ссылку на эту проблему, но я не могу найти ни одной хорошей. И да, ваш фрагмент был бы действительно удобен 🙂 Еще раз спасибо.