Sprachumschalter: Globus durch farbige "Länder-Kugel" ersetzt

Kleine Kugel im Sprachschalter nimmt jetzt die Landesfarben der aktuell
gewählten Sprache als Verlauf an (DE: schwarz-rot-gold, CH: rot/weiß,
EN: blau-weiß-rot, FR: blau-weiß-rot, PT: grün-rot) - mit Glanzlicht/
Schatten für einen echten Kugel-Look. Selbe Kugel auch vor jedem Eintrag
im Dropdown, damit die Sprachen auf einen Blick unterscheidbar sind.
This commit is contained in:
2026-08-02 00:44:26 +02:00
parent 2affcccb1d
commit 276a5cf97b
2 changed files with 30 additions and 9 deletions
+10 -7
View File
@@ -34,11 +34,11 @@
Globus-Symbol im Knopf plus volle Sprachnamen im Dropdown ist
eindeutig und funktioniert auf jedem Betriebssystem gleich. */
const SPRACHEN = [
{ code: "de", kurz: "DE", name: "Deutsch" },
{ code: "de-CH", kurz: "CH", name: "Deutsch (Schweiz)" },
{ code: "en", kurz: "EN", name: "English" },
{ code: "fr", kurz: "FR", name: "Français" },
{ code: "pt", kurz: "PT", name: "Português" },
{ code: "de", kurz: "DE", name: "Deutsch", farben: "linear-gradient(160deg, #1a1a1a 0%, #dd0000 50%, #ffce00 100%)" },
{ code: "de-CH", kurz: "CH", name: "Deutsch (Schweiz)", farben: "linear-gradient(160deg, #d52b1e 0%, #d52b1e 60%, #ffffff 100%)" },
{ code: "en", kurz: "EN", name: "English", farben: "linear-gradient(160deg, #00247d 0%, #ffffff 50%, #cf142b 100%)" },
{ code: "fr", kurz: "FR", name: "Français", farben: "linear-gradient(160deg, #0055a4 0%, #ffffff 50%, #ef4135 100%)" },
{ code: "pt", kurz: "PT", name: "Português", farben: "linear-gradient(160deg, #046a38 0%, #046a38 45%, #da291c 100%)" },
];
const SPRACHE_SCHLUESSEL = "dogi-sprache";
@@ -252,11 +252,14 @@
const aktiv = SPRACHEN.find((s) => s.code === aktuell) || SPRACHEN[0];
return `
<div class="nav-group sprach-schalter">
<button type="button" aria-expanded="false" aria-label="${t("sprache_aria")}">🌐 ${aktiv.kurz} <span aria-hidden="true">▾</span></button>
<button type="button" aria-expanded="false" aria-label="${t("sprache_aria")}">
<span class="sprach-kugel" style="background:${aktiv.farben};" aria-hidden="true"></span>
${aktiv.kurz} <span aria-hidden="true">▾</span>
</button>
<div class="nav-dropdown">
${SPRACHEN.map(
(s) =>
`<a href="#" data-sprache="${s.code}"${s.code === aktuell ? ' class="active"' : ""}>${s.name}</a>`
`<a href="#" data-sprache="${s.code}"${s.code === aktuell ? ' class="active"' : ""}><span class="sprach-kugel" style="background:${s.farben};" aria-hidden="true"></span>${s.name}</a>`
).join("")}
</div>
</div>`;