In diesem Post erfährst Du, wie die Lokalisierung in WordPress funktioniert und wie Du selbst ganz einfach die Übersetzung online in Deinem Admin-Bereich bearbeiten kannst.
Und Du brauchst dafür nichts weiter als das kostenlose Plugin Loco Translate.
Ausserdem zeige ich auch, wie Du nach WordPress, Plugin- und Theme-Updates mit wenigen Handgriffen auch Deine individuellen Übersetzungen aktualisieren und wieder aktivieren kannst.
Die Lokalisierung in WordPress
Beginnen wir mit einer kurzen Erklärung des Konzepts der Lokalisierung. In WordPress, und übrigens auch in vielen anderen Open-Source-Projekten, wird für die Übersetzung das gettext-Framework eingesetzt.
Was Dich hauptsächlich fürs Übersetzen interessiert, sind die Sprachdateien.
Die meisten Themes und Plugins sowie WordPress selbst haben eigene Sprachdateien. Mit diesen hattest Du vielleicht bereits zu tun, als Du Dein WordPress übersetzt hast. Hier die verschiedenen Dateien und für was sie benötigt werden:
- .POT (Portable Object Template): Diese Template-Datei enthält alle Ausdrücke, die in einem Theme oder Plugin übersetzt werden können. Diese Datei brauchst Du nur, wenn Du die Übersetzung lokal auf Deinem PC erstellen möchtest. Mit dem CodeStyling Localization Plugin benötigst Du diese nicht.
- .PO (Portable Object): Diese Datei enthält jeweils eine Übersetzung und kann von Dir bearbeitet werden. Der Dateiname enthält jeweils den Länder-/Sprachcode der Übersetzung, für Deutsch z.B. de_DE.
- .MO (Machine Object): Diese Datei enthält ebenfalls eine Übersetzung, ist aber in einem speziellen Format, das von WordPress verwendet wird. Immer wenn Du die .PO-Datei verändert hast, musst Du die .MO-Datei ebenfalls neu generieren lassen, damit die Änderungen in WordPress aktiv werden.
Kurz: Du machst Deine Übersetzungen also immer in einer .PO-Datei, anhand derer die .MO-Datei für WordPress generiert wird.
Tipp: Es lohnt sich übrigens nicht, den Schweizer Ländercode de_CH zu verwenden. Du könntest diesen zwar für Dein Child-Theme einrichten, da jedoch für WordPress selbst und alle Deine eingesetzten Plugins keine de_CH-Übersetzungen existieren, würden grosse Teile Deines Blogs einfach in der Standardsprache Englisch bleiben. Du kannst aber problemlos Deinen de_DE-Sprachdateien einen schweizerischen Touch verleihen 🙂
Die Sprachdateien findest Du meistens im Unterordner /languages des jeweiligen Theme- bzw. Plugin-Ordners, die WordPress eigenen Dateien findest Du unter /wp-content/languages.
Wenn die Übersetzung Lücken hat
Es kann vorkommen, dass Du die Sprachdateien eines Themes oder Plugins komplett übersetzt hast, und immer noch englischsprachige Ausdrücke auf Deiner Website findest. Dann liegt das Problem meistens schlicht einfach daran, dass der entsprechende Ausdruck vom Theme- oder Plugin-Entwickler nicht für die Übersetzung vorbereitet worden ist.
Damit die Übersetzungen aus der .MO-Datei geladen werden, muss im Code der PHP-Dateien die Ausgabe mit den gettext-Funktionen __() oder _e() stehen:
<?php _e( 'Menu', 'themename' ); ?>
Die Funktion _e() wird für Übersetzungen verwendet, die direkt auf der Website ausgegeben werden.
<?php next_comments_link( __( 'Newer Comments →', 'themename' ) ); ?>
Die Funktion __() wird verwendet, wenn der übersetzte Ausdruck in einer anderen Funktion benötigt wird.
In so einem Fall kannst Du entweder darauf warten, dass ein Update des Themes das Problem behebt, oder Du musst die entsprechende PHP-Datei selbst korrigieren.
Sprachdateien online bearbeiten mit Loco Translate
Legen wir also mit dem Übersetzen los! Zuerst musst Du natürlich das Plugin installieren. Du findest das Plugin unter Plugins – Installieren, wenn Du nach Loco Translate suchst.
Nach der Installation und Aktivierung findest Du die Funktionen des Plugins unter Werkzeuge – Lokalisierung. Für jedes Theme und Plugin siehst Du alle verfügbaren Sprachen, hier z.B. für das von uns in einem anderen Artikel selbst erstellte Child-Theme:

