WordPress Plugin auf deutsch übersetzen

WordPress ist eine wunderbares CMS. Und das wirklich wunderbare ist, dass es unzählige Plugins und Themes gibt, die größtenteils auch kostenlos angeboten werden. Doch was stört ist, dass nicht immer alles in deutscher Sprache bereitgestellt wird. WordPress an sich wird in einer deutschen Version bereitgestellt. Hier sind viele fleißige Hände am Werk, die dies bewerkstelligen (dies ist ein Lob!). Doch eben nicht alles, was man zusätzlich installieren möchte, ist in deutscher Sprache zu haben (siehe auch hier).

WordPress nutzt GetText für die Lokalisierung der Sprache. Wenn man sich an diesen Standard hält, können weitere Sprachen ohne Änderung des Quelltextes einfach durch hinzufügen einer weiteren Sprachdatei hinzugefügt werden. Als Basis dient die Einstellung der Sprache innerhalb von WordPress. Im Deutschen ist „de_DE“ voreingestellt. Somit versuchen sämtliche Komponenten, eine Sprachdatei zu finden, die diese Kodierung enthält. Wenn nicht, wird der „default“ der Komponente angezeigt.

So geht Ihr vor:
Zuerst muss ermittelt werden, ob der Programmierer überhaupt an eine Mehrsprachigkeit gedacht hat. Wenn die einzelnen Sprachfragmente „hardcoded“ im Text stehen, dann müsst Ihr diese mühsam Stelle für Stelle ändern. Ihr erhaltet dann eine eigene Version der Komponente, die mit jeder Veröffentlichung des ursprünglichen Programmierers automatisch veraltet ist. Also eine schlechte Methode.
Schaut in den Ordnern der Komponente nach, ob Ihr auf .mo-Dateien (Beispiel: „pda-theme-de_DE.mo“) stoßt. Dies ist ein erster Hinweis, dass der Programmierer an Mehrsprachigkeit gedacht hat. Allerdings sollte keine „de_DE.mo“ Datei zu finden sein. Denn wenn diese Datei vorhanden ist, die Komponente in einer anderen Sprache zu Euch spricht, dann ist was anderes faul ….
Gehen wir davon aus, dass andere Sprachen vorliegen. Dann schaut sicherheitshalber Euch mal eine PHP-Seite aus der Komponente an. Ihr solltet innerhalb des Codes auf Stellen wie

__('Edit','pda-theme');

oder

_e('by','pda-theme');

stoßen. Also Funktionen, die mit zwei Unterstrichen „__“ oder mit „_e“ beginnen. Dies bedeutet, dass hier eine Sprachdatei eingebunden wurde. Den Namen der Datei steht als zweiter Parameter innerhalb der Klammer. In diesem Beispiel ist es „pda-theme“. Der erste Parameter der Klammer (hier „Edit“ und „by“) ist der Text in Originalsprache.

Kurzer .mo und .po-Ausflug
Die mo-Datei (Machine Object) ist eine kompilierte Version der Sprachdatei. Dies ist Euer Ziel. Diese Datei kann im Prinzip nicht mehr geändert werden, sondern muss von Euch neu erzeugt werden. Ausgang Eurer Übersetzung ist eine Datei, die mit .po (oder .pot. – Portable Object Template – Template für tragbare Objekte) endet. Diese Datei könnt Ihr einmal mit einem Texteditor öffnen. Ihr entdeckt darin folgenden Aufbau:

#
#: archive.php:19
#: search.php:6
msgid "Search Results"
msgstr "Suchergebnisse"

Die MessageID („msgid“) bezeichnet die Textstelle (erster Parameter der Funktion „__“ oder „_e“) sowie den „msgstr“, also die Übersetzung. Wenn Ihr die „default.po“ findet, sollte der Message-String leer sein (msgstr „“), da ja noch keine Übersetzung in diesem Template vorhanden ist.
Theoretisch könnte man die Übersetzung schon jetzt via Texteditor vornehmen, doch wir brauchen eh ein spezielles Tool für die Erstellung der .mo-Datei. Daher von dieser Idee erst einmal Abstand nehmen.

Es ist keine .po oder .pot-Datei vorhanden
Nun, man kann dann beim Programmierer nachfragen. Oder man erstellt sich diese Datei selbst. Ich selbst habe unzählige Stunden googeln hinter mir, bis ich ein Tool gefunden habe, das diese Aufgabe erledigt. Und dies möchte ich Euch nicht vorenthalten. Es ist ein Online-Converter. Hier könnt Ihr einzelne Dateien, aber auch ein ganzes Projektverzeichnis konvertieren. Gerade letzteres ist wichtig, denn die wenigsten Plugins oder Templates bestehen nur aus einer Datei.

.po-Dateien übersetzen und .mo-Datei erstellen
Hier bemühen wir ein Tool, das den treffenden Namen poedit trägt. Dieses Tool einfach installieren und starten. Nach einigen selbsterklärenden Fragen habt Ihr die Möglichkeit, die .po-Datei zu laden. Nun kann jedes Wort oder Satzelement beliebig übersetzt werden (dies könnte man auch direkt in der Textdatei erledigen). Beim Speichern jedoch erstellt poedit automatisch die notwendige .mo-Datei.

Richtige Namensgebung
Geben Sie schon der .po-Datei, wenn Sie diese selbst erstellen, einen passenden Namen. Der Dateiname ist normalerweise wie folgt aufgebaut: Der erste Bestandteil des Dateinamen ist i.d.R. der Name des Komponente. Wenn weitere .mo-Dateien vorhanden sind, richten Sie sich an diesen Dateien. Wenn nicht, schauen Sie in den Quelltext der php-Dateien. Der zweite Parameter der „__“ und „_e“-Funktionen bestimmt den Namen der Datei. Es folgt ein „-„ und dann für die deustche Sprache ein „de_DE.mo“ bzw „.po“. Wenn Sie also in den php-Dateien den Funktionsaufruf „__(‚Edit‘,’pda-theme‘)“ finden, muss Ihre Datei mit „pda-theme“ starten. Der korrekte Dateiname lautet in unserem Beispiel: „pda-theme-de_DE.mo“

Wohin die .mo-Datei kopieren?
Wenn mehrere .mo-Dateien vorhanden sind, haben Sie es einfach: .mo-Dateien unterliegen einem „Gruppenzwang“ und sind ungern alleine … ? Also einfach zu den anderen Dateien hinzukopieren.
Wenn Sie diese Hilfe nicht haben, müssen Sie den php-Quelltext bemühen. Achten Sie auf den Funktionsaufruf „load_theme_textdomain“, also beispielweise:

load_theme_textdomain('pda-theme');

Sie müssen sich an diesen Aufruf halten (oder das Projekt entsprechend anpassen. Weitere Hinweise und Beispiele zu load_ theme_textdomain erhalten Sie bei wordpress.org.

Schreibe einen Kommentar