Zum Inhalt springen Zur Fußzeile springen

webfluence hat 5 von 5 Sternen bei 4 Bewertungen auf Google My Business.

Kostenfreier Erstkontakt

Telefon 0345 52485943

Mail-Adresse r.rosanke@webfluence.de

0345 52485943 r.rosanke@webfluence.de

WordPress übersetzen

Erfahre, wie Übersetzungen in WordPress funktionieren. – Internationalisierung für Entwickler – Lokalisierung für Anwender

„Millionen von Menschen aus den verschiedensten Regionen der Erde nutzen WordPress.

Damit das System möglichst vielen Menschen zugänglich ist, können der Core sowie Themes, Plugins und Gutenberg-Blöcke in die verschiedensten Sprachen übersetzt werden.

Wie das funktioniert, erfährst du in diesem Artikel.“

Robert Rosanke,
Webdesigner

Inhaltsverzeichnis

  1. Wie funktioniert die WordPress-Übersetzung?
  2. Warum das Ganze?
  3. Internationalisierung: Übersetzungsfähige Inhalte im Quelltext auszeichnen
    1. Text Domain festlegen
    2. Zu übersetzende Texte markieren
    3. Übersetzungskatalog erstellen (POT-Datei)
  4. Lokalisierung: Inhalte übersetzen
    1. Texte übersetzen: PO und MO-Dateien erstellen mit Poedit
    2. Block-Übersetzungen bereitstellen: JSON-Dateien erstellen mit WP-CLI
    3. Den Core, Themes und Plugins aus den offiziellen Verzeichnissen übersetzen

Wie funktioniert die WordPress-Übersetzung?

WordPress bietet eigene Übersetzungsfunktionen auf Basis der gettext-Bibliothek (engl).

Diese Übersetzungsfunktionen ermöglichen es Entwicklern direkt im Quelltext Inhalte zu markieren, die in andere Sprachen übersetzt werden dürfen.

Dabei handelt es sich in der Regel um

Alle übersetzungsfähigen Inhalte werden also auf Englisch im Quelltext hinterlegt, mit einer Übersetzungsfunktion markiert und anschließend in einer POT-Datei gesammelt angegeben.

Auch genannt: Internationalisierung.

Übersetzer können die in der POT-Datei gesammelten Inhalte anschließend mit Programmen wie Poedit in die gewünschten Sprachen übersetzen und die Themes und Plugins somit für eine breitere Masse an Anwender attraktiv machen.

Auch genannt: Lokalisierung.

Warum das Ganze?

Ich verstehe, dass es auf den ersten Blick unnötig scheint Themes und Plugins übersetzungsfähig zu programmieren.

Schließlich könnten bei einem durchschnittlichen Theme bestimmt ein bis zwei Stunden gespart werden, wenn die Texte einfach in deutscher Sprache angegeben und auf die englische Basis verzichtet werden kann.

(Diese 2 Stunden „Gehalt“ für einen Web-Dienstleister können – besonders für kleinere Unternehmen – tatsächlich ein Dealbreaker sein.)

„Außerdem nutzen wir die Software eh nur für uns selber. Und wir sprechen doch alle Deutsch…“

Meine Meinung: Es kommt auf den Kontext an, in dem eine Software verwendet wird.

Dementsprechend würde ich grundsätzlich empfehlen wachstumsorientierte Projekte direkt übersetzungsfähig zu machen.

Internationalisierung

Noch einmal zum wieder ins Gedächtnis holen: Internationalisierung ist der erste Schritt, um ein Theme oder Plugin für Übersetzer vorzubereiten, damit diese es mehrsprachig machen können.

Schritt 1: Text Domain festlegen

Als erstes legst du im Header deines Themes oder Plugins einen einzigartigen Bezeichner für deine Übersetzungen fest.

Dieser hilft WordPress dabei die Übersetzungen deines Themes oder Plugins von denen anderer Module zu unterscheiden.

/*
 * Plugin Name: …
 * Author: …
 * Text Domain: wf-review-badge
 */

Die Text Domain kann frei von dir festgelegt werden.

Ich verwende der Einfachheit halber immer einen Prefix, der um den Plugin Namen oder den Ordnernamen des Plugins erweitert wird.

