WordPress-Themes und Plugins ins Deutsche übersetzen

WordPress-Themes und Plugins ins Deutsche übersetzen

Du hast genau das richtige Theme oder Plugin für Dein WordPress-Blog gefunden – nur gibt es dafür unglücklicherweise keine oder nur eine schlechte deutsche Übersetzung? Der ausführliche Workshop zeigt, wie Du die Lokalisierung auf Deutsch oder eine andere Sprache selbst machst.

WordPress verwendet automatisch die unter Einstellungen – Allgemein vorgenommene Sprache auch für Themes und Plugins, wenn dafür eine entsprechende Sprachversion, sprich: Übersetzungsdatei vorliegt.

Selbst aktiv werden musst Du also nur, wenn das nicht funktioniert. Oder wenn die vorhandene, deutsche Sprachversion fehlerhaft ist, die Übersetzung also eher holprig klingt, Schreibfehler enthält oder irreführende Begriffe verwendet. Immer wieder passiert es auch, dass eine Übersetzung Deine User mit „Du“ anspricht, während Dein WordPress-Blogs die User formell mit „Sie“ anspricht oder umgekehrt. Nicht immer gibt es nämlich Sprachversionen in beiden Varianten.

Grundprinzip der Lokalisierung verstehen

Auf den ersten Blick gibt es eine sehr einfache Möglichkeit, WordPress-Themes oder -Plugins ins Deutsche zu übersetzen: das Plugin Loco Translate.

Aber auch wenn das Lokalisieren auf den ersten Blick recht simpel klingt, ist es ein relativ komplexes Thema. Deshalb ist es hilfreich, zunächst ein paar Grundprinzipien zu verstehen. Dazu machen wir einen kurzen Ausflug in die Theorie.

WordPress setzt für die Übersetzung, auch Lokalisierung genannt, einen gängigen Industriestandard ein: GNU Gettext Portable Objects. Die Idee ist einfach: Im Programmcode werden Text oder einzelne Begriffe auf eine definierte Weise verwendet, die es zulässt, sie gegebenenfalls mit anderen Sprachversionen auszutauschen, ohne dafür den Programmcode selbst zu ändern.

Die Grundsprache Englisch ist typischerweise in der standardisierten Form schon im Programmcode enthalten. Für die Übersetzung sind darüber hinaus drei Typen von Dateien entweder bereits vorhanden, oder sie werden zur Lokalisierung erstellt:

  • Die .pot-Datei (Portable Object Template) enthält eine Liste aller Begriffe und Text-Elemente auf Englisch, die der Entwickler zur Lokalisierung vorgesehen hat. Sie liegt typischerweise im Unterverzeichnis /lang/ oder /languages/ des entsprechenden Theme- beziehungsweise Plugin-Ordners und erspart es bei der Lokalisierung, erst im Programmcode nach den Begriffen und Textstellen suchen zu müssen.
  • .po-Dateien (Portable Object) enthalten die Original-Begriffe sowie die jeweiligen Übersetzungen im Klartext. Die Dateinamen der .po-Dateien geben an, um welche Sprachversion es sich handelt, also beispielsweise de_DE.po für die deutsche Übersetzung für Deutschland.
  • .mo-Dateien (Machine Object) sind das maschinenlesbare Gegenstück zur jeweiligen .po-Datei. Sie sind die Entscheidenden, weil WordPress sich hieraus die übersetzten Begriffe holt. Sie folgen derselben Dateinamen-Konvention wie die .po-Datei, für Deutsch also de_DE.mo.

Nicht immer sind diese Dateien überhaupt vorhanden, was aber nicht bedeutet, dass das Theme oder Plugin sich nicht übersetzen lässt. Entscheidend ist, dass der Entwickler bei der Programmierung den Standard einhält – was nahezu immer der Fall ist.

