Wie erstelle ich ein sprachunabhängiges WordPress-Theme (Teil 3)

08 Mrz
8. März 2011
Theme übersetzen

Theme übersetzen

Nun haben wir bereits alle HTML-Texte, wie im Teil 1 beschrieben, ersetzt. Mit dem 2. Teil der Serie haben wir alle Ausgaben, welche php erzeugt, umgewandelt. Heute, im 3. Teil geht es darum diese Texte auch zu übersetzen und WordPress in die richtige Sprache zu bringen.

1. Wie erkennt WordPress die Sprache?

Wenn wir die Datei wp-config.php öffnen finden wir ungefähr in der Mitte der Datei folgende Zeile SourceCode:

1
2
3
...
define ('WPLANG', 'de_DE');
...

Diese legt fest in welcher Sprache WordPress benutzt wird. Für die Werte kannst Du bei WordPress [EN] nachschauen, welche Sprachen es bereits gibt. Aber für uns dürften folgende ausreichen.

  • Englisch: en_EN
  • Deutsch: de_DE
  • Französisch: fr_FR
  • Spanisch: es_ES
  • Italienisch: it_IT

Wenn Du in eine fremde Sprache übersetzt, solltest Du sicherstellen, dass auch die entsprechenden Sprachdateien (für Französisch zum Beispiel fr_FR.mo und fr_FR.po) im Verzeichnis /wp-content/languages/ vorhanden sind. Für den Anfang reicht es uns, dass wir hier die Sprache ändern können. Wie wir das ganze “on-the-fly” (also der Benutzer kann die Sprache selber umstellen) machen, werden wir in einem der folgenden Teile der Artikelserie kennenlernen.

2. Ein Hilfprogramm zum Übersetzen

Dies ist der nächste Schritt. Wir benötigen ein Programm, welches diese po- und mo-Datei erstellen kann. Normalerweise wird dies mit dem freien und systemunabhängigen Programm Poedit erledigt. Du kannst es Dir auf der Website poedit.net [EN] herunterladen und gleich installieren.

Einrichten des Katalogs

Projektinfo festlegen

Projektinfo festlegen

Dazu starten wir Poedit und klicken auf den Befehl Neuer Katalog… im Menü Datei. Nun können wir im Dialog folgendes ergänzen. Achte bitte darauf, dass der Teil Projektinfo aktiv ist.

Im ersten Feld gibst Du den Namen des Themas und eine Versionsnummer (normalerweis 1.0) ein. Danach Deinen Namen und Deine eMail-Adresse. Wenn Deine Originaltexte in Deutsch vorliegen, wählst Du jetzt German aus. Im nächsten Feld stellst Du dein Land ein (AUSTRIA oder GERMANY). Die beiden Zeichensätze kannst Du jetzt auf utf-8 festlegen. Wie das ganze aussehen kann, habe ich Dir im ScreenShot links dargestellt.

Jetzt können wir auf das Register Pfade wechseln.

Pfade für Poedit festlegen

Pfade für Poedit festlegen

Als Basispfad gibst Du einfach einen Punkt ein. Nun kannst Du die restlichen Verzeichnisse, in den Programmdateien Deines Themes liegen angeben. Du klickst dabei auf eine leere Zeile im weißen Fenster und danach auf den Bearbeiten-Knopf (dies ist der erste in der Zeile mit den Buchstaben a|e als Symbol). Damit alles sauber funktioniert, muss Du wirklich jeden einzelnen Pfad, welcher php-Dateien enthält und innerhalb deines Themes liegt aufführen. Auch hier siehst Du links einen ScreenShot als Beispiel.

Schlüsselwörter (Befehle) für Poedit definieren

Schlüsselwörter (Befehle) für Poedit definieren

Nun kommen wir zum letzten Register mit dem Namen Schlüsselwörter. Hier können wir festlegen, welcher Teil des SourceCodes von Poedit untersucht werden soll. Damit kann das Programm eine Liste der zu übersetzenden Text zusammenstellen.

Wir haben in den vorherigen Teilen die beiden Funktionen __() und _e() benutzt. Dies können wir hier auch angeben. Du musst nur dieKklammern weglassen. Sobald Du bei Zeilen eingetragen hast, kannst Du den Dialog mit OK bestätigen.

Speichern der po-Datei

Speichern der po-Datei

Der letzte Schritt für die Vorarbeit, ist das Speichern der Übersetzungsdatei. Dieser Dialog wird sofort nach der Bestätigung angezeigt. Als Dateiname vergibst Du das passende Sprachkürzel (in welcher Sprache liegen die Originaltexte vor), wie oben in der Liste gezeigt. Nun musst Du das passende Verzeichnis auswählen. Dies ist der Basisordner Deines Themes (bspw. /wp-content/themes/guru-20/).

Die Basistexte einlesen

Basistexte in Poedit

Basistexte in Poedit

Sobald Du die Datei gespeichert hat, wird Poedit versuchen die Text einzulesen. Dies kannst Du auch jederzeit manuell mit dem Knopf Aktualisieren erledigen. Dies ist besonders dann wichtig, wenn Du etwas im SourceCode verändert hast.

Vielmehr müssen wir mit der Basisdatei nicht machen. Wir benötigen Sie nur als Grundlage, falls irgendeine Übersetzung schiefgeht.

Die Texte zum Übersetzen einlesen

Für die Zielsprache wiederholen wir den ersten Schritt nochmals vollständig. Nur bei den Basisinformationen geben wir bei Land und Sprache, das Zielland (zum Beispiel UNITED STATES) und die Zielsprache (beispielsweise und English) an. Den Rest können wir wie oben einstellen. Nun speichern wir die Datei mit dem passenden Sprachkürzel und lassen Poedit die Texte nochmals einlesen.

In Poedit übersetzte Texte

In Poedit übersetzte Texte

Nun bist Du gefordert! Du musst jede einzelne Zeile durchgehen und übersetzen. Den zu übersetzenden Text, trägst Du im untersten Fenster ein. Achte darauf, dass die beiden Anführungszeichen erhalten bleiben. Genau dazwischen schreibst Du nämlich den neuen Text. Wie das aussehen kann, siehst Du im ScreenShot links.

Sobald Du speicherst erzeugt Poedit die passende mo-Datei. Darum musst Du dich nicht kümmern. Mit diesem Schritt ist die Übersetzung abgeschlossen. WordPress erkennt die passenden Dateien und durch die beiden “Übersetzungs”-Funktionen, werden auch die richtigen Texte eingeblendet.

Tipps zum Übersetzen

Kontextmenü in Poedit

Kontextmenü in Poedit

Es wird vorkommen, dass der Text den Du übersetzen musst nicht mehr ganz klar ist. Dann machst Du einfach einen Rechtsklick auf die Zeile und siehst aus welcher Datei er kommt und in welcher Zeile er steht. Damit kannst Du im SourceCode nachschauen und Dir ist wieder klar, wie Du es übersetzen sollst.

Übersetzen mit Platzhaltern

Übersetzen mit Platzhaltern

Wenn Du Texte mit Platzhaltern übersetzt, stell Dir einfach die passende Zahl oder den passenden Text vor, dann geht es leichter. Du musst aber im Übersetzten Text auch den Platzhalter (genau gleich!) anführen. Sonst wird php den Befehl nicht mehr richtig verarbeiten können.

Du kannst sogar Datum und Zeitangaben übersetzen. Dazu musst Du im SourceCode nur die entsprechenden Formate (dies sind ebenfalls Texte) in die __()-Funktion klammern. Für die möglichen Formate schaust Du am Besten in das Handbuch von PHP [EN].

Fazit

Nun bist Du sicher die nächsten Tage beschäftigt, um Dein Theme zu übersetzen. Aber wir sind noch nicht fertig. In den nächsten Teilen werden wir uns um das Frontend kümmern müssen. Wie sollen sonst Deine Leser die passende Sprache auswählen können. Und ein weiteres Problem, das Übersetzen der Posts, Bildtitel, Kategorien und Schlagwörter steht uns auch noch bevor.

Tags: , , ,
1 reply
  1. Sabine says:

    Super Erklärung. Toll wie es im Detail alles Erläutert wird. So macht das Lesen richtig Spass. Danke Sabine

Kommentarfunktion deaktiviert.