Anderssprachige WordPress Plugins übersetzen und die Übersetzungsdateien auch bei Plugin-Update behalten

Bei der näheren Untersuchung der Sprachfunktionen von WordPress bin ich auf eine interessante Funktion gestoßen, die eigentlich so naheliegend war, mir aber nie aufgefallen ist. In diesem Beitrag steht, wie man Sprachdateien von eigens übersetzten Themes oder Plugins auch über ein Plugin- oder Theme-Update hinaus behalten kann.[toc]

Laden von Sprachdateien in WordPress

In WordPress gibt es mehrere verschiedene Funktionen die dazu genutzt werden können, Sprachdateien zu laden:

  • load_plugin_textdomain() für Plugins
  • load_muplugin_textdomain() für MU-Plugins (Must-Use)
  • load_theme_textdomain() für Themes
  • load_child_theme_textdomain() für Child-Themes
  • load_textdomain() (generell)

Alternativ kann auch mittels Plugin-Header die Sprachdateien geladen werden (funktioniert allerdings nur im Backend-Bereich):

<?php
/*
Plugin Name: 	Car Listing
Plugin URI: 	http://my-website.com/car-listing-plugin/
Description: 	This plugin lists cars on a page.
Author: 	Max Mustermann
Author URI: 	http://my-website.com/
Version: 	1.0.0
Text Domain:	mm_trans
Domain Path:	/langs/
*/
?>

Bei allen Funktionen wird meist der relative Pfad zum Sprachverzeichnis angegeben (außer bei load_textdomain(), dort wird der direkte Pfad zur Datei selbst erwartet).

Übersetzen eines Plugins

In der Regel werden (fast) alle WordPress-Plugins internationalisiert veröffentlicht. D.h. Sie haben die Möglichkeit, es selbst zu übersetzen. Dazu benötigten Sie lediglich ein Tool wie PoEdit. Sie erstellen eine neue po-Datei aus der bereits vorhandenen File oder lassen den Quelltext selbst nach Übersetzungen durchsuchen.

Das alles ist meist nicht sonderlich schwierig. Was allerdings dann kommt, kann jemanden schon einmal den Verstand rauben. In der Regel kopiert man nämlich die eigens übersetzte Datei direkt in das Sprachverzeichnis des Plugins, z.B. in /wp-content/plugins/mein-plugin/langs/.

Das Problem ist nämlich, dass diese Dateien automatisch gelöscht werden, sobald ein Plugin-Update vorliegt.

Automatische Löschung der Übersetzungs-Dateien vermeiden

Ein Trick kann Ihnen aber dennoch helfen. Sie kopieren einfach Ihre übersetzten Dateien in das Verzeichnis wp-content/languages/plugins/ für Plugins oder wp-content/languages/plugins/ für Themes. Und das wars 😉

Existiert weder das Verzeichnis languages oder plugins, so erstellen Sie diese einfach selbst.

Was passier ist folgendes:

  1. WordPress sucht zuerst nach der angegebenen Sprachdatei im Verzeichnis das angegeben wurde.
  2. Wird dort keine Datei gefunden, so sucht WordPress im languages/plugins/  oder  languages/themes/ Verzeichnis.
  3. Wird es dort fündig, werden die Dateien geladen.

Fragen und Antworten

Was aber passiert, wenn das Plugin irgendwann offiziell auf Ihre Sprache übersetzt wird?

Die Antwort ist: WordPress wird dann die mitgelieferte Sprache laden. Denn die Sprachdateien in wp-content/languages/plugins/ sind nur als Fallback gedacht.

Was passiert, wenn in der offiziellen Sprachdatei mehrere nicht übersetzte Strings existieren, ich die Datei in  wp-content/languages/plugins/ vollständig übersetzt habe?

Dann wird WordPress die Datei in wp-content/languages/plugins/ nicht zusätzlich laden. Stattdessen bleiben die Strings “unübersetzt”.

Schreiben Sie einen Kommentar