Schritt 2: Zu übersetzende Texte markieren

Nun müssen die zu übersetzenden Textinhalte an die von WordPress bereitgestellten Übersetzungsfunktionen übergeben werden.

So können alle Inhalte einfach markiert und im weiteren Verlauf für die Übersetzer in einer Übersetzungsdatei gesammelt werden.

Hier einige Basis-Funktionen zum Verständnis:

Tipp für Gutenberg-Entwicklung

Die Übersetzungsfunktionen stehen auch für die Entwicklung von WordPress Blöcken in JavaScript bereit.

Füge die benötigten Übersetzungsfunktionen einfach am Anfang deines Block-Scripts hinzu:

const { __, _x, _n } = wp.i18n;

Dann kannst du die Funktionen einfach wie in PHP verwenden.

Hinweis: Ich habe nicht geprüft, ob alle PHP-Funktionen auch in JavaScript funktionieren.

Die meiner Meinung nach wichtigsten sind im Code-Snippet oben zu sehen und funktionieren wunderbar.

Schritt 3: Übersetzungskatalog erstellen (POT-Datei)

Sobald alle zu übersetzenden Textinhalte im Quelltext ausgezeichnet sind, musst du als Entwickler noch eine Datei erstellen, die die zu übersetzenden Inhalte auflistet.

Dazu wird in WordPress eine POT-Datei verwendet.

Diese Datei kannst du dann an die Übersetzer schicken – oder selber übersetzen – und dann ist die Übersetzung schon so gut wie durch.

Einmal verstanden, wie es funktioniert, ist es eigentlich super simpel.

POT-Datei mit der Kommandozeile erstellen

Gehe dazu im Terminal – bei Windows heißt es Eingabeaufforderung – zu deinem Plugin-Ordner und gib folgenden Befehl ein:

wp i18n make-pot . languages/wf-review-badge.pot

Wenn der Befehl durchgelaufen ist, sollte sich in /languages eine POT-Datei mit allen zu übersetzenden Textinhalten befinden.

Mehr zum make-pot-Befehl (engl)

POT-Datei mit Plugin Loco Translate erstellen

Wenn du keine Ahnung von der Kommandozeile hast und auch keine Lust hast Zeit in das Erlernen diese mächtigen Tools zu investieren, dann kannst du das kostenfreie Plugin Loco Translate aus dem offiziellen Plugin-Verzeichnis auf deiner Entwicklungsumgebung installieren und aktivieren.

Unter dem neu erschienen Menüpunkt wählst du das zu übersetzende Theme/Plugin aus und erstellst die POT-Datei.

Damit ist die Internationalisierung abgeschlossen. nun geht es an das Übersetzen der Inhalte.

Lokalisierung

Sobald die POT-Datei erstellt ist, geht es an das Übersetzen der darin hinterlegten Textinhalte.

Wenn du ein Plugin oder Theme im offiziellen WordPress-Verzeichnis hochlädst, dann kannst du dir diesen Schritt sparen.

Software aus dem offiziellen Verzeichnis kann von allen Menschen mit einem WordPress-Profil auf translate.wordpress.org übersetzt werden.

Dementsprechend kannst du das Projekt in die Sprachen deiner Kernzielgruppe übersetzen und den Rest den Usern überlassen, die das Plugin in anderen Sprachen nutzen wollen.

Texte übersetzen: PO und MO-Dateien erstellen mit Poedit

Wenn du dein entwickeltes Theme oder Plugin nicht über das offizielle Verzeichnis vertreibst, dann musst du die übersetzten Textinhalte im Projektordner mitliefern.

Für diesen Fall nutze ich Poedit.

Poedit ist eine – für diesen Zweck kostenfreie – Übersetzungssoftware, mit der du aus der vorhin erzeugten POT-Datei die für WordPress wichtigen Übersetzungen erstellen kannst.

Öffne Poedit und wähle auf dem Willkommensbildschirm „Neue Übersetzung erstellen“ aus.

Daraufhin öffnet sich ein Popup zum auswählen der vorhin erstellten POT-Datei.

Navigiere also zu deinem Ordner languages und wähle die POT-Datei aus.

