Dein Thema übersetzen

Es ist sehr leicht, bei der Entwicklung Ihres WordPress-Themas ein Auge auf andere Sprachen zu werfen, aber dies ist eine sehr schlechte Angewohnheit und wendet sofort einen ganzen Markt von WordPress-Benutzern und potenziell Tausende von Einnahmen aus. Von den Top-10-Ländern, die Google nach "WordPress-Themes" durchsuchen, spricht nur eines Englisch (USA) und das Land liegt auf Platz 9. Zum Zeitpunkt der Erstellung dieses Berichts gibt es nur 269 Designs in der WordPress-Designdatenbank, die aus über 1.500 Designs als übersetzungsfähig gekennzeichnet sind. Das sind nur 18% der Themen. Ich werde dir zeigen, wie du eines davon machen kannst.


Wie es funktioniert

Wenn Sie normalerweise ein Thema erstellen, werden Sie jeden Motivtext wie die 404 - Fehlermeldung in der Datei einfach hartcodieren 404.php Datei oder Bezeichnungen wie "Kommentare:" oder "Autor:". Wenn das WordPress des Benutzers beispielsweise Deutsch ist, werden diese Textausschnitte weiterhin in Englisch angezeigt. Die Lösung hierfür besteht darin, diese Anweisungen mit einer von vier WordPress-Funktionen zurückzugeben oder zu wiederholen, die auf eine Sprachdatei für den korrekten Text verweisen. Sobald Sie Ihren Text in diese Funktionen eingebunden haben, können Sie eine Datei mit allen Übersetzungen erstellen, auf die bei jedem Laden des Designs verwiesen wird. Wir verwenden drei Übersetzungsdateien:

  • .Topf (Vorlage für tragbare Objekte) - Dies ist die Vorlagendatei, die einen Verweis auf jede Textzeichenfolge in Ihrem Design enthält, die übersetzt werden muss. Diese Datei enthält keine Übersetzung. Es ist eine Klartextdatei.
  • .po (Tragbares Objekt) - Die .po wird aus der .pot-Datei erstellt und enthält alle Ihre String-Referenzen sowie deren Übersetzungen in eine bestimmte Sprache. Dies ist auch eine Klartextdatei, die bearbeitet werden kann.
  • .mo (Maschinenobjekt) - Eine binäre Version der .po-Datei. Durch die Verwendung von Maschinencode kann die Datei viel schneller als ihre Klartext-Alternative verwendet werden.

Schritt 1 Die vier Funktionen

Für jede der vier Funktionen ist mindestens ein Argument erforderlich, bei dem es sich um den zu übersetzenden Text handelt. Die Funktionen sind:

  • __ () - (zwei Unterstriche) Die Grundfunktion, die Sie meistens verwenden. Es gibt den Text in der richtigen Sprache zurück.
  • _e () - Das Gleiche wie __ () es wird jedoch der Text wiederholt, anstatt ihn zurückzugeben.
  • _n () - Wird verwendet, wenn der Text das Potenzial hat, Plural zu sein. Wenn Sie beispielsweise anzeigen möchten, wie viele Kommentare abgegeben wurden, möchten Sie möglicherweise "X-Kommentare" oder "X-Kommentare" ausgeben, je nachdem, wie viele Kommentare Sie haben.
  • _x () - Nützlich, wenn die Übersetzung des Wortes vom Kontext abhängt. "Post" könnte "einen Post" bedeuten (Substantiv)"oder" zum posten (Verb)Je nach Kontext. Es ist wichtig, dass der Übersetzer weiß, was Sie beim Übersetzen bedeuten, um genau zu sein. _x () wird hauptsächlich verwendet, wenn einzelne Wörter verwendet werden.

__ () & _e ()

Dies sind die einfachsten Übersetzungsfunktionen, die WordPress bietet. Schauen wir uns jeweils ein Beispiel an:

 
 

