Die Entwicklung von Translate Files with AI geht weiter. Ich habe bereits einige Ideen und Wünsche auf meinem Schreibtisch. Hier eine Liste der wichtigsten geplanten neuen Funktionen.
Schauen Sie von Zeit zu Zeit vorbei! Ich werde diese Liste bei Bedarf ergänzen.
Speichern aller Einstellungen in Parametersätzen. Dies ist besonders nützlich bei sich wiederholenden oder ähnlichen Übersetzungsaufgaben.
Eine beliebige Anzahl von Abschnittsüberschriften und Abschnittsenden kann in Listen mit Auswahlfeldern gespeichert werden. Dadurch entfällt die Notwendigkeit, sich den Inhalt dieser Felder an anderer Stelle zu merken.
In allen Feldern können Kommentare zur Dokumentation der Eingaben eingegeben werden.
Die Auswahl der Quell- und Zielsprachen wird über Drop-Down-Felder möglich sein, in denen die Sprachen auch mit ihren Namen und nicht nur mit ihren Ländercodes aufgelistet werden. Das ist komfortabler.
Eine .strings-Datei ist ein Textdateiformat, das in der Softwareentwicklung für die Lokalisierung von Texten auf Apple-Plattformen wie macOS, iOS und watchOS verwendet wird. Sie enthält Schlüssel/Wertpaare, um Zeichenketten für verschiedene Sprachen zu speichern, die in der Anwendung angezeigt werden. Dies erleichtert die Lokalisierung und Übersetzung der Anwendung in verschiedene Sprachen.
Hier sind zwei einfache Beispiele einer .strings-Datei:
Die Beispiele zeigen eine .strings-Datei mit Zeichenketten für zwei Sprachen: Englisch und Deutsch.
Im ersten Beispiel sind die Schlüssel „welcome_message“ und „login_button“ definiert. Für die englische Sprache sind die Werte der Schlüssel „Welcome to our app!“ und „Log In“.
Im zweiten Beispiel sind die gleichen Schlüssel für die deutsche Sprache definiert. Die Werte der Schlüssel sind hier „Willkommen in unserer App!“ und „Anmelden“.
Wenn die Anwendung auf einem Gerät mit Englisch als Systemsprache läuft, verwendet sie die englischen Zeichenfolgen. Läuft sie jedoch auf einem Gerät mit Deutsch als Systemsprache, verwendet sie die deutschen Texte. Auf diese Weise kann die Anwendung für verschiedene Länder lokalisiert und angepasst werden.
Die Aufgabe
Wenn eine Ausgangssprache in mehrere Zielsprachen übersetzt werden soll, wird die Arbeit sehr aufwendig. Die Erfahrung zeigt, dass bei manueller Vorgehensweise viele einzelne Arbeitsschritte notwendig sind, die viel Zeit in Anspruch nehmen. Hier kommt die App Translate Files with AI ins Spiel, die es für macOS und Windows gibt.
Translate Files with AI ist ein Programm zum automatisierten Übersetzen von Text in Textdateien in eine oder mehrere Sprachen. Diese Software verwendet DeepL, um die Texte zu übersetzen. DeepL ist derzeit der weltbeste Übersetzungsdienst und liefert aussagekräftige, verständliche Übersetzungen.
Die Vorgehensweise
Definition des zu übersetzenden Textes
In Translate Files with AI gibt es 5 Eingabefelder, in die reguläre Ausdrücke eingegeben werden können, die den zu übersetzenden Text beschreiben:
Abschnittsüberschrift und Abschnittsende beschreiben das Format einer Nachricht oder eines Textes in der Datei. Im obigen Beispiel entspricht die Abschnittsüberschrift den Schlüsseln "welcome_message" = und "login_button" = und das Abschnittsende der Zeichenfolge ";.
Zu ignorierende Abschnitte und Zu übersetzende Abschnitte beschreiben die Abschnitte bzw. Schlüssel, deren Wert bzw. Inhalt entsprechend zu behandeln ist.
Zu ignorierende Zeichenfolgen und Zeichen Hier wird angegeben, welche Teile des Inhalts einzelner Abschnitte von der Übersetzung ausgeschlossen werden sollen.
Um den Text in einer .strings-Datei zu übersetzen, verwende ich die folgenden Werte in den einzelnen Eingabefeldern:
Eingabefeld
Inhalt
Beschreibung
Abschnittsüberschrift
[^\n+][\S ]+= "
Der Text des Schlüssels im Format Ein oder mehrere Zeilenvorschübe, gefolgt vom Text des Schlüssels, endend mit den Zeichen =_"_ (Gleich, Leerzeichen, Gänsefüßchen, Leerzeichen)
Abschnittsende
";(.//.)*\n
Die Beschreibung des Endes der Schlüsselwerte im Format Gänsefüßchen, Semikolon, 0 bis beliebig viele Zeichen, Zeilenvorschub
Zu ignorierende Abschnitte
beliebig
Zu übersetzende Abschnitte
beliebig
Zu ignorierende Zeichenfolgen und Zeichen
https://.*?[ \n]
/*(.?\n)*/
[^/]*//.*$
“%@” %@ %lld
Links,
Kommentare innerhalb von /* und */,
Kommentare, die mit // beginnen,
Zeichenfolgen, die im Wert eines Abschnitts in Anführungszeichen eingeschlossen sind,
Ausführung
Wählen Sie nun die Ausgangssprache und eine oder mehrere Zielsprachen des zu übersetzenden Textes aus und ziehen Sie den Ordner mit der Ausgangsdatei in das Programm. Es ist wichtig, dass der Name der Ausgangsdatei den Code der Ausgangssprache enthält, z. B. MeineAppText-DE.strings.
Durch Anklicken der Schaltflächen Nutzung schätzen und dann Übersetzung simulieren wird das Simulationsfenster des Programms angezeigt.
Im linken Teil dieses Fensters wird der Originaltext und im rechten Teil der Text der simulierten Übersetzung angezeigt. Die Bedeutung der einzelnen Farben:
Kommentare
Schlüsselelemente
Zu übersetzender Text
Übersetzter Text
Von der Übersetzung ausgeschlossener Text
Da es sich um eine Simulation handelt, wird der Text im rechten Teil des Fensters in der Originalsprache angezeigt. Kommentare werden nicht übersetzt und auch nicht in den übersetzten Text eingefügt, weil ☑︎ Unübersetzte Abschnitte übernehmen nicht ausgewählt wurde. Andernfalls würden die Kommentare ohne Übersetzung in den übersetzten Text eingefügt, wie in der folgenden Abbildung der Simulation zu sehen ist.
Nach dem Schließen des Fensters kann die Übersetzung durch Abwählen von ☑︎Nicht online übersetzen, nur simulieren und anschließend durch Anklicken von Übersetzen und sichern gestartet werden.
Schneller übersetzen
Die Übersetzung dieses Beispieltextes für eine Sprache dauert ca. 2 Minuten. Soll die Datei in mehrere Sprachen übersetzt werden, dauert es entsprechend länger.
Warum ist das so?
Der Grund für diese lange Übersetzungszeit liegt darin, dass jeder Absatz einzeln an den Server von DeepL geschickt, dort übersetzt und anschließend zurück gesendet wird. Da es sich um eine relativ große Anzahl von Absätzen handelt, ist das Verhältnis von Nutzdaten zum Overhead extrem ungünstig.
Wie kann man das umgehen?
Da bei der ersten Übersetzung nicht Absatz für Absatz vorgegangen werden muss, kann die gesamte Datei auf einmal übersetzt werden. Dazu wird der Inhalt der Eingabefelder Abschnittsüberschrift und Abschnittsende gelöscht und in das Eingabefeld Zu ignorierende Zeichenketten und Zeichen eingetragen. Die Übersetzung der gesamten Datei dauert nun weniger als 3 Sekunden. Das ist ein enormer Fortschritt.
Für zukünftige Änderungen an bestehenden Übersetzungen ist es jedoch sinnvoll, die oben beschriebene Methode zu verwenden und die Überschriften der zu übersetzenden Abschnitte im Eingabefeld Zu übersetzende Abschnitte anzugeben. Dadurch wird nicht der gesamte Text noch einmal übersetzt und das Kontingent bei DeepL wesentlich weniger belastet.
Einige Absätze werden nicht übersetzt
Dies geschieht bei der abschnittsweisen Übersetzung, wenn dieselben Abschnittsüberschriften mehrfach in einer Datei verwendet werden. In diesem Fall wird tatsächlich nur der letzte Abschnitt übersetzt. In der Regel sollte dies jedoch kein Problem darstellen, da die Abschnittsüberschrift als Schlüssel verwendet wird und ein mehrfaches Vorkommen daher nicht sinnvoll ist.
Fazit
Mit Translate Files with AI ist es einfach und schnell möglich, .string-Dateien in bis zu 30 verschiedene Sprachen zu übersetzen. Ebenso einfach ist es, die Übersetzungen bei späteren Änderungen auf dem neuesten Stand zu halten.