Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. WordPress
Code

Mehrsprachige WordPress Projekte: Updates in WordPress 4.6

by
Difficulty:BeginnerLength:ShortLanguages:
This post is part of a series called Internationalizing WordPress Projects.

German (Deutsch) translation by Andreas Geibert (you can also view the original English article)

In dieser Serie haben wir bisher genau behandelt, was Du tun musst, um Mehrsprachigkeit in Deine WordPress Projekte zu integrieren. Solltest Du die vorherigen Artikel noch nicht gelesen haben, empfehle ich Dir, dies noch nachzuholen.

Denn obwohl es einige Änderungen im Umgang mit Mehrsprachigkeit und deren Übersetzungen in WordPress 4.6 gab, heißt das nicht, dass die vorherigen Artikel irrelevant sind. Es bedeutet nur, dass sich die Art und Weise, wie Deine Plugins und Übersetzungen verteilt werden, ändert.

Und das ist, was wir und in diesem Tutorial genauer ansehen werden.

Bevor es losgeht

Wie bereits gesagt, geht dieses Tutorial davon aus, dass Du alles, was bereits in dieser Tutorial-Serie, und somit in den voran gegangenen Artikeln, behandelt wurde, kennst und verstanden hast. Das bedeutet, Du solltest:

  • Mehrsprachigkeit verstehen und wissen, warum diese wichtig ist.
  • Eine Entwicklungsumgebung aufsetzen können, in der Du mit dem Beispiel-Code arbeiten kannst.
  • Das Thema "Übersetzung" verstehen (und wissen, was der Unterschied zu Mehrsprachigkeit ist).
  • Wissen, wie Du mit Programmen arbeiten kannst, mit deren Hilfe Du Übersetzungen von Mehrsprachigen Projekten umsetzen kannst.

Sollten diese Punkte für Dich unverständlich sein, Sie Dir noch die anderen, vorherigen Artikel dieser Tutorial-Serie an. Wenn Du alle vorher genannten Punkte verstehst und auch jemand anderem erklären könntest, bist Du bereit, um in dieses Tutorial zu starten.

Die Änderungen verstehen

Das Schöne an diesem Tutorial ist, dass es mehr informativ als theoretisch (oder praktisch in diesem Fall) ist. Das bedeutet, dass wir keinen Code zur Veranschaulichung benötigen werden. Es soll nur dazu dienen, Dir alle nötigen Informationen zu geben und sicher zu stellen, dass Du am Ende weißt, was, wann und warum Du es brauchst.

Bevor wir zu tief in's Thema eintauchen, machen wir einen kleinen Schritt zurück und sehen und erst einmal den gesamten Mehrsprachigkeits-Prozess von WordPress an, und wie dieses Übersetzungs-Dateien lädt.

Wie Mehrsprachigkeit und Übersetzung funktioniert

Das Konzept von Mehrsprachigkeit und Übersetzung ist relativ einfach zu verstehen, kann aber auch leicht verwechselt werden. Sogar ich habe, als ich mit WordPress angefangen habe, diese beiden Wörter falsch verwendet.

Die Mehrsprachigkeit in einem Plugin zu etablieren, erschafft die Möglichkeit, das Plugin in andere Sprachen zu übersetzen.

Mehrsprachigkeit herstellen ist der Weg, um einzelne Wörter und ganze Sätze, die in andere Sprachen übersetzt werden müssen, in unserem Plugin für die Übersetzung in andere Sprachen vorzubereiten.

Die Übersetzung ist dann der eigentliche Akt des Übersetzens von Wörtern und Sätzen, welcher am Ende dann in einem "Language Pack", also einer gebündelten Sprachdatei mündet und von WordPress, abhängig von der eingestellten Sprache, geladen wird.

Lasst uns als Beispiel einmal annehmen, dass ich ein Plugin in "Amerikanischem Englisch" entwickle, oder genauer gesagt im Gebietsschema en_US wie Du es ab jetzt immer wieder sehen wirst. Dann wirst Du all den text, den ich im Plugin geschrieben habe, ebenfalls in "Amerikanisch Englisch" sehen.

Aber was passiert, wenn jemand, der das Plugin verwendet, dieses auf Spanisch übersetzen möchte? Zuerst wird diese Person ein Programm, wie z.B. POEdit nutzen, um die einzelnen Übersetzungen einzupflegen.

Dann wird er oder sie die resultierende Sprachdatei in den languages Ordner, oder welcher Ordner auch immer in diesem Fall verwendet wird, legen. Die Sprachdatei sollte dann nach dem passenden Gebietsschema benannt werden. In diesem Fall es_ES.

The languages directory for Debug Bar

Wenn das Plugin geladen wird, und WordPress dabei auf einem Rechner, der das Gebietsschema es_ES voreingestellt hat, ausgeführt wird, wird die Sprachdatei geladen, welche dann alle zu übersetzenden Bereiche durch deren spanischen Äquivalente ersetzt.

So funktionierte das Übersetzen in WordPress eine lange Zeit lang. Wenn Du Dich allerdings dafür entscheidest, Plugins außerhalb des Plugin Repositories anzubieten, ist dies weiterhin der Weg, um Plugins zu übersetzen.