Das Plugin Loco Translate erstellt diese Dateien nötigenfalls automatisch. Übersetzt Du ein Theme oder Plugin manuell mit dem Editor Poedit, erstellst Du die Dateien dagegen selbst und lädst sie in das passende Verzeichnis in Deinem Webspace. Mehr dazu später.

Fallstrick: Theme- oder Plugin-Update

Ein entscheidender Fallstrick ergibt sich aus Updates von Themes und Plugins: Ändern die Entwickler nämlich etwas an den Texten oder Begriffen, greift Deine selbst oder mit dem Plugin erstellte Lokalisierung nicht mehr vollständig oder verursacht in seltenen Fällen sehr schwierig zuordenbare Fehler. Entsprechend musst Du Deine Lokalisierung gelegentlich anpassen und bei Auftreten seltsamer Fehler daran denken, dass vielleicht eine veraltete Sprachdatei daran schuld sein könnte.

Das Plugin Loco Translate verfügt immerhin über eine Sync-Funktion, die Dir die jeweils aktuellen Texte und Begriffe zum Übersetzen anzeigt und neue Übersetzungen entsprechend abgleicht. Allerdings musst Du diese Synchronisation im Plugin jeweils manuell ausführen. Mehr dazu weiter unten.

Lokalisierung mit dem Plugin Loco Translate

Weil Loco Translate alle Eventualitäten und Optionen bei der Lokalisierung abdeckt, ist die Benutzung des Plugins nicht übermäßig intuitiv und es gibt zahlreiche Optionen, die Du meist getrost ignorieren kannst. Wir gehen im Workshop nur auf die wesentlichen Grundfunktionen ein. Für alles weitere hat das Plugin eine sehr ausführliche Hilfe und Dokumentation.

Installiere und aktiviere zunächst das WordPress-Plugin Loco Translate. In Deinem Backend-Menü taucht nun ein neuer Menüpunkt Loco Translate auf. Klicke dort auf Themes beziehungsweise Plugins, um aus der Liste der Themes und Plugins dasjenige auszuwählen, das Du übersetzen willst. In unserem Beispiel im Screenshot ist das wieder Mailpoet. Hier wählst Du nun die Sprache aus, die Du bearbeiten willst – in der Regel also: Deutsch.

Auswahlmenü von Loco Translate, bei dem die Sprachen für die Übersetzung angezeigt werden.
Auswahl der Sprache in Loco Translate, für die Du die Übersetzung anpassen willst.

Existiert die gewünschte Sprachversion noch nicht, lege sie mit Klick auf + Neue Sprache an.

Typischerweise bekommst Du bei einer schon existierenden Sprachversion nun den Hinweis, dass die Übersetzungsdateien überschrieben oder gelöscht werden, sobald WordPress aktualisiert wird. Wechsle deshalb zunächst in den Reiter Verschieben und wähle dort Individuell im Kasten „Bitte gib einen Zielpfad für diese Datei ein“. Das stellt sicher, dass Deine Lokalisierung dauerhaft erhalten bleibt. Legst Du eine Sprachversion neu an, kannst Du Individuell als Zielpfad direkt beim Anlegen festlegen.

Übersetzungen bearbeiten

Wähle nun wieder die entsprechende Sprache aus, sodass Du mit dem eigentlichen Übersetzen beginnen kannst. Du siehst eine Liste aller übersetzbaren Begriffe und Texte. Sobald Du einen Listeneintrag anklickst, bekommst Du in den unteren beiden Fenstern das englischsprachige Original und – soweit schon vorhanden – die deutsche Übersetzung angezeigt. Im unteren Feld kannst Du jetzt Deine eigene Übersetzung einfügen.

Screenshot: Die Übersetzung auf Deutsch wird bei Loco Translate in das entsprechende Feld eingetragen.
Trage Deine Übersetzung im untersten Feld ein, nachdem Du zuvor einen Begriff aus der Liste ausgewählt hast.

