WP Theme übersetzen

In diesem Beitrag beschreibe ich, wie die Lokalisierung in WordPress funktioniert und wie Du am schnellsten Sprachanpassungen am aktiven Theme vornimmst. Das Theme, welches ich als Beispiel verwende, ist das “Patti – Parallax One Page WordPress Theme” von DelicoiusThemes.

Für diese und die meisten WP Seiten verwende ich ein WordPress mit deutscher Lokalisierung, welche auf der deutschsprachigen WordPress Seite: https://de.wordpress.org/ runtergeladen werden kann. Die Sprachdateien des WP findest Du nach erfolgreicher Installation im Verzeichnis /wp-content/languages/.

WordPress-Themes werden mit dem GNU gettext framework lokalisiert. Das ist für WordPress und jedes Plugin üblich. Was uns aber hauptsächlich interessiert, sind die Sprachdateien des eingesetzten Themes. An dieser Stelle eine Übersicht der Sprachdateien 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.

.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. Es gibt zwar ebenfalls den Ländercode de_CH – von diesem rate ich aber ab. Da für WordPress und Plugins keine de_CH-Übersetzungen existieren.

.MO (Machine Object)

Diese Datei ist die kompilierte Version der .PO Datei und wird meist automatisch beim Speichern der .PO Datei generiert.

 

Die Sprachdateien des aktiven Themes finden sich unter /wp-conent/themes/patti/lang/ (patti ist hier der Name meines Themes). In den meisten ist die Sprache des eingesetzten Themes in Englisch. Demnach findest Du eine en.mo und en.po Datei im /lang/ Verzeichnis.

Jetzt noch etwas grundsätzliches zu den gettext-Komponenten. Damit überhaupt Theme-Codes übersetzt werden können, müssen die Texte innerhalb der PHP-Funktion __() oder _e() stehen.  Wobei __() genutzt wird, wenn der Text sich bereits innerhalb von PHP-Code befindet:

_e() wird verwendet, wenn der Text ohne Übersetzung nur in HTML stehen würde:

Soweit zu den Grundlagen betreffend Funktionsweise der WordPress, Plugins und Themes Lokalisierung. Nun zum Übersetzen. In den meisten Fällen möchte ich nur einzelne Textbausteine, wie zum Beispiel “Search, Read more, Nothing found, Leave a comment, Comments are closed” im Frontend ändern. In solchen Fällen verwende ich dafür das Plugin Loco Translate. Das Plugin ist einfach aufgebaut und erklärt sich eigentlich von selbst.

Wer mehr als ein paar Textbausteine oder sogar ein ganzes Theme übersetzen darf, dem empfehle ich die Pro-Version der Software Poedit, welche für Windows, Mac und Linux (19.99$) erhältlich ist. Diese enthält unter anderem eine Funktion, welche Übersetzungvorschläge unterbreitet, was das Überetzen erleichtet. Wobei die Übersetzungsvorschläge noch zwischen maschineller und menschlicher Übersetzung unterschieden werden. Eine zusätzliche Hilfe kann auch ein vorhandenes WordPress Theme sein – in welchem nach den noch nicht übersetzten Textbausteinen gesucht werden kann. Dabei öffne ich mit Poedit die .po Dateien der Themes und wechsle zwischen diesen hin und her.

Ein Theme zu übersetzen, kann schon etwas Zeit in Anspruch nehmen. Für das Patti Theme habe ich 544 Textbausteine übersetzt, was an 2924 Wörtern und 20868 Zeichen entspricht. Nach erfolgreicher Übersetzung ist die .mo und .po Datei hochzuladen. Da ich selbst ein Child-Theme für Patti verwende, lege ich unter /wp-content/themes/patti-child/ den Ordner /lang/ an und lade die Sprachdateien de_DE.mo und de_DE.po darin hoch.

Bitte nicht vergessen, dass die Sprachdateien beim nächsten Update überschrieben werden, sofern Du kein Child-Theme verwendest. Daher für Sprachdateien, welche Du direkt übersetzt hast ein Backup anlegen.