Jadi terima kasih kepada JD, saya akhirnya mendapatkan kode ini:
function __2($string, $textdomain, $locale){
global $l10n;
if(isset($l10n[$textdomain])) $backup = $l10n[$textdomain];
load_textdomain($textdomain, get_template_directory() . '/languages/'. $locale . '.mo');
$translation = __($string,$textdomain);
if(isset($bkup)) $l10n[$textdomain] = $backup;
return $translation;
}
function _e2($string, $textdomain, $locale){
echo __2($string, $textdomain, $locale);
}
Sekarang, saya tahu seharusnya tidak, sesuai dengan artikel terkenal ini:
http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong/
Tapi, saya tidak tahu, itu berfungsi ... Dan bonus: katakan Anda ingin menggunakannya di admin, karena bahasa admin adalah x, tetapi Anda ingin mendapatkan / menyimpan data dalam bahasa, dan Anda menggunakan polylang . Jadi, mis. Admin Anda adalah bahasa Inggris, tetapi Anda berada di terjemahan bahasa Spanyol dari sebuah pos, dan Anda perlu mendapatkan data bahasa Spanyol dari tema lokal Anda:
global $polylang;
$p_locale = $polylang->curlang->locale; // will be es_ES
_e2('your string', 'yourtextdomain', $p_locale)