Anschließend wählst du die Sprache, in die du die Inhalte übersetzen willst und schon kannst du die Inhalte Zeile für Zeile übersetzen.

Wollte nicht riskieren, meine fertigen Übersetzungen aus Versehen während der Tutorial-Erstellung zu überschreiben. Bei dir sollte die Spalte „Übersetzung“ natürlich mit der Sprache übereinstimmen, in die du deine Inhalte übersetzt…

Sollte es mal zu einem Update der Textinhalte kommen, kannst du die neuen Textinhalte über den Menüpunkt Katalog → Aus POT-Datei aktualisieren in deine bestehende PO-Datei importieren, sodass du lediglich die neuen Inhalte übersetzen musst.

Beim abspeichern den richtigen Dateinamen wählen

Angenommen, du hast die Textinhalte aus dem Quelltext von Englisch nach Deutsch übersetzt, dann sollten nun folgende Dateien in /languages abgespeichert sein:

Die Bezeichnung der MO und PO Dateien folgt dem Muster [Text Domain]-[Local Code].[Dateiendung]

Den „Local Code“ findest du auf translate.wordpress.org Suche mit STRG + F nach der Sprache, in die du deine Inhalte übersetzen willst, und nutze den grau hinterlegten Bezeichner.

WordPress mitteilen, wo sich die Übersetzungsdateien befinden

Damit WordPress die künftigen Übersetzungen findet, muss dem System per load_plugin_textdomain() mitgeteilt werden, in welchem Ordner sich die Sprachdateien befinden.

function wft_load_plugin_textdomain() {
  load_plugin_textdomain( 'wf-testimonials', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
}
add_action('init', 'wft_load_plugin_textdomain');

Code-Erklärung:

Block-Übersetzungen bereitstellen: JSON-Dateien erstellen mit WP-CLI

Wenn du Übersetzungsinhalte für einen WordPress-Block anbieten willst, dann musst du nach der Erstellung der PO- und MO-Dateien mit Poedit noch eine kleine Extrameile gehen, damit der Gutenberg-Editor die für ihn wichtigen Übersetzungen erhält.

Gehe dazu im Terminal – bei Windows heißt es Eingabeaufforderung – zu deinem Plugin-Ordner und gib folgenden Befehl ein:

wp i18n make-json /languages/wf-review-badge-de_DE.po –no-purge –pretty-print

Code-Erklärung:

Wenn du deine Software in mehreren Sprachen anbieten willst, musst du diesen Vorgang für jede PO-Datei wiederholen.

Mehr zum make-json-Befehl (engl)

WordPress auf die JSON-Datei aufmerksam machen

Sobald die JSON-Datei(en) erstellt sind, benötigt WordPress noch einen Hinweis, in welchem Ordner das System nach diesen Dateien suchen soll. Das geht mit der Funktion wp_set_script_translations().

function wft_set_script_translations() {
	wp_set_script_translations( 'wf-testimonials-block-editor', 'wf-testimonials', plugin_dir_path( __FILE__ ) . 'languages'  );
}
add_action( 'init', 'wft_set_script_translations' );

Code-Erklärung:

Bonus-Tipp zum Frust vermeiden

Standardmäßig werden per make-json Befehl erzeugte JSON-Dateien unter dem Dateinamen der PO-Datei, erweitert um einen Hash, gespeichert.

Manchmal findet WordPress die Dateien jedoch nicht. Auch nicht, wenn der Pfad zum Verzeichnis in wp_set_script_translations() wirklich stimmt.

Wenn ich den Hash im Dateinamen der JSON-Datei durch den $handle der JavaScript-Datei des Blocks ausgetauscht habe, dann hat es meist funktioniert.

Vielleicht hilft dir das weiter.

Den Core, Themes und Plugins aus den offiziellen Verzeichnissen übersetzen

Auf translate.wordpress.org kannst du deine Lieblingsthemes und Plugins übersetzen.

Dazu brauchst du lediglich einen Account auf wordpress.org und ein paar ruhige Minuten.

Du kannst die Inhalte direkt im Browser übersetzen ohne dir zusätzliche Software runterladen oder Programmierkenntnisse aneignen zu müssen.