我需要在当前$语言环境以外的另一种语言上翻译字符串,因此我需要更改语言环境并在以后恢复它,而且我真的无法重复我必须翻译的30++字符串的所有代码。
所以我最终得到了这个函数:
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;
}
现在,根据这篇著名的文章,我真的不应该编写这个函数:
http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong/
...但它确实有效。所以我的问题是:将变量传递给l10n函数真的总是错误的吗?最终为什么?如果功能正常,为什么我不能使用它呢?