الرئيسية
البحث
أضف إعلان
الإعدادات
العربية
العربية
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.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) => { 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) => { 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)); syncMenus(language); }; const readLanguage = () => { 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; 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); if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", refresh, { once: true }); } else { refresh(); } })();
Nour Sh
سيارات البائع
2
مرسيدس بينز - Mercedes benz
S 500
$9,800
2000
بنزين
5000 سي سي
224,000 كم
أوتوماتيك
دمشق
بيجو - Peugeot
206
$4,800
2006
بنزين
1400 سي سي
295,000 كم
6 manual
دمشق
الرئيسية
البحث
أضف إعلان
الإعدادات