TL; DR: Wenn Sie Zeichenfolgen verwenden, die im übergeordneten Thema enthalten sind, benötigen Sie keine Textdomäne für Ihr untergeordnetes Thema.
Wenn Sie jedoch Zeichenfolgen verwenden, die nicht im übergeordneten Thema verwendet werden, benötigen Sie eine andere Textdomäne mit zugehörigen translation ( .mo
) - Dateien , um sie übersetzbar zu machen .
Übersetzungsworkflow
Wenn WordPress in einer Übersetzungsfunktion auf eine Zeichenfolge stößt, gilt Folgendes:
- Überprüft, ob eine Übersetzung für die erforderliche Textdomäne geladen wurde (über
load_plugin_textdomain
oder load_theme_textdomain
oder load_textdomain
). Wenn ja, fahren Sie mit Punkt 3 fort.
- Überprüft, ob der Übersetzungsordner (standardmäßig
wp-content/languages
) eine übereinstimmende Textdomain-Datei enthält. Textdomain - Datei Passende ist , "{$domain}-{$locale}.mo"
wo $domain
der Text Domäne der Zeichenfolge zu übersetzen und $locale
ist das aktuelle Gebietsschema für die Website. Wenn diese Datei nicht gefunden wird, wird die ursprüngliche Zeichenfolge zurückgegeben, andernfalls wird sie geladen und WP zum nächsten Punkt weitergeleitet.
- Wenn die Textdomäne geladen wird, prüft WP, ob die erforderliche Zeichenfolge in dieser Datei enthalten ist. Wenn nicht, wird die ursprüngliche Zeichenfolge zurückgegeben, andernfalls leitet WP den nächsten Punkt weiter.
- Wenn die gefundene übersetzte Zeichenfolge eine Auflösung im Singular / Plural benötigt (z. B. bei Verwendung
_n()
), werden diese ausgeführt. Andernfalls leitet WP zum nächsten Punkt weiter.
- Filter-Hooks werden auf die übersetzte Zeichenfolge angewendet (siehe https://developer.wordpress.org/?s=gettext&post_type%5B%5D=wp-parser-hook ) und schließlich wird das Ergebnis zurückgegeben.
Damit?
Wenn Sie die Textdomäne des übergeordneten Themas in der Übersetzungsfunktion des untergeordneten Themas verwenden (vorausgesetzt, das übergeordnete Thema wird ausgeliefert und lädt die Textdomänendatei oder es befindet sich eine Übersetzungsdatei im Übersetzungsordner), gelangt WordPress zu Punkt 3. in der obigen Liste, und wenn ja Die Zeichenfolge ist in der Datei verfügbar (da sie im übergeordneten Thema verwendet wird). Sie wird übersetzt, andernfalls nicht.
Dies bedeutet, dass benutzerdefinierte Zeichenfolgen im übergeordneten Thema eine eigene Übersetzungsdatei benötigen.
Theoretisch ist es möglich, die übergeordnete Textdomäne in einer anderen Übersetzungsdatei zu verwenden, da WordPress in der Lage ist, dieselbe Textdomäne mehrmals zu laden und sie "zusammenzuführen". Dies hat jedoch Probleme, da möglicherweise nur eine Datei im Format "{$domain}-{$locale}.mo"
in Übersetzungsordnern vorhanden ist ( siehe Punkt 2. in der obigen Liste).
Zusammenfassend lässt sich sagen, dass die einzige Möglichkeit, ein untergeordnetes Thema übersetzbar zu machen, wenn es Zeichenfolgen enthält, die nicht im übergeordneten Thema verwendet werden, die Verwendung einer eigenen Textdomäne und einer eigenen Übersetzungsdatei ist.