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 liegt zwischen kanonischer Distribution und Geschwindigkeit. Dieser Leitfaden erklärt, wann Sie welchen Pfad nutzen sollten, und bietet eine Schritt-für-Schritt-Anleitung für 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. WordPress.org Language Packs und Ihre gebündelten Dateien sind zwei separate Distributionskanäle. Wählen Sie einen basierend auf Ihrem Release-Rhythmus und Ihrer Zielgruppe aus.
Pfad 1: Übersetzungen über WordPress.org Language Packs veröffentlichen (CLPTE)
Gesamtzeit: 4–6 Tage.
Schritt 1: Erstellen Sie ein CLPTE-Konto
Die Rolle CLPTE (Cross-Locale Project Translation Editor) ermöglicht es Ihnen, Übersetzungen im Namen Ihres Themes oder Plugins für jede Zielsprache über ein einziges Konto einzureichen. Ein reguläres Translation Editor-Konto gilt pro Sprache; CLPTE hingegen nicht.
Falls Sie bereits ein Konto auf WordPress.org haben, kann es zu einem Problem kommen, bei dem Ihr neues CLPTE-Konto deaktiviert wird. WordPress erlaubt keine Mehrfachkonten. Um dies zu lösen, schreiben Sie eine E-Mail an forum-password-resets@wordpress.org und erklären Sie, dass Sie versuchen, ein CLPTE-Konto zu erstellen. Es hilft, die entsprechende Polyglots-Dokumentation mit dem Moderator zu teilen und das Polyglots-Team in Slack zu pingen.
Geschätzte Zeit: ~3–5 Tage (einschließlich Wartezeit, falls Ihr neues Konto deaktiviert wurde).
Schritt 2: CLPTE-Zugang im Polyglots-Blog beantragen
Sobald Ihr Konto aktiviert ist, posten Sie eine Anfrage im WordPress.org Polyglots-Blog. Nutzen 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 in Schüben).
Schritt 3: Importieren Sie die übersetzten .po-Dateien
- Loggen Sie sich mit Ihrem CLPTE-Konto bei
https://translate.wordpress.org/ein. - Rufen Sie die Projektseite für die Übersetzung Ihres Plugins oder Themes auf (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- (oder.mo-) Datei hoch. - Markieren Sie die importierten Strings im Translation Editor als „current“. Genehmigte Strings fließen in die nächste Generierung der Language Packs ein (normalerweise 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 Zeitfenster von 24–48 Stunden für das Language Pack erhalten Websites, auf denen Ihr Plugin läuft, die neuen Übersetzungen über die automatischen Language Pack-Updates von WordPress. Nutzer sehen keine Upgrade-Aufforderung. Die Übersetzungen erscheinen einfach.
Was CLPTE für Sie tun wird und was nicht
- Sie können bestehende Community-Übersetzungen nicht ersetzen. Nur unübersetzte Strings werden importiert. Das Aktualisieren einer bestehenden Community-Übersetzung erfordert den Standardprozess und das Warten auf die Überprüfung durch das Locale-Team.
- Updates erfordern manuelle Uploads für jedes Release. Jedes neue Release bedeutet eine neue Runde von Uploads.
- Kontoerstellung und Genehmigung dauern in der Regel insgesamt 4–6 Tage.
Pfad 2: Bündeln der .mo-Dateien in Ihrem Plugin oder Theme
Wenn Sie Übersetzungen schneller live schalten müssen, als CLPTE es erlaubt, oder wenn Sie lieber nicht von der Distributions-Pipeline von WordPress.org abhängig sein möchten, bündeln Sie die .mo-Dateien direkt in Ihrem Plugin- oder Theme-Release. Gesamtzeit: 15–30 Minuten.
Schritt 1: Fügen Sie die .mo-Dateien zum Verzeichnis /languages/ hinzu
Platzieren Sie Ihre kompilierten .mo-Dateien im 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 Ihren Übersetzungsdateinamen und in Ihren Aufrufen von load_plugin_textdomain() oder load_theme_textdomain().
Schritt 2: Bevorzugen Sie Ihre gebündelten Dateien gegenüber Community-Übersetzungen
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 in Ihre Haupt-Plugin-Datei ein (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 in die functions.php Ihres Themes ein:
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 Sie das Laden der gebündelten Übersetzungen auf einer Testseite
Installieren Sie Ihr Plugin oder Theme auf einer Testseite 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, für die eine
.mo-Datei in Ihrem Ordner/languages/liegt. - Laden Sie eine Seite oder eine Ansicht, die 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.
Falls 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.
Commiiten Sie die .mo-Dateien, taggen Sie ein Release und pushen Sie es wie gewohnt via SVN zu wordpress.org.
Der Kompromiss zwischen Geschwindigkeit und kanonischer Distribution
- Pro: Sofort verfügbar. Neue Übersetzungen sind in dem Moment live, in dem Nutzer Ihr Plugin aktualisieren (oder zum ersten Mal installieren). Kein mehrtägiges Warten auf CLPTE. Kein Genehmigungszyklus durch das Polyglots-Team.
- Pro: Sie kontrollieren den Workflow. Der Übersetzungsrhythmus entspricht exakt Ihrem Release-Rhythmus.
- Pro: Keine Abhängigkeit vom Plugin-Badge. Übersetzungen funktionieren unabhängig davon, ob Ihr Plugin über CLPTE-Berechtigungen verfügt oder nicht.
- Contra: Die Dateigröße des Plugins wächst. Jede
.mo-Datei ist klein (normalerweise 5–50 KB), aber 20 Sprachen fügen dem Download etwa 500 KB hinzu. - Contra: Keine automatische Aktualisierung der Übersetzungen zwischen Plugin-Releases. Mit CLPTE verbreiten sich auf wordpress.org aktualisierte Übersetzungen innerhalb von 48 Stunden an die Nutzer, selbst wenn Sie kein neues Release veröffentlichen. Beim Bündeln werden Übersetzungen nur aktualisiert, wenn Sie ein neues Release ausliefern.
- Contra: Kein „Übersetzt“-Badge. WordPress.org zeigt ein Badge für den Übersetzungsstatus in Plugin-Listen basierend auf der Abdeckung durch Language Packs an, nicht durch gebündelte
.mo-Dateien. Bündeln allein bringt Ihnen das Badge nicht ein.
Welcher Pfad passt zu Ihrem Release-Rhythmus?
| Situation | Empfehlung |
|---|---|
| Langfristige kanonische Distribution; Sie möchten das Übersetzungs-Badge | CLPTE – gehen Sie über den Polyglots-Antrag |
| Sie veröffentlichen Plugin-Updates monatlich oder häufiger, und der Übersetzungsrhythmus kann mithalten | MO-Dateien bündeln |
| Sie benötigen Übersetzungen noch 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: Bündeln Sie MO-Dateien für die sofortige Verfügbarkeit und reichen Sie diese bei CLPTE für die kanonische Distribution ein. Nutzer erhalten die gebündelten Übersetzungen beim Update; das Language Pack-Overlay aktualisiert sie zwischen den Releases.
Übersetzen Sie Ihr nächstes Plugin-Release mit PTC
Starten Sie Ihre kostenlose 30-Tage-Testphase – 20.000 Wörter geschenkt, keine Kreditkarte erforderlich. Erstellen Sie Ihre .pot-Datei, laden Sie sie bei PTC hoch und erhalten Sie in wenigen Minuten übersetzte .po- und .mo-Dateien, bereit für CLPTE oder das Bündeln.
Verwandte Themen:
- WordPress-Internationalisierung: So übersetzen Sie Themes und Plugins – das übergeordnete Tutorial zur POT-Erstellung, zu Textdomains und zum Laden von Übersetzungen.
- WordPress-Plugin-Übersetzungen werden nicht angezeigt? Fehlende Übersetzungen beheben – Troubleshooting-Leitfaden für die häufigsten Ladeprobleme.
- GlotPress vs. PTC für die Übersetzung von WordPress-Plugins/Themes – wann Sie Community-Übersetzung vs. PTC wählen sollten.
- WordPress.org Polyglots PTE/CLPTE Request Handbook – der kanonische CLPTE-Antragsprozess.