chain 2232278 1920
Quelle: Pixabay, Tama66

Lokalisierung und Mehrsprachigkeit – Unterschiede zwischen gettext und Inhaltsübersetzungen

Meine Inhalte sind ausnahmslos in deutscher Sprache verfasst, und in den allgemeinen Einstellungen von WordPress ist als Sprache Deutsch eingestellt. Trotzdem sind Buttontexte auf der Website Englisch, zum Beispiel »Read more«. Wie kann das sein?

Kurze Antwort: Das Theme wurde nicht übersetzt, respektive es fehlt die deutsche Sprachdatei.

gettext

  • betrifft in Funktionen eingefasste Strings in Dateien
  • Übersetzungen ausgelagert in Sprachdateien (.po, .mo)
  • Kein Switchen zwischen den Sprachversionen
  • Sprachanzeige orientiert sich an der für WordPress eingestellten Sprache (Lokalisierung)
  • nach Änderung am Original ist bei gettext keine Übersetzung mehr verfügbar

Inhaltsübersetzungen

  • betrifft auch redaktionelle Inhalte (Content)
  • Übersetzungen gibt es auch für Textinhalte
  • Switchen zwischen den Sprachversionen
  • Zugänglichkeit einer Sprachversion ist unabhängig von der in WordPress eingestellten Systemsprache
  • Änderung am Original von Inhalten hat keinen Einfluss auf die Übersetzung
Lokalisierung ist üblicher Bestandteil mehrsprachiger Applikationen, aber nicht alle lokalisierbaren Applikationen sind automatisch auch mehrsprachenfähig. WordPress beispielsweise kann nur mit entsprechenden Erweiterungen als mehrsprachige Website geführt werden.

Lokalisierung mit gettext

WordPress kann in vielen verschiedenen Sprachen installiert werden. Der Begriff für die Verfügbarmachung einer Anwendung in einer bestimmten Sprache ist Lokalisierung. Im Dashboard macht sich die Lokalisierung mit Administrationsmenüs und Hilfen in der vom Anwender in den allgemeinen Einstellungen gewählten Sprache bemerkbar. Nach der erstmaligen Umstellung auf eine neue Sprache holt sich WordPress automatisch die entsprechenden Sprachdateien.

Was für WordPress funktioniert, muss nicht für jedes Plugin oder Theme gelten. Sind Sprachdateien verfügbar, holt WordPress auch die, das ist aber nicht immer der Fall. Die meisten Themes oder Plugins sind zwar mit der Fähigkeit Übersetzungsdateien zu verwenden ausgestattet, erkennbar am Hinweis »translation ready«. Doch fehlt die den eigenen Spracheinstellungen entsprechende Sprachdatei, werden die englischen Originalbegriffe dargestellt.

Daran ändert sich zunächst auch dann nichts, wenn man ein Plugin für eine mehrsprachige WordPress-Website (wie WPML, Polylang oder Multisite Language Switcher) verwendet, und Seiten für deutsche, englische und sonstsprachige Inhalte anbietet. Inhalte und gettext-Strings sind zwei völlig unterschiedliche Dinge, die unterschiedlich zu handhaben sind.

Wer WPML gekauft hat, bekommt unter anderem auch ein Plugin zur Handhabung von Stringübersetzungen (gettext). Laut dem, was ich darüber bisher las, wird der Umgang damit eher als kompliziert empfunden, vor allem dann, wenn sich die Unterschiede zwischen Textstrings aus Dateien und Inhaltsübersetzungen noch nicht so klar offenbarten.

Die wesentliche Voraussetzung dafür, ein Theme oder Plugin überhaupt übersetzen zu können, ist die Verwendung von <a href="http://php.net/manual/de/book.gettext.php" target="_blank">gettext</a>. »Translation ready« bedeutet zwar nicht, dass bereits Übersetzungen vorliegen. Allerdings sind bei populären Plugins oder Themes in vielen Fällen bereits deutsche Sprachdateien zu bekommen (für Deutsch, was technisch gesehen nicht dasselbe ist als Deutsch (Schweiz) oder Deutsch (Sie)). Zudem werden Übersetzungen mittlerweile immer mehr kommunisiert, so dass einmal erbrachte Übersetzungen auch anderen zur Verfügung stehen.

