الرئيسية
البحث
أضف إعلان
الإعدادات
تسجيل دخول
إنشاء حساب
العربية
العربية
English
(() => { const stateKey = "__syriacarsDesktopLanguageMenu"; const existing = window[stateKey]; if (existing && typeof existing.refresh === "function") { existing.refresh(); return; } const translateElement = (element, language) => { if (!(element instanceof HTMLElement)) return; if (element.closest('[data-translation-ready="false"]')) 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 closeAll = () => { document.querySelectorAll("[data-desktop-language-menu]").forEach((root) => { const trigger = root.querySelector('[aria-haspopup="listbox"]'); const menu = root.querySelector('[role="listbox"]'); if (trigger instanceof HTMLButtonElement) trigger.setAttribute("aria-expanded", "false"); if (menu instanceof HTMLElement) menu.hidden = true; }); }; const syncMenus = (language) => { document.querySelectorAll("[data-desktop-language-menu]").forEach((root) => { if (root.closest('[data-translation-ready="false"]')) return; const label = root.querySelector("[data-language-label]"); const menu = root.querySelector('[role="listbox"]'); if (label instanceof HTMLElement) label.textContent = language === "en" ? "English" : "العربية"; if (menu instanceof HTMLElement) 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 applyLanguage = (language) => { if (location.pathname.startsWith("/cars-for-sale/")) language = "ar"; document.documentElement.dataset.language = language; document.documentElement.lang = language; document.documentElement.dir = language === "en" ? "ltr" : "rtl"; // React pages have one translation owner. Keep this fallback for older static pages. if (!document.querySelector("[data-react-account-controls]")) { document.querySelectorAll("[data-en], [data-placeholder-en], [data-aria-en], [data-title-en]").forEach((element) => translateElement(element, language)); } syncMenus(language); }; const readLanguage = () => { if (location.pathname.startsWith("/cars-for-sale/")) return "ar"; let language = document.documentElement.dataset.language === "en" ? "en" : "ar"; try { const stored = JSON.parse(localStorage.getItem("syriacars.language") || '"ar"'); if (stored === "en") language = "en"; if (stored === "ar") language = "ar"; } catch {} return language; }; const refresh = () => applyLanguage(readLanguage()); window[stateKey] = { refresh }; document.addEventListener("click", (event) => { if (!(event.target instanceof Element)) return; const option = event.target.closest("[data-language-option]"); if (option instanceof HTMLButtonElement) { const root = option.closest("[data-desktop-language-menu]"); if (!root) return; if (location.pathname.startsWith("/cars-for-sale/")) { applyLanguage("ar"); closeAll(); return; } const language = option.dataset.languageOption === "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); closeAll(); window.dispatchEvent(new CustomEvent("syriacars:language-change", { detail: { language } })); return; } const trigger = event.target.closest('[data-desktop-language-menu] [aria-haspopup="listbox"]'); if (!(trigger instanceof HTMLButtonElement)) return; const root = trigger.closest("[data-desktop-language-menu]"); const menu = root?.querySelector('[role="listbox"]'); if (!(menu instanceof HTMLElement)) return; const opening = menu.hidden; closeAll(); menu.hidden = !opening; trigger.setAttribute("aria-expanded", String(opening)); }); document.addEventListener("pointerdown", (event) => { if (!(event.target instanceof Element) || !event.target.closest("[data-desktop-language-menu]")) closeAll(); }); document.addEventListener("keydown", (event) => { if (event.key === "Escape") closeAll(); }); window.addEventListener("syriacars:language-change", refresh); window.addEventListener("syriacars:translation-ready", refresh); if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", refresh, { once: true }); } else { refresh(); } })();
تسجيل الدخول
إنشاء حساب
ابدأ الآن
أنشئ حساباً أو سجّل الدخول لاستكشاف التطبيق
البريد الإلكتروني أو اسم المستخدم
كلمة المرور
نسيت كلمة المرور؟
ليس لديك حساب؟
إنشاء حساب
جارٍ التحقق من الجلسة...
الرئيسية
البحث
أضف إعلان
الإعدادات