Texte aus FileMaker übersetzen mit Google Translate oder deepl.com

Dank standardisierter API-Schnittstellen können Übersetzungsdienste wie Google Translate oder Deepl.com direkt mit FileMaker genutzt werden, um Texte in andere Sprachen zu übersetzen. In diesem kurzen Artikel zeigen wir, wie Sie direkt in FileMaker eine solche Schnittstelle ansprechen und damit beliebige Texte übersetzen können.
Sowohl Google Translate als auch Deepl.com sind kostenpflichtig. Eine Million an die API gesendete Zeichen kosten bei beiden Diensten 20 US-Dollar bzw. 20 Euro, Deepl.com verlangt außerdem eine monatliche Grundgebühr in Höhe von knapp fünf Euro. Die übersetzten Texte von Deepl.com gelten allgemein als etwas besser übersetzt als von Google Translate, wobei es hier vermutlich auch auf den Fachbereich ankommt. Erfahren Sie im folgenden, wie eine automatische Übersetzung von Texten in einer FileMaker-Datenbank umgesetzt werden kann.
Um die Übersetzung mit Google Translate durchzuführen, ist ein gültiges Google-Konto erforderlich, das für die Nutzung der Cloud Translation API freigeschaltet ist.
Für die Übersetzung mit Deepl.com ist ein kostenpflichtiges Entwicklerkonto der DeepL-API erforderlich. Die monatlichen Kosten betragen 4,99 Euro zzgl. nutzungsabhängiger Kosten (z. Zt. 1 Cent pro 500 Zeichen, Stand 03/2019)
Generisches Script für die Übersetzung
Zunächst erstellen wir ein Script, das über drei Parameter die Quellsprache, Zielsprache und den zu übersetzenden Text annimmt und entsprechend an die Schnittstelle sendet. Die Parameter sind in unserem Beispiel mit Zeilenumbrüchen (CR) getrennt. Wenn Sie Texte mit Zeilentrennzeichen an die Schnittstelle senden möchten, verwenden Sie ein anderes Trennzeichen für die Parameter wie z.B. einen Hochstrich. Verwenden Sie dann bei der Übergabe der Parameter nicht die Funktion HoleWert (), sondern eine andere (eigene) Funktion, die den String mit Ihrem Trennzeichen aufspaltet. In unserem Beispiel nennen wir das Script „ts.Translate“. Im ersten Schritt werden die übergebenen Parameter jeweils in eine Variable geschrieben.
Das Script kann aus anderen Scripten heraus wie folgt aufgerufen werden:
Script ausführen [ Angegeben: Aus Liste ; „ts.Translate“; Parameter: „“DE¶EN¶Hallo Welt“ ]
Script „ts.Translate“ in der Übersicht
Übergabe der Script-Parameter
Variable setzen [ $quellsprache ; Wert: HoleWert(Hole(ScriptParameter); 1) ]
Variable setzen [ $zielsprache ; Wert: HoleWert(Hole(ScriptParameter); 2) ]
Variable setzen [ $quelltext ; Wert: HoleWert(Hole(ScriptParameter); 3) ]
Die Variablen $quellsprache und $zielsprache enthalten den ISO-Code der jeweiligen Sprache, also z.B. DE oder EN.
Variable für den API-Key setzen
Variable setzen [ $api_key ; Wert: „hJghjjHJHGjkhjKJgÖLkjjhlkHkjFJKGkjjhlÄf“ ]
Sowohl für die Nutzung der Google Cloud Translation API als auch der DeepL-API ist ein Authentifizierungsschlüssel erforderlich. Dieser kann im Administrationsbereich der jeweiligen API abgerufen werden.
API-URL aufrufen
Google Cloud Translation API
Variable setzen [ $_url ; Wert: „https://www.googleapis.com/language/translate/v2?key=“ & $api_key & „&q=“ & LiesAlsURLVerschlüsselt ($quelltext) & „&source=“ & $quellsprache & „&target=“ & $zielsprache ]
DeepL API
Variable setzen [ $_url ; Wert: „https://api.deepl.com/v2/translate?auth_key=“ & $api_key & „&source_lang=“ & $quellsprache & „&target_lang=“ & $zielsprache & „&text=“ & LiesAlsURLVerschlüsselt ($quelltext) ]
Je nach dem, welcher Anbieter genutzt werden soll, ist hier die entsprechende Scriptzeile zu verwenden. In der Variable $_url wird zunächst die URL erzeugt, die für die Übersetzung aufgerufen werden soll. Auf die Serveradresse folgen alle weiteren Werte, die in den vorher definierten Variablen gespeichert wurden:
- $api_key (Authentifizierungsschlüssel der API)
- $source_lang (Quellsprache als ISO-Code)
- $target_lang (Zielsprache als ISO-Code)
- $quelltext (Übergebener Text, wird mit der Funktion LiesAlsURLVerschlüsselt in der URL übergeben, um keine echten Zeilenumbrüche usw. mitzusenden)
Aus URL einfügen [ Auswahl ; Mit Dialog: Aus ; $url_ergebnis ; $_url ]
Mit diesem Befehl wird die URL aufgerufen und das ausgegebene Ergebnis in der Variable $url_ergebnis gespeichert.
Ergebnis auslesen und Fehlerabfrage
Zunächst wird abgefragt, ob das über die URL gelieferte Ergebnis den Begriff „errors“ enthält. Wenn ja, soll ein entsprechender Fehlerdialog erscheinen, der im Text die Variablen $_url und $url_ergebnis enthält.
Wenn [ MusterAnzahl ( $url_ergebnis ; „errors“ ) ]
Eigenes Dialogfeld anzeigen [ „Fehler aufgetreten“ ; $_url & „, “ & $url_ergebnis ]
Sonst
Variable setzen [ $_message_target ; Wert:
SetzeVar ( [
Text = $url_ergebnis ;
StartTag = „\“text\“:\““ ;
EndTag = „\“}]}“ ;
StartPos = Position ( Text ; StartTag ; 1 ; 1 ) ;
StartPos = StartPos + Länge ( StartTag ) ;
EndPos = Position ( Text ; EndTag ; StartPos ; 1 ) ;
LengthToKeep = EndPos – StartPos ;
Result = ZeichenMitte ( Text ; StartPos ; LengthToKeep ) ] ;
Result & Wenn(MusterAnzahl(Result; „|“) > 0; „|“)
)
Filterung von HTML-Entities
Sollte der zurückgelieferte Text HTML-Entities enthalten, können diese mit einer Custom Function herausgefiltert werden. In diesem Beispiel verwenden wir die Funktion HTMLencoded2Text, die frei verfügbar ist.
Wenn [ MusterAnzahl ( $_message_target ; „&#“ ) ]
Variable setzen [ $_message_target ; Wert: HTMLencoded2Text ( $_message_target ) ]
Ende (wenn)
Ende (wenn)
Script verlassen und Ergebnis liefern
Mit dem folgenden Befehl wird das Script verlassen und liefert dabei das Ergebnis, das im übergeordneten Script nach der Ausführung mit dem Befehl Hole(ScriptErgebnis) ausgelesen werden kann.
Aktuelles Script verlassen [ Textergebnis: $_message_target ]
Trennung mehrerer Textwerte mit einem Trennzeichen
Über die Schnittstellen ist es auch möglich, mehrere zu übersetzende Wörter mit einem Trennzeichen zu versehen, um diese später strukturiert in verschiedene Variablen oder Felder einzutragen. Mit der DeepL-API kann als Trennzeichen z.B. problemlos ein Hochstrich verwendet werden, bei Google Translate konnten wir eine Trennung mit einem oder zwei Unterstrichen erfolgreich umsetzen.
Verwandte Beiträge
- SMS mit FileMaker und dem MBS-Plugin versenden.
In diesem Fachartikel erläutern wir, wie Sie SMS-Nachrichten unter Verwendung des MBS Plugins direkt aus Ihrer FileMaker-Datenbank heraus versenden können. Dabei erstellen wir ein Teilscript, das durch einen Aufruf mit fünf Parametern beliebige SMS-Nachrichten an beliebige Empfänger senden kann. Als Gateway für den Versand von SMS-Nachrichten verwenden wir in diesem Beispiel…
- FileMaker Server Script aus FileMaker Runtime ausführen.
Mit FileMaker lassen sich problemlos Scripte entfernter FileMaker-Datenbanken starten und bei Bedarf entsprechende Parameter übergeben. Einfach die entfernte Datei als externe Datenquelle einrichten und das Script der entfernten Datenbank über den Script-Editor aufrufen. Anders verhält es sich mit einer in FileMaker Pro Advanced erstellten Runtime. Da Runtime-Lösungen nicht netzwerkfähig sind,…
- FileMaker Pro Advanced kostenlos im FileMaker Starter-Pack
Bis zum 31. März 2017 bietet FileMaker bei Erwerb einer FLT-Lizenz für Teams ab fünf Benutzer die Starter-Pack-Aktion an, die eine zusätzliche kostenlose Lizenz von FileMaker Pro Advanced 15 enthält. Beim FLT-Programm werden Lizenzen als Jahreslizenz erworben, die jeweils einen FileMaker Server sowie FileMaker Pro für die Anzahl gebuchter gleichzeitiger…
- Aktion: FileMaker Pro zum halben Preis mit FileMaker Go.
Seit heute bietet FileMaker erneut eine Aktion an, bei der nach dem Kauf von FileMaker Go für das iPhone oder das iPad eine Lizenz von FileMaker Pro zum halben Preis erworben werden kann. Die Aktion gilt bis zum 22. März 2012 und geht ganz einfach vonstatten: Kaufen Sie FileMaker Go…
Diese Seite teilen:
ERP-Software so flexibel wie Ihr Unternehmen.
Wir beraten Sie gern.
Anpassbare ERP-Software für Mac, Windows und iOS.