Bevor Du die Sprachdatei bearbeiten kannst, musst Du sie Einlesen. Dabei werden alle PHP-Dateien nach übersetzbaren Ausdrücken durchsucht. Beim Einlesen eines Child-Themes wird dabei direkt auch das Parent-Theme analysiert. Mit Klick auf analysieren startest Du den Suchlauf:

Falls Du das Einlesen vergessen hast, bekommst Du beim Bearbeiten einfach eine Fehlermeldung mit dem Hinweis, die Sprachdatei zuerst einzulesen:

Nun kannst Du mit dem Übersetzen loslegen:

Nicht vergessen: Nachdem Du alle Übersetzungen gemacht hast, musst Du immer die .MO-Datei neu generieren lassen! Das kannst Du ganz einfach indem Du auf den Button erstelle mo-Datei klickst:

Nun ist die Übersetzung in WordPress bereit!
Wichtige Erinnerung: Wenn Du die Sprachdateien von Themes, Plugins oder WordPress selbst bearbeitest, werden Deine Änderungen beim nächsten Update wieder überschrieben! Also immer ein Backup der Sprachdateien anlegen (sprich die .PO- und .MO-Dateien von Deinem WordPress herunterladen). Und für Themes am Besten ein Child-Theme verwenden, welches Update-sicher ist. Siehe dazu den Post Theme Update-sicher übersetzen per Child-Theme.
Du hast die Sprachdateien also gesichert? Sehr gut! Und was musst Du jetzt konkret tun, wenn Du …
… ein Theme aktualisiert hast, welches Du in einem Child-Theme übersetzt hast?
Ganz einfach: Du musst in Deinem Child-Theme lediglich wieder die Sprachdatei Einlesen, und Du kannst alle neu hinzugekommen Ausdrücke übersetzen. Das Plugin holt sich mit dem Einlesen alle Änderungen aus dem Parent-Theme, und integriert diese in die Child-Theme-Sprachdatei.
… ein Theme oder Plugin (oder auch WordPress selbst) aktualisiert hast, welches Du direkt übersetzt hast?
Auch das ist relativ einfach: Zuerst musst Du die Sprachdatei mit Deinen Änderungen wieder in WordPress hochladen, da sie beim Update überschrieben oder gelöscht wurden (je nachdem ob das Theme/Plugin deutsche Sprachdateien enthält). Danach musst Du die Sprachdatei im CodeStyling Localization Plugin wieder Einlesen. Nun kannst Du wie gewohnt alle neuen Ausdrücke übersetzen.
Alles klar zum Übersetzen in WordPress oder hast Du noch Fragen?
Ich habe deine Anleitung jetzt auch gefunden und meine Website auf deutsch eingestellt. Danke für die Hinweise. Es war mir vorher nicht klar, wie die Sprachdateien auf WordPress und im Theme „funktionieren“, bzw. wo sie überhaupt liegen.
Hi Holger,
Schön dass Dir der Artikel geholfen hat und Danke für den Kommentar 🙂
Beste Grüsse,
Michael
Hallo
Ich habe das Problem, dass es beim einlesen einfach nicht weiter geht. Woran kann das liegen?
VG
Hi Melanie,
Die Entwicklung des „Codestyling Localization“ Plugin ist mittlerweile eingestellt worden und man findet es gar nicht mehr im WordPress Plugin Verzeichnis. Es kann gut sein, dass es nicht mehr funktioniert…
Probiere doch mal das „Loco Translate“ Plugin aus. Das verwende ich jetzt, wenn ich Übersetzungen machen will. Vielleicht klappt es damit 🙂
Beste Grüsse,
Michael