So importieren Sie Theme- und Plugin-Übersetzungen in WordPress.org
Zwei Wege bringen übersetzte .po- und .mo-Dateien zu den Nutzern von WordPress.org. Beantragen Sie CLPTE-Zugang (1-2 Wochen) oder bündeln Sie .mo-Dateien mit Ihrer Veröffentlichung (am nächsten Tag verfügbar). Beide funktionieren. Der Kompromiss liegt zwischen kanonischer Verteilung und Geschwindigkeit. Dieser Leitfaden behandelt, wann Sie welchen Weg nutzen, und führt Sie Schritt für Schritt durch beide.
Sie haben Ihr Plugin oder Theme mit PTC (Private Translation Cloud) übersetzt und verfügen über die .po- und .mo-Dateien. Nutzer, die Ihr Plugin von WordPress.org installieren, sehen diese Übersetzungen standardmäßig nicht. Die Sprachpakete von WordPress.org und Ihre gebündelten Dateien sind zwei getrennte Verteilungskanäle. Wählen Sie einen, der zu Ihrem Veröffentlichungsrhythmus und Ihrer Zielgruppe passt.
Weg 1: Übersetzungen über die Sprachpakete von WordPress.org (CLPTE) veröffentlichen
Gesamtdauer: 4-6 Tage.
Schritt 1: Ein CLPTE-Konto erstellen
Die Rolle CLPTE (Cross-Locale Project Translation Editor) erlaubt es Ihnen, Übersetzungen im Namen Ihres Themes oder Plugins für jede Zielsprache von einem einzigen Konto aus einzureichen. Ein reguläres Translation-Editor-Konto gilt pro Sprache; CLPTE nicht.
Wenn Sie bereits ein Konto auf WordPress.org haben, kann es vorkommen, dass Ihr neues CLPTE-Konto deaktiviert wird. WordPress erlaubt keine mehrfachen Konten. Um das zu lösen, schreiben Sie eine E-Mail an forum-password-resets@wordpress.org und erklären Sie, dass Sie ein CLPTE-Konto erstellen möchten. Es hilft, die relevante Polyglots-Dokumentation mit dem Moderator zu teilen und das Polyglots-Team in Slack anzupingen.
Geschätzte Dauer: ~3-5 Tage (einschließlich Wartezeit, falls Ihr neues Konto deaktiviert wird).
Schritt 2: CLPTE-Zugang im Polyglots-Blog beantragen
Sobald Ihr Konto aktiviert ist, veröffentlichen Sie eine Anfrage im WordPress.org Polyglots-Blog. Folgen Sie deren Vorlage:
PTE/CLPTE Request
Plugin URL: https://wordpress.org/plugins/my-plugin/
Authors / Editors: @your-wp-username
Type of request: CLPTE
Sie erhalten eine Benachrichtigung, sobald Ihre Anfrage genehmigt ist.
Geschätzte Dauer: ~1 Tag (das Polyglots Global Team prüft Anfragen in Stapeln).
Schritt 3: Die übersetzten .po-Dateien importieren
- Melden Sie sich unter
https://translate.wordpress.org/mit Ihrem CLPTE-Konto an. - Gehen Sie zur Übersetzungsprojektseite Ihres Plugins oder Themes (zum Beispiel
translate.wordpress.org/projects/wp-plugins/{your-plugin-slug}/). - Öffnen Sie das lokale Projekt für jede Sprache, die Sie übersetzt haben.
- Scrollen Sie nach unten und klicken Sie auf Import Translations.
- Laden Sie Ihre
.po-Datei (oder.mo-Datei) hoch. - Markieren Sie die importierten Strings im Übersetzungseditor als „current". Genehmigte Strings gehen in die nächste Generierung des Sprachpakets ein (in der Regel täglich).
- Wiederholen Sie dies für jede Zielsprache. Jede Locale hat ihre eigene Übersetzungsseite.
Geschätzte Dauer: ~10-30 Minuten pro Sprache.
Nach einem Sprachpaket-Fenster von 24-48 Stunden beginnen Websites, die Ihr Plugin verwenden, die neuen Übersetzungen über die automatischen Sprachpaket-Updates von WordPress zu erhalten. Nutzer sehen keine Update-Aufforderung. Die Übersetzungen erscheinen einfach.
Was CLPTE für Sie leistet und was nicht
- Sie können bestehende Community-Übersetzungen nicht ersetzen. Nur unübersetzte Strings werden importiert. Eine bestehende Community-Übersetzung zu aktualisieren erfordert den Standardprozess und das Abwarten der Prüfung durch das Locale-Team.
- Aktualisierungen erfordern manuelle Uploads bei jeder Veröffentlichung. Jede neue Veröffentlichung bedeutet eine neue Runde von Uploads.
- Kontoerstellung und Genehmigung können bis zu einer Woche dauern.
Weg 2: Die .mo-Dateien in Ihr Plugin oder Theme einbinden
Wenn Sie Übersetzungen schneller live brauchen, als CLPTE es zulässt, oder wenn Sie nicht von der Verteilungspipeline von WordPress.org abhängig sein möchten, bündeln Sie die .mo-Dateien direkt in der Veröffentlichung Ihres Plugins oder Themes. Gesamtdauer: 15-30 Minuten.
Schritt 1: Die .mo-Dateien zum Verzeichnis /languages/ hinzufügen
Legen Sie Ihre kompilierten .mo-Dateien in das Verzeichnis /languages/ Ihres Plugins oder Themes, damit WordPress sie beim Laden Ihrer Textdomain findet:
my-plugin/
├─ my-plugin.php
├─ readme.txt
├─ languages/
│ ├─ my-plugin-es_ES.mo
│ ├─ my-plugin-es_ES.po
│ ├─ my-plugin-fr_FR.mo
│ ├─ my-plugin-fr_FR.po
│ ├─ my-plugin-de_DE.mo
│ └─ my-plugin-de_DE.po
Verwenden Sie dieselbe Textdomain in den Namen Ihrer Übersetzungsdateien und in Ihren Aufrufen von load_plugin_textdomain() oder load_theme_textdomain().
Schritt 2: Ihre gebündelten Dateien gegenüber Community-Übersetzungen bevorzugen
Standardmäßig priorisiert WordPress Community-Übersetzungen von WordPress.org gegenüber gebündelten. Um sicherzustellen, dass Ihr Plugin oder Theme stattdessen die gebündelten .mo-Dateien verwendet, fügen Sie den Filter load_textdomain_mofile hinzu.
Für Plugins fügen Sie dies Ihrer Haupt-Plugin-Datei hinzu (z. B. my-plugin.php):
function my_plugin_load_embedded_translation_file( $mofile, $domain ) {
if ( 'my-domain' === $domain && false !== strpos( $mofile, WP_LANG_DIR . '/plugins/' ) ) {
$locale = apply_filters( 'plugin_locale', determine_locale(), $domain );
$local_mofile = WP_PLUGIN_DIR . '/' . dirname( plugin_basename( __FILE__ ) ) .
'/languages/' . $domain . '-' . $locale . '.mo';
if ( file_exists( $local_mofile ) ) {
return $local_mofile;
}
}
return $mofile;
}
add_filter( 'load_textdomain_mofile', 'my_plugin_load_embedded_translation_file', 10, 2 );
Für Themes fügen Sie dies der functions.php Ihres Themes hinzu:
function my_theme_load_embedded_translation_file( $mofile, $domain ) {
if ( 'my-domain' === $domain && false !== strpos( $mofile, WP_LANG_DIR . '/themes/' ) ) {
$locale = apply_filters( 'theme_locale', determine_locale(), $domain );
$local_mofile = get_template_directory() . '/languages/' . $locale . '.mo';
if ( file_exists( $local_mofile ) ) {
return $local_mofile;
}
}
return $mofile;
}
add_filter( 'load_textdomain_mofile', 'my_theme_load_embedded_translation_file', 10, 2 );
Bestätigen Sie außerdem, dass Ihr Plugin oder Theme die Textdomain am richtigen Hook lädt:
add_action( 'init', function() {
load_plugin_textdomain(
'my-plugin',
false,
dirname( plugin_basename( __FILE__ ) ) . '/languages'
);
} );
Schritt 3: Überprüfen, ob die gebündelten Übersetzungen auf einer Testsite geladen werden
Installieren Sie Ihr Plugin oder Theme auf einer Testsite und stellen Sie WordPress auf eine der von Ihnen bereitgestellten Sprachen um:
- Gehen Sie zu Einstellungen > Allgemein > Sprache der Website und wählen Sie eine Sprache, deren
.mo-Datei in Ihrem Ordner/languages/liegt. - Laden Sie eine Seite oder einen Bildschirm, der Strings enthält, von denen Sie wissen, dass sie übersetzt sind.
- Bestätigen Sie, dass die Strings in der richtigen Sprache erscheinen und mit den von Ihnen hinzugefügten Übersetzungen übereinstimmen.
Wenn Sie immer noch alte Community-Übersetzungen sehen, überprüfen Sie das Snippet in Schritt 2. Es muss WordPress korrekt auf Ihre gebündelten .mo-Dateien verweisen.
Committen Sie die .mo-Dateien, taggen Sie eine Veröffentlichung und pushen Sie sie wie gewohnt per SVN zu wordpress.org.
Der Kompromiss zwischen Geschwindigkeit und kanonischer Verteilung
- Vorteil: sofort. Neue Übersetzungen sind in dem Moment live, in dem Nutzer Ihr Plugin aktualisieren (oder es zum ersten Mal installieren). Keine Wartezeit von 1-2 Wochen für CLPTE. Kein Genehmigungszyklus des Polyglots-Teams.
- Vorteil: Sie steuern den Workflow. Der Übersetzungsrhythmus stimmt genau mit Ihrem Veröffentlichungsrhythmus überein.
- Vorteil: keine Abhängigkeit von einem Plugin-Badge. Übersetzungen funktionieren, egal ob Ihr Plugin CLPTE-Berechtigungen hat oder nicht.
- Nachteil: die Plugin-Dateigröße wächst. Jede
.mo-Datei ist klein (typischerweise 5-50 KB), aber 20 Sprachen fügen dem Download etwa 500 KB hinzu. - Nachteil: keine automatische Aktualisierung der Übersetzungen zwischen Plugin-Veröffentlichungen. Mit CLPTE verbreiten sich auf wordpress.org aktualisierte Übersetzungen innerhalb von 48 Stunden an die Nutzer, auch wenn Sie keine neue Version veröffentlichen. Beim Bündeln werden Übersetzungen nur aktualisiert, wenn Sie eine neue Version veröffentlichen.
- Nachteil: kein „übersetzt"-Badge. WordPress.org zeigt in Plugin-Auflistungen ein Badge zur Übersetzungsvollständigkeit an, das auf der Abdeckung durch Sprachpakete basiert, nicht auf gebündelten
.mo-Dateien. Das Bündeln allein bringt das Badge nicht ein.
Welcher Weg zu Ihrem Veröffentlichungsrhythmus passt
| Situation | Empfehlung |
|---|---|
| Langfristige kanonische Verteilung; Sie möchten das Übersetzungs-Badge | CLPTE - durchlaufen Sie die Polyglots-Bewerbung |
| Sie veröffentlichen Plugin-Updates monatlich oder häufiger, und der Übersetzungsrhythmus kann mithalten | MO-Dateien bündeln |
| Sie brauchen Übersetzungen diese Woche live und können nicht auf CLPTE warten | Jetzt MO-Dateien bündeln, parallel CLPTE beantragen |
| Sie möchten beides | Nutzen Sie beides - sie schließen sich nicht gegenseitig aus |
Der duale Ansatz ist üblich: MO-Dateien für sofortige Verfügbarkeit bündeln und für die kanonische Verteilung bei CLPTE einreichen. Nutzer erhalten beim Update die gebündelten Übersetzungen; das Sprachpaket-Overlay aktualisiert sie zwischen den Veröffentlichungen.
Übersetzen Sie Ihre nächste Plugin-Veröffentlichung mit PTC
Starten Sie Ihre kostenlose 30-Tage-Testphase - 20.000 Wörter geschenkt, keine Kreditkarte. Erzeugen Sie Ihre .pot-Datei, laden Sie sie zu PTC hoch und erhalten Sie in wenigen Minuten übersetzte .po- und .mo-Dateien, bereit für CLPTE oder das Bündeln.
Verwandt:
- WordPress-Internationalisierung: So übersetzen Sie Themes und Plugins - das übergeordnete Tutorial zur POT-Erzeugung, zu Textdomains und zum Laden von Übersetzungen.
- WordPress-Plugin-Übersetzungen werden nicht angezeigt? Fehlende Übersetzungen beheben - Leitfaden zur Fehlerbehebung für die häufigsten Ladeprobleme.
- GlotPress vs. PTC für die Übersetzung von WordPress-Plugins/-Themes - wann man die Community-Übersetzung und wann PTC wählt.
- WordPress.org Polyglots PTE/CLPTE-Anfrage-Handbuch - der kanonische CLPTE-Bewerbungsprozess.