Rawconfig Parser verwendet, damit die Sektion [trans] keine Probleme mehr bereitet, weil Zuordnungen fehlen.

This commit is contained in:
2026-02-17 14:38:13 +01:00
parent 554f1f3c1f
commit a3a37003b6
+21 -26
View File
@@ -277,8 +277,9 @@ def load_translation_config(translation_lang: str, translation_dir: Path) -> tup
# Prüfe auf führende Leerzeichen vor dem Parsen (würden Zeilen zusammenziehen) # Prüfe auf führende Leerzeichen vor dem Parsen (würden Zeilen zusammenziehen)
_check_leading_spaces(config_file, translation_lang) _check_leading_spaces(config_file, translation_lang)
# RawConfigParser mit case-sensitive Keys # RawConfigParser mit case-sensitive Keys und Unterstützung für Einträge ohne Wert
config = RawConfigParser() # (allow_no_value=True damit der [transfer]-Abschnitt mit einzelnen Begriffen ohne '=' gelesen werden kann)
config = RawConfigParser(allow_no_value=True)
# Überschreibe optionxform um Groß-/Kleinschreibung zu erhalten # Überschreibe optionxform um Groß-/Kleinschreibung zu erhalten
config.optionxform = str config.optionxform = str
try: try:
@@ -292,37 +293,31 @@ def load_translation_config(translation_lang: str, translation_dir: Path) -> tup
bigramme = {} bigramme = {}
single = {} single = {}
# Lade Multi (4+ Wörter) def _load_section(section_name: str) -> dict[str, str]:
if config.has_section('multi'): """Lädt eine Übersetzungssektion und warnt bei Einträgen ohne '=' (value=None)."""
for key in config['multi']: result = {}
original = key if not config.has_section(section_name):
translation = config['multi'][key] return result
for key in config[section_name]:
translation = config[section_name][key]
if translation is None:
print(f" WARNUNG [{translation_lang}] [{section_name}]: Eintrag ohne '=' ignoriert: '{key}'")
continue
if translation and not translation.startswith('#'): if translation and not translation.startswith('#'):
multi[original] = translation result[key] = translation
return result
# Lade Multi (4+ Wörter)
multi = _load_section('multi')
# Lade Trigramme # Lade Trigramme
if config.has_section('trigramme'): trigramme = _load_section('trigramme')
for key in config['trigramme']:
original = key
translation = config['trigramme'][key]
if translation and not translation.startswith('#'):
trigramme[original] = translation
# Lade Bigramme # Lade Bigramme
if config.has_section('bigramme'): bigramme = _load_section('bigramme')
for key in config['bigramme']:
original = key
translation = config['bigramme'][key]
if translation and not translation.startswith('#'):
bigramme[original] = translation
# Lade Single # Lade Single
if config.has_section('single'): single = _load_section('single')
for key in config['single']:
original = key
translation = config['single'][key]
if translation and not translation.startswith('#'):
single[original] = translation
# Prüfe Selbstübersetzungen in jedem Block und entferne sie mit Warnung # Prüfe Selbstübersetzungen in jedem Block und entferne sie mit Warnung
multi = _filter_self_translations('multi', multi) multi = _filter_self_translations('multi', multi)