standardisiert: multilang und einefach Sprache enthalten beide translations und untranslated. Doku um das neue Feature ergänzt
This commit is contained in:
+12
-11
@@ -663,7 +663,7 @@ def load_translations_from_json(filename: Path, target_lang: str = None) -> dict
|
||||
Liest Übersetzungen aus einer JSON-Datei.
|
||||
Unterstützt beide Strukturen:
|
||||
- Alte Struktur: "translations": [{"source": "...", "target": "..."}, ...]
|
||||
- Hierarchische Struktur: "[LANG]": {"translated": [...], ...}
|
||||
- Hierarchische Struktur: "[LANG]": {"translations": [...], ...}
|
||||
|
||||
Bei hierarchischer Struktur werden Übersetzungen aus allen Sprachen oder nur der angegebenen Sprache gelesen.
|
||||
Wenn mehrere Übersetzungen für denselben source existieren, wird die letzte verwendet (Sprache mit höherer Priorität).
|
||||
@@ -732,14 +732,15 @@ def load_translations_from_json(filename: Path, target_lang: str = None) -> dict
|
||||
print(f"WARNUNG: [{lang}] Block ist kein Object, überspringe")
|
||||
continue
|
||||
|
||||
# Lese aus translated Block
|
||||
if 'translated' in lang_data:
|
||||
translated = lang_data['translated']
|
||||
if not isinstance(translated, list):
|
||||
print(f"WARNUNG: [{lang}][translated] ist kein Array, überspringe")
|
||||
# Lese aus translations Block (oder translated für Rückwärtskompatibilität)
|
||||
translations_key = 'translations' if 'translations' in lang_data else 'translated'
|
||||
if translations_key in lang_data:
|
||||
translations_list = lang_data[translations_key]
|
||||
if not isinstance(translations_list, list):
|
||||
print(f"WARNUNG: [{lang}][{translations_key}] ist kein Array, überspringe")
|
||||
continue
|
||||
|
||||
for idx, entry in enumerate(translated):
|
||||
for idx, entry in enumerate(translations_list):
|
||||
if not isinstance(entry, dict):
|
||||
continue
|
||||
|
||||
@@ -1106,8 +1107,8 @@ def write_texts_to_json(texts: list[str], ignored_texts: list[str], output_path:
|
||||
- "ignored": Liste von Strings für gefilterte/ignorierte Texte
|
||||
|
||||
Bei mehreren Sprachen (hierarchische Struktur):
|
||||
- "[EN]": {"translated": [...], "untranslated": [...]}
|
||||
- "[FR]": {"translated": [...], "untranslated": [...]}
|
||||
- "[EN]": {"translations": [...], "untranslated": [...]}
|
||||
- "[FR]": {"translations": [...], "untranslated": [...]}
|
||||
- "ignored": Liste von Strings für gefilterte/ignorierte Texte
|
||||
|
||||
Args:
|
||||
@@ -1145,7 +1146,7 @@ def write_texts_to_json(texts: list[str], ignored_texts: list[str], output_path:
|
||||
|
||||
# Hierarchische Struktur: [LANG] als Schlüssel
|
||||
output_data[f"[{lang}]"] = {
|
||||
"translated": translations,
|
||||
"translations": translations,
|
||||
"untranslated": untranslated
|
||||
}
|
||||
|
||||
@@ -1196,7 +1197,7 @@ def write_texts_to_json(texts: list[str], ignored_texts: list[str], output_path:
|
||||
for lang in translation_languages:
|
||||
if f"[{lang}]" in output_data:
|
||||
lang_data = output_data[f"[{lang}]"]
|
||||
print(f" [{lang}] Übersetzungen: {len(lang_data['translated'])}, Nicht übersetzt: {len(lang_data['untranslated'])}")
|
||||
print(f" [{lang}] Übersetzungen: {len(lang_data['translations'])}, Nicht übersetzt: {len(lang_data['untranslated'])}")
|
||||
else:
|
||||
# Alte Struktur
|
||||
if translation_dicts:
|
||||
|
||||
Reference in New Issue
Block a user