let xrx52m = {"seo":[],"pjt":"il_yf6b55qp4duh6pya","code":"U2FsdGVkX1%2FRgBIPnGJqEsBnL24xfO9Lgy%2Fs3sjdX5QqYcFhh8vxgniCt5eKYFwpZ55GkV0oaatmDlN4Qva13v5WIkKjYe7OGiVnMHa3WcUVjRDvQySr%2Bgifpn6zARNzy0Xygz7U0%2FKjiXsWk3xgeL4jG4e%2BnJwd303eCpn5h6nJeHC6XS6fuZitpe%2BfQfL2L93bG5ck1RVZwcrvbWPS99yI5D87IxC0sQY64R3%2FH1f%2BJ5qalc59EJKmPdu%2BaSu2","menu":{"bg":"white","color":"black","dark":false,"flags":true,"short":false,"pos":"embed"},"origLang":"HU","languages":["EN-US"],"all":["EN-US","CO"],"baseUrl":"api.inilingo.com","xlang":"","wp":"true"} const xrxiniLingoBeforeLoad = (basics)=>{ // handle it at the very beginning before anything loads // return false to stop loading IniLingo // you can use the following data: // let basics = {"pjt": string, "origLang": string,"languages":string[]} // more of it // can be more if (basics.xlang==="EN-US"){ xrmftStyleAdd("EN-US") } else { xrmftStyleAdd("") } if (new URL(document.location.href).pathname.indexOf("/foglalas/")===0 && localStorage.getItem("inilingo-lang") && xrx52m.wp) { document.location.href = document.location.href.replace("/foglalas/", "/" + localStorage.getItem("inilingo-lang").toLowerCase().substring(0, 2) + "/foglalas/") return false; } if (new URL(document.location.href).pathname.indexOf("/kosar/")===0 && localStorage.getItem("inilingo-lang") && xrx52m.wp) { document.location.href = document.location.href.replace("/kosar/", "/" + localStorage.getItem("inilingo-lang").toLowerCase().substring(0, 2) + "/kosar/") return false; } if (new URL(document.location.href).pathname.indexOf("/penztar/order-")===0 && localStorage.getItem("inilingo-lang") && xrx52m.wp) { document.location.href = document.location.href.replace("/penztar/order-", "/" + localStorage.getItem("inilingo-lang").toLowerCase().substring(0, 2) + "/penztar/order-") return false; } https://gokartvac.hu/penztar/order-received return true } const xrxIniLingoFilterElement = (transElements) => { // return false if not to be translated if (transElements[0].node.parentElement.closest(".woocommerce-cart-form")) { if (transElements[0].node.parentElement.closest(".variation-Megajndkozottneve p")) { return true } if (transElements[0].node.parentElement.closest(".variation-Megjegyzs p")) { return true } if (transElements[0].node.parentElement.closest(".variation-zenet p")) { return true } if (transElements[0].node.parentElement.closest(".woocommerce-Price-amount.amount")) { return true } if (transElements[0].node.parentElement.closest(".variation-Idpontok p")) { return true } } } const xrxiniLingoAfterLoad = (iniLingo, currentLang, languages, menu) => { // run this when the iniLingo script already loaded // iniLingo.setLang("") document.getElementsByName("woocommerce_checkout_place_order")[0].value="Place Order" document.getElementsByName("woocommerce_checkout_place_order")[0].innerHTML="Place Order" } // delay running above script by x milliseconds const xrxiniAfterLoadDelay = 3000 const xrxIniLingoHandleHref = (href) => { // incoming hrefs for links return the transformed href return false } // css selector of element to insert language menu into const xrxIniLingoMenuSelector = ".logo" const xrxIniLingoMenuEmptyParent = false; const xrxIniLingoMenuStyle = ""; // add image replacements here per language const imgx2list = [ ["https://gokartvac.hu/wp-content/uploads/2019/01/gokart-vac-hu-logo-slogen-3.png", { "EN-US": "https://storage.googleapis.com/inilingo0.appspot.com/gokart-vac-hu-logo-slogen-en.png" }] ] function xrmftStyleAdd(lang){var xrmftgstyle = document.createElement('style');xrmftgstyle.innerHTML = ` #xrxmxflag { position: absolute; right: -20px; top: 30px; transform:scale(1.2); width: 60px; z-index:50000; } @media (max-width: 992px){ #xrxmxflag { right: -20px; } } @media (max-width: 960px){ #xrxmxflag { right: -55px; } } @media (max-width: 767px){ #xrxmxflag { right: 85px; } } @media (max-width: 468px){ #xrxmxflag { right: 70px; } } @media (max-width: 468px){ #xrxmxflag { right: 60px; } } @media (max-width: 440px){ #xrxmxflag { right: 53px; flex-direction: column; top: 12px; } .logo img { max-height: 60px; } } @media (max-width: 374px){ #xrxmxflag { right: 53px; flex-direction: column; top: 12px; } .logo img { max-height: 55px; } } `;xrmftgstyle.id='xrtmfg';document.getElementsByTagName('head')[0].appendChild(xrmftgstyle); if (lang){var xrmftgstyleLang = document.createElement('style');xrmftgstyleLang.innerHTML = ` .child::after { content: " (children)" !important; } .ph_booking_wraper_random_dates { display: block; margin-top: -15px; } `;xrmftgstyleLang.id='xrtmfglang';document.getElementsByTagName('head')[0].appendChild(xrmftgstyleLang); }} function xrmUnDim() { const lElement = document.getElementById("grxrm") if (lElement) { lElement.disabled = true; lElement.parentNode.removeChild(lElement); } } // const imgx2list = [ // ["https://www.nemzetkoziszallitas.eu/nmztkzszllts17/wp-content/uploads/sebestyenbt-logo1-1.png", { "EN-US": "https://www.nemzetkoziszallitas.eu/nmztkzszllts17/wp-content/uploads/sebestyenbt-logo-english.png" }] // ] if (new URL(document.location.href).pathname === "/penztar/" && localStorage.getItem("inilingo-lang") && xrx52m.wp) { document.location.href = document.location.href.replace("/penztar/", "/" + localStorage.getItem("inilingo-lang").toLowerCase().substring(0, 2) + "/penztar/") } function specialSetup(setLang) { setTimeout(() => { const akEn = Array.from(document.querySelectorAll(".av-language-switch-item.language_en a")) akEn.forEach(item => { console.log(item) item.href = "#" console.log(item.parentElement) item.parentNode.addEventListener("click", (e) => { iniLingo.setLang("EN-US") console.log("english") }, true) }) const akHu = Array.from(document.querySelectorAll(".av-language-switch-item.language_hu a")) akHu.forEach(item => { item.href = "#" item.parentElement.addEventListener("click", (e) => { console.log("hungarian") iniLingo.setLang("HU") }, true) }) }, 1000) } function iniLingoX2rm(firstTime = false) { const url = new URL(document.location.href) const baseUrl = url.host.replace(/^..(-..)?\./, "") + url.pathname + url.search const wpBaseUrlLang = "https://" + url.host + "/" + xrx52m.xlang.toLowerCase().substring(0, 2) + "/" const wpBaseUrl = "https://" + url.host + "/" const langObj = { "CO": { "language": "CO", "raw": "Counter" }, "BG": { "language": "BG", "raw": "Български" }, "CS": { "language": "CS", "raw": "Česky" }, "DA": { "language": "DA", "raw": "Dansk" }, "DE": { "language": "DE", "raw": "Deutsch" }, "EL": { "language": "EL", "raw": "Ελληνική" }, "EN-GB": { "language": "EN-GB", "raw": "English" }, "EN-US": { "language": "EN-US", "raw": "English" }, "ES": { "language": "ES", "raw": "Español" }, "ET": { "language": "ET", "raw": "Eesti" }, "FI": { "language": "FI", "raw": "Suomalainen" }, "FR": { "language": "FR", "raw": "Français" }, "HU": { "language": "HU", "raw": "Magyar" }, "ID": { "language": "ID", "raw": "Bahasa Indonesia" }, "IT": { "language": "IT", "raw": "Italiano" }, "JA": { "language": "JA", "raw": "日本語" }, "KO": { "language": "KO", "raw": "한국어" }, "LT": { "language": "LT", "raw": "Lietuvių kalba" }, "LV": { "language": "LV", "raw": "Latviešu" }, "NB": { "language": "NB", "raw": "Norsk" }, "NL": { "language": "NL", "raw": "Nederlands" }, "PL": { "language": "PL", "raw": "Polski" }, "PT-BR": { "language": "PT-BR", "raw": "Português (brasileiro)" }, "PT-PT": { "language": "PT-PT", "raw": "Português" }, "RO": { "language": "RO", "raw": "Românesc" }, "RU": { "language": "RU", "raw": "Русский" }, "SK": { "language": "SK", "raw": "Slovenská" }, "SL": { "language": "SL", "raw": "Slovinčina" }, "SV": { "language": "SV", "raw": "Svenska" }, "TR": { "language": "TR", "raw": "Türkçe" }, "UK": { "language": "UK", "raw": "Українська" }, "ZH": { "language": "ZH", "raw": "中文(简体)" } }; const restoreOpacity = () => { setTimeout(() => { document.documentElement.classList.remove("zero") xrmUnDim() }, 25) } const addHrefLang = (lang) => { const s = document.createElement("link") s.hreflang = lang s.rel = "alternate" const url = new URL(document.location.href) let baseUrl = url.protocol + "//" + url.host.replace(/^..(-..)?\./, "") + url.pathname if (xrx52m.wp) { const split = url.pathname.split("/") if (split[1] === xrx52m.xlang.toLowerCase().substring(0, 2)) { baseUrl = url.protocol + "//" + url.host + (xrx52m.origLang.toLowerCase() !== lang ? ("/" + lang.toLowerCase().substring(0, 2) + "/") : "/") + split.slice(2).join("/") } else { baseUrl = url.protocol + "//" + url.host + (xrx52m.origLang.toLowerCase() !== lang ? ("/" + lang.toLowerCase().substring(0, 2) + "/") : "/") + split.slice(1).join("/") } } else { if (xrx52m.origLang.toLowerCase() !== lang) { baseUrl = baseUrl.replace(/^https:\/\//, "https://" + lang + ".") } } s.href = baseUrl document.head.appendChild(s) } const addCanonical = () => { const s = document.createElement("link") s.rel = "canonical" const url = new URL(document.location.href) const baseUrl = url.protocol + "//" + url.host + url.pathname s.href = baseUrl document.head.appendChild(s) } if (xrx52m.wp) { console.log("hreflang"); [...xrx52m.languages.map(item => item.toLowerCase()), xrx52m.origLang.toLowerCase()].forEach(item => addHrefLang(item)) } else { [...xrx52m.seo.map(item => item.toLowerCase().substring(0, 2)), xrx52m.origLang.toLowerCase().substring(0, 2)].forEach(item => addHrefLang(item)) } function deNumber(text) { //console.log(text) const foundNumbers = text.match(/\d+/g) if (!foundNumbers) { return [text, {}] } const numbers = Array.from(foundNumbers) const list = text.split(/\d+/) let orig = {} let newText = "" for (let n = 0; n < list.length - 1; n++) { newText += list[n] + (1 + n + "") orig[1 + n + ""] = numbers[n] } newText += list[list.length - 1] return [newText, orig] } function reNumber(text, orig) { const foundNumbers = text.match(/\d+/g) if (!foundNumbers) { return text } const numbers = Array.from(foundNumbers) const list = text.split(/\d+/) let newText = "" for (let n = 0; n < list.length - 1; n++) { newText += list[n] + (orig[numbers[n]] || numbers[n]) } newText += list[list.length - 1] return newText } function verifyEmail(value) { var emailRex = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if (emailRex.test(value)) { return true; } return false; }; function getCookie(name) { var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); if (match) return match[2]; } function getCoords(elem) { // crossbrowser version var box = elem.getBoundingClientRect(); var body = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop; var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft; var clientTop = docEl.clientTop || body.clientTop || 0; var clientLeft = docEl.clientLeft || body.clientLeft || 0; var top = box.top + scrollTop - clientTop; var left = box.left + scrollLeft - clientLeft; return { top: Math.round(top), left: Math.round(left) }; } function getOneUrl() { let newUrl = new URL(document.location.href).pathname if (xrx52m.wp && currentLang && (newUrl.indexOf("/" + currentLang.toLowerCase().substring(0, 2) + "/") === 0 || newUrl === "/" + currentLang.toLowerCase().substring(0, 2))) { newUrl = newUrl.substring(3) if (!newUrl) { newUrl = "/" } } newUrl = newUrl.replace(/\//g, "x2F") return newUrl; } let currentItems = new WeakMap() var origLang = xrx52m.origLang var iCode = xrx52m.code var inirxhands = [] var inirxhandlingItems = false; var inirxprocessing = false; var apiKey = xrx52m.pjt let inirxfullTranslation = {} let cantranslate = true; var fullFile = {} var currentLang = "" var count = 1 var pendingTranslations = {} var origNodes = new Map(); var sentenceNodes = new Map(); var handledNodes = new WeakMap(); var markup = {}; var markupElement = null; var menu = xrx52m.menu || { position: "bottomleft", short: false, flags: true } var memory = {} var testing = decodeURIComponent(new URL(document.location.href).searchParams.get("testing") || sessionStorage["inilingo-testing"] || "") let languages = [] if (testing) { sessionStorage["inilingo-testing"] = testing } languages = testing || document.location.href.includes("customers.inilingo.com") ? xrx52m.all : xrx52m.languages if (languages.length === 0) { return; } markup.markup = new URL(document.location.href).searchParams.get("mrkup") if (markup.markup) { // document.cookie = "inilingo-markup=" + markup.markup } let nUrl = new URL(document.location.href) currentLang = localStorage.getItem("inilingo-lang") if (nUrl.searchParams.get("lang") && langObj[nUrl.searchParams.get("lang").toUpperCase()]) { currentLang = (nUrl.searchParams.get("lang").split("?")[0] || "").toUpperCase() } if (langObj[nUrl.hostname.split(".")[0].toUpperCase()]) { currentLang = nUrl.hostname.split(".")[0].toUpperCase() } if (xrx52m.seo.length && (xrx52m.seo.length === xrx52m.languages.length) && !langObj[nUrl.hostname.split(".")[0].toUpperCase()] && currentLang !== "CO" && !xrx52m.all.includes(currentLang)) { currentLang = "" } if (!testing && !languages.includes(currentLang)) { currentLang = "" } if (xrx52m.xlang && languages.includes(xrx52m.xlang)) { currentLang = xrx52m.xlang } else { if (xrx52m.wp) { currentLang = "" } } var currentUrl = getOneUrl() if (currentLang && nUrl.hostname.split(".")[0].toUpperCase() === currentLang) { if (!document.querySelector("link[rel='canonical'")) { addCanonical() } } if (currentLang) { inirxloadTranslation(currentLang) } else { restoreOpacity() } function ixImgHanding(currentLang) { if (imgx2list) imgx2list.forEach(item => { const orig = item[0] let imgx2 = document.querySelector("img[data-xrset='" + orig + "']") if (imgx2) { imgx2.src = currentLang ? item[1][currentLang] : item[0] return; } imgx2 = document.querySelector("img[src='" + orig + "']") if (imgx2) { imgx2.src = currentLang ? item[1][currentLang] : item[0] imgx2.setAttribute("data-xrset", orig) } }) } var isReady = false document.addEventListener('DOMContentLoaded', () => { isReady = true; inirxhandleItems() }) var css = '[data-mkup]:hover { outline: 2px solid yellow; }' var head = document.head || document.getElementsByTagName('head')[0] var style = document.createElement('style'); head.appendChild(style); if (style.styleSheet) { // This is required for IE8 and below. style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); } function isInside(e, box) { let x = e.x let y = e.y if (x > box.x && y > box.y && x < box.x + box.width && box.y < box.y + box.height) { return true } } const compareTags = (left, right) => { const leftTags = left.matchAll(/<\/?k\/?>/g); const rightTags = right.matchAll(/<\/?k\/?>/g); let leftArray = Array.from(leftTags).map((item) => item[0]); let rightArray = Array.from(rightTags).map((item) => item[0]); if (leftArray.length !== rightArray.length) { return false; } for (let i = 0; i < leftArray.length; i++) { if (leftArray[i] !== rightArray[i]) { return false; } } return true; }; function escapeHtml(unsafe) { unsafe = unsafe || "" return unsafe.replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } function inirxgetDisplayType(element) { if (!element || ["LI", "BUTTON"].includes(element.tagName)) { return "" } if (["SPAN"].includes(element.tagName) && xrx52m.pjt === "il_yf6b55qp4duh6pya") { return "inline" } var cStyle = element.currentStyle || window.getComputedStyle(element, ""); return cStyle.display; } const observerOptions = { characterData: true, subtree: true, childList: true, attributes: true, attributeFilter: ["content", "placeholder"] }; const title = document.querySelector("title") const description = document.head.querySelector("meta[name='description']") if (title) { inirxhands.push(title) } if (description) { inirxhands.push(description) } ixImgHanding(currentLang) //inirxhands.push(description) const logChanges = function (mutations) { let baci = 0 if (!currentLang) { return; } if (document.documentElement.classList.contains("translated-ltr") || document.documentElement.classList.contains("translated-rtl")) { return; } mutations.forEach(function (mutation) { if (mutation.target.tagName === "TITLE") { if (handledNodes.has(mutation.target)) { handledNodes.delete(mutation.target) } else { translateTitle(inirxfullTranslation, mutation.target) } } // if (mutation.target.getAttribute && mutation.target.getAttribute("placeholder")) { // if (handledNodes.has(mutation.target)) { // handledNodes.delete(mutation.target) // } else { // inirxhands.push(mutation.target) // } // } if (mutation.target.tagName === "META") { if (mutation.target.name === "description") { if (handledNodes.has(mutation.target)) { handledNodes.delete(mutation.target) } else { translateMeta(inirxfullTranslation, mutation.target) } } } if (mutation.addedNodes.length) { for (let l = 0; l < mutation.addedNodes.length; l++) { let node = mutation.addedNodes[l] if (!document.body || !document.body.contains(node) || node === document.body) { return } if (["SCRIPT", "IFRAME", "STYLE", "G"].includes(node.tagName)) { return; } if (node.nodeType === Node.ELEMENT_NODE) { inirxhands.push(node) } } } if (mutation.type === "characterData") { let node = mutation.target if (node.nodeType === Node.TEXT_NODE && (node.parentNode && !["SCRIPT", "STYLE", "HEAD"].includes(node.parentNode.tagName))) { if (handledNodes.has(node)) { handledNodes.delete(node) } else { if (node.textContent.replace(/<.*?>/g, "").replace(/[\d,. ?!-(){}]/g, "").trim()) { origNodes.delete(node) inirxhands.push(node) baci++ } } } } }) if (!inirxhandlingItems) { inirxhandlingItems = true inirxhandleItems() } } const observer = new MutationObserver(logChanges); observer.observe(document.documentElement, observerOptions); function replaceNodes(transElements, translation, orig = "") { sentenceNodes.set(transElements[0].node, [transElements[0].node, transElements[transElements.length - 1].node, orig]) sentenceNodes.set(transElements[transElements.length - 1].node, [transElements[0].node, transElements[transElements.length - 1].node, orig]) translation = translation.replace(/(<\/?k\/?>){2,}/g, "").replace(/(<\/k>){2,}/g, "") //translation = translation.replace(/(){2,}/g, "").replace(/(<\/k>){2,}/g, "") let rep = translation.replace(/^/g, "").replace(/<\/?k\/?>/g, '|xxrrxxx|').split('|xxrrxxx|') let extra = 0 for (let n = 0; n < transElements.length; n++) { let el = transElements[n] // if (handledNodes.has(el.node)) { // handledNodes.delete(el.node) // break // } if (!el.main) { if (el.node.nodeType === Node.TEXT_NODE) { extra++ if (!origNodes.has(el.node)) { origNodes.set(el.node, { text: el.node.textContent, element: el.node }) } if (!handledNodes.has(el.node)) { el.node.textContent = "" handledNodes.set(el.node, true) } } else { if (rep[n - extra]) { extra++ } } continue } if (!origNodes.has(el.node)) { if (n === 0 && markup.markup) { origNodes.set(el.node, { text: el.node.textContent, element: el.node, items: [transElements[0].node, transElements[transElements.length - 1].node], orig: orig, }) } else { origNodes.set(el.node, { text: el.node.textContent, element: el.node, orig: orig }) } } // console.log(el.node) // console.log(el.node.textContent) if (!handledNodes.has(el.node)) { handledNodes.set(el.node, true) el.node.textContent = rep[n - extra] } } } function findBlockParent(element) { if (element.nodeType === Node.TEXT_NODE) { element = element.parentElement } while (inirxgetDisplayType(element).includes("inline")) { element = element.parentElement } return element } function simplifyText(intext) { while (intext.match(/<\/k>/)) { intext = intext.replace(/<\/k>/g, "") } while (intext.match(/<\/k>/)) { intext = intext.replace(/<\/k>/g, "") } while (intext.match(//)) { intext = intext.replace(//g, "") } while (intext.match(/<\/k>/)) { intext = intext.replace(/<\/k>/g, "") } while (intext.match(/<\/k>/)) { intext = intext.replace(/<\/k>/g, "") } intext = intext.replace(/\s+/g, " ").replace(/ {2,}/g, " ") return intext } function isInline(element) { if (element.nodeType !== Node.ELEMENT_NODE) { return true } if (!element || ["LI", "BUTTON"].includes(element.tagName)) { return false } var cStyle = element.currentStyle || window.getComputedStyle(element, ""); return cStyle.display.includes("inline"); } let transElements = [] let myElements = [] let countx = 0 function readElements(element, level = 0) { let t = "" let l = element.childNodes let first = true; l.forEach(node => { if (node.placeholder) { inirxhands.push(node) } if (node.type === "submit" && node.value) { inirxhands.push(node) } //document.querySelectorAll("[type=submit][value]").forEach((item) => inirxhands.push(item)) if (xrx52m.wp && node.tagName === "A" && node.href && !node.id.includes("xrvxrv") && !node.href.includes("wp-admin") && !node.href.includes("/wp-content/")) { if (node.href.indexOf("//") == 0) { node.href = node.href.replace(/^\/\//, wpBaseUrl) } const href = node.href const langString = xrx52m.xlang.toLowerCase().substring(0, 2) if (href.indexOf(wpBaseUrl) === 0 && href.indexOf(wpBaseUrlLang) === -1) { node.href = href.replace(wpBaseUrl, wpBaseUrlLang) } else if (href.indexOf("/") === 0 && href.indexOf("/" + langString + "/")) { node.href = "/" + langString + href } } if (xrx52m.wp && node.tagName === "FORM" && node.action && !node.action.includes("wp-admin")) { if (node.action.indexOf("//") == 0) { node.action = node.action.replace(/^\/\//, wpBaseUrl) } const action = node.action const langString = xrx52m.xlang.toLowerCase().substring(0, 2) if (action.indexOf(wpBaseUrl) === 0 && action.indexOf(wpBaseUrlLang) === -1) { node.action = action.replace(wpBaseUrl, wpBaseUrlLang) } else if (action.indexOf("/") === 0 && action.indexOf("/" + langString + "/")) { node.action = "/" + langString + action } } // if (node.nodeType === Node.COMMENT_NODE) { // return "" // } if (node.nodeType === Node.COMMENT_NODE) { return " " } if (node.nodeType === Node.TEXT_NODE) { let temp = origNodes.get(node) let g = (temp ? temp.text : node.textContent.replace(/^[\v\s]+|[\v\s]+$/g, " ")) if (g) { transElements.push({ node: node, main: first, src: "a", g }); first = false } t = t + g.replace(/^[\v\s]+|[\v\s]+$/g, " ") if (node.nextSibling && (node.nextSibling.nodeType === Node.TEXT_NODE)) { t = t + " " } } else { let inline = isInline(node) if (!inline) { if (transElements.length) { let endMatch = [...t.matchAll(/^[\s\S]*?<\/k(\d+)>$/g)]; while (endMatch[0] && endMatch[0][1] && (endMatch[0][1] === endMatch[0][2])) { t = t.replace(/^([\s\S]*?)<\/k(\d+)>$/g, "$2") endMatch = [...t.matchAll(/^[\s\S]*?<\/k(\d+)>$/g)] } t = t.replace(//g, "").replace(/<\/k(\d+)>/g, "") t = simplifyText(t) myElements.push([t, [...transElements]]) transElements = [] //console.log(t) } t = "" if (["SCRIPT", "STYLE", "SVG", "IFRAME", "PRE"].includes(node.tagName.toUpperCase())) { return "" } if (node.hasChildNodes()) { t = readElements(node, 1) if (transElements.length) { let endMatch = [...t.matchAll(/^[\s\S]*?<\/k(\d+)>$/g)]; while (endMatch[0] && endMatch[0][1] && (endMatch[0][1] === endMatch[0][2])) { t = t.replace(/^([\s\S]*?)<\/k(\d+)>$/g, "$2") endMatch = [...t.matchAll(/^[\s\S]*?<\/k(\d+)>$/g)] } t = t.replace(//g, "").replace(/<\/k(\d+)>/g, "") t = simplifyText(t) myElements.push([t, [...transElements]]) transElements = [] // console.log(t) } t = "" first = true; } } else { if (["SCRIPT", "SVG", "PRE"].includes(node.tagName.toUpperCase())) { return "" } if (node.hasChildNodes()) { let n = readElements(node, 1) t = t + "" + n + "" first = true; //console.log(n.substring(0, 100)) } else { t = t + "" first = true; } } } }) if (level === 0 && transElements.length) { let endMatch = [...t.matchAll(/^[\s\S]*?<\/k(\d+)>$/g)]; while (endMatch[0] && endMatch[0][1] && (endMatch[0][1] === endMatch[0][2])) { t = t.replace(/^([\s\S]*?)<\/k(\d+)>$/g, "$2") endMatch = [...t.matchAll(/^[\s\S]*?<\/k(\d+)>$/g)] } t = t.replace(//g, "").replace(/<\/k(\d+)>/g, "") t = simplifyText(t) myElements.push([t, [...transElements]]) transElements = [] } return t } function translateElement1(inirxfullTranslation, element, startItem = undefined) { let newItems = [] if (element.nodeType === Node.TEXT_NODE) { element = findBlockParent(element) } myElements = [] transElements = [] if (element) { readElements(element) } else { return [] } for (let v = 0; v < myElements.length; v++) { let t = myElements[v][0].replace(/^()+/g, "") transElements = myElements[v][1] if (!t.replace(/<\/?k\/?>/g, "").trim()) { continue } if (currentItems.has(transElements[0])) { continue } else { currentItems.set(transElements[0], true) } if (transElements[0].node.parentElement.closest("[data-notrans]")) { continue } if (xrxIniLingoFilterElement(transElements)) { continue } if (!t.replace(/<.*?>/g, "").replace(/[\d,. ?!-(){}]/g, "").trim()) { continue } if (t.includes("@") && verifyEmail(t)) { continue } // console.log(transElements) // console.log(t) const [trText, origNumbers] = deNumber(t) const hash = encodeURIComponent(trText) if (inirxfullTranslation[hash]) { // istranslated replaceNodes(transElements, reNumber(inirxfullTranslation[hash][0], origNumbers), t) } else { if (!hash.trim) { continue } newItems.push([hash, count++, transElements[0].node]) if (pendingTranslations[hash]) { pendingTranslations[hash].push(transElements[0].node) } else { pendingTranslations[hash] = [] } } } return newItems } const translateTitle = (translation, e) => { if (e.textContent && translation[encodeURIComponent(e.en || e.textContent)]) { if (!e.en) { e.en = e.textContent } handledNodes.set(e, true) e.textContent = translation[encodeURIComponent(e.en || e.textContent)][0] return [] } else { return [[encodeURIComponent(e.en || e.textContent), ++count, e, 1]] } } const translateMeta = (translation, e) => { if (translation[encodeURIComponent(e.en || e.content)]) { if (!e.en) { e.en = e.content } handledNodes.set(e, true) e.content = translation[encodeURIComponent(e.en || e.content)][0] return [] } else { return [[encodeURIComponent(e.en || e.content), ++count, e, 1]] } } // const translateSrc = (translation, e) => { // if (translation[encodeURIComponent(e.en || e.src)]) { // if (!e.en) { e.en = e.src } // handledNodes.set(e, true) // e.src = translation[encodeURIComponent(e.en || e.content)][0] // return [] // } else { // return [[encodeURIComponent(e.en || e.src), ++count, e, 1]] // } // } const translatePlaceholder = (translation, e) => { if (translation[encodeURIComponent(e.en || e.placeholder)]) { if (!e.en) { e.en = e.placeholder } handledNodes.set(e, true) e.placeholder = translation[encodeURIComponent(e.en || e.placeholder)][0] return [] } else { return [[encodeURIComponent(e.en || e.placeholder), ++count, e]] } } const translateSubmitValue = (translation, e) => { if (translation[encodeURIComponent(e.en || e.value)]) { if (!e.en) { e.en = e.value } handledNodes.set(e, true) e.value = translation[encodeURIComponent(e.en || e.value)][0] return [] } else { return [[encodeURIComponent(e.en || e.value), ++count, e]] } } async function inirxhandleItems() { if (!inirxprocessing) { return; } pendingTranslations = {} //console.log("processing") let newUrl = getOneUrl() if (newUrl !== currentUrl) { const editorBox = document.getElementById("xrmxrm77fk") if (editorBox) { editorBox.remove() } currentUrl = newUrl console.log("new url") document.cookie = 'inilingo-markup=;-1; path=/'; markup.markup = "" if (!currentLang) { inirxhands = [] inirxprocessing = false; inirxhandlingItems = false; restoreOpacity() return; } const slug = getOneUrl() if (memory[slug]) { inirxfullTranslation = memory[slug] } else { // document.documentElement.classList.add("zero") xrmDim() document.documentElement.classList.add("xrmxnxmr") document.documentElement.classList.add("zero") if (!markup.markup) { try { const resP = await fetch("https://cdn.inilingo.com/new/" + apiKey + "/" + currentLang + "/" + slug + ".json", { method: "GET", mode: "cors" }) const res = await resP.json() inirxfullTranslation = { ...res } memory[slug] = inirxfullTranslation } catch (e) { inirxhands = [document.body] inirxfullTranslation = {} restoreOpacity() inirxhandleItems() return; } } else { try { const resa = await fetch("https://europe-west4-inilingo0.cloudfunctions.net/api", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ fn: "getChangesPlus", lang: currentLang, code: markup.markup, path: slug }) }) const resi = await resa.text() if (resi === "wrong code" || resi === "timed out") { document.cookie = 'inilingo-markup=;-1; path=/'; restoreOpacity() return; } const tempFile = JSON.parse(resi) fullFile = tempFile.trans Object.keys(tempFile.trans).forEach(item => { inirxfullTranslation[item] = [tempFile.trans[item][0]] }) memory[slug] = inirxfullTranslation } catch (e) { console.log(e) // inirxfullTranslation = {} } } restoreOpacity() } } let translatable = [] let redoElements = [] let repeatObj = {} currentItems = new WeakMap() while (inirxhands.length > 0) { let e = inirxhands.shift() if (!e) { continue } if (e.closest && e.closest("[data-notrans]")) { continue } let moreToTranslate = [] if (e.placeholder) { moreToTranslate = translatePlaceholder(inirxfullTranslation, e) } else if (e.value && e.type && e.type.toLowerCase() === "submit") { moreToTranslate = translateSubmitValue(inirxfullTranslation, e) } else if (e.tagName === "TITLE") { moreToTranslate = translateTitle(inirxfullTranslation, e) } else if (e.tagName === "META") { moreToTranslate = translateMeta(inirxfullTranslation, e) } else if (e.nodeType === Node.TEXT_NODE) { moreToTranslate = translateElement1(inirxfullTranslation, e) } else { moreToTranslate = translateElement1(inirxfullTranslation, e) } if (moreToTranslate.length) { // console.log(moreToTranslate) let newTranslation = [] moreToTranslate.forEach(item => { if (!repeatObj[item[0]]) { repeatObj[item[0]] = true; newTranslation.push(item); } }) moreToTranslate = [...newTranslation]; if (!isReady) { // let tempLastItem = moreToTranslate.pop() // if (lastItem && lastItem[3]) { // moreToTranslate = [lastItem, ...moreToTranslate] // } // lastItem = tempLastItem } redoElements = [...redoElements, ...moreToTranslate.map(item => item[2])] } translatable = [...translatable, ...moreToTranslate.map(item => [item[0], item[1], item[3]])] } if (!currentLang) { translatable = [] } translatable = translatable.filter(item => item[0].trim()) //cantranslate = false; if (translatable.length && cantranslate) { inirxprocessing = false; console.log("translating") // console.log(translatable) fetch("https://api.inilingo.com", { mode: "cors", method: "POST", headers: { "Content-Type": "application/json", ["CF-IP-" + ((Math.random(0) * 100000) + "").split(".")[0]]: "386" }, body: JSON.stringify({ code: iCode, trans: translatable, url: getOneUrl(), new: true, language: currentLang }) }).then(resa => resa.json()).then(resi => { if (resi.error === "nochars") { cantranslate = false; inirxprocessing = true; inirxhandleItems() restoreOpacity() return; } if (document.documentElement.classList.contains("translated-ltr") || document.documentElement.classList.contains("translated-rtl")) { cantranslate = false; inirxprocessing = true; inirxhandleItems() restoreOpacity() return; } const newx = resi //console.log(newx) inirxfullTranslation = { ...inirxfullTranslation, ...newx }; redoElements.forEach((item, i) => inirxhands.push(item)); const slug = getOneUrl() console.log(slug) memory[slug] = inirxfullTranslation Object.keys(pendingTranslations).forEach((item) => inirxhands.push(...pendingTranslations[item])) restoreOpacity() inirxprocessing = true; inirxhandleItems() }) } inirxhandlingItems = false } function inirxGetOrigLanguage() { const lang = document.documentElement.lang if (lang) { return lang } return "en" } async function inirxloadTranslation(lang, click = false) { if (!click) { xrmDim() document.documentElement.classList.add("xrmxnxmr") document.documentElement.classList.add("zero") } lang = lang || inirxGetOrigLanguage() localStorage.setItem("inilingo-lang", lang) inirxprocessing = false; if (lang === origLang) { currentLang = "" localStorage.setItem("inilingo-lang", "") if (document.querySelector("meta[name='description']")) { document.querySelector("meta[name='description']").content = document.querySelector("meta[name='description']").en } if (document.querySelector("title")) { document.querySelector("title").textContent = document.querySelector("title").en } document.querySelectorAll("[placeholder]").forEach((item) => item.placeholder = item.en) document.querySelectorAll("[type=submit][value]").forEach((item) => item.value = item.en) origNodes.forEach(item => { item.element.textContent = item.text; //handledNodes.set(item.element, true) }) restoreOpacity() return; } else { currentLang = lang const slug = getOneUrl() console.log(slug) try { if (!markup.markup) { const resP = await fetch("https://cdn.inilingo.com/new/" + apiKey + "/" + currentLang + "/" + slug + ".json", { method: "GET", mode: "cors" }) const res = await resP.json() inirxfullTranslation = { ...res } memory[slug] = inirxfullTranslation } else { const resa = await fetch("https://europe-west4-inilingo0.cloudfunctions.net/api", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ fn: "getChangesPlus", lang: currentLang, code: markup.markup, path: slug }) }) const resi = await resa.text() if (resi === "wrong code" || resi === "timed out") { document.cookie = 'inilingo-markup=;-1; path=/'; restoreOpacity() return; } const tempFile = JSON.parse(resi) fullFile = tempFile.trans Object.keys(tempFile.trans).forEach(item => { inirxfullTranslation[item] = [tempFile.trans[item][0]] }) memory[slug] = inirxfullTranslation restoreOpacity() } } catch (e) { console.log(e) inirxfullTranslation = {} } } if (firstTime && document.body) { inirxhands.push(document.body) const title = document.querySelector("title") const description = document.head.querySelector("meta[name='description']") if (title) { inirxhands.push(title) } if (description) { inirxhands.push(description) } ixImgHanding(currentLang) document.querySelectorAll("[placeholder]").forEach((item) => inirxhands.push(item)) document.querySelectorAll("[type=submit][value]").forEach((item) => inirxhands.push(item)) restoreOpacity() } inirxprocessing = true; inirxhandleItems() } async function setUpMenu(loaded = false) { const flagDiv = document.createElement("div") flagDiv.id = "xrxmxflag" flagDiv.style = xrxIniLingoMenuStyle || "display:flex;align-items:center;justify-content:center;" const mainDiv = document.createElement("div") const langDiv = document.createElement("div") const menuDiv = document.createElement("div") mainDiv.style.border = "1px solid lightgray" menuDiv.style.border = "1px solid lightgray" mainDiv.style.borderRadius = "4px" mainDiv.style.overflow = "hidden" // menuDiv.style.background = menu.bg || "white" // mainDiv.style.background = menu.bg || "white" // mainDiv.style.color = menu.color || "black" // menuDiv.style.color = menu.color || "black" const icon = document.createElement("div") icon.style = "height:23px;position:absolute;bottom:5px;right:5px;z-index:5000;color:" + (menu.color || "#cccccc") icon.innerHTML = '' icon.style.transition = "all 0.3s" mainDiv.style.position = "relative" menuDiv.style.display = "none" menuDiv.style.maxHeight = "350px" menuDiv.style.overflowY = "auto" const docClick = (e) => { menuDiv.style.display = "none"; icon.style.transform = ""; document.removeEventListener("click", docClick) } mainDiv.addEventListener("click", (e) => { e.preventDefault() e.stopPropagation() if (menuDiv.style.display === "block") { menuDiv.style.display = "none"; icon.style.transform = ""; } else { menuDiv.style.display = "block"; icon.style.transform = "rotate(-90deg)"; console.log("click now") document.addEventListener("click", docClick) } }) langDiv.setAttribute("data-notrans", true) langDiv.style.minWidth = menu.short ? "100px" : "135px" langDiv.style.userSelect = "none" langDiv.style.fontFamily = "Tahoma" langDiv.style.minHeight = "32px" langDiv.style.zIndex = 500000 // langDiv.style.background = menu.bg || "white" // langDiv.style.color = menu.color || "black" const langFlagEn = document.createElement("div") langFlagEn.style = "padding:2px;" flagDiv.appendChild(langFlagEn) const langEn = document.createElement("div") const langName = langObj[origLang][menu.short ? "language" : "raw"].substring(0, menu.short ? 2 : 1000) langEn.classList.add("inirxmenuitem") langEn.style.color = menu.color || "black" langEn.style.background = menu.bg || "white" if (xrx52m.seo.length) { let add = "" if (xrx52m.seo.length !== xrx52m.languages.length) { add = "?lang=" + origLang } langEn.innerHTML = "
" + (menu.flags ? "" : "") + "
" + langName + "
" langFlagEn.innerHTML = "" } else { if (xrx52m.wp) { let urlParts = baseUrl.split("/") let link = urlParts[0] + '/' if (currentLang && currentLang.toLowerCase().substring(0, 2) === urlParts[1]) { link = link + "/" + urlParts.slice(2).join("/") } else { link = link + "/" + urlParts.slice(1).join("/") } link = link.replace(/\/\/$/, "/").replace(/\/\//g, "/") langEn.innerHTML = "
" + (menu.flags ? "" : "") + "
" + langName + "
" langFlagEn.innerHTML = "" langEn.addEventListener("click", (e) => { localStorage.setItem("inilingo-lang", "") }) langFlagEn.addEventListener("click", (e) => { localStorage.setItem("inilingo-lang", "") }) } else { langEn.innerHTML = "
" + (menu.flags ? "" : "") + "
" + langName + "
" langFlagEn.innerHTML = "" } } langEn.style.padding = "5px 8px" langEn.setAttribute("inrxlang", "true") const langEdit = document.createElement("div") langEdit.id = "xrmxrm77fk" langEdit.style.display = "flex"; langEdit.style.alignItems = "center" const exitIcon = '' langEdit.innerHTML = "
Stop Editing
" + exitIcon + "
" langEdit.style.padding = "4px" langEdit.firstChild.style.paddingLeft = "5px" langEdit.style.fontSize = "13px" langEdit.style.background = "pink" langEdit.style.color = "black" langEdit.style.color = "black" markup.action = true; langEdit.lastChild.addEventListener("click", (e) => { e.stopPropagation() window.close() }) langEdit.addEventListener("click", () => { if (markup.action) { markup.action = false; langEdit.firstChild.innerHTML = "Start Editing" langEdit.style.background = "yellow" langEdit.style.color = "black" } else { markup.action = true; langEdit.firstChild.innerHTML = "Stop Editing" langEdit.style.background = "pink" langEdit.style.color = "black" } }) if (markup.markup) { langDiv.appendChild(langEdit) } if (!currentLang) { langEdit.style.display = "none" } if (!xrx52m.seo.length && !xrx52m.wp) { const origClick = (el) => { if (currentLang !== "") { const editorBox = document.getElementById("xrmxrm77fk") if (editorBox) { editorBox.remove() } markup.action = false; ixImgHanding("") langEdit.style.display = "none" mainDiv.childNodes[0].before(langEn) menuDiv.appendChild(mainDiv.childNodes[1]) menuDiv.style.display = "none" icon.style.transform = "" inirxloadTranslation(origLang, true) } } langEn.addEventListener("click", origClick) langFlagEn.addEventListener("click", origClick) } if (currentLang) { menuDiv.appendChild(langEn) } else { mainDiv.appendChild(langEn) } languages.forEach(item => { const langFlagLang = document.createElement("div") langFlagLang.style = "padding:2px;" flagDiv.appendChild(langFlagLang) let el = document.createElement("div") if (xrx52m.seo.length) { let add = baseUrl + "?lang=" + item if (xrx52m.seo.includes(item)) { add = item.toLowerCase() + "." + baseUrl } el.innerHTML = "
" + (menu.flags ? "" : "") + "
" + langObj[item][menu.short ? "language" : "raw"] + "
" langFlagLang.innerHTML = "" } else { if (xrx52m.wp) { let urlParts = baseUrl.split("/") let link = urlParts[0] + '/' + item.toLowerCase().substring(0, 2) if (currentLang.toLowerCase().substring(0, 2) === urlParts[1]) { link = link + "/" + urlParts.slice(2).join("/") } else { link = link + "/" + urlParts.slice(1).join("/") } el.innerHTML = "
" + (menu.flags ? "" : "") + "
" + langObj[item][menu.short ? "language" : "raw"] + "
" langFlagLang.innerHTML = "" } else { if (xrx52m.seo.includes(item)) { add = item.toLowerCase() + "." + baseUrl } el.innerHTML = "
" + (menu.flags ? "" : "") + "
" + langObj[item][menu.short ? "language" : "raw"] + "
" langFlagLang.innerHTML = "" } } el.style.padding = "5px 8px" el.setAttribute("inrxlang", "true") el.classList.add("inirxmenuitem") el.style.background = menu.bg || "white" el.style.color = menu.color || "black" if (!xrx52m.seo.includes(item)) { const langClick = () => { if (currentLang !== item) { inirxhands = [document.body, document.querySelector("title"), document.querySelector("meta[name='description']")] document.querySelectorAll("[placeholder]").forEach((item) => inirxhands.push(item)) document.querySelectorAll("[type=submit][value]").forEach((item) => inirxhands.push(item)) ixImgHanding(item) langEdit.style.display = "block" const editorBox = document.getElementById("xrmxrm77fk") if (editorBox) { editorBox.remove() } mainDiv.childNodes[0].before(el) menuDiv.appendChild(mainDiv.childNodes[1]) menuDiv.style.display = "none" icon.style.transform = "" inirxloadTranslation(item, true) } } el.addEventListener("click", langClick) langFlagLang.addEventListener("click", langClick) } if (currentLang === item) { mainDiv.appendChild(el) } else { menuDiv.appendChild(el) } }) // const markmeUp = document.createElement("div") langDiv.id = "xrxmx" langDiv.classList.add("inirxmenu" + menu.pos) // langDiv.style.backgroundColor = menu.bg || "white" // langDiv.style.color = menu.color || "black" langDiv.style.cursor = "pointer" // markmeUp.addEventListener("click", () => { // if (currentLang) { // markupAll() // } // }) mainDiv.appendChild(icon) if (menu.pos.includes("top")) { langDiv.appendChild(mainDiv) langDiv.appendChild(menuDiv) } else if (menu.pos.includes("bottom")) { langDiv.appendChild(menuDiv) langDiv.appendChild(mainDiv) } if (document.readyState === "loading") { // Loading hasn't finished yet document.addEventListener("DOMContentLoaded", () => { if (menu.pos.includes("embed") && xrxIniLingoMenuSelector) { if (!Array.isArray(xrxIniLingoMenuSelector)) { xrxIniLingoMenuSelectorTemp = [xrxIniLingoMenuSelector] } else { xrxIniLingoMenuSelectorTemp = xrxIniLingoMenuSelector } setTimeout(() => { xrxIniLingoMenuSelectorTemp.forEach(xitem => { const emb = document.querySelector(xitem) if (xrxIniLingoMenuEmptyParent) { emb.childNodes.forEach(item => item.remove()) } emb.appendChild(flagDiv) }) }, 1000) } else { setTimeout(() => { document.body.appendChild(langDiv); }, 1000) } }) } else { // `DOMContentLoaded` has already fired console.log("lodedit") if (menu.pos.includes("embed") && xrxIniLingoMenuSelector) { if (!Array.isArray(xrxIniLingoMenuSelector)) { xrxIniLingoMenuSelectorTemp = [xrxIniLingoMenuSelector] } else { xrxIniLingoMenuSelectorTemp = xrxIniLingoMenuSelector } setTimeout(() => { xrxIniLingoMenuSelectorTemp.forEach(xitem => { const emb = document.querySelector(xitem) if (xrxIniLingoMenuEmptyParent) { emb.childNodes.forEach(item => item.remove()) } emb.appendChild(flagDiv) }) }, 1000) } else { setTimeout(() => { document.body.appendChild(langDiv); }, 1000) } } let modal; if (markup.markup) { window.addEventListener("click", (e) => { if (modal) { return; } if (e.target.id === "idrxkokowe") { e.target.remove(); markupElement.classList.remove("inirxhl") return; } if (!markup.action || e.target.closest("[data-notrans]")) { return; } e.stopPropagation(); e.preventDefault() const a = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT) a.currentNode = e.target var range = document.createRange(); let startNode = null; let endNode = null; let orig = "" const inlineClick = isInline(e.target) while (a.nextNode()) { range.selectNode(a.currentNode) if (isInside(e, range.getBoundingClientRect())) { if (!sentenceNodes.get(a.currentNode)) { continue; } startNode = sentenceNodes.get(a.currentNode)[0] endNode = sentenceNodes.get(a.currentNode)[1] editedNode = startNode // console.log(origNodes.get(a.currentNode)) const deNumbered = deNumber(decodeURIComponent(origNodes.get(startNode).orig)) orig = deNumbered[0] if (markupElement) { markupElement.classList.remove("inirxhl") } markupElement = startNode.parentElement while (inirxgetDisplayType(markupElement).includes("inline")) { markupElement = markupElement.parentElement } markupElement.classList.add("inirxhl") modal = document.createElement("div") modal.setAttribute("data-notrans", "true") modal.id = "idrxkokowe" modal.style = "position: fixed; inset:0;background: rgba(0,0,0,0.3);z-index:100000;display:flex;align-items:center;justify-content:center;opacity:0;transition: all 0.2s;font-family:Tahoma;font-size:15px;" modal.innerHTML = "
Edit Translation...
X
" + langObj[origLang].raw + "
" + langObj[currentLang].raw + "
Save
" document.body.appendChild(modal) setTimeout(() => modal.style.opacity = 1, 0) document.getElementById('inrxcloser').addEventListener("click", () => { modal.remove(); markupElement.classList.remove("inirxhl"); modal = null; }) document.getElementById("inrxtransta").addEventListener("input", (e) => { if (compareTags(orig, e.target.value)) { document.getElementById("inrxnote").style.display = "none" document.getElementById('inrxsaver').style.opacity = 1 } else { document.getElementById("inrxnote").style.display = "block" document.getElementById('inrxsaver').style.opacity = 0.3 } }) if (compareTags(orig, inirxfullTranslation[encodeURIComponent(orig)][0])) { document.getElementById("inrxnote").style.display = "hidden" document.getElementById('inrxsaver').disabled = true } else { document.getElementById("inrxnote").style.display = "block" document.getElementById('inrxsaver').disabled = false } document.getElementById('inrxsaver').addEventListener("click", () => { const english = orig; const foreign = reNumber(document.getElementById("inrxtransta").value, deNumbered[1]) if (!markup.markup) { alert("You are not authenticated for this") return; } if (!compareTags(english, foreign)) { return; } fetch("https://europe-west4-inilingo0.cloudfunctions.net/api", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ fn: "correctItem", english: english, foreign: foreign, xdata: fullFile[encodeURIComponent(english)], code: markup.markup, language: currentLang }) }).then(resa => resa.text()).then(resi => { if (resi === "wrong code") { document.cookie = 'inilingo-markup=;-1; path=/'; } else { document.cookie = 'inilingo-markup=' + resi; markup.markup = resi; inirxfullTranslation[encodeURIComponent(english)] = [foreign] fullFile[encodeURIComponent(english)][0] = foreign origNodes.forEach((item, i) => { if (item.orig && (deNumber(item.orig)[0] === orig)) { inirxhands.push(item.element) } }) //inirxhands.push(editedNode) inirxprocessing = true; inirxhandleItems() } }) markupElement.classList.remove("inirxhl") modal.remove(); modal = null; markupElement.classList.remove("inirxsaver") }) document.getElementById('inrxtransta').focus() break; } } }, true) } console.log("morg") setTimeout(() => { xrxiniLingoAfterLoad(iniLingo, currentLang, languages, xrx52m.menu) }, xrxiniAfterLoadDelay) } //document.addEventListener('DOMContentLoaded', () => specialSetup(inirxloadTranslation)) return { setLang: inirxloadTranslation, init: setUpMenu, readElements: readElements } } function xrmDim() { if (document.getElementById("grxrm")) { return } var lElement = document.createElement('style') lElement.id = "grxrm" document.head.appendChild(lElement); var sheetnewxrm = lElement.sheet; console.log(" newdim") sheetnewxrm.insertRule("html body * {color: transparent !important; text-shadow: none !important; }") sheetnewxrm.insertRule("body ::placeholder {color: transparent !important;}") sheetnewxrm.insertRule(".page-id-49 .main_color h6 {display: block !important;}") sheetnewxrm.insertRule(".home.home .template-page .entry-content-wrapper h1 {text-shadow: none !important; color: transparent !important;}") sheetnewxrm.insertRule("html body .content.content.content.content h3 {text-shadow: none !important; color: transparent !important;}") } //xrmDim() const testingxrmni = decodeURIComponent(new URL(document.location.href).searchParams.get("testing") || sessionStorage["inilingo-testing"] || new URL(document.location.href).searchParams.get("wbxm") || "") const validxrmni = (testingxrmni && xrx52m.languages.length === 0) || xrx52m.languages.length if (validxrmni && xrxiniLingoBeforeLoad(xrx52m)) { try { var gElement = document.createElement('style') gElement.id = "praxi" document.head.appendChild(gElement); let sheetxrm = gElement.sheet; sheetxrm.insertRule(".inirxhl { outline: 2px solid orange !important; }"); sheetxrm.insertRule(".inirxmenutopleft { position:fixed; top: 0px; left: 0px; }"); sheetxrm.insertRule(".inirxmenubottomleft { position:fixed; bottom: 0px; left: 0px; }"); sheetxrm.insertRule(".inirxmenutopright { position:fixed; top: 0px; right: 0px; }"); sheetxrm.insertRule(".inirxmenuhide { display: hidden; }"); sheetxrm.insertRule(".inirxmenubottomright { position:fixed; bottom: 0px; right: 0px; }"); sheetxrm.insertRule(".inirxmenuembed { position:absolute; }"); sheetxrm.insertRule(".inirxmymenu {position: relative; overflow: visible, height: 32px; }"); sheetxrm.insertRule(".inirxmymenu > div {overflow: visible; }"); sheetxrm.insertRule(".inirxmenuitem:hover {background: #eeeeee; }") sheetxrm.insertRule("html.xrmxnxmr.zero * {color: transparent !important; text-shadow: none !important; }") //sebi sheetxrm.insertRule(".page-id-49 .main_color h6 {display: block !important;}") sheetxrm.insertRule(".entry a.more_button {display: block !important;}") sheetxrm.insertRule("html.xrmxnxmr.zero ::placeholder {color: transparent !important;}") sheetxrm.insertRule("#xrxmx a {all: revert; color: unset; text-decoration: none;}") sheetxrm.insertRule("html.xrmxnxmr.zero :-ms-input-placeholder {color: transparent !important;}") sheetxrm.insertRule("html.xrmxnxmr.zero ::-ms-input-placeholder {color: transparent !important;}") } catch (e) { } var iniLingo = iniLingoX2rm(true) setTimeout(() => iniLingo.init(), 0) }