Beide Funktionen machen hier genau dasselbe. Die Anweisung "Dies ist ein Beitrag" wird mit der .mo-Datei verglichen, sofern vorhanden, und das Ergebnis wird zurückgegeben. __ () und _e () Es muss nur ein Argument an sie übergeben werden, nämlich den zu übersetzenden Text. Ein zweites optionales Argument ist verfügbar, und dazu kommen wir später. Der einzige Unterschied zwischen den beiden ist das __ () braucht die Echo Aussage hier. Schauen wir uns ein Beispiel an, wo __ () funktioniert besser als _e ():

 

Anstatt eine Zeichenfolge an die zu übergeben der Inhalt() Funktion haben wir genutzt __ () damit der text übersetzt werden kann. Wenn wir gebraucht hätten _e () Stattdessen müsste die Übersetzung von "Klicken Sie hier, um mehr zu lesen" in das Dokument übernommen werden, anstatt an weitergeleitet zu werden der Inhalt() was alle möglichen nicht hilfreichen Probleme verursachen würde.

_n ()

Was ist, wenn Sie eine Situation haben, in der der von Ihnen ausgegebene Text möglicherweise ein Plural oder ein Singular wie das oben genannte "X-Kommentare" sein könnte? Anstatt zwei verschiedene Textzeichenfolgen für den Übersetzer anzugeben, können Sie sagen, dass Sie über einen einzelnen Text verfügen, für den eine Übersetzung in Singular und Plural erforderlich ist. Die folgenden zwei Beispiele geben dem Benutzer das gleiche Ergebnis:

 
 

_n () erfordert drei argumente. Die erste ist die singuläre Version des Textes, die zweite ist der Plural und die dritte ist die Zahl, auf die er verweist. In diesem Fall, get_comments_number () findet heraus, wie viele Kommentare zu einem Beitrag vorhanden sind und dann _n () wählt den zu verwendenden Text aus.

_x () & _ex ()

Angenommen, Sie übersetzen eine .pot-Datei und stoßen auf einen Eintrag "scroll". Wollen Sie das als "ein Stück gerolltes Papier" oder "Schwenken auf oder ab der Website" interpretieren? Mit etwas Kontext könnten Sie wirklich beschreiben, worauf Sie ihn übersetzen müssen. Diese Funktionen geben Ihnen diese Fähigkeit, indem Sie ein zweites erforderliches Attribut haben, das eine kurze Beschreibung zur Beschreibung der Phrase oder des Wortes verlangt. Überprüfen Sie das Beispiel unten:

 

Das Beispiel zeigt Ihnen den Unterschied zwischen _x () und _Ex(). Es ist das Gleiche e, wie mit _e, um die Funktion dazu zu bringen, die Ausgabe zu wiederholen, anstatt sie zurückzugeben. Für beide ist unser erster Parameter unser Text, der übersetzt werden muss, und der zweite ist ein Kommentar oder Hinweis zum Übersetzungstext, um klar zu machen, was gemeint ist.

Fortgeschrittene Techniken

Nehmen wir an, Sie haben eine Situation, in der der Text, den Sie generieren möchten, aus einem Textstring besteht, der das Ergebnis einer Funktion oder den Wert einer Variablen enthält, die sich irgendwo darin befindet. Sie könnten versucht sein, so etwas zu korrigieren:

 

Wenn Sie Ihre .pot-Datei erstellen, wird dies von POEdit ignoriert, da keine Variable in der Mitte eines Satzes verwendet werden soll. Der Grund ist, dass die Zeichenfolge übergeben wird Sie haben das Farbthema $ ausgewählt in die .pot-Datei, aber wenn es bei der Ausführung des Skripts nach der Übersetzung sucht, wird nach der Zeichenfolge gesucht Sie haben das blaue Thema gewählt was es nicht finden wird. Was ist, wenn wir dies stattdessen tun:

 

Das Skript kann nun die Übersetzungen abrufen. Nun ist es jedoch zu schwierig, es zu übersetzen, da der Satz gebrochen wurde. Dieser Satz ist möglicherweise nicht einmal in einige Sprachen übersetzbar, die eine stark unterschiedliche Syntax haben, z. B. auf Deutsch, wo das Wort "gewählt" am Ende des Satzes steht. Sie müssen sich die Mühe machen, zu erklären, dass diese beiden separaten Textzeichenfolgen Teil eines sind, und dass "Thema" möglicherweise nicht in "Thema" übersetzt wird.