Bist Du mit allen Übersetzungen fertig, klickst Du auf Speichern. In der Reihe mit dem Speichern-Button siehst Du auch den Button Sync. Mit dieser Funktion aktualisierst Du nach einem Theme- beziehungsweise Plugin-Update Deine Übersetzung mit den vom Theme oder Plugin vorgesehen Begriffen und Texten. Gab es Änderungen, wird Dir das nach dem Sync-Vorgang entsprechend angezeigt und in der Liste markiert, sodass Du nachbessern kannst.

Screenshot: Die Sync-Funktion von Loco Translate zeigt Begriffe an, die durch ein Update verändert wurden.
Die Sync-Funktion von Loco Translate zeigt Dir Begriffe an, die sich durch ein Update verändert haben.

Die Markierung verschwindet, sobald Du die Übersetzung bearbeitet hast.

Das Ergebnis Deiner Lokalisierung siehst Du, wenn Du die entsprechende Stelle in Deinem Blog vor und nach dem Speichern Deiner Anpassungen vergleichst:

Beispiel, das zeigt, wie sich der Kommentarbereich eines Blogbeitrages durch die Übersetzung einzelner Begriffe verändert hat.
Beispiel: Das Kommentarfeld am Ende der Blogbeiträge vor und nach der Lokalisierung.

Beachte, dass Änderungen zwar grundsätzlich sofort sichtbar werden. Setzt Du aber ein Cache-Plugin ein oder speichert Dein Browser die Website im Cache, siehst Du die Änderungen eventuell nicht sofort. Ein vorübergehendes Abschalten des Cache-Plugins kann ebenso helfen wie das erzwungene Neuladen der Seite mit der Tastenkombination Strg + F5 beziehungsweise Ctrl + F5

Manuelle Lokalisierung mit der Open-Source-Software Poedit

Wenn Du mit Loco Translate nicht weiterkommst oder grundsätzlich kein Plugin für diesen Zweck installieren möchtest, bleibt noch die Option, die Lokalisierung manuell vorzunehmen. Dafür gibt es mit Poedit eine kostenlose Software für Windows, Mac und Linux.

Mit Poedit kannst Du eigentlich ganz ähnlich wie mit dem Plugin Loco Translate die entsprechenden Begriffe übersetzen. Du brauchst dazu allerdings die .po-, oder .pot-Datei des Themes oder Plugins, das Du lokalisieren willst.

Typischerweise findest Du eine der beiden oder beide Dateien im Unterverzeichnis /lang/ oder /languages/ des entsprechenden Theme- beziehungsweise Plugin-Ordners oder inzwischen häufiger in den Verzeichnissen /wp-content/languages/themes/ beziehungsweise /wp-content/languages/plugins/. Fehlt die .pot- oder .po-Datei dort, suchst Du danach am besten im jeweiligen Support-Forum zu dem Theme oder Plugin und auf deren Website. Wenn Du auch dort nicht fündig wirst, schicke eine Nachricht an den Entwickler und frage danach.

Eine weitere Möglichkeit bietet die Übersetzungsplattform von WordPress selbst. Gehe dazu auf https://translate.wordpress.org/locale/de/default/ und wähle den entsprechenden Reiter Themes oder Plugins. Suche im Feld Search projects … nach dem gewünschten Theme beziehungsweise Plugin – in unserem Beispiel „Mailpoet“ – und klicke auf den Button Translate Project.

Screenshot: Auswahl des Plugins, zu dem eine bestimmte Sprachdatei gesucht wird. Beispiel zeigt MailPoet.
Auswahl des Plugins, zu dem Du eine Sprachdatei suchst.

Nun klickst Du auf den Listeneintrag Stable (latest release).

Auf der folgenden Seite scrollst Du ganz nach unten. Hier findest Du die Option, den aktuellen Übersetzungsstand des Plugins oder Themes als Datei zu exportieren. Wähle dafür all current und Portable Object Message Catalog (.po/.pot) aus und klicke dann auf Export.

Screenshot: Exportieren von Sprachdateien, die anschließend bei Poedit bearbeitet werden sollen.
Exportiere die Sprachdatei, die Du anschließend bearbeiten willst.

