ein paar Bigramme und andere Einträge für Tschechisch ergänzt

This commit is contained in:
2025-12-03 21:22:26 +01:00
parent 955bb0a0cc
commit b9d45e6be0
2 changed files with 25 additions and 14 deletions
+18 -14
View File
@@ -156,9 +156,11 @@ def translate_text(text: str, trigramme: dict[str, str], bigramme: dict[str, str
Übersetzt einen Text durch Ersetzen von Trigrammen, Bigrammen und Einzelwörtern.
Ersetzungen erfolgen in dieser Reihenfolge: Trigramme → Bigramme → Einzelwörter.
Bei Einzelwörtern werden auch Satzzeichen berücksichtigt:
Bei Einzelwörtern werden auch Satzzeichen und eingebettete Wörter berücksichtigt:
- "Weight:" wird zu "Hmotnost:" (Doppelpunkt bleibt erhalten)
- "(Sub-distributor)" wird zu "(Rozvaděč)" (Klammern bleiben erhalten)
- "\\fArial Black|b0|i0;Firewall 1" wird zu "\\fArial Black|b0|i0;Požární 1"
(alle Wörter in einem Token werden durchsucht, Trennzeichen bleiben erhalten)
Bindestriche im Wort (wie "Sub-distributor") bleiben Teil des Kern-Worts.
Args:
@@ -194,20 +196,22 @@ def translate_text(text: str, trigramme: dict[str, str], bigramme: dict[str, str
translated_words.append(single[word])
has_translation = True
else:
# Prüfe ob Wort mit Satzzeichen am Ende existiert (z.B. "Weight:" -> "Weight")
# Trenne Satzzeichen am Anfang und Ende vom Kern-Wort
# Kern-Wort kann Buchstaben, Zahlen, Unterstriche und Bindestriche enthalten
match = re.match(r'^([^\w-]*)([\w-]+)([^\w-]*)$', word)
if match:
prefix, core_word, suffix = match.groups()
if core_word in single:
# Übersetze Kern-Wort und behalte Satzzeichen
translated_words.append(prefix + single[core_word] + suffix)
# Suche ALLE Wörter im Token und ersetze sie (z.B. "Black|b0|i0;Firewall" enthält "Black" und "Firewall")
# Pattern matcht Wörter (Buchstaben, Zahlen, Unterstriche, Bindestriche)
word_found = False
def replace_word(match):
nonlocal word_found, has_translation
matched_word = match.group(0)
if matched_word in single:
word_found = True
has_translation = True
else:
translated_words.append(word)
else:
translated_words.append(word)
return single[matched_word]
return matched_word
# Ersetze alle gefundenen Wörter im Token
translated_word = re.sub(r'[\w-]+', replace_word, word)
translated_words.append(translated_word)
translated_text = ' '.join(translated_words)
# Gib nur übersetzten Text zurück wenn tatsächlich etwas übersetzt wurde