Skip to content

Instantly share code, notes, and snippets.

@oberhamsi
Created September 19, 2025 11:42
Show Gist options
  • Save oberhamsi/5f989c16d72f505fedca329921e87c28 to your computer and use it in GitHub Desktop.
Save oberhamsi/5f989c16d72f505fedca329921e87c28 to your computer and use it in GitHub Desktop.

getLocalizedName - Korrekte Entscheidungsreihenfolge

Parameter: name, name_de, name_int, name_en

Entscheidungsmatrix

Reihenfolge Bedingung Logik
1 Nur name Transliteriere
2 name + name_en (kein de, int) Latin: name > sauberes name_en > name
3 name + name_de (kein en, int) Latin-name enthält name_dename
name enthält "/" → name (Mehrsprachig)
Nicht-Latin/Greek + sauberes name_dename_de
Kyrillisch → Fallback: name_int > name_en > transliterate
4 name + name_int (kein de, en) Latin: name > sauberes name_int
5 name_int leer (de+en da) Latin-name: name > sauberes name_en > name
Nicht-Latin: störendes name_enname_de, sonst name_en
6 name_de leer (int+en da) name_int vs name_en Logik
7 name_de vorhanden Deutsche Namen bevorzugt
8 Nur name_de, kein name Return name_de
9 Finale Fallbacks Nicht-Latin + Nicht-Kyrillisch → name_de > name_int > name_en
Kyrillisch → name_int > name_en > transliterate
Nicht-Latin/Greek → name_de
Sonst → name_de(name)
Default → transliterate

Kernprinzipien

  1. Deutsche Namen (name_de) haben höchste Priorität
  2. Lateinische Schrift vor Transliteration
  3. Saubere Namen (ohne Störzeichen) bevorzugt
  4. Mehrsprachige Namen mit / bleiben erhalten (Bleiburg/Pliberk-Regel)
  5. Script-intelligente Fallbacks je nach Schriftsystem

Besondere Regeln

  • Fall 3: "Bleiburg/Pliberk-Regel" für zweisprachige Ortsnamen
  • Fall 9: Edge cases und letzte Rettungsversuche nach Schriftsystem
  • Kyrillische Namen: Spezielle Behandlung mit name_int als Priorität
  • Störende Zeichen: Namen mit ,, ;, - werden als problematisch eingestuft
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment