Um die Antwort auf diese Frage zu finden, müssen Sie sich nur ansehen, wie WordPress die Übersetzungen abruft. Letztendlich ist es die load_textdomain()
Funktion, die dies tut. Wenn wir uns die Quelle ansehen, stellen wir fest, dass sie ein MO
Objekt erstellt und die Übersetzungen aus einer .mo
Datei in sie lädt . Anschließend wird dieses Objekt in einer globalen Variablen namens $l10n
gespeichert, bei der es sich um ein Array handelt, das von einer Textdomäne verschlüsselt wird.
Um ein anderes Gebietsschema für eine bestimmte Domäne zu laden, müssen Sie nur load_textdomain()
den Pfad zur .mo
Datei für dieses Gebietsschema aufrufen :
$textdomain = 'your-textdomain';
// First, back up the default locale, so that we don't have to reload it.
global $l10n;
$backup = $l10n[ $textdomain ];
// Now load the .mo file for the locale that we want.
$locale = 'en_US';
$mo_file = $textdomain . '-' . $locale . '.mo';
load_textdomain( $textdomain, $mo_file );
// Translate to our heart's content!
_e( 'Hello World!', $textdomain );
// When we are done, restore the translations for the default locale.
$l10n[ $textdomain ] = $backup;
Um herauszufinden, mit welcher Logik WordPress ermittelt, wo nach der .mo
Datei für ein Plugin gesucht werden soll (z. B. wie das aktuelle Gebietsschema abgerufen wird), werfen Sie einen Blick auf die Quelle von load_plugin_textdomain()
.
load_plugin_textdomain()
.$l10n[$textdomain]
nicht festgelegt ist, selbst nachdem die Textdomäne in einerafter_setup_theme
Aktion geladen wurde .Dank JD habe ich endlich diesen Code erhalten:
Jetzt weiß ich, dass es nicht so sein sollte, wie in diesem berühmten Artikel beschrieben:
http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong/
Aber ich weiß nicht, es funktioniert ... Und Bonus: Angenommen, Sie möchten es in admin verwenden, da die Admin-Sprache x ist, aber Sie möchten Daten in lang y abrufen / speichern und verwenden polylang . Das heißt, Ihr Administrator ist Englisch, aber Sie befinden sich in der spanischen Übersetzung eines Beitrags und müssen spanische Daten von Ihren Themengebieten abrufen:
quelle