Wenn Du möchtest, kannst Du Dich stattdessen natürlich auch an dem gemeinschaftlichen Übersetzungsprojekt beteiligen. Aber mit der eben heruntergeladenen .po-Datei kannst Du das Plugin oder Theme auf die Schnelle auch ganz individuell nur für Dich übersetzen.

Text in Poedit übersetzen

Lade die Open-Source-Software Poedit herunter und installiere sie. Klicke auf Öffnen, wähle die zu lokalisierende .po- oder .pot-Datei aus und trage für eine deutsche Übersetzung de_DE bei der Abfrage der Sprache der Übersetzung ein. Sind beide Dateien vorhanden, wähle die .po-Datei, weil sie eventuell schon Übersetzungen enthält, wohingegen die .pot-Datei lediglich die Begriffe und Texte in Englisch enthält.

Wie zuvor schon im Loco-Translate-Plugin siehst Du nun auch in Poedit die Liste der vorhandenen Texte, sowie darunter die Felder für das englischsprachige Original und für die Übersetzung, die Du hier eingeben oder bearbeiten kannst. Rechts schlägt Poedit bequemerweise auch gleich Übersetzungsmöglichkeiten vor, die Du per Mausklick übernehmen kannst. Über den Menüpunkt Bearbeiten – Suchen (oder Strg + F) suchst Du gezielt nach bestimmten Begriffen. Das ist vor allem bei recht umfangreichen Sprachdateien sehr nützlich.

Screenshot: Auswahl bestimmter Textsstellen oder Segmente, die anschließend im gleichen Fenster übersetzt werden.
In Poedit wählst Du einzelne Textstellen oder Begriffe aus und trägst dazu dann Deine Übersetzung im untersten Textfeld ein.

Wichtig: Übernehme in Deiner Übersetzung alle Sonderzeichen des Originaltextes und übersetze nur den reinen Text. Erhalten bleiben müssen Sonderzeichen wie etwa oder © oder auch Escape-Sequenzen wie beispielsweise Anführungszeichen \” und Ähnliches, zu erkennen an dem vorangestellten Backslash. Auch Variablen wie beispielsweise %1$s oder j M @ H:i solltest Du so übernehmen, wie sie sind. Mit dem Speichern-Button sicherst Du Deine Bearbeitungen in eine .po-Datei. Um die Lokalisierung nun in WordPress verwenden zu können, exportierst Du Deine Übersetzung über Datei – MO-Datei erstellen …

Screenshot: Poedit Dateimenü, in dem die Auswahl "MO-Datei erstellen" erscheint.
Speichern der Sprachdatei im maschinenlesbaren Format als .mo-Datei

Im nächsten Schritt geht es nun darum, die neu erstellten Sprachdateien auch zum Einsatz zu bringen.

Lokalisierte Sprachdateien in WordPress einbinden

Das Einbinden der lokalisierten Sprachdateien ist relativ einfach, auch wenn beim Einsatz eines Child-Themes ein kleiner Umweg nötig ist, damit es klappt.

Bei der beschriebenen Methoden werden die Sprachdateien bei Updates des Themes oder des Plugins nicht überschrieben. Das hat natürlich den Vorteil, dass Deine Lokalisierung dauerhaft erhalten bleibt. Das Problem ist jedoch, wie schon beim Loco-Translate-Plugin beschrieben, dass sich Änderungen bei Updates auch nicht auf Deine Lokalisierung auswirken. Sprich: Du solltest nach Updates prüfen, ob sich etwas Wesentliches verändert hat und gegebenenfalls auch Deine Sprachdateien anlassen.

Treten also in Zusammenhang mit dem Plugin oder Theme seltsame Fehler auf oder – wahrscheinlicher – englischsprachige Texte und Begriffe, dann musst Du einen genaueren Blick auf Deine Lokalisierung werfen und aktiv werden. Bei grundlegenden Updates kann es auch vorkommen, dass Deine Sprachdateien insgesamt nicht mehr passen und Du die Lokalisierung auf Basis der neuen Sprachdateien neu anlegen musst.

