1. Wo befinden sich die WordPress Übersetzungsdateien?
Standardmäßig sind die Übersetzungsdateien, je nachdem es sich um ein Thema, Child-Theme oder ein Plugin handelt, in einem Subverzeichnis languages
oder manchmal auch i10n/languages
innerhalb des Plugin- oder Theme-Verzeichnisses gespeichert.
Darüber hinaus gibt es für die Sprachdateien das Standardverzeichnis für Wordpress Core Dateien
wp-content/languages
( = WP_LANG_DIR
) und die Subverzeichnisse WP_LANG_DIR/plugins
und WP_LANG_DIR/themes
für Plugins und Themes.
Dort sind immer alle Sprachdateien zu finden, die bei Updates oder Änderung der Sprache der Website
von WordPress automatisch downgeloaded werden. (Seit WordPress Version 3.8)
Einige Plugins, wie z.B.: WOOCOMMERCE oder WOOCOMMERCE GERMANIZED legen im WP_LANG_DIR
auch eigene Verzeichnisse an.
Wurden eigene Übersetzungen in dieses Verzeichnis gestellt, gehen sie bei Updates verloren.
Das Bild zeigt die Aktualisierung von Plugins und Themes nach Änderung der Sprache der Website auf „Deutsch (Sie)“
Wie man Core-Übersetzungen vor Überschreiben bei Updates schützen kann, habe ich hier beschrieben:
www.zeiller.eu/updatesichere-uebersetzung-der-wordpress-core-dateien/
2. Allgemeines zu Übersetzungsdateien
2.1 Grundsätzlich gibt es hier folgende Dateien:
*.pot –> Vorlage der Sprachdatei, enthält alle übersetzbaren Zeichenketten im Klartext *.po –> Übersetzungsdatei in Klartext (kann editiert werden) *.mo –> kompilierte Übersetzungsdatei (kann nicht editiert werden)
Die Nomenklatur ist je nachdem, ob es ein Theme ist oder ein Plugin und ob es sich im WP_LANG_DIR oder innerhalb des Plugin- oder Themenverzeichnisses befindet unterschiedlich.
2.2 Übersetzungsdateien im jeweiligen WP_LANG_DIR-Verzeichnis:
themenname-locale.po
bzw. pluginname-locale.po
themenname-locale.mo
oder pluginname-locale.mo
„locale“ steht z.B.: für Sprache und das Land de_DE, en_US usw.
2.3 PLUGINS
Übersetzungsdateien von Plugins sind im Verzeichnis:
wp-content/plugins/pluginname/languages
domain-locale.mo
domain-locale.po
„domain“ ist die Text Domain.
Eine vom Programmierer des Plugins frei vergebene Bezeichnung, die als eindeutige ID für die Übersetzung dient.
Die Text Domain findet sich bei guten Programmierern im Header des Plugin Startfiles. Dazu geht man im Admin-Menü -> Plugins -> Editor und wählt das entsprechende Plugin aus.
Hier als Beispiel das Plugin EU Cookie Law, das als Text Domain eu-cookie-law enthält.
Die Sprachdateien für Deutsch heißen somit:
eu-cookie-law-de_DE.mo und eu-cookie-law-de_DE.po
bzw. die Vorlage eu-cookie-law-de_DE.pot
2.4 THEMES
Übersetzungsdateien von Themes sind im Verzeichnis:
wp-content/themes/themename/languages
locale.mo
locale.po
themenname.pot
Die Text Domain steht bei Themes im header des css-Files styles.css
3. Eigene Übersetzungen mit dem „Loco Translate“ Plugin
Installation über Plugins -> Installieren, dazu „Loco Translate“ in die Suche eingeben und Gefundenes auswählen. Nach der erfolgreichen Installation und Aktivierung des Plugins, erscheint ein neuer Menuepunkt im Admin:
Nun können die Sprachpakete gewählt werden, aber auch neue Übersetzungsdateien (po-Dateien) erstellt werden. Beim Speichern wird automatisch eine mo-Datei kompiliert und abgelegt.
Hinweis: in der vorliegenden Loco Translate Version 1.5.5 können „locale“ mit längeren Namen wie z.B.: de_DE_formal für Deutsch (Sie) NICHT bearbeitet werden!
Ist noch keine Vorlagendatei (pot-Datei) vorhanden, kann diese unter „Neues Template“ erstellt werden. Loco Translate liest alle Templates ein und sucht nach übersetzbaren Zeichenketten. Diese haben beispielsweise die Form:
__( 'Standardtext in Englisch (en_US) der einer Variablen zugeordnet wird, wenn keine Locale ausgewählt wurde', 'textdomainname' ) //oder für direkte Ausgabe 'echo' _e( 'Standardtext in Englisch (en_US) der ausgegeben wird, wenn keine Locale ausgewählt wurde', 'textdomainname' ) // oder für automatische Einzahl/Mehrzahl Übersetzung je nach $count _n('We deleted %d spam message.', 'We deleted %d spam messages.', $count, 'my-text-domain'
Hinweis: Das blaue „de_DE: German“ im Bild steht übrigens für die bereits vorhandene Deutsche Übersetzung im Themen-Verzeichnis. Der Link dazu wird im Browser unten angezeigt, wenn man mit der Maus drüber geht: http://www.domain.com/wp-admin/admin.php?name=privatsachen&type=theme&poedit=themes/privatsachen/languages/privatsachen-de_DE.po&page=loco-translate
4. Welche der vielen Sprachdateien werden nun geladen und in welcher Reihenfolge?
Das hängt von der Programmierung des Plugins bzw. des Themes ab und kann pauschal nicht beantwortet werden.
Werden mehrere Sprachdateien zu einem Plugin oder Theme geladen, bestimmt die erste geladene die Übersetzung. Nachfolgende Übersetzungsstrings in den Sprachdateien werden nur verwendet, wenn sie in der ersten nicht übersetzt waren, d.h. leer blieben.
Ein äußerst hilfreiches Plugin ist hier Query Monitor von John Blackbourn
Unter Languages werden exakt die Reihenfolgen der Sprachdateien gezeigt:
Weiterführende Links:
Loco Translate von Tim Whitlock
codex.wordpress.org/I18n_for_WordPress_Developers
Ich empfehle diese Übersetzungsplattform für die Lokalisierung von .po-Dateien: https://poeditor.com/