Code Styling Project

It’s not a bug, it’s always a feature.
  • Deutsch
  • English
  • rss
  • Home
  • Blog
  • Impressum
  • Entwicklungen
  • Fehlerbehebungen
  • Anleitungen

Übersetzungen in WordPress - Google & Microsoft Translate API’s

codestyling | 09. Mai 2012 | 08:15

Seitdem Google seine freie Translation API v1 für veraltet erklärt und gänzlich abgeschaltet hat, gibt es einige WordPress Plugins, deren Wert dramatisch gesunken ist bzw. sie eigentlich nicht mehr benutzbar sind.

Auch mein Plugin Codestyling Localization hat es ereilt, denn der optionale Übersetzungsservice konnte nicht mehr aufgerufen werden. Stattdessen ist mein Volumen an Supportanfragen drastisch gestiegen und ich mußte mir etwas einfallen lassen.

Am Anfang stand die Frage: “Was nun?”

Nach dieser Abschaltung des freien Dienstes mußte ich ersteinmal rausfinden, ob es Alternativen gibt und welche Auswirkungen diese haben. So viele Anbieter mit venünftigen API’s gibts ja nun doch nicht, also bleiben eigentlich derzeit nur 2 Anbieter, die man sich genauer ansehen muß: Google und Microsoft.

Google Translate API v2

Google hat die Nutzer nicht vollständig im Regen stehen lassen, nur sind sind die Bedingungen für die Benutzung der neuen API sehr viel strikter definiert. Der Dienst steht nun nicht mehr kostenfrei zur Verfügung sondern wird per Übersetzungsvolumen in Zeichen bemessen in Rechnung gestellt.
Dazu muß man sich für diesen Dienst im Google Account freischalten lassen und bekommt einen Zugriffsschlüssel, den man bei jeder Anfrage mitschicken muß. Somit kann das Volumen getrackt und berechnet werden.

Die Implementierung der neuen API ist eigentlich kein großes Problem gewesen, aber wie tested man diesen Dienst, wenn man nicht bereit ist, Geld auszugeben?
Ich hab die Implementierung bis zu dem Punkt getestet, an dem der Dienst meinen Schlüssel zwar kennt, aber dann meckert, dass das Billing für diesen Dienst nicht aktiviert ist.
Gemäß der Spezifikation der API habe ich dann die Funktionalität fertiggestellt und denke, daß es bei freigeschaltetem Billing auch sauber funktioniert. Falls es irgendwelche Probleme geben sollte, wäre ich über Rückmeldungen dankbar. Genauso wie für die Mitteilung, das alles super funktioniert.

Microsoft Translator - Windows Azure Marketplace

Auch Microsoft hat in der Zwischenzeit einen Übersetzungsdienst am Laufen, den man per API befragen kann. Im Gegensatz zu Google’s Dienst gibt es hier sogar eine Option, limitiert auf 2 Millionen Zeichen pro Monat den Dienst kostenfrei zu benutzen.
Das hört sich schon mal sehr gut an, also hab ich diesen Dienst ebenfalls integriert. Die Implementierung beruht momentan auf PHP Curl, deswegen kann es sein, daß es nicht bei jedem funktioniert und aktiviert werden kann. Die PHP Sourcen dazu stammen von Microsoft selbst, haben aber einen Bug, den ich gleich mal mit gefixed habe.

Nachdem die API integriert war, brauchte ich auch hier Zugriffstoken, damit man sich gegenüber dem Dienst authentifizieren und das Limit mitgetrackt werden kann. Über den Windows Live Account kann man die nötigen Daten sehr schnell und einfach generieren und die Funktionalität freischalten.

Dadurch konnte ich diesen Dienst auch komplett testen und habe mal ein Plugin aus dem Repository vollständig übersetzt, dessen Übersetzung vollkommen leer war. Das funktioniert auffallend gut und bringt sogar Ergebnisse mit einer sehr guten Qualität zum Vorschein, hier hat mich Microsoft angenehm überrascht.

Benutzung der API’s in Codestyling Localization

Ich hab lange nachgedacht, wie man die entsprechenden Keys/Token nun verwalten sollte. Ich wollte sie nicht in die Datenbank schreiben lassen, also hab ich das konzeptionell so angegangen, daß man die nötigen Daten in seine wp-config.php als Konstanten eintragen muß, so wie man es für die Datenbankzugangsdaten auch macht. Dies sieht dann so aus, die Keys/Token müssen dann natürlich mir euren ersetzt werden:

define('GOOGLE_TRANSLATE_KEY', 'enter your google key here');
define('MICROSOFT_TRANSLATE_CLIENT_ID', 'enter your microsoft api client id here');
define('MICROSOFT_TRANSLATE_CLIENT_SECRET', 'enter your microsoft api secret here');

Limitierte, monatliche Volumen

Es stellt sich allerdings die Frage, wie weit man mit diesen Volumen kommen kann.
Am Beispiel von Microsoft’s 2 Millionen Zeichen pro Monat habe ich mal ein paar grobe Schätzungen vorgenommen, nagelt mich bitte nicht auf diese Werte fest.

