Fehlende Übersetzungen in Ihrem WordPress-Plugin oder -Theme finden

Wenn Teile Ihres Plugins oder Themes nach der Verwendung von PTC unübersetzt erscheinen, verwenden Sie diesen Leitfaden, um zu überprüfen, ob der String Teil Ihres Projekts ist und ob WordPress die korrekte Datei lädt.

Überprüfen Sie, ob der String in PTC verfügbar ist

Gehen Sie vom PTC-Dashboard zum Tab Übersetzungen und suchen Sie nach dem ursprünglichen String. Wenn Sie ihn nicht sehen, hat PTC ihn nicht erhalten. Dies bedeutet normalerweise eines der folgenden:

  • Der String fehlt in Ihrer POT-Datei

Wenn Ihre POT-Datei nicht alle übersetzbaren Zeichenketten enthält, erstellen Sie sie mit WP-CLI neu. Befolgen Sie dann die Schritte in unserem Leitfaden zur Internationalisierung von WordPress-Themes und -Plugins von Anfang an.

  • Der Text ist nicht in einer GetText-Funktion umschlossen

Stellen Sie sicher, dass aller übersetzbarer Text in __() oder _e() eingeschlossen ist und die korrekte Textdomäne verwendet.

Beispiel:

__('Hello, world!', 'your-plugin');

Weitere Details finden Sie unter Schritt 2 unseres Leitfadens zur Übersetzung von WordPress-Themes und -Plugins.

  • JavaScript-Strings wurden nicht als übersetzbar markiert

Wenn Ihr Plugin übersetzbaren Text in JavaScript enthält:

  1. Gehen Sie zu PTC → Einstellungen und klicken Sie auf Überwachte Dateien. Bearbeiten Sie die entsprechende Ressourcendatei und aktivieren Sie „Ist dies ein WordPress-Projekt mit lokalisierbarem JavaScript?“
PTC mitteilen, dass Ihr Produkt übersetzbaren Text in Javascript enthält

Dies weist PTC an, JavaScript-Dateien nach übersetzbaren Strings zu durchsuchen. Es wird Übersetzungen neu generieren und einen neuen Merge-Request mit aktualisierten Dateien erstellen.

  1. Stellen Sie sicher, dass WordPress weiß, wo die von PTC erstellten .json Übersetzungsdateien geladen werden sollen.

Wenn die .json Dateien im /languages/ Verzeichnis Ihres Plugins oder Themes abgelegt sind, rufen Sie wp_set_script_translations() mit dem korrekten Pfad auf.

Für Plugins:

wp_set_script_translations( 'script-handle', 'text-domain', plugin_dir_path( __FILE__ ) . 'languages' );

Für Themes:

wp_set_script_translations( 'script-handle', 'text-domain', get_template_directory() . '/languages' );

Dies weist WordPress explizit an, .json Dateien aus Ihrem Plugin- oder Theme-Ordner zu laden.

Bestätigen Sie, dass WordPress Ihre Übersetzungsdateien lädt

Wenn Ihre übersetzte Zeichenkette in PTC angezeigt wird, aber nicht in Ihrem Plugin oder Theme, lädt WordPress möglicherweise nicht die korrekte .mo-Datei.

  1. Verifizieren Sie, dass Ihre Textdomain geladen ist

Wenn Ihr Projekt mehrere Textdomains oder eingebettete Plugins verwendet, stellen Sie sicher, dass jede einzelne korrekt mit load_plugin_textdomain() oder load_theme_textdomain() geladen wird.

Jede Textdomain sollte mit der in Ihren Übersetzungsdateinamen und in Ihrem PTC-Export verwendeten übereinstimmen.

  1. Prevent Community Translations from Overriding Your MO Files

Standardmäßig priorisiert WordPress Übersetzungsdateien, die in /wp-content/languages/ gespeichert sind.
Wenn Ihr Plugin oder Theme von der Community bereitgestellte Übersetzungen auf WordPress.org hat, können diese Dateien die mit Ihrem Projekt gebündelten .mo-Dateien überschreiben.

Um dies zu verhindern, fügen Sie einen kleinen Code-Schnipsel hinzu, der WordPress anweist, Ihre Übersetzungsdateien zu verwenden.

Stellen Sie sicher, dass die MO-Dateibenennung den WordPress-Erwartungen entspricht

WordPress erwartet unterschiedliche Benennungskonventionen für .mo-Dateien, je nachdem, wo Sie sie speichern.

  • Wenn sich Ihre Übersetzungsdateien im Theme-Ordner befinden, verwenden Sie:

{locale}.mo
Beispiel
: de_DE.mo (gepaart mit de_DE.po)

  • Wenn Sie die Dateien im globalen WordPress-Sprachverzeichnis (wp-content/languages/themes/) abgelegt haben, verwenden Sie:

{text-domain}-{locale}.mo
Beispiel
: my-theme-de_DE.mo (gepaart mit my-theme-de_DE.po)

Nach oben scrollen