KO durch .mo und .po

Ich habe mal mein WordPress-Theme auf den aktuellen Stand gebracht und war dann wieder englischsprachig unterwegs.

Was sind .po und .mo Dateien?

In WordPress werden diese beiden Dateitypen verwendet, um Plug-ins, Themes und das WordPress-Kernsystem in verschiedene Sprachen zu übersetzen.

.po-Dateien (Portable Object) enthalten die Übersetzungen für eine bestimmte Sprache in einem menschenlesbaren Format.

.mo-Dateien (Machine Object) sind kompilierte Versionen der .po-Dateien und enthalten die Übersetzungen in einem Binärformat, das schneller geladen werden kann.

Und dann gibt es noch eine .pot Datei. Sie wird von Entwicklern erstellt und dient als Ausgangspunkt für das Übersetzen, um .po Dateien für verschiedene Sprachen zu erstellen.

Bei WordPress befinden sich diese Dateitypen im Language-Verzeichnis eines Plug-ins oder in Themes. Bei der Neuinstallation eines Themes oder Plug-ins befindet sich in diesem Verzeichnis meistens nur eine .pot Datei.

Wie funktioniert das mit den Themes?

Wenn man ein Theme unter WordPress installiert, kann es sein, dass die Einstellungen zunächst in englischer Sprache dargestellt werden. Im Adminmenü ist das kein Problem, jedoch gilt dies auch für die eigentliche Webseite, sprich die Besucher bekommen dann die Navigationselemente in englischer Sprache angezeigt. Als deutschsprachige Website möchte man das vielleicht nicht und da kommen dann die .po und .mo Dateien zum Einsatz.

In jedem Theme befindet sich im Language-Verzeichnis eine .pot-Datei. Diese enthält die originalen, übersetzbaren Textstrings in der Standardsprache – meistens Englisch. Mit einem Editor wie POEdit können die Textstrings in der Datei in eine andere Sprache übersetzt werden – in meinem Fall ins Deutsche. Man lädt die .pot Datei in den Editor und wählt neue Übersetzung erstellen. Es wird dann eine de_DE.po Datei erstellt und dort beginnt dann die Übersetzung. Ist man fertig, speichert man die Datei ab. Dabei wird gleichzeitig eine entsprechende de_DE.mo Datei erstellt. Beide Dateien kopiert man dann in das Language-Verzeichnis des Themes und fertig.

Bildschirmaufnahme des Editors POEdit. Auf der linken Seite sieht man Quelltext in englischer Sprache in Zeilen angeordnet. Auf der rechten Seite die jeweils deutsche Übersetzung.
Bildschirmaufnahme POEdit

Ich vergesse es leider immer wieder.

Nach einem Update eines Themes kann auch die Übersetzung verschwinden, sprich die .po und .mo Dateien. Im Language-Verzeichnis befindet sich dann nur noch die .pot Datei.

Früher habe ich Updates ausschließlich über SFTP durchgeführt. Dabei habe ich die Dateien im Language-Verzeichnis nicht überschrieben. Trotzdem gab es immer wieder Probleme, da trotz vorhandener Übersetzung (de_DE.po /de_DE.mo) alles in der Originalsprache, wie sie im .pot File definiert war, angezeigt wurde. Ich musste immer wieder mit der .pot-Datei eine neue Übersetzung erstellen und dann funktionierte alles wieder. Das war und ist unfassbar nervig. Und wenn man ein Update auf dem einfachen Weg einspielt, also die Zip-Datei über das Admin-Interface unter Design, werden im schlimmsten Fall die Übersetzungen gelöscht. Echt Mist!

Ich könnte mich ja wieder über WordPress aufregen, aber …

Bei Ghost ist es oft noch schlimmer. In vielen Templates fehlen entweder Messagestrings oder man muss in Dateien direkt übersetzen. Das Ergebnis ist oft eine Mischung aus Deutsch und Englisch.

Für WordPress gibt es eine sehr gute Lösung namens Loco Translate. Alle Übersetzungen lassen sich über das Dashboard vornehmen und werden dann außerhalb der einzelnen Sprachverzeichnisse gespeichert. So ist ein Löschen oder Überschreiben durch Updates nicht möglich. Und man hat nicht nur eine gute Übersicht, es funktioniert auch sehr zuverlässig.

Ich habe das mal ausprobiert, bin aber einfach kein Freund von Plug-ins, wenn es auch ohne geht. Da ertrage ich dann doch den Schmerz, wenn mich meine Website mal wieder mit „Hallo my Friend“ anspricht oder die Lesezeit als „Min Read“ ausgegeben wird, denn da hat mein Template trotz Übersetzung ein Problem.

Andreas

Audio- und Technikfreak, interessiert sich für Atmo, Sounddesign, Synthesizer, Filmscore, Podcasts, Netzkultur, FOSS, Gaming sowie für wissenschaftliche und gesellschaftliche Themen. Auch hier auf fedispace.de zu finden.

Post navigation

2 Kommentare

  • Wo speicherst Du denn die Übersetzungen? Es gibt ja zwei Möglichkeiten. Einmal unter dem Verzeichnis des Plugins oder des Themes. Dort sollte aber eigentlich nur die .pot liegen. Dann gibt es ja noch das Verzeichnis /wp-content/languages und dort nochmal Verzeichnisse für Themes und Plugins. Dort sollten die .mo und -po Dateien liegen. Sie können bei einem Update dort überschrieben werden. Dass die dort aber gelöscht werden, ist mir noch nie passiert.

    • Hallo Tommi,
      leider habe ich deinen Kommentar irgendwie übersehen.
      Von daher die verspätete Antwort.

      Unter /wp-content/languages/Themes befinden sich nur die Dateien für die WP eigenen Themes. Meines wird dort nicht gelistet. Von daher liegen die Sprachfiles bei mir direkt unter /wp-content/themes/Theme/languages. Und nach einem Update befindet sich dann nur wieder die .pot Datei im Verzeichnis.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Oben