Textstrings findet man in PHP-Dateien von WordPress, Themes und Plugins, und man erkennt sie daran, dass sie in Funktionen ausgegeben werden, in einer Form wie dieser __('What I want to say', 'name-der-textdomain').

Übersetzungstools wie die Desktop-Anwedung poedit oder das WordPress-Plugin Loco Translate durchsuchen Dateien einzelner Komponenten nach solchen Strings und stellen sie in einer po-Datei der definieren Sprache zur Übersetzung bereit. Nachdem die Übersetzungen gemacht und gespeichert sind (zur maschinellen Verarbeitung wird das .mo-Format herangezogen, das muss es neben .po immer auch geben), und keine Bedingungen vorliegen die dem entgegen stehen, sollte die neue Sprache sofort verfügbar sein.

Damit die Übersetzungen funktionieren muss jedes Theme und jedes Plugin seine eigene, individuelle textomain haben, und diese darf hinter keinem Textstring fehlen. Ändert sich ein Originalstring, müssen alle Übersetzungen davon neu gemacht werden, selbst wenn nur ein Leerzeichen dazu kommt oder wegfällt. Wird ein String hingegen mehrfach verwendet (der eine muss die exakte Kopie des anderen sein, inklusive Groß- oder Kleinschreibung und Leerzeichen), muss er nur einmal übersetzt werden.

Bei mehreren verfügbaren Sprachen bestimmen die Spracheinstellungen des Browsers eines Besuchers, ob er die Originalstrings oder eine Übersetzung davon erhält. Andere Sprachversionen sind ihm nicht zugänglich (ohne seine Einstellungen zu ändern).

Mehrsprachige Inhalte

Auch ohne ein spezielles Plugin könnte ein Websitebetreiber Beiträge in unterschiedlichen Sprachen anbieten, allerdings wären diese bei einer deutschen Installation mit dem falschen Sprachcode deklariert. Außerdem wüsste man nicht, ob und welcher Artikel die Übersetzung eines anderen ist. Hinzu kommt, dass es neben Artikeln und Seiten ja auch noch Menüeinträge, Kategorien und vieles andere zu übersetzen gibt, woran man auf den ersten Blick gar nicht denkt.

Plugins für den mehrsprachigen Betrieb von WordPress sorgen dafür, dass Inhalte die Übersetzungen von anderen sind, als solche kenntlich gemacht werden, dass die Deklaration der Sprache in den Metadaten einer Seite korrekt angegeben werden, Kategorien und Menüeinträge übersetzbar werden und vieles mehr. Dabei helfen unter anderem der Klassiker unter diesen Plugins WPML, ein Premium-Plugin mit einer allerdings recht günstigen Lifetime-Lizenz, das offenbar derzeit an Beleibtheit gewinnende freie Plugin Polylang, und die Lösung für Multisites Multisite Language Switcher.

In den Einstellungen der Plugins kann die automatische Weiterleitung zur auf dem System des Besuchers eingestellten Sprache festgelegt werden. Nichtsdestotrotz sind ihm auch andere Sprachversionen zugänglich (sofern über Links erreichbar). Dabei berücksichtigen die Plugins üblicherweise auch gettext-Strings (sofern eine entsprechende Übersetzung davon verfügbar ist).

Alles, was innerhalb des CMS an Text verfasst wird, fällt in das Ressort der Inhaltsübersetzung und hat eine mehrsprachige Website zur Folge. Dazu gehören zum Beispiel Beiträge, Seiten, Menüeinträge, Kategorien, Schlagworte, Begriffe von benutzerdefinierten Taxonomien. Ändert sich der Name einer Kategorie oder der Inhalt einer Seite, bleibt die Übersetzung dennoch erhalten.

Weiterführende Informationen zum Thema Multilingual-WordPress bietet die darauf spezialisierte Site wplang.org an.

Über Gabriele Lässer

WordPress Sorgen? - Nicht mit mir! Ich freue mich auf spannende Herausforderungen

Kommentar schreiben

E-Mail-Adresse wird nicht veröffentlicht.

Overlay background for modal content