de_CH für WordPress Themes und Plugins in der Schweiz

Heute gehen wir einem Problem in WordPress nach, welches speziell in der Schweiz (und wenigen anderen Ländern) auftauchen kann. Sollten Sie Ihre Sprache auf Deutsch (Schweiz) gestellt haben, kann es vorkommen, dass einige Strings der Oberfläche nicht korrekt übersetzt wurden, sondern beispielsweise in Englisch erscheinen. Hierfür gibt es eine relativ einfache Erklärung.

de_CH nicht für alle Themes und Plugins vorhanden

WordPress verwendet in diesem Fall die Sprachdateien mit dem Locale de_CH, welches für den WordPress Core vorhanden ist seit es eine Schweizer Version von WordPress gibt. Allerdings sind solche Subtypen der Locales nicht so gängig, dass sie auch in allen Themes und Plugins vorhanden sind. Wenn keine .mo-Datei für die gewählte Sprache gefunden werden kann, greift das Theme wieder auf den Standard zurück, ohne zu übersetzen.

Für offizielle Themes und Plugins auf wordpress.org, gibt es die Möglichkeit diese zu übersetzen. Für das Theme auf diesem Blog kann beispielsweise hier der Fortschritt der Übersetzungen eingesehen werden. Hier kann unter alle verfügbaren Sprachen ausgewählt werden, darunter auch Deutsch (Schweiz). Unterhalb der Liste der in dieser Sprache bereits übersetzten Strings gibt es dann die Möglichkeit diese zu exportieren. Neben einigen anderen Formaten lässt sich hier direkt .po oder auch das binäre .mo auswählen, welches dann von WordPress selbst No risk, no funverwendet werden kann (in einem älteren Artikel sind wir bereits näher auf gettext, .po und .mo eingegangen).

.mo-Datei für diese Sprache exportieren

Eine andere Möglichkeit wäre die normale deutsche Übersetzung des Plugins auch für Deutsch (Schweiz) zu verwenden. Hierzu kann einfach die vorhandene de_DE.mo des Themes in de_CH.mo umbenannt werden. Die sprachlichen Unterschiede zwischen den beiden Varianten sollten in diesem Fall vernachlässigbar sein 🙂

Angepasste Übersetzungen im Child-Theme einbinden

Anschliessend gibt es noch etwas zu beachten. Grundsätzlich könnte die de_CH.mo einfach direkt im Ordner /languages innerhalb des betroffenen Themes oder Plugins abgelegt werden. Allerdings würden diese Änderungen dann bei jedem Update wieder verloren gehen. Wie bei allen Änderungen ist es sinnvoller, diese im Child-Theme vorzunehmen. Hierfür muss in der functions.php die neue Textdomain über die Funktion load_child_theme_textdomain eingebunden werden:

function child_theme_locale() {
 load_child_theme_textdomain( 'name-der-textdomain', get_stylesheet_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'child_theme_locale' );

Die Textdomain muss in dem Fall jener des zu übersetzenden Themes oder Plugins entsprechen. Anschliessend kann die .mo-Datei im Child-Theme abgelegt werden und WordPress nutzt diese nun für die Übersetzung.

Wir hoffen dem ein oder anderen mit diesem Artikel helfen zu können, insbesondere da dieses Problem wohl nicht allzu häufig auftritt und darum nicht viel diskutiert wird. Falls Sie Fragen zum Thema haben, nehmen Sie gerne Kontakt zu uns auf oder hinterlassen Sie einfach einen Kommentar.

Schreiben Sie einen Kommentar

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