Die Lösung besteht darin, eine einzelne Textzeichenfolge mit einer für Anführungszeichen geeigneten Syntax zu verwenden. Dies ist, wo die printf () oder sprintf () Funktionen werden nützlich. Schauen wir uns an, wie unser Code aussehen muss:

 

Dies löst nicht nur unser gesamtes Problem, das wir zuvor hatten, sondern es ist viel aufgeräumter und verwendet nur eine Codezeile. Das printf () oder sprintf () Die ersten Argumente der Funktionen sind der auszugebende String, der in diesem Fall mindestens einen Platzhalter enthält % s (was "Zeichenfolge" bedeutet), und alle anderen Argumente sind Variablen, die in die Anfangszeichenfolge eingefügt werden sollen. Es gibt viele verschiedene Platzhalter, die Sie in Ihrer Zeichenfolge verwenden können. Eine vollständige Liste finden Sie unter Sprintf im PHP-Handbuch. Beachten Sie, dass der Unterschied zwischen printf () und sprintf () ist ähnlich wie _e () und __ () beziehungsweise.


Schritt 2 Einführung in POEdit

Nachdem Sie alle Ihre Textausgaben erfolgreich in Ihrem Design markiert haben, müssen Sie diese Informationen nun in einer .pot-Datei sammeln. POEdit ist ein fantastisches Programm, mit dem Sie Ihre .pot-Datei erstellen können. Außerdem bietet es eine einfach zu bedienende grafische Benutzeroberfläche, mit der Sie Ihre .po- und vor allem Ihre .mo-Dateien erstellen können.

Zunächst müssen Sie POEdit herunterladen, das Sie hier für Windows, Mac und Linux finden:
http://www.poedit.net/download.php

Sobald POEdit installiert ist, können Sie Ihre .pot-Datei erstellen. Gehen Sie dazu auf Datei> Neuer Katalog. Sie erhalten ein Dialogfeld, in dem Sie einige grundlegende Informationen eingeben müssen. Das Wesentliche auf der Registerkarte "Projektinfo" sind der Projektname und Ihre Sprache / Ihr Land. Außerdem müssen Sie im Feld "Mehrere Formen" Folgendes eingeben:

Plural Formen: nplurals = 2; Plural = n! = 1;

Geben Sie auf der Registerkarte "Pfade" den Pfad ein, in dem die Dateien relativ zum Speicherziel dieser .pot-Datei gefunden werden können. Wenn Sie beispielsweise die .pot-Datei im Stammordner des Themas ablegen, geben Sie Folgendes ein . (Zeitraum). Wenn Sie die .pot-Datei in einem "Sprachen" -Ordner innerhalb des Designstamms ablegen möchten, geben Sie Folgendes ein (zwei Perioden).

Als Nächstes müssen Sie POEdit mitteilen, nach welchen Schlüsselwörtern beim Scannen unserer Dateien gesucht werden soll. Gebe folgendes ein:

  • __
  • _e
  • _n: 1,2
  • _x: 1,2c
  • _ex: 1,2c

Das : 1,2 Erweiterung sagen POEdit, dass diese Schlüsselwörter aus zwei Teilen bestehen. Standardmäßig ist das zweite Argument der Plural, sofern Sie nicht das c was das zweite Argument bedeutet, ist ein Kommentar.

Du bist gut zu gehen! Klicken Sie auf "OK" und wählen Sie einen Ort, an dem Ihre .pot-Datei gespeichert werden soll. Denken Sie daran, dass es sich auf den zuvor definierten Pfad beziehen muss. POEdit durchsucht nun Ihre Dateien, findet alle Vorkommen Ihrer Übersetzungsfunktionen und speichert sie ohne Übersetzungen in Ihrer .pot-Datei. Wenn Sie nur die minimale Unterstützung für internationale Übersetzungen anbieten möchten, können Sie Ihre .pot-Datei mit Ihrem Thema versenden und hier aufhören. Wenn Sie jedoch Ihr Thema selbst in eine andere Sprache übersetzen können, können Sie Ihr Thema mit einer vorgefertigten Übersetzung versenden wie in Schritt 3 beschrieben.