Ein durchschnittlicher Artikel in meinem Blog geht nicht unter 800 - 1000 Wörtern raus. Mit einer mittleren Wortlänge von 7 Zeichen, multipliziert mit 1000 Wörtern kommt man auf ca. 7000 Zeichen pro Beitrag. Würde man die Beiträge übersetzen lassen wollen, wären ca. 300 Beiträge ~ 2.1 Millionen Zeichen. Pro Arbeitstag sind das dann 13 Artikel, die man in eine andere Sprache übersetzen lassen kann.
Für vollautomatische Blogübersetzung, wie sie einige Plugins bisher machten, reicht das bei großen Blogs nicht aus. Für den Hausgebrauch dürfte das aber mehr als ausreichend sein, wenn man mit 2 Sprachen bloggt.

Bei der Übersetzung von Themes oder Plugins gehe ich mal von einem mittleren Umfang von 200 Texten und einer durchschnittlichen Textlänge von 10 Zeichen aus. Dann komme ich auf ca. 2000 Zeichen pro Theme / Plugin. Das macht dann ~1000 Plugins / Themes, die man übersetzen kann. Dies reicht umgerechnet auf Arbeitstage für 45 Plugins / Themes pro Tag. Damit sollte man selbst als ambitionierter Blogger, Designer oder Coder sehr weit kommen, selbst wenn einige Plugins oder Themes einen höheren Umfang haben, als nur 200 Texte.

Zusammenfassung

Übersetzungsdienste vereinfachen die tägliche Arbeit ungemein. Wenn diese Dienste ausfallen, merkt man das dann schmerzlich. Aber es gibt meistens Alternativen und diese kompensieren den Verlust meist sehr gut.

Ich würde mich freuen, wenn ihr mir Feedback zum Einbau der Übersetzungdienste geben könnt. Für weitere Anregungen, Hinweise, Bugreports oder einfach nur Beifallsbekundungen bin ich sehr empfänglich.

Kategorien
Deutsch, WordPress (DE)
RSS Kommentare
RSS Kommentare

« “Na Zauberer, was hast du diesmal gebaut ?” WordPress 3.4 - Theme Core Änderungen und weiße Seiten »

5 Antworten    Schreib einen Kommentar

Befagor

Befagor

09.05.2012 | 14:31

Vielen Dank für die Weiterentwicklung des Codestyling Localization Plugins. Da ich das nur nutze für Plugin/Theme Übersetzungen (im Moment jedenfalls), reicht das vollkommen aus. Positiv bei Microsoft (gegenüber der alten Google API) ist ja zudem, das auch solche Dinge wie die ganzen %2 etc. als Textersetzer 1:1 übernommen werden und nicht wie bei Google damals, ein Leerzeichen davor gesetzt wird.

Antworten »

Sascha Peter

Sascha Peter

09.05.2012 | 15:15

vor kurzen habe ich noch gegrummelt, das die Google-API(V1) nicht mehr wollte. Nun musste ich es gleich einmal mit der Microsoft-API probieren ein paar Theme-Strings zu übersetzen, auch wenn es bereits geschehen war ;-).
Und es war sicher keine Überraschung, es funktioniert. Danke!

Antworten »

Thomas Scholz

Thomas Scholz

10.05.2012 | 06:54

Ließest du die API-Keys als User-Meta speichern, könnte man mehrere pro Blog verwenden, oder? Spricht etwas dagegen?

Antworten »

codestyling

codestyling

10.05.2012 | 09:31

Das war auch eine der Optionen, über die ich nachgedacht habe. Die habe ich deshalb verworfen, weil ich mir keine Gedanken machen will, wenn ich jemandem ein SLQ Backup einer der Demo DB’s schicke, daß dort Sachen drin stehen, die Geld kosten könnten. Ich will mich nicht jedesmal dran erinnern (müssen), die Zugriffkeys dafür rauszunehmen.
Zum anderen wie sollte man das machen? Als neue Inputfelder beim User einblenden? Dann muß man wieder aufpassen, daß ich beim Browsen der User nicht den Key eines anderen zu sehen bekomme (DAU mode). Ich weiß, das sich ein anderer Admin das jetzt per PHP Theme/Plugin Hack auch beschaffen kann, aber die DB Geschichte macht mir persönlich mehr Bauchschmerzen als die wp-config.php Eintragung.

Antworten »

Thomas Scholz

Thomas Scholz

11.05.2012 | 15:32

Naja, dann unterstütze doch beides. Für deine Demo-Geschichten nimmst die wp-config-Werte und ansonsten guckst du im Usermeta. Das kann man in der Ausgabe auf den Profilinhaber beschränken (über die Konstante IS_PROFILE_PAGE oder einen Abgleich der User-ID). Ich betreibe einige voneinander unabhängige Sites über eine gemeinsame Installation. Die können nicht alle denselben API-Key verwenden.

Antworten »

Du kannst diese Tags verwenden : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Navigation

  • Allgemein
  • jQuery in WordPress
  • Politik
  • WordPress (DE)

Suche

Neuere Beiträge ...

  • Scripting Guard - ein WordPress Plugin schützt sich selbst
  • Änderungen der Sprachdateien für WordPress 3.4 Core
  • WordPress 3.4 - Theme Core Änderungen und weiße Seiten

Ältere Beiträge ...

  • “Na Zauberer, was hast du diesmal gebaut ?”
  • Kundensupport bei 1und1 - das Wunder beim Memory Limit
  • BuddyPress, die Adminbar und die RTL Sprachen
  • Windows XAMPP und WordPress Autoupdate per FTP
  • Exploit Warnung - Plugin “is-human” als Einfallstor
rss RSS Kommentare valid xhtml 1.0 design by jide powered by Wordpress get firefox