Wie mache ich eine WordPress-Plug-in-Übersetzung fertig?

Wie erstellt man am besten ein plugin-fähiges Plugin?

Es muss nicht von Anfang an übersetzt werden, aber es muss leicht übersetzbar sein, damit andere Entwickler aus verschiedenen Kulturen am Lokalisierungsprozess des Plugins teilnehmen können.

Solutions Collecting From Web of "Wie mache ich eine WordPress-Plug-in-Übersetzung fertig?"

1. Schreiben Sie mit Lokalisierung im Hinterkopf

Verwenden Sie nicht echo oder print() , um eine Textausgabe zu erzeugen, sondern verwenden Sie die WordPress-functionen __() und _e() :

 /** Not localization friendly */ echo "Welcome to my plugin"; // OR print("Welcome to my plugin"); /** Localization friendly */ _e('Welcome to my plugin', 'my-plugin'); // OR $my_text = __('Welcome to my plugin', 'my-plugin'); echo $my_text; 

_e() und __() liefern die Übersetzung des als ersten Parameter angegebenen Textes in der aktuellen Sprache. _e() gibt den Text aus, während __() ihn _e() .

Der zweite Parameter ist die Textdomäne , mit der Sie WordPress mitteilen, dass der Text, der als erster Parameter angegeben wurde, zu diesem Plugin gehört. Sie können einen beliebigen Namen verwenden, aber ich bevorzuge den gleichen Namen wie für das Plugin Datei des Verzeichnisses finde ich intuitiver.

So geben Sie dynamischen Text aus: “Hallo “?

Mit __() und sprintf() :

 /** Get the username */ $username = 'Magictrick'; /** Not localization friendly */ echo "Hello $username"; /** Localization friendly */ printf(__('Hello %s', 'my-plugin'), $username); // OR $my_text = sprintf(__('Hello %s', 'my-plugin'), $username); echo $my_text; 

2. Bereiten Sie die .pot / .po / .mo-Dateien vor

Definitionen

  • Die .pot-Datei : wird vom Plugin-Entwickler zur Verfügung gestellt und dient als Ausgangspunkt, um neue Übersetzungen zu erstellen, WordPress verwendet sie nicht.
  • Eine .po-Datei : ist eine Übersetzungsdatei, die Sie oder jemand anders gestartet hat, und vielleicht ist sie fertig, WordPress verwendet sie nicht.
  • A.mo-Datei : wird automatisch von Poedit erstellt, wenn Sie eine .po-Datei speichern. Mit diesen Dateien können Sie sie nur hochladen oder erneut hochladen, wenn Sie eine .po-Datei erstellen oder aktualisieren. WordPress erhält Übersetzungen von .mo-Dateien .

Öffne Poedit und erstelle einen neuen Katalog (Datei> Neuer Catallog …) mit diesen Einstellungen:

  • Projektinfo: Verwenden Sie Ihre (oder Ihr Team) Informationen, die Sprache und das Land sollten mit der Standardsprache Ihres Plugins übereinstimmen
  • Pfade:
    • Basispfad:.
    • Pfade: alle entfernen & hinzufügen .. , (wir werden die Sprachdatei in einem Plugin-Unterverzeichnis namens Sprachen speichern)
  • Schlüsselwörter: Alle entfernen & __ und _e hinzufügen

Speichern Sie den Katalog unter /my_wordpress_blog/wp-content/plugins/my-plugin/languages/ my-plugin.pot und scannen Sie Ihre Plugin-Dateien nach übersetzbarem Text, indem Sie die Schaltfläche Aktualisieren drücken. Wenn das Update beendet ist, schließen Sie diesen Katalog, Sie müssen diese Datei nicht aktualisieren, es sei denn, Sie fügen neue übersetzbare Zeichenfolgen ( _e() eingeschlossen in __() oder _e() ) zu Ihrem Plugin hinzu.

Jetzt erstellen wir die erste Übersetzung (ich werde fr_FR verwenden):

Erstellen Sie mithilfe von Podeit einen Katalog aus einer POT-Datei (Datei> Neuer Katalog aus POT-Datei …) :

  • Projektinfo: Verwenden Sie Ihre Informationen (oder Ihr Team), ändern Sie die Sprache und das Land , ich werde Französisch und Frankreich verwenden
  • Pfade: Nicht ändern
  • Stichwort: nicht chagen

Speichern Sie den Katalog unter /my_wordpress_blog/wp-content/plugins/my-plugin/languages/ my-plugin-fr_FR.po . Übersetzen Sie einige oder alle Zeichenfolgen, speichern Sie die .po-Datei erneut, laden Sie die Dateien .po und .mo hoch.

Beachten Sie, dass beim Speichern einer .po-Datei immer eine .mo-Datei mit demselben Namen generiert wird. Der Dateiname der .po-Datei ist entscheidend . Er besteht aus der Verkettung der Plugin-Textdomäne (my-plugin) und dem Gebietsschema ( fr_FR), benenne deine .po-Dateien immer für Plugins wie folgt : [textdomain] – [locale] .po , hier sind einige Beispiele:

  • Italienisch / Italien: wpcf7-it_IT.po
  • Portugiesisch / Brasilien: wpcf7-pt_BR.po
  • Arabisch: wpcf7-ar.po … Ja!

Wenn das Plugin mit neuem Text aktualisiert wird , aktualisieren Sie die PO- Datei, übersetzen Sie neue Strings und laden Sie die Dateien .po und .mo erneut hoch

3. Weisen Sie das Plugin an, übersetzten Text für die aktuelle Sprache zu laden

Irgendwo in Ihrem Plugin müssen Sie WordPress anweisen, Ihre .mo-Datei zu verwenden, Sie können dies tun, indem Sie diesen Code am Anfang Ihrer Plugin-Datei verwenden:

 function my_plugin_init() { load_plugin_textdomain( 'my-plugin', false, 'my-plugin/languages' ); } add_action('init', 'my_plugin_init'); 

Ersetzen Sie my-plugin mit Ihrem plugin-Namen im 1. und 3. Parameter der function load_plugin_textdomain .

4. Test und Fehlerbehebung

Einige Gründe, warum es nicht funktioniert:

  • Zeichenfolgen werden nicht in die .pot- oder .po-Datei importiert
    • → Falsche Katalogeinstellungen (Pfad oder Schlüsselwörter oder beides)
  • Text ist nicht auf der WordPress-Website übersetzt
    • → .mo Datei für diese Sprache fehlt oder hat einen falschen Dateinamen
    • _e('my text') nicht benutzt (ersetze _e('my text') durch _e('my text', 'my-plugin') )
    • → Textdomäne nicht geladen (verwenden Sie das obige Beispiel mit den richtigen Parametern, WP warnt Sie nicht vor Fehlern)