Schritt 3 Übersetzen und Erstellen Ihrer .po-Datei

  1. Eine Liste aller zu übersetzenden Textzeichenfolgen
  2. Die aktuell übersetzte Zeichenfolge
  3. Ihre Übersetzung des Strings
  1. Singular und Plural der aktuellen Zeichenfolge
  2. Registerkarten, um zwischen Singular und Plural Ihrer Übersetzung zu wechseln
  3. Ihre Übersetzung

Wenn Sie alle Zeichenfolgen in der .pot-Datei übersetzt haben, können Sie diese als .po-Datei speichern. Jede Zeichenfolge, für die Sie keine Übersetzung bereitgestellt haben, wird in der Originalsprache angezeigt, wenn jemand Ihr Design anzeigt.

Der Dateiname Ihrer .po ist entscheidend. Gettext verwendet den ISO 639-Standard für Sprachabkürzungen und ISO 3166 für Gebietsschemas. Wenn Ihre Übersetzung beispielsweise in amerikanischem Englisch verfasst ist, sieht Ihr Dateiname folgendermaßen aus de-US.po. Kapitalisierung ist auch hier wichtig. Eine vollständige Liste der Sprach- und Ländercodes finden Sie unter diesen beiden Links:

  • Gettext-Sprachcodes
  • Gettext-Ländercodes

Nach dem Speichern erstellt POEdit standardmäßig automatisch eine .mo-Datei neben Ihrer .po-Datei. Es wird empfohlen, dass Sie alle drei Übersetzungsdateien in Ihr Design einfügen, damit die Benutzer ihre eigenen Übersetzungen erstellen und Ihre vorhandenen Übersetzungen problemlos bearbeiten können.


Schritt 4 WordPress einrichten

Lassen Sie uns zusammenfassen, was Sie bisher gemacht haben. Sie haben WordPress den gesamten Text mitgeteilt, den Sie übersetzen möchten, und dann haben Sie POEdit verwendet, um jeden String zu sammeln und in eine .pot-Datei zu platzieren, die in eine .po- und .mo-Datei übersetzt werden kann. Diese Dateien sind dann in den Designdateien enthalten. Der letzte Schritt besteht darin, das Theme zu komprimieren, zu installieren und WordPress mitzuteilen, welche Sprache .mo-Datei Sie verwenden möchten. Dies ist ein sehr einfaches Verfahren, bei dem Sie auf Ihr System zugreifen wp-config.php Die Datei befindet sich im Stammordner von WordPress.

 / ** * WordPress Localized Language, Standardeinstellung Englisch. * * Ändern Sie dies, um WordPress zu lokalisieren. Eine entsprechende MO-Datei für die gewählte * Sprache muss in wp-content / languages ​​installiert sein. Installieren Sie beispielsweise * de_DE.mo auf wp-content / languages ​​und setzen Sie WPLANG auf 'de_DE', um die Unterstützung der deutschen Sprache * zu aktivieren. * / define ('WPLANG', ");

Ihre Datei sollte bereits enthalten define ('WPLANG', "); Wenn dies nicht der Fall ist, können Sie es hinzufügen. Sie müssen lediglich Ihren Sprach- und Gebietsschemacode in die definieren. Wenn Sie Ihr Thema ins Deutsche übersetzen würden, hätten Sie folgendes:

 define ('WPLANG', 'de_DE');

Ihre Internationalisierung ist abgeschlossen! Vergessen Sie nicht, Ihre .pot-Datei in Ihr Design aufzunehmen, und falls Sie das Thema in eine andere Sprache übersetzen konnten, auch die .po- und .mo-Dateien.