Was ist der beste Weg, um ein Plugin zu erstellen, das für die Übersetzung bereit ist?
Es muss nicht von Anfang an übersetzt werden, sondern einfach zu übersetzen sein, damit andere Entwickler aus verschiedenen Kulturen am Lokalisierungsprozess des Plugins teilnehmen können.
Verwenden Sie nicht echo
oder print()
, um eine Textausgabe zu erstellen, sondern verwenden Sie stattdessen die WordPress-Funktionen __()
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;
Mit _e()
und __()
wird der als erster Parameter angegebene Text in die aktuelle Sprache übersetzt. _e()
gibt den Text aus, während __()
ihn zurückgibt.
Der zweite Parameter ist die Textdomäne . Sie teilen WordPress damit mit, dass der als erster Parameter angegebene Text zu diesem Plugin gehört. Sie können einen beliebigen Namen verwenden, aber ich bevorzuge die Verwendung desselben Namens Da ich für die Plugin-Datei von Verzeichnis verwendet habe, finde ich es intuitiver.
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;
Definitionen
Öffne Poedit und erstelle einen neuen Katalog (Datei ›Neuer Katalog ...) mit diesen Einstellungen:
.
..
hinzufügen, (wir speichern die Sprachdatei in einem Plugin-Unterverzeichnis namens languages)__
und _e
hinzufügen Speichere den Katalog als /my_wordpress_blog/wp-content/plugins/my-plugin/languages/my-plugin.pot
und scanne deine Plugin-Dateien nach übersetzbarem Text, indem du den Update-Button drückst. Wenn das Update abgeschlossen ist, schließen Sie diesen Katalog und müssen diese Datei erst aktualisieren, wenn Sie Ihrem Plugin neue übersetzbare Zeichenfolgen (d. H. In __()
oder _e()
enthalten) hinzufügen.
Jetzt erstellen wir die erste Übersetzung (ich werde fr_FR verwenden):
Mit Podeit , einen Katalog aus einer POT-Datei erstellen (Datei ›Neuer Katalog aus POT-Datei ...):
Speichern der Katalog als /my_wordpress_blog/wp-content/plugins/my-plugin/languages/my-plugin-fr_FR.po
. Übersetzen Sie einige oder alle Zeichenfolgen, save die PO-Datei erneut, upload sowohl die PO- als auch die MO-Datei.
Beachten Sie, dass beim Speichern einer .po-Datei eine .mo-Datei mit demselben Namen erstellt wird: der Dateiname der .po-Datei ist entscheidend , er setzt sich aus der Verkettung der Plugin-Textdomäne (my-plugin ) und das Sprachgebietsschema (fr_FR) benennen Sie Ihre .po-Dateien für Plugins immer so: [Textdomäne] - [Gebietsschema] .po , hier einige Beispiele:
wpcf7-it_IT.po
wpcf7-pt_BR.po
wpcf7-ar.po
... Ja!Immer wenn das Plugin mit neuem Text aktualisiert wird, update the po file, translate new strings und laden Sie die .po und .mo Dateien erneut hoch
Irgendwo in Ihrem Plugin müssen Sie WordPress anweisen, Ihre .mo-Datei zu verwenden. Verwenden Sie dazu den folgenden Code am Anfang Ihrer Plugin-Datei:
function my_plugin_init() {
load_plugin_textdomain( 'my-plugin', false, 'my-plugin/languages' );
}
add_action('init', 'my_plugin_init');
Ersetzen Sie my-plugin
durch Ihren Plugin-Namen im 1. und 3. Parameter der Funktion load_plugin_textdomain
.
Einige Gründe, die möglicherweise nicht funktionieren:
_e('my text')
durch _e('my text', 'my-plugin')
ersetzen)Nabils Antwort ist ziemlich vollständig, aber es gibt eine einfache Variante:
Ihr Plugin befindet sich im WordPress.org-Plugin-Repository
Sie möchten, dass Ihr Plugin nur mit WordPress 4.6 oder höher funktioniert.
Die Schritte sind diese:
Fügen Sie in der readme.txt-Datei Ihres Plugins Requires at least: 4.6
hinzu. Siehe https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/
falls noch nicht geschehen, laden Sie Ihr Plugin in das WordPress-Plugin-Repository hoch. Siehe https://wordpress.org/plugins/developers/add/ .
Suchen Sie die Slug/Text-Domain Ihres Plugins. Gehen Sie dazu auf die Seite Ihres Plugins im WordPress-Plugin-Repository. Die URL lautet https://wordpress.org/plugins/your-plugin-slug/ . Der letzte Teil der URL, "your-plugin-slug", ist der Slug Ihres Plugins. Dies verwenden Sie für die Textdomäne der Übersetzungsfunktionen.
Verwenden Sie die Übersetzungsfunktionen von WordPress in Ihrem Plugin (wie __e(‘hello’, ‘my-plugin-domain’);
). Stellen Sie einfach sicher, dass Sie die richtige Plugin-Textdomäne verwenden, die Sie im vorherigen Schritt erworben haben. Weitere Informationen finden Sie unter https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/ .
Wenn Sie die obigen Schritte ausführen, kümmert sich WordPress um:
(Antwort von meinem Blog-Post hier: https://cmljnelson.blog/2019/01/01/the-really-lazy-way-to-translate-a-wordpress-plugin/ )