Aber was, wenn diese Plugins im Repository angeboten werden?

Just-in-Time Übersetzungen

In der Informatik gibt es ein Konzept namens JIT (oder just-in-time), welches oft auch als  "just-in-time Kompilierung" bezeichnet wird.

Bezogen auf die Datenverarbeitung bedeutet just-in-time (JIT) Kompilierung, auch bekannt als dynamische Kompilierung, Kompilierung zur Laufzeit – Im Gegensatz zur Kompilierung vor der Ausführung eines Programms.

In der neuesten Version, beim Schreiben dieses Artikels ist dies WordPress 4.6, können sich Plugins, die einem bestimmten Protokoll folgen, die Vorteile von just-in-time Übersetzungen zunutze machen. Das Make WordPress Blog fasst diese Änderungen folgendermaßen zusammen:

Da Übersetzungsdateien in der Regel im Ordner wp-content/languages abgelegt werden, scannt WordPress dieses Verzeichnis und sucht nach verfügbaren Übersetzungen. Findet es eine Text-Domäne zum ersten Mal, lädt es die Übersetzungsdateien automatisch.

Was bedeutet das für Entwickler? Kurz gesagt, bedeutet dies, dass, wenn wir unsere Plugins über das WordPress Plugin Repository verteilen, WordPress zuerst seine Übersetzungs-Bibliothek scannt, um zu sehen, ob für das aktuelle Plugin und das angeforderte Gebietsschema eine Übersetzung vorhanden ist. Wenn WordPress eine Übersetzung findet, lädt es diese.

Findet es keine, können zwei Dinge passieren:

  1. Das Plugin wird einfach nicht übersetzt.
  2. Das Plugin nutzt die Übersetzungsdatei, die es selbst mitbringt.

Zu diesem neuen Ansatz gibt es allerdings einige Dinge zu beachten:

  1. Wir müssen nicht länger load_plugin_textdomain() in unseren auf WordPress 4.6, oder neuer, basierten Plugins aufrufen.
  2. Verwendest Du unload_textdomain(), musst Du danach die Übersetzungen manuell laden, wenn Du sie verwenden möchtest.

Obwohl dies einfach klingt, empfehle ich Dir trotzdem dringen, den Blog Post zu lesen, um wirklich umfassend zu verstehen, wie das neue System funktioniert und wie es Deine tägliche Arbeit damit beeinflusst.

Generell finde ich diese Funktion unglaublich gut gelungen. Es erlaubt uns, Plugins anzubieten, die bereits vorhandene Übersetzungen haben, welche über WordPress geladen werden können.

Aber trotzdem sollte dies keine Entschuldigung dafür sein, weiterhin die Sprachpakete im Plugin selbst mitzuliefern.  Denn wie beschrieben, werden Sprachpakete, wenn sie nicht gefunden werden, weiterhin über den languages Ordner geladen.

Und wenn unser Ziel ist, und das sollte es sein, Plugins so robust wie möglich zu entwickeln, sollten wir uns nicht auf etwas verlassen, das möglicherweise nicht existiert. Stattdessen: Auf das Beste hoffen, aber für den schlechtesten Fall vorsorgen.

Fazit

Damit haben wir nun umfassend gesehen, wie WordPress mit Mehrsprachigkeit und Übersetzungen arbeitet und dies mit Plugins, die sowohl im WordPress Repository, als auch über eigene Kanäle angeboten werden, funktioniert.

Solltest Du noch mehr über die Entwicklung mit WordPress erfahren wollen, möchte ich Dir noch sagen, dass ich ausschließlich mit WordPress arbeite und oft darüber schreibe. Du kannst Dir all meine Kurse auf meiner Profil-Seite ansehen, mein Blog lesen und/oder mir auf Twitter unter @tommcfarlin folgen, wo ich ebenfalls über Software-Entwicklung mit WordPress schreibe.

Und wie immer: Wenn Du nach weiteren Tipps und Tools, oder aber auch Beispiel-Projekte mit Code zum Durcharbeiten suchst, die Dich in der Entwicklung mit WordPress schnell voran bringen werden – Sieh Dir an, was wir alles im Envato Market anbieten.

Zögere auch nicht, Fragen oder Kommentare im Feed unten zu hinterlassen, und ich werde versuchen, auf jeden Eintrag zu antworten.

Ressourcen zum Thema

Einige wichtige Ressourcen zum Thema sind weiter unten aufgelistet. Bitte beachte, dass diese sowohl aus vorangegangenen Tutorials, als auch aus diesem stammen. Es bleibt nur noch zu sagen: Wenn Du die vorherigen Tutorials ebenfalls durchgearbeitet hast, solltest Du gut gerüstet sein. Wenn Du das noch nicht geschafft hast, solltest Du auf jeden Fall noch die folgenden Links durcharbeiten.

Vielleicht möchtest Du auch das Demo-Projekt herunter laden, um den Quellcode durchzuarbeiten und zu sehen, wie alles am Beispiel funktioniert. Das ist auch besonders hilfreich, wenn Du Plugins außerhalb des WordPress Plugin Repository anbieten möchtest.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.