WordPress Themes und Plugins ganz einfach selbst übersetzen
Es liegt auf der Hand, dass weder WordPress selbst noch jedes Theme und jedes Plugin in jeder der etwa 6.500 Sprachen, die weltweit gesprochen werden, zur Verfügung stehen kann. Die Verfügbarkeit in deutscher Sprache ist zum Glück sehr groß. Unter den vielen tausend Themes und Plugins gibt es dennoch viele, die gar nicht oder nur zum Teil übersetzt sind. Diese selbst zu übersetzen ist aber kein Problem.
WordPress bringt von Haus aus Funktionen mit, die das Übersetzen ermöglichen. Diese Mechanismen werden von WordPress selbst verwendet, können aber ebenso von Themes und Plugins genutzt werden.
Viele beliebte Themes und Plugins stehen in einigen Sprachen zur Verfügung, sehr oft auch in Deutsch. Themes und Plugins, die nicht so breit eingesetzt werden, sind dagegen häufig nicht oder nur in wenige Sprachen übersetzt. Englische Texte im Adminbereich von WordPress mögen kein Problem sein, aber wenn man gerne ein Theme verwenden möchte, das nicht auf Deutsch verfügbar ist, und auf der Website dann beispielsweise „Read more“ anstatt „Weiterlesen“ steht, ist das nicht so ideal.
Das muss aber nicht heißen, dass man so ein Theme nicht einsetzen kann, wenn man eine „saubere“ deutschsprachige Website betreiben möchte, die frei von solchen englischen Brocken ist. Wie man solche Textfragmente ganz einfach selbst übersetzen kann beschreibe ich in diesem Artikel. Die beschriebene Methode eignet sich übrigens auch, um vorhandene Übersetzungen zu überschreiben. Wer also beispielsweise ein bereits deutschsprachig übersetztes Theme einsetzt und den Text „Weiterlesen“ gerne auf „Mehr dazu“ ändern möchte, wird hier auch fündig.
Internationalisierung in WordPress
Bevor wir uns ans eigentliche Übersetzen machen möchte ich ein paar Hintergrundinformationen geben, wie das Übersetzen in WordPress funktioniert. Das ist nicht nur trockene Theorie, sondern wichtig, um zu wissen, was möglich ist – und was nicht. Es ist eben nicht so, dass einfach alles übersetz werden kann. Manches lässt sich einfach nicht übersetzen. Das zu wissen, spart unnötigen Frust.
WordPress verwendet für die Internationalisierung die freie Bibliothek gettext und stellt darauf basierende Funktionen zur Verfügung, um Texte, die im Programmcode verwendet werden und daher von außen eigentlich nicht zugänglich sind, übersetzbar zu machen. Damit ein #theme oder ein #plugin also überhaupt übersetzt werden kann, muss es diese Funktionen benutzen. Werden diese Funktionen nicht verwendet, dann ist das Übersetzen schlicht und einfach nicht möglich.
Es gibt also Themes und Plugins, die nicht übersetzt werden können, weil der Entwickler das nicht vorgesehen hat. Aber auch bei einem Theme bzw. einem Plugin, das grundsätzlich zwar übersetzt werden kann, kann es trotzdem vorkommen, dass sich einzelne Texte eventuell nicht mit der im folgenden beschriebenen Methode übersetzten lassen. Das liegt daran, dass der Programmierer für jeden einzelnen Text, der irgendwo ausgegeben werden soll, die entsprechende Funktion verwenden muss. Wird das irgendwo bei einem Text übersehen, dann ist dieser nicht übersetzbar.
Darüber hinaus mag es auch Themes oder Plugins geben, die grundsätzlich zwar übersetzbar sind, aber dazu nicht diese von WordPress zur Verfügung gestellten Methoden verwenden, sondern irgendeine andere Methode. Auch solche lassen sich natürlich dann nicht auf diese Weise übersetzen.
Näher gehe ich auf dieses Thema hier nicht ein. Zusammenfassend ist es einfach wichtig, zu wissen, dass es Plugins und Themes gibt, die sich entweder gar nicht oder nicht zur Gänze übersetzen lassen.
Ein ganz kurzer Ausflug in die Technik
Versprochen, ich halte das wirklich kurz. Die gettext Bibliothek verwendet sogenannte Message Object Dateien mit der Endung .mo, in denen die Übersetzungen gespeichert sind. Gibt es für ein Plugin oder ein Theme Übersetzungen, dann werden die .mo Dateien für die jeweiligen Sprachen mit ausgeliefert.
Erzeugt werden diese Dateien aus sogenannten Portable Object Dateien. Diese haben die Dateiendung .po und liegen im Textformat vor. In diesen werden die Übersetzungen vorgenommen. Eine fertig übersetzte .po Datei wird dann mit einer speziellen Software in das .mo Format konvertiert, damit gettext – und somit auch WordPress – etwas damit anfangen kann.
Das war er auch schon, der Ausflug in die Technik. Wie versprochen ganz kurz.
Öffentliche Übersetzungen
Eine große Anzahl an Themes und Plugins werden kostenlos zur Verfügung gestellt. Bei diesen finden Übersetzungen in der Regel durch die Community statt. Wer auf ein gutes Theme oder Plugin stößt, das noch nicht ins Deutsche übersetzt wurde, kann sich also überlegen, etwas zur Community beizutragen und eine Übersetzung öffentlich zur Verfügung zu stellen.
Dazu liefern viele Plugins auch eine Portable Object Template genannte Datei mit der Endung .pot mit aus. Dabei handelt es sich um eine leere Vorlage, die für neue Übersetzungen kopiert werden kann.
Aber es geht auch einfacher. Plugins und Themes, die über wordpress.org zur Verfügung gestellt werden, haben die Möglichkeit, die Übersetzungsplattform von WordPress zu nutzen. Mit einem kostenlosen wordpress.org Account kann dort jeder Übersetzungen online vornehmen. Aus diesen werden dann automatisiert die .mo Dateien erzeugt. Um die Technik muss man sich in dem Fall überhaupt nicht kümmern.
Weitere Details dazu würden zu weit führen, eventuell gibt es dazu einmal einen eigenen Artikel. Da ich selbst auch kostenlose Plugins für WordPress entwickle und betreue und das einen doch nicht zu vernachlässigen Aufwand bedeutet, ist mir der Hinweis einfach wichtig, dass jeder freiwillig zum WordPress Universum beitragen kann.
Damit komme ich aber jetzt zum eigentlichen Thema, wie man ein Plugin oder Theme ganz einfach für sich selbst übersetzen kann. Man muss sich dazu nicht einmal mit .pot und .po Dateien herumschlagen und benötigt auch keine Software zum Erzeugen der .mo Dateien. Dankenswerterweise gibt es nämlich auch dafür ein Plugin
Eigene Übersetzungen per Plugin
Das Plugin Loco Translate ist ein echter Alleskönner, wenn es darum geht, Themes oder Plugins selber zu übersetzen. Aber nicht nur das. Damit lassen sich wie bereits zu Beginn erwähnt auch Übersetzungen einfach überschreiben. Und das nicht nur für Themes und Plugins sondern sogar für WordPress selbst. Mehr als eine halbe Million aktiver Installationen und eine Top-Bewertung sprechen eine deutliche Sprache. Das Plugin lässt keine Wünsche offen und die Oberfläche ist leicht durchschaubar und gibt keine Rätsel auf.
Nach der Installation von Loco Translate erscheint im Menü ein gleichnamiger Eintrag. Loco Translate selbst ist übrigens zumindest derzeit noch nicht auf Deutsch. Zwar gibt es eine deutsche Übersetzung, zum jetzigen Zeitpunkt sind aber erst 41% der Texte übersetzt. Damit wird die Übersetzung noch nicht ausgeliefert.
Im Untermenü von Loco Translate kann man auswählen ob man ein Theme, ein Plugin oder WordPress selbst übersetzen möchte. Der folgende Screenshot zeigt, wie die Übersetzungsseite für das aktuelle Standard-Theme Twenty Seventeen aussieht.
Hier werden die verfügbaren Übersetzungen angezeigt. Wie man sieht, ist die deutsche Übersetzung vollständig. Bei Bedarf können jedoch Änderungen vorgenommen werden. Zu Demonstrationszwecken habe ich aber ein neues Theme installiert, das erst kürzlich veröffentlicht wurde und noch nicht übersetzt ist. Wie nicht anders erwartet lautet beispielsweise in der Artikelübersicht der Text für den Weiterlesen-Link „Read more“. Das wird sich gleich einmal ändern.
Im folgenden Screenshot ist ersichtlich, dass das Theme noch komplett ohne Übersetzungen daherkommt. Wir müssen also zuerst einmal eine neue Übersetzung anlegen.
Bei einem Klick auf „New language“ werde ich darüber informiert, dass es kein Template gibt. Heißt also, dass keine .pot Datei mitgeliefert wird. Selbst das ist für den Alleskönner Loco Translate kein Problem. Loco Translate kann nämlich den Programmcode durchsuchen und übersetzbare Texte finden. Das Plugin weist mich jedoch darauf hin, dass das direkte Synchronisieren mit dem Programmcode langsam sein kann und dass es besser ist, ein Template zu erstellen.
Das ist vernünftig, denn dabei wird der Programmcode nur einmal durchsucht und daraus eine .pot Datei generiert. Deshalb entscheide ich mich auch für „Create template“. Das dauert gerade einmal zwei Sekunden, danach ändert sich „Create template“ zu „Edit template“. Damit könnte ich die Vorlage – also die .pot Datei – bearbeiten. Mache ich aber nicht, sondern ich klicke auf „New language“ und wähle als Sprache „German“ aus. Und schon kann es mit dem Übersetzen losgehen. Loco Translate zeigt mir an, dass das Theme 42 Texte enthält, die übersetzt werden können und dass davon noch keiner übersetzt ist.
Das Übersetzen von Texten ist wie bereits erwähnt überhaupt keine Hexerei. In der oberen Liste werden alle Texte angezeigt, die übersetzt werden können. In den beiden Bereichen darunter werden das englische Original sowie die Übersetzung angezeigt. Rechts davon gibt es noch einen Bereich für Kommentare. Hier kann der Entwickler Hinweise für Übersetzer mitliefern.
Interessiert uns jetzt aber nicht, wir wollen im ersten Schritt lediglich den Text „Read more“ übersetzen. Das habe ich wie im obigen Screenshot ersichtlich bereits gemacht. Damit fehlt nur noch ein Klick auf „Save“ und das war es dann auch schon. Wie nicht anders zu erwaten erhalten wir genau das gewünschet Ergebnis.
Das ganze hat inklusive Installation von Loco Translate und Anlegen des Templates keine zwei Minuten gedauert und wir haben ein perfektes Ergebnis. Alle restlichen Texte des Themes zu übersetzen würde auch nur ein paar Minuten dauern.
Zum Abschluss überschreibe ich noch eine Übersetzung von WordPress selbst um den Adminbereich individueller zu gestalten. Nur so zum Spaß ändere ich einfach den Text „Dashboard“ in „Arbeitsplatz“. Dazu rufe ich im Untermenü von Loco Translate „WordPress“ auf. Dort werden eine ganze Menge an Sprachen angezeigt, unter anderem eben auch Deutsch mit einer erfreulichen Übersetzungsrate von 100%.
Eine bereits vorhandene Übersetzung lässt sich ganz einfach ändern, indem man sie anklickt. Bei 2.383 Texten, die übersetzt werden können, ist die Liste schon bedeutend länger. Da erweist sich die Suchfunktion von Loco Translate als sehr hilfreich. So ist der Text sofort gefunden und genauso schnell auch übersetzt. Ein Klick auf „Save“ und ich habe meinen persönlichen „Arbeitsplatz“. Gedauert hat das keine Minute.
Sofern der Text, den man gerne ändern möchte, also grundsätzlich übersetzbar ist, sind eigene Übersetzungen oder Änderungen an einer bestehenden Übersetzung mit dem Plugin Loco Translate ein Kinderspiel.