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 den CLPTE-Zugang (4-6 Tage) oder bündeln Sie .mo-Dateien mit Ihrem Release (am nächsten Tag). Beides funktioniert. Der Kompromiss besteht zwischen kanonischer Distribution und Geschwindigkeit. Dieser Leitfaden behandelt, wann welcher Weg zu wählen ist, und bietet eine Schritt-für-Schritt-Anleitung für beide.
Sie haben Ihr Plugin oder Theme mit der PTC (Private Translation Cloud) übersetzt und haben die .po- und .mo-Dateien. Nutzer, die Ihr Plugin von WordPress.org installieren, sehen diese Übersetzungen standardmäßig nicht. Sprachpakete von WordPress.org und Ihre gebündelten Dateien sind zwei getrennte Distributionskanäle. Wählen Sie einen basierend auf Ihrem Release-Zyklus und Ihrer Zielgruppe.
Weg 1: Übersetzungen über WordPress.org-Sprachpakete veröffentlichen (CLPTE)
Gesamtdauer: 4-6 Tage.
Schritt 1: Einen CLPTE-Account erstellen
Die Rolle des CLPTE (Cross-Locale Project Translation Editor) ermöglicht es Ihnen, Übersetzungen im Namen Ihres Themes oder Plugins für jede Zielsprache über einen einzigen Account einzureichen. Ein regulärer Übersetzungsredakteur-Account gilt pro Sprache; der CLPTE nicht.
Wenn Sie bereits einen Account auf WordPress.org haben, stoßen Sie möglicherweise auf einen Fehler, bei dem Ihr neuer CLPTE-Account deaktiviert wird. WordPress erlaubt keine Mehrfach-Accounts. Um dies zu beheben, senden Sie eine E-Mail an forum-password-resets@wordpress.org und erklären Sie, dass Sie versuchen, einen CLPTE-Account zu erstellen. Es hilft, die entsprechende Dokumentation der Polyglots mit dem Moderator zu teilen und das Polyglots-Team in Slack anzupingen.
Geschätzte Zeit: ~3-5 Tage (beinhaltet die Wartezeit, falls Ihr neuer Account deaktiviert ist).
Schritt 2: CLPTE-Zugang auf dem Polyglots-Blog beantragen
Sobald Ihr Account aktiviert ist, posten Sie eine Anfrage auf dem 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, wenn Ihre Anfrage genehmigt wurde.
Geschätzte Zeit: ~1 Tag (Das Polyglots Global Team prüft Anfragen gesammelt).
Schritt 3: Die übersetzten .po-Dateien importieren
- Melden Sie sich mit Ihrem CLPTE-Account bei
https://translate.wordpress.org/an. - Gehen Sie zur Übersetzungs-Projektseite 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 Übersetzungen importieren.
- Laden Sie Ihre
.po- (oder.mo-)Datei hoch. - Markieren Sie die importierten Strings im Übersetzungseditor als „aktuell“. Genehmigte Strings fließen in die nächste Sprachpaket-Generierung ein (in der Regel täglich).
- Wiederholen Sie dies für jede Zielsprache. Jedes Locale hat seine eigene Übersetzungsseite.
Geschätzte Zeit: ~10-30 Minuten pro Sprache.
Nach einem Sprachpaket-Zeitfenster von 24-48 Stunden erhalten Websites, die Ihr Plugin ausführen, die neuen Übersetzungen über die automatischen Sprachpaket-Updates von WordPress. Nutzer sehen keine Upgrade-Aufforderung. Die Übersetzungen erscheinen einfach.
Was der CLPTE für Sie tun kann und was nicht
- Sie können bestehende Community-Übersetzungen nicht ersetzen. Nur unübersetzte Strings werden importiert. Die Aktualisierung einer bestehenden Community-Übersetzung erfordert den Standardprozess und das Warten auf den Review des Locale-Teams.
- Updates erfordern manuelle Uploads für jedes Release. Jedes neue Release bedeutet eine neue Runde von Uploads.
- Die Account-Erstellung und -Genehmigung dauern in der Regel insgesamt 4-6 Tage.
Weg 2: Die .mo-Dateien in Ihrem Plugin oder Theme bündeln
Wenn Sie Übersetzungen schneller live benötigen, als der CLPTE es zulässt, oder wenn Sie sich lieber nicht auf die Distributions-Pipeline von WordPress.org verlassen möchten, bündeln Sie die .mo-Dateien direkt in Ihrem Plugin- oder Theme-Release. Gesamtdauer: 15-30 Minuten.
Schritt 1: Die .mo-Dateien zum Verzeichnis /languages/ hinzufügen
Platzieren Sie Ihre kompilierten .mo-Dateien im /languages/-Verzeichnis Ihres Plugins oder Themes, damit WordPress sie beim Laden Ihrer Text Domain 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 Text Domain in den Namen Ihrer Übersetzungsdateien und Ihren load_plugin_textdomain()- oder load_theme_textdomain()-Aufrufen.
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 load_textdomain_mofile-Filter hinzu.
Für Plugins fügen Sie Folgendes zu 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 Folgendes zur 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 Text Domain am richtigen Hook lädt:
add_action( 'init', function() {
load_plugin_textdomain(
'my-plugin',
false,
dirname( plugin_basename( __FILE__ ) ) . '/languages'
);
} );
Schritt 3: Das Laden der gebündelten Übersetzungen auf einer Test-Website überprüfen
Installieren Sie Ihr Plugin oder Theme auf einer Test-Website 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 aus, deren
.mo-Datei sich in Ihrem/languages/-Ordner befindet. - 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 ein Release und pushen Sie wie gewohnt via SVN zu wordpress.org.
Der Kompromiss zwischen Geschwindigkeit und kanonischer Distribution
- Pro: sofortig. Neue Übersetzungen sind in dem Moment live, in dem Nutzer Ihr Plugin aktualisieren (oder es zum ersten Mal installieren). Keine mehrtägige Wartezeit auf den CLPTE. Kein Genehmigungszyklus durch das Polyglots-Team.
- Pro: Sie kontrollieren den Workflow. Der Übersetzungszyklus entspricht exakt Ihrem Release-Zyklus.
- Pro: keine Abhängigkeit vom Plugin-Badge. Übersetzungen funktionieren unabhängig davon, ob Ihr Plugin CLPTE-Berechtigungen hat oder nicht.
- Kontra: Die Dateigröße des Plugins wächst. Jede
.moist klein (typischerweise 5-50 KB), aber 20 Sprachen fügen dem Download ~500 KB hinzu. - Kontra: kein automatisches Update von Übersetzungen zwischen Plugin-Releases. Mit dem CLPTE werden auf wordpress.org aktualisierte Übersetzungen innerhalb von 48 Stunden an die Nutzer verteilt, selbst wenn Sie kein neues Release veröffentlichen. Beim Bündeln werden Übersetzungen nur aktualisiert, wenn Sie ein neues Release veröffentlichen.
- Kontra: kein „übersetzt“-Badge. WordPress.org zeigt in Plugin-Listings ein Badge für die Übersetzungsvervollständigung an, das auf der Sprachpaket-Abdeckung basiert, nicht auf gebündelten
.mo-Dateien. Bündeln allein bringt kein Badge ein.
Welcher Weg passt zu Ihrem Release-Zyklus?
| Situation | Empfehlung |
|---|---|
| Langfristige kanonische Distribution; Sie möchten das Übersetzungs-Badge | CLPTE – durchlaufen Sie den Polyglots-Bewerbungsprozess |
| Sie veröffentlichen monatlich oder häufiger Plugin-Updates, und der Übersetzungszyklus kann damit übereinstimmen | MO-Dateien bündeln |
| Sie benötigen Übersetzungen noch diese Woche live und können nicht auf den CLPTE warten | MO-Dateien jetzt bündeln, parallel den CLPTE beantragen |
| Sie möchten beides | Beides nutzen – die Wege schließen sich nicht gegenseitig aus |
Der duale Ansatz ist üblich: Bündeln Sie MO-Dateien für die sofortige Verfügbarkeit und reichen Sie sie beim CLPTE für die kanonische Distribution ein. Nutzer erhalten die gebündelten Übersetzungen beim Update; das Sprachpaket-Overlay aktualisiert sie zwischen den Releases.
Übersetzen Sie Ihr nächstes Plugin-Release mit der PTC
Starten Sie Ihre 30-Tage-Testphase – 20.000 Wörter übernehmen wir, keine Kreditkarte erforderlich. Generieren Sie Ihre .pot-Datei, laden Sie sie in die PTC hoch, erhalten Sie in wenigen Minuten übersetzte .po- und .mo-Dateien, bereit für den CLPTE oder zum Bündeln.
Verwandte Artikel:
- WordPress-Internationalisierung: Wie man Themes und Plugins übersetzt – das übergeordnete Tutorial, das POT-Generierung, Text Domains und das Laden von Übersetzungen behandelt.
- WordPress-Plugin-Übersetzungen werden nicht angezeigt? Fehlende Übersetzungen beheben – Leitfaden zur Fehlerbehebung für die häufigsten Ladeprobleme.
- GlotPress vs. PTC für die WordPress-Plugin-/Theme-Übersetzung – wann Sie sich für die Community-Übersetzung und wann für die PTC entscheiden sollten.
- WordPress.org Polyglots PTE/CLPTE-Antragshandbuch – der kanonische CLPTE-Bewerbungsprozess.