Wohin mit den Sprachdateien?

Die Einbindung von individuell angepassten Sprachdateien für Plugins und Themes erfolgt über die Verzeichnisse in Deinem Webspace:

 /wp-content/languages/themes

beziehungsweise

/wp-content/languages/plugins

Die Namen für Sprachdateien müssen dabei nach folgendem Schema aufgebaut sein, da WordPress die Lokalisierung ansonsten nicht erkennen kann:

text-domain-de_DE.po und text-domain-de_DE .mo

text-domain ersetzt Du dabei durch die Text-Domain des Plugins beziehungsweise Themes. Für das Plugin Antispam Bee lautet der Dateiname dann beispielsweise antispam-bee-de_DE.po, für das Standard-Theme Twenty-Twentyone entsprechend twentytwentyone-de_DE.po. Um die Text-Domain musst Du Dir typischerweise keine Sorgen machen, weil Dir der Dateiname für die Sprachdateien ja bereits bekannt ist. Denn für Deine Anpassungen hast Du auf die ursprüngliche .po-Datei zurückgegriffen, die diesen Namen trägt. Sollte das einmal nicht der Fall sein, findest Du diese Information bei Themes in den Kommentar-Zeilen zu Beginn der Datei style.css im Verzeichnis des Themes, also beispielsweise beim Standard-Theme Twenty-Twentyone im Verzeichnis  /wp-content/themes/twentytwentyone:

Screenshot zeigt, wie der entsprechende Vorgang bei dem Theme Twenty-Twentyone aussieht.

Bei Plugins steht die Text-Domain typischerweise in den einführenden Kommentarzeilen der PHP-Datei, die Du im Verzeichnis des Plugins findest.

Screenshot zeigt, wie der entsprechende Vorgang bei dem Plugin Antispam-Bee aussieht.

Am Beispiel des Plugins Antispam Bee gehst Du dazu in das Verzeichnis des Plugins /wp-content/plugins/antispam-bee/ und öffnest die PHP-Datei dort (im Beispiel: antispam_bee.php) mit einem Text-Editor. In den ersten Zeilen des Programmcodes findest Du die Angabe zur Textdomain.

Sprachdateien ins richtige Verzeichnis kopieren

Kopiere also Deine angepassten Sprachdateien .po und .mo per FTP-Client in das Verzeichnis /wp-content/languages/plugins/ beziehungsweise /wp-content/languages/themes.  Dort bereits vorhandene Dateien kannst Du natürlich entsprechend überschreiben. Ein Backup ist aber empfehlenswert, damit Du gegebenenfalls die Original-Übersetzung schnell wiederherstellen kannst.

Solltest Du die Lokalisierung später aktualisieren oder erneuern wollen, musst Du nur die zum Plugin gehörenden Dateien mit der neuen Version überschreiben.

Spezialfall: Lokalisierung für ein Child-Theme

Die beschriebene Methode versagt allerdings, wenn Du ein Child-Theme einsetzt. Aber auch dafür gibt es eine Lösung.

Lege dafür im Verzeichnis Deines Child-Themes ein Verzeichnis namens /languages an.

Bevor Du die selbst erstellten Sprachdateien hochlädst, musst Du die Dateinamen anpassen. Anders als bei der oben beschriebenen Methode darf hier nämlich die Text-Domain nicht Bestandteil des Dateinamens sein. Stattdessen lauten die Dateinamen für die deutsche Version schlicht: de_DE.po und de_DE.mo.

In der functions.php des Child-Themes fügst Du nun direkt unter der Zeile <?php noch die folgenden Code-Zeilen ein:

function my_child_locale() {
    load_child_theme_textdomain( 'THEME-TEXTDOMAIN', get_stylesheet_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'my_child_locale' );

THEME-TEXTDOMAIN ersetzt Du dabei mit der Text-Domain des Haupt-Themes (nicht des Child-Themes!).

Fazit

Eigene Übersetzungen für WordPress-Themes oder Plugins sind ein wenig kompliziert, aber mit vertretbarem Aufwand zu bewerkstelligen, sobald man das Grundprinzip verstanden hat.

Du musst übrigens nicht unbedingt alle Begriffe und Texte übersetzen. Es genügt, wenn Du nur das übersetzt, was Deine User auch tatsächlich zu sehen bekommen. Für den Rest greift WordPress automatisch auf die Original-Sprachdatei zurück. Wenn es Dich also nicht stört, im Backend mit den Einstellungen und Optionen des Plugins auf Englisch zu arbeiten, kannst Du Dir diesen Teil der Übersetzungsarbeit getrost sparen.

Insgesamt bleibt beim individuellen Übersetzen die Schwierigkeit, dass Veränderungen im Plugin oder dem Theme Dich immer wieder einmal dazu zwingen werden, Deine Lokalisierung anzupassen oder ganz zu erneuern. Insofern solltest Du überlegen, ob die Anpassungen wirklich notwendig sind oder Du angesichts des möglichen Aufwands in der Zukunft lieber bei der Standard-Übersetzung des Plugins oder Themes bleibst, beziehungsweise gegebenenfalls sogar mit der englischsprachigen Version arbeitest – oder eine Alternative auf Deutsch suchst.


Du willst die im Workshop gelernten Skills gleich anwenden, hast aber noch keine eigene WordPress-Seite? Dann wirf einen Blick auf unsere Angebote zum WordPress-Hosting!

Zu den WordPress Hosting-Angeboten

Teilen

  1. Ayrton sagte am

    Vielen Dank für die informative Seite. Ich habe jetzt aber das Problem, dass WP mir bei einem 404-Fehler (Page not found) die englischen Text “This is somewhat embarrassing, isn’t it?” ausgibt. Ich weiß aber nicht, ob diese Meldung das Theme liefert (Superwise 2.10.0) oder WordPress. Ich tippe auf das Theme. Kann man das irgendwie herausfinden?

    Antworten
    • Vladimir Simović sagte am

      Hallo Ayrton,

      die Ausgabe der 404er-Fehlermeldung wird in den WordPress-Themes üblicherweise durch die Datei 404.php gesteuert. Schaue bitte dort rein. Sollte es diese Datei nicht geben, dann »springt« WordPress auf die index.php zurück.

      Viele Grüße
      Vladimir

      Antworten
  2. Gabriele Brandhuber sagte am

    Danke für die so ausführliche und Schritt für Schritt nachvollziehbare Anleitung!

    Antworten
  3. Patrick Robrecht (pluginkollektiv) sagte am

    Viele Plugins werden über Translate WordPress übersetzt, so auch das genannte Antispam Bee. Für solche Plugins kann man fehlende Übersetzungen direkt über translate.wordpress.org vorschlagen (Voraussetzung: ein wordpress.org-Account). Wenn es bei dem Plugin einen PTE (Plugin Translation Editor) gibt, werden die Änderungen meist relativ zeitnah freigeschaltet.

    Antworten

Sie können erst kommentieren, wenn Sie unseren Datenschutzbestimmungen und den Cookies zugestimmt haben. Aus Datenschutzrechtlichen Gründen dürfen wir andernfalls keine personenbezogenen Daten von Ihnen aufzeichnen.

Klicken Sie dazu einfach unten im Browser Fenster auf den blauen Button Akzeptieren. Nach dem Neuladen der Seite können Sie Ihr Kommentar schreiben.

 

Diese Webseite verwendet Cookies, um die Nutzung der Seite zu verbessern, den Erfolg von Werbemaßnahmen zu messen und interessengerechte Werbung anzuzeigen. Durch die Nutzung dieser Seite erklären Sie sich damit einverstanden. Informationen