Rawconfig Parser verwendet, damit die Sektion [trans] keine Probleme mehr bereitet, weil Zuordnungen fehlen.
This commit is contained in:
+21
-26
@@ -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)
|
||||
_check_leading_spaces(config_file, translation_lang)
|
||||
|
||||
# RawConfigParser mit case-sensitive Keys
|
||||
config = RawConfigParser()
|
||||
# RawConfigParser mit case-sensitive Keys und Unterstützung für Einträge ohne Wert
|
||||
# (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
|
||||
config.optionxform = str
|
||||
try:
|
||||
@@ -292,37 +293,31 @@ def load_translation_config(translation_lang: str, translation_dir: Path) -> tup
|
||||
bigramme = {}
|
||||
single = {}
|
||||
|
||||
# Lade Multi (4+ Wörter)
|
||||
if config.has_section('multi'):
|
||||
for key in config['multi']:
|
||||
original = key
|
||||
translation = config['multi'][key]
|
||||
def _load_section(section_name: str) -> dict[str, str]:
|
||||
"""Lädt eine Übersetzungssektion und warnt bei Einträgen ohne '=' (value=None)."""
|
||||
result = {}
|
||||
if not config.has_section(section_name):
|
||||
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('#'):
|
||||
multi[original] = translation
|
||||
result[key] = translation
|
||||
return result
|
||||
|
||||
# Lade Multi (4+ Wörter)
|
||||
multi = _load_section('multi')
|
||||
|
||||
# Lade Trigramme
|
||||
if config.has_section('trigramme'):
|
||||
for key in config['trigramme']:
|
||||
original = key
|
||||
translation = config['trigramme'][key]
|
||||
if translation and not translation.startswith('#'):
|
||||
trigramme[original] = translation
|
||||
trigramme = _load_section('trigramme')
|
||||
|
||||
# Lade Bigramme
|
||||
if config.has_section('bigramme'):
|
||||
for key in config['bigramme']:
|
||||
original = key
|
||||
translation = config['bigramme'][key]
|
||||
if translation and not translation.startswith('#'):
|
||||
bigramme[original] = translation
|
||||
bigramme = _load_section('bigramme')
|
||||
|
||||
# Lade Single
|
||||
if config.has_section('single'):
|
||||
for key in config['single']:
|
||||
original = key
|
||||
translation = config['single'][key]
|
||||
if translation and not translation.startswith('#'):
|
||||
single[original] = translation
|
||||
single = _load_section('single')
|
||||
|
||||
# Prüfe Selbstübersetzungen in jedem Block und entferne sie mit Warnung
|
||||
multi = _filter_self_translations('multi', multi)
|
||||
|
||||
Reference in New Issue
Block a user