Skip to content

Commit b7054ed

Browse files
committed
fix(translator): Fallback auf Deutsch/Key wenn Zielsprachen-String leer ist
1 parent a1210e5 commit b7054ed

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# -*- coding: utf-8 -*-
2+
"""Regressionstest — Bugsweep 2026-07-25: TranslationSystem Fallback bei leeren Übersetzungs-Strings."""
3+
import sys
4+
from pathlib import Path
5+
6+
sys.path.insert(0, str(Path(__file__).parent.parent))
7+
from translator import TranslationSystem
8+
9+
10+
def test_t_returns_fallback_when_translation_value_is_empty_string(tmp_path):
11+
"""
12+
Beweis des Bugs: Wenn in translations.json ein Eintrag {"de": "Tabelle", "en": ""} existiert,
13+
gibt tr.t("Tabelle") im EN-Modus "" (leeren String) zurück anstelle des deutschen Fallbacks.
14+
"""
15+
ts = TranslationSystem(default_lang="en", app_dir=tmp_path)
16+
ts.translations["Tabelle"] = {"de": "Tabelle", "en": ""}
17+
18+
result = ts.t("Tabelle")
19+
assert result == "Tabelle", f"Erwartet Fallback 'Tabelle', bekam {result!r}"

translator.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,10 @@ def t(self, key: str) -> str:
8989
Uebersetzter Text oder Key als Fallback
9090
"""
9191
if key in self.translations:
92-
return self.translations[key].get(self.current_lang, key)
92+
val = self.translations[key].get(self.current_lang)
93+
if val:
94+
return val
95+
return self.translations[key].get("de") or key
9396

9497
if self._is_german(key):
9598
self.translations[key] = {"de": key, "en": ""}

0 commit comments

Comments
 (0)