From c95e01211ed2a893ff7b502d51ee05e9b37cc333 Mon Sep 17 00:00:00 2001 From: rajchales-monito Date: Thu, 30 Jul 2026 09:42:39 +0200 Subject: [PATCH] Add flags to widget language select --- public/admin.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/public/admin.js b/public/admin.js index 5fe9818..93e54f7 100644 --- a/public/admin.js +++ b/public/admin.js @@ -460,13 +460,29 @@ function renderSite() { function renderWidgetLanguageOptions(form, settings) { const language = settings.widgetLanguage || {}; const options = WIDGET_LANGUAGES - .map(([code, label]) => ``) + .map(([code, label]) => ``) .join(""); form.defaultLanguage.innerHTML = options; form.widgetLanguageMode.value = language.mode === "fixed" ? "default" : language.mode || "auto"; form.defaultLanguage.value = language.defaultLanguage || "cs"; } +function languageFlag(language) { + const countries = { + cs: "CZ", sk: "SK", en: "GB", de: "DE", pl: "PL", hu: "HU", ro: "RO", bg: "BG", hr: "HR", sl: "SI", + it: "IT", fr: "FR", es: "ES", pt: "PT", nl: "NL", da: "DK", sv: "SE", fi: "FI", no: "NO", et: "EE", + lv: "LV", lt: "LT", el: "GR", uk: "UA", ru: "RU", tr: "TR", sr: "RS", bs: "BA", sq: "AL", mk: "MK", + mt: "MT", ga: "IE", is: "IS", be: "BY", ca: "ES" + }; + return flagEmoji(countries[language] || language); +} + +function flagEmoji(countryCode) { + const code = String(countryCode || "").toUpperCase(); + if (!/^[A-Z]{2}$/.test(code)) return ""; + return [...code].map((letter) => String.fromCodePoint(127397 + letter.charCodeAt(0))).join(""); +} + function renderWidgetCopyFields(language) { const form = $("#settingsForm"); const settings = state.site?.settings || {};