Übersetzen mit Word und DeepL

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Nachdem wir schon gezeigt haben, wie Du Texte in einer Excel-Tabelle übersetzen kannst, schauen wir uns nun an, wir die die DeepL-Techniken für die Gegenüberstellung der englischen und der deutschen Version eines Textes nutzen können. Dazu wollen wir bei einem Text beginnen, der sich in einem Word-Dokument befindet und diesen in ein neues Dokument übertragen, wo wir die einzelnen Absätze des Textes in jeweils eine Zelle in der linken Spalte einer Word-Tabelle einfügen. Nachdem wir den Text so auf die Zellen einer Tabelle aufgeteilt haben, wollen wir in der rechten Spalte per Aufruf der DeepL-REST-API die Übersetzung in der gewünschten Sprache unterbringen. Das Ergebnis: Die Übersetzung eines Textes, wobei jeweils ein Absatz in der einen Sprache dem gleichen Absatz in der anderen Sprache gegenübergestellt wird.

Den VBA-Code, mit dem wir die gewünschten Aufgaben erledigen, fügen wir zunächst in das Klassenmodul ThisDocument des aktuellen Dokuments ein. Hier wollen wir einen Dateiauswahldialog unterbringen, mit dem der Benutzer die Quelldatei für den Ausgangstext selektieren kann.

Diese enthält einfache Absätze mit Texten wie beispielsweise wie in Bild 1. Anschließend soll die Prozedur die Inhalte dieses Dokuments einlesen und in eine neue Tabelle im aktuellen Dokument schreiben – und zwar auf die linke Seite. Eine zweite Prozedur soll alle in der linken Spalte der Tabelle enthaltenen Texte einlesen und mit einem Aufruf der REST-API von DeepL den Text in der gewünschten Sprache ermitteln. Die Übersetzung des aktuellen Absatzes soll dann in die zweite Spalte der Tabelle neben dem Originaltext eingefügt werden.

Beispiel für ein Ausgangsdokument

Bild 1: Beispiel für ein Ausgangsdokument

Hauptprozedur zur Steuerung des Ablaufs

Die Hauptprozedur, die wir einfach aufrufen und welche die übrigen Funktionen und Prozeduren startet, heißt Uebersetzen. Sie ruft als Erstes die Funktion DateiAuswaehlen auf, welche den Dateiauswahldialog öffnet und mit dem der Benutzer die Word-Datei auswählt, aus welcher der zu übersetzende Text eingelesen werden soll (mehr dazu im Anschluss).

Der Pfad zu dieser Datei wird in der Variablen strPfad gespeichert. Die Prozedur Uebersetzen prüft anschließend, ob strPfad nicht die Länge 0 hat, was darauf hindeutet, dass der Benutzer gar keine Datei ausgewählt hat – in diesem Fall wird die Prozedur mit einer Meldung abgebrochen.

Im Else-Teil der Bedingung, die nur angesteuert wird, wenn strPfad nicht leer ist, prüfen wir auch noch, ob strPfad auf eine gültige Datei verweist:

Public Sub Uebersetzen()
     Dim strPfad As String
     Dim objTable As Table
     strPfad = DateiAuswaehlen
     If Len(strPfad) = 0 Then
         MsgBox "Keine Datei ausgewählt."
         Exit Sub
     Else
         If Len(Dir(strPfad)) = 0 Then
             MsgBox "Kein gültiger Dateipfad."
             Exit Sub
         End If
     End If

Ist eine gültige Datei in strPfad angegeben, rufen wir die Funktion TextAusDokumentInTabelle auf und übergeben dieser den Pfad zum Dokument mit dem zu übersetzenden Text. Diese Funktion soll die Tabelle erstellen und mit den Absätzen aus dem Word-Dokument mit dem Originaltext füllen und einen Verweis auf diese Tabelle als Parameter zurückgeben:

     Set objTable = TextAusDokumentInTabelle(strPfad)

Ist objTable danach nicht leer, rufen wir schließlich noch die Prozedur UebersetzungDurchfuehren auf und übergeben dieser den Verweis auf die Tabelle, in deren linker Spalte bereits die zu übersetzenden Texte warten:

     If Not objTable Is Nothing Then
         UebersetzungDurchfuehren objTable
     End If
End Sub

Auswahl der Datei mit dem Originaltext

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar