WordPress Theme Übersetzung

4

WordPress bietet eine sehr interessante Funktion, die es erlaubt, ein Theme mit Sprachdateien auszustatten und damit alle themespezifischen Ausgaben in jede beliebige Sprache zu übersetzen. Da ich diese Funktion nun auch in mein Theme integriert habe, möchte ich Ihnen in diesem Artikel zeigen, wie man ein WordPress-Theme für die Übersetzung vorbereitet und dieses anschließend übersetzt.

1) Theme für die Übersetzung vorbereiten

Bevor man mit dem eigentlichen Übersetzen beginnen kann, muss man zunächst einmal überprüfen, ob das Theme überhaupt für eine Übersetzung geeignet ist. Hierzu wirft man einen Blick in die functions.php des Themes. In dieser sollte eine sogenannte Textdomain mittels des nachfolgenden Befehls eingebunden sein. Ist dies nicht der Fall, muss die Codezeile ergänzt werden.

load_theme_textdomain('lbprojects', get_template_directory() . '/languages');

Weiterhin muss vor jeder Ausgabe im Quelltext entweder die Funktion __() oder _e() verwendet werden, damit WordPress erkennt, dass hier eine zu übersetzende Zeichenkette folgt.
Die gettext-Funktionen haben dabei zwei Parameter, einmal die Zeichenkette, die übersetzt werden soll, und den sogenannten Themeslug, also eine für das Theme spezifische Bezeichnung. Ist im Theme noch kein Slug definiert (dieser sollte auch in der functions.php zu finden sein), kann man sich einen beliebigen Namen ausdenken. In meinem Fall wäre der Themeslug lbprojects.

Jetzt gilt es noch zwischen den beiden zur Verfügung stehenden Funktionen zu unterscheiden. Die Funktion _e() wird immer dann verwendet, wenn der Text direkt innerhalb des HTML Quellcodes ausgegeben wird.

<a href="#"><?php _e('Direkte Ausgabe des Textes in HTML', 'lbprojects'); ?></a>

Im Gegensatz dazu wird die Funktion __() dann genutzt, wenn die Ausgabe innerhalb einer php-Funktion erfolgt, z.B. innerhalb des echo-Befehls.

<?php echo __('Ausgabe des Textes innerhalb einer php-Funktion', 'lbprojects'); ?>

2) Verzeichnis für die Sprachdateien anlegen

Hat man alle Ausgaben innerhalb des Themes mit den gettext-Funktionen versehen, muss noch ein Verzeichnis innerhalb des Themes erstellt werden, in das später die Sprachdateien gespeichert werden. Dieses wurde innerhalb der obigen Funktion load_theme_textdomain() festgelegt. In diesem Fall muss ein Ordner mit dem Namen languages in der obersten Verzeichnisebene des Theme-Verzeichnisses erstellt werden.

3) Übersetzung mit dem Codestyling Localization Plugin

Nun kann man mit der eigentlichen Übersetzung beginnen. Dazu kommt das Plugin Codestyling Localization zum Einsatz, das kostenlos aus dem WordPress Plugin Directory heruntergeladen werden kann.
Wurde das Plugin heruntergeladen und installiert, kann man es über Werkzeuge -> Lokalisierung im Adminpanel erreichen. In einer Liste sind alle Plugins und Themes aufgelistet, die man in seiner WordPress-Installation nutzt. Unter anderem ist dort auch das zu übersetzende Theme aufgelistet. Das nachfolgende Bild zeigt die Ansicht des Themes. Nach einem Klick auf “Neue Sprache hinzufügen” öffnet sich ein Fenster, in dem man auswählen kann, in welche Sprache das Theme übersetzt werden soll. In diesem Fall wäre das Deutsch, also die Lokalisierung de_DE.
Ist das geschehen, klickt man auf den Button “Einlesen“, um alle Zeichenketten, die mit den obigen gettext-Funktionen versehen sind, einzulesen.

Ansicht des Themes im Codestyling Localization Plugin

Anschließend gelangt man über den Button “Bearbeiten” zu dieser Ansicht. Hier sind alle Ausgaben aufgelistet, die übersetzt werden können. (Auf dem Bild sind bereits alle Zeichenketten übersetzt worden.)

Überblick über alle zu übersetzenden Zeichenketten

Um einen Ausdruck zu übersetzen klickt man auf “Bearbeiten“, woraufhin sich das unten dargestellte Fenster öffnet. Hier gibt man einfach die entsprechende Übersetzung ein und speichert diese mit einem Klick auf “Speichern“.

Ansicht des Übersetzungseditors

Hat man die Übersetzung abgeschlossen, muss noch eine .mo-Datei im vorher erstellten Ordner languages angelegt werden. Dies geschieht automatisch bei einem Klick auf den Button “erstelle mo-Datei“.

Über den gekennzeichneten Button wird die Sprachdatei erstellt.

Nun ist das Theme fertig übersetzt und alle Ausgaben sollten nun in der entsprechenden Sprache verfügbar sein. Welche Sprache verwendet wird, hängt von der verwendeten WordPress-Installation ab. Hat man die deutschsprachige Version von WordPress installiert, wird die Datei de_DE.mo gesucht, und falls diese vorhanden ist (was nach der Übersetzung der Fall ist), werden alle Zeichenketten durch diejenigen aus der oben angelegten Übersetzung ersetzt. Hat man jedoch z.B. die englische Version von WordPress installiert, wird die deutsche Übersetzung nicht angezeigt.

Möchte man Ergänzungen oder Korrekturen an der Sprachdatei vornehmen, liest man die Datei einfach neu ein, ändert die betreffenden Zeichenkette oder ergänzt eine Übersetzung und erstellt anschließend die .mo-Datei mit einem Klick auf “erstelle mo-Datei” neu.

Hinterlasse eine Antwort

Ihre Email-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert.

*

Kommentare umschalten

4 Kommentare zu "WordPress Theme Übersetzung"

  • [...] bzw. “Artikelbild” in der deutschen WordPress-Version erhält (das geschieht durch die Übersetzungsfunktion). Über die beiden Filter manage_posts_columns und manage_pages_columns wird die neue Spalte nach [...]

  • Selena Henn sagt:

    Ich habe ein benutzerfreundliche, webbasierte Lokalisierungstool um WordPress Themen zu übersetzen gefunden – https://poeditor.com/ Es gibt sogar ein Plugin, das integriert die POEditor API in Ihre WordPress – http://wordpress.org/extend/plugins/poeditor/ Ich empfehle es.

  • Christian sagt:

    Vielen Dank für diesen hilfreichen Beitrag. Ich habe mich immer gewundert, warum das Plugin nicht alles im Theme erkennt. Nun habe ich im Code wie hier beschrieben ein paar Anpassungen vorgenommen und jetzt funktionierts! :-)