1var domain = "." + location.hostname.replace(/^(www\.)/, ""); 2 3const googleTranslateConfig = { 4 lang: "ru", 5 domain: domain 6}; 7 8function TranslateInit() { 9 10 if (googleTranslateConfig.langFirstVisit && !Cookies.get('googtrans')) { 11 TranslateCookieHandler("/auto/" + googleTranslateConfig.langFirstVisit); 12 } 13 14 let code = TranslateGetCode(); 15 updateLanguageLinkText(code); 16 document.querySelectorAll('[data-google-lang]').forEach(radioButton => { 17 if (radioButton.getAttribute('data-google-lang') === code) { 18 radioButton.checked = true; 19 } 20 }); 21 22 if (code == googleTranslateConfig.lang) { 23 TranslateCookieHandler(null, googleTranslateConfig.domain); 24 } 25 26 new google.translate.TranslateElement({ 27 pageLanguage: googleTranslateConfig.lang, 28 suppressHighlighting: false, 29 }); 30 31 TranslateEventHandler('click', '[data-google-lang]', function (e) { 32 TranslateCookieHandler("/" + googleTranslateConfig.lang + "/" + e.getAttribute("data-google-lang"), googleTranslateConfig.domain); 33 showProgress(); 34 window.location.reload(); 35 updateLanguageLinkText(e.getAttribute("data-google-lang")); 36 }); 37} 38 39function TranslateGetCode() { 40 let lang = (Cookies.get('googtrans') != undefined && Cookies.get('googtrans') != "null") ? Cookies.get('googtrans') : googleTranslateConfig.lang; 41 return lang.match(/(?!^\/)[^\/]*$/gm)[0]; 42} 43 44function TranslateCookieHandler(val, domain) { 45 Cookies.set('googtrans', val); 46 Cookies.set("googtrans", val, { 47 domain: "." + document.domain, 48 }); 49 50 if (domain == "undefined") return; 51 Cookies.set("googtrans", val, { 52 domain: domain, 53 }); 54 55 Cookies.set("googtrans", val, { 56 domain: "." + domain, 57 }); 58} 59 60function TranslateEventHandler(event, selector, handler) { 61 document.addEventListener(event, function (e) { 62 let el = e.target.closest(selector); 63 if (el) handler(el); 64 }); 65} 66 67function updateLanguageLinkText(code) { 68 let selectedLanguage = document.querySelector(`input[data-google-lang="${code}"]`).value; 69 document.querySelector('.language-tooltip a span').innerText = "ЯзÑк: " + selectedLanguage; 70}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.