EngineGP/template/js/google-translate.js

55 lines
2.2 KiB
JavaScript
Raw Permalink Normal View History

2023-03-04 23:45:46 +00:00
const googleTranslateConfig = {
lang: "ru",
/* Если скрипт не работает на поддомене,
раскомментируйте и
укажите основной домен в свойстве domain */
/*domain: "enginegp.ru" */
2023-03-04 23:45:46 +00:00
};
function TranslateInit() {
let code = TranslateGetCode();
// Находим флаг с выбранным языком для перевода и добавляем к нему активный класс
$('[data-google-lang="' + code + '"]').addClass('language__img_active');
if (code == googleTranslateConfig.lang) {
// Если язык по умолчанию, совпадает с языком на который переводим
// То очищаем куки
TranslateCookieHandler(null, googleTranslateConfig.domain);
}
// Инициализируем виджет с языком по умолчанию
new google.translate.TranslateElement({
pageLanguage: googleTranslateConfig.lang,
});
// Вешаем событие клик на флаги
$('[data-google-lang]').click(function () {
TranslateCookieHandler("/auto/" + $(this).attr("data-google-lang"), googleTranslateConfig.domain);
// Перезагружаем страницу
window.location.reload();
});
}
function TranslateGetCode() {
// Если куки нет, то передаем дефолтный язык
let lang = ($.cookie('googtrans') != undefined && $.cookie('googtrans') != "null") ? $.cookie('googtrans') : googleTranslateConfig.lang;
return lang.match(/(?!^\/)[^\/]*$/gm)[0];
}
function TranslateCookieHandler(val, domain) {
// Записываем куки /язык_который_переводим/язык_наоторый_переводим
$.cookie('googtrans', val);
$.cookie("googtrans", val, {
domain: "." + document.domain,
});
if (domain == "undefined") return;
// записываем куки для домена, если он назначен в конфиге
$.cookie("googtrans", val, {
domain: domain,
});
$.cookie("googtrans", val, {
domain: "." + domain,
});
}