Funktion zur Übersetzung von Einzelbegriffen kommt auch mit BIndestrichen im Wort klar
This commit is contained in:
+20
-1
@@ -156,6 +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:
|
||||
- "Weight:" wird zu "Hmotnost:" (Doppelpunkt bleibt erhalten)
|
||||
- "(Sub-distributor)" wird zu "(Rozvaděč)" (Klammern bleiben erhalten)
|
||||
Bindestriche im Wort (wie "Sub-distributor") bleiben Teil des Kern-Worts.
|
||||
|
||||
Args:
|
||||
text: Zu übersetzender Text
|
||||
trigramme: Dictionary mit Drei-Wort-Phrasen
|
||||
@@ -185,10 +190,24 @@ def translate_text(text: str, trigramme: dict[str, str], bigramme: dict[str, str
|
||||
translated_words = []
|
||||
for word in words:
|
||||
if word in single:
|
||||
# Direkter Match
|
||||
translated_words.append(single[word])
|
||||
has_translation = True
|
||||
else:
|
||||
translated_words.append(word)
|
||||
# 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)
|
||||
has_translation = True
|
||||
else:
|
||||
translated_words.append(word)
|
||||
else:
|
||||
translated_words.append(word)
|
||||
translated_text = ' '.join(translated_words)
|
||||
|
||||
# Gib nur übersetzten Text zurück wenn tatsächlich etwas übersetzt wurde
|
||||
|
||||
@@ -161,6 +161,7 @@ short=stěna
|
||||
Station=Naložený
|
||||
Storage=Skladování
|
||||
storage=skladovací
|
||||
Sub-distributor=Rozvaděč
|
||||
Sub=Pod
|
||||
System=systém
|
||||
to=do
|
||||
|
||||
Reference in New Issue
Block a user