PageSourceSearch

https://www.freizeitpark.tirol/js/google-translate.js

js freizeitpark.tirol collected 2026-10-08 07:25:01 UTC 6,455 bytes, 161 lines download raw bytes

1const googleTranslateElement = document.getElementById("google_translate_element");
2const googleTranslatePopup = document.getElementById("google_translate_consentpopup");
3const googleTranslatePageLanguage = googleTranslateElement.dataset.translateLang;
4const googleTranslateLanguages = googleTranslateElement.dataset.translateIncludedLang;
5const googleTranslateServerName = googleTranslateElement.dataset.translateServerName;
6const googleTranslateServerNameWWW = googleTranslateElement.dataset.translateServerNameWww;
7const googleTranslateLanguagesArray = googleTranslateLanguages.split(",");
8const googleTranslatePopupText = {
9	"de": {
10		title: "Zustimmung erforderlich",
11		text: "Um die automatische Übersetzung nutzen zu können, müssen sie der<br/> Verwendung von <b>Google Übersetzer</b> zustimmen.",
12		accept: "Zustimmen",
13		decline: "Ablehnen"
14	},
15	"en": {
16		title: "Permission required",
17		text: "This website uses <b>Google Translate</b> to automatically translate text in the selected language.<br/> If you want to continue, you have to allow the usage otherwise we are unable to translate the contents of this website.",
18		accept: "Accept",
19		decline: "Decline"
20	}
21};
22
23function googleTranslateGetCookie(name) {
24	const v = document.cookie.match("(^|;) ?" + name + "=([^;]*)(;|$)");
25	return v ? v[2] : null;
26}
27
28function googleTranslateSetCookie(name, value, options) {
29	const days = (options === null || options === void 0 ? void 0 : options.days) || 365;
30	const path = (options === null || options === void 0 ? void 0 : options.path) || "/";
31	const domain = (options === null || options === void 0 ? void 0 : options.domain) || false;
32	const secure = (options === null || options === void 0 ? void 0 : options.secure) || false;
33	const expires = (options === null || options === void 0 ? void 0 : options.expires) || 24 * 60 * 60 * 1000 * days;
34	const currDate = new Date();
35	let expiryDate = new Date(currDate.getTime() + expires);
36
37	if (expires < 0) {
38		expiryDate = new Date(0); /* set to a past date */
39	}
40	const cookieString = name + "=" + value + "; path=" + path + (domain ? "; domain=" + domain : "") + (secure ? "; secure" : "") + "; expires=" + expiryDate.toUTCString();
41	document.cookie = cookieString;
42}
43
44function googleTranslateDeleteCookie(name, domain) {
45	const computedDomain = domain || false;
46	googleTranslateSetCookie(name, "", {
47		expires: -1,
48		domain: computedDomain
49	});
50}
51
52function googleTranslateOpenPopup(lang) {
53	/* make popup visible */
54	googleTranslatePopup.classList.add("visible");
55
56	/* declare text elements */
57	const title = document.getElementById("google_translate_consentpopup_title");
58	const text = document.getElementById("google_translate_consentpopup_text");
59	const declineButton = document.getElementById("google_translate_consentpopup_decline");
60	const acceptButton = document.getElementById("google_translate_consentpopup_accept");
61
62	/* change text inside popup based on language */
63	if(Object.keys(googleTranslatePopupText).includes(lang)) {
64		title.innerHTML = googleTranslatePopupText[lang].title;
65		text.innerHTML = googleTranslatePopupText[lang].text;
66		declineButton.innerHTML = googleTranslatePopupText[lang].decline;
67		acceptButton.innerHTML = googleTranslatePopupText[lang].accept;
68	} else {
69		/* show english constiant as default */
70		title.innerHTML = googleTranslatePopupText["en"].title;
71		text.innerHTML = googleTranslatePopupText["en"].text;
72		declineButton.innerHTML = googleTranslatePopupText["en"].decline;
73		acceptButton.innerHTML = googleTranslatePopupText["en"].accept;
74	}
75
76	/* when a language is defined, set it as attribute on popup */
77	if(lang) {
78		googleTranslatePopup.setAttribute("data-selectedlanguage", lang);
79	}
80}
81
82function googleTranslateClosePopup() {
83	googleTranslatePopup.classList.remove("visible");
84	googleTranslatePopup.removeAttribute("data-selectedlanguage");
85}
86
87function googleTranslateConsent() {
88	/* get selected language + klaro manager */
89	const lang = googleTranslatePopup.getAttribute("data-selectedlanguage");
90	const manager = klaro.getManager();
91
92	/* update consent and close popup */
93	manager.updateConsent("googletranslate", true);
94	manager.saveAndApplyConsents();
95	googleTranslateClosePopup();
96
97	/* change to language if defined as attribute on popup */
98	if(lang) {
99		googleTranslateChangeLanguage(lang);
100	}
101}
102
103function googleTranslateDecline() {
104	googleTranslateClosePopup();
105}
106
107function googleTranslateChangeLanguage(lang) {
108	/* check if klaro consent exists */
109	const manager = window.klaro ? window.klaro.getManager() : false;
110	const hasConsented = manager && manager.getConsent("googletranslate") && manager.confirmed;
111
112	/* if page language, change regardless of consent (to clean cookies) */
113	if(lang === googleTranslatePageLanguage) {
114		googleTranslateElementChangeLanguage(lang);
115		return;
116	}
117
118	if(hasConsented || window.klaro === undefined) {
119		/* change language */
120		googleTranslateElementChangeLanguage(lang);
121	} else {
122		/* open popup */
123		googleTranslateOpenPopup(lang);
124	}
125}
126
127/**
128 * Change the active language for Google Translate.
129 * @param {string} lang - ISO-639-1 Code for the language (de, en);
130 */
131function googleTranslateElementChangeLanguage(lang) {
132	/* throw js error when language is not defined in array */
133	if(!googleTranslateLanguagesArray.includes(lang)) {
134		throw new Error("googletranslate: language \'" + lang + "\' not defined in array!");
135	}
136
137	/* clean all existing cookies */
138	googleTranslateDeleteCookie("googtrans");
139	googleTranslateDeleteCookie("googtrans", googleTranslateServerName);
140	googleTranslateDeleteCookie("googtrans", googleTranslateServerName);
141	googleTranslateDeleteCookie("googtrans", googleTranslateServerNameWWW);
142
143	/* reload page if language === currentlanguage (to prevent setting new cookies) */
144	if(lang === googleTranslatePageLanguage) {
145		location.reload();
146		return;
147	}
148
149	/* set new language & reload */
150	googleTranslateSetCookie("googtrans", "/" + googleTranslatePageLanguage + "/" + lang);
151	location.reload();
152}
153
154function googleTranslateDisable() {
155	googleTranslateDeleteCookie("googtrans");
156	googleTranslateDeleteCookie("googtrans", googleTranslateServerName);
157	googleTranslateDeleteCookie("googtrans", googleTranslateServerName);
158	googleTranslateDeleteCookie("googtrans", googleTranslateServerNameWWW);
159
160	location.reload();
161}

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.