Sie könnten die aktuelle Sprache vorübergehend ändern, um die übersetzte Zeichenfolge abzurufen. Etwas wie:
// Backup the current language
$current_lang = $sitepress->get_current_language(); // Say it's "en"
// Switch to another language. E.g. $desired_lang = "nl";
$sitepress->switch_lang($desired_lang);
// Get your translated string...
_e('My string here', 'text_domain');
// Back to the original language to not interfere
$sitepress->switch_lang($current_lang);
ich dies auf einer Seitenvorlage getestet haben (sagen wir index.php
) und es funktioniert ... Dann habe ich versucht, eine Funktion zu bauen, den Job zu tun. Etwas wie:
// Put this in your functions.php
function get_all_translations($string, $languages) {
global $sitepress;
if (empty($languages)) {
$languages = array_keys(
icl_get_languages('skip_missing=0&orderby=code&order=asc')
);
}
$current_lang = $sitepress->get_current_language();
$translations = [];
foreach ($languages as $lang) {
$sitepress->switch_lang($lang, true);
$translations[$lang] = __($string, 'text_domain');
}
$sitepress->switch_lang($current_lang);
return $translations;
}
Und:
// This on index.php:
var_dump(get_all_translations('My string here'));
var_dump(get_all_translations('My string here', ['nl', 'fr']));
Aber es nicht funktioniert und ich kann den Grund nicht herausfinden ... Ich hoffe, das hilft sowieso.
Danke. Das hat geholfen. Ich habe gerade die Sprache in 3 anderen Sprachen gewechselt, die Strings in Variablen gespeichert und diese benutzt. –