الرئيسية
البحث
أضف إعلان
الإعدادات
العربية
العربية
English
(() => { const root = document.querySelector("[data-desktop-language-menu]"); if (!(root instanceof HTMLElement)) return; const trigger = root.querySelector('[aria-haspopup="listbox"]'); const label = root.querySelector("[data-language-label]"); const menu = root.querySelector('[role="listbox"]'); if (!(trigger instanceof HTMLButtonElement) || !(label instanceof HTMLElement) || !(menu instanceof HTMLElement)) return; const titleArabic = document.title; const translateElement = (element, language) => { if (!(element instanceof HTMLElement)) return; if (element.dataset.en !== undefined) { if (element.dataset.ar === undefined) element.dataset.ar = element.textContent || ""; element.textContent = language === "en" ? element.dataset.en : element.dataset.ar; } if (element.dataset.placeholderEn !== undefined && element instanceof HTMLInputElement) { if (element.dataset.placeholderAr === undefined) element.dataset.placeholderAr = element.placeholder; element.placeholder = language === "en" ? element.dataset.placeholderEn : element.dataset.placeholderAr; } if (element.dataset.ariaEn !== undefined) { if (element.dataset.ariaAr === undefined) element.dataset.ariaAr = element.getAttribute("aria-label") || ""; element.setAttribute("aria-label", language === "en" ? element.dataset.ariaEn : element.dataset.ariaAr); } if (element.dataset.titleEn !== undefined) { if (element.dataset.titleAr === undefined) element.dataset.titleAr = element.getAttribute("title") || ""; element.setAttribute("title", language === "en" ? element.dataset.titleEn : element.dataset.titleAr); } }; const applyLanguage = (language) => { document.documentElement.dataset.language = language; document.documentElement.lang = language; document.documentElement.dir = language === "en" ? "ltr" : "rtl"; document.querySelectorAll("[data-en], [data-placeholder-en], [data-aria-en], [data-title-en]").forEach((element) => translateElement(element, language)); if (language === "en") { const route = location.pathname.split("/").filter(Boolean)[0] || "home3"; const titles = { home3: "Cars for sale | SyriaCars", inventory: "Search cars | SyriaCars", inventory3: "Search cars | SyriaCars", cars: "Cars for sale | SyriaCars", cars3: "Cars for sale | SyriaCars", "add-car3": "Add your car | SyriaCars" }; document.title = titles[route] || document.title; } else { document.title = titleArabic; } label.textContent = language === "en" ? "English" : "العربية"; menu.setAttribute("aria-label", language === "en" ? "Choose language" : "اختر اللغة"); root.querySelectorAll("[data-language-option]").forEach((option) => { if (!(option instanceof HTMLButtonElement)) return; const selected = option.dataset.languageOption === language; option.setAttribute("aria-selected", String(selected)); const check = option.querySelector("[data-language-check]"); if (check instanceof SVGElement) check.style.display = selected ? "" : "none"; }); }; const close = () => { menu.hidden = true; trigger.setAttribute("aria-expanded", "false"); }; trigger.addEventListener("click", () => { const opening = menu.hidden; menu.hidden = !opening; trigger.setAttribute("aria-expanded", String(opening)); }); root.querySelectorAll("[data-language-option]").forEach((option) => { option.addEventListener("click", () => { const language = option.getAttribute("data-language-option") === "en" ? "en" : "ar"; try { localStorage.setItem("syriacars.language", JSON.stringify(language)); localStorage.removeItem("flutter.languageMode"); } catch {} const url = new URL(location.href); if (language === "en") url.searchParams.set("lang", "en"); else url.searchParams.delete("lang"); history.replaceState(history.state, "", url); applyLanguage(language); close(); window.dispatchEvent(new CustomEvent("syriacars:language-change", { detail: { language } })); }); }); document.addEventListener("pointerdown", (event) => { if (!(event.target instanceof Node) || !root.contains(event.target)) close(); }); document.addEventListener("keydown", (event) => { if (event.key === "Escape") close(); }); const applyInitialLanguage = () => { let language = document.documentElement.dataset.language === "en" ? "en" : "ar"; try { if (JSON.parse(localStorage.getItem("syriacars.language") || '"ar"') === "en") language = "en"; } catch {} applyLanguage(language); }; if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", applyInitialLanguage, { once: true }); } else { applyInitialLanguage(); } })();
الإعدادات
جارٍ تحميل حسابك...
الرئيسية
البحث
أضف إعلان
الإعدادات