我如何在函数 _e () __ () 中国际化变量


How I can internationalize variables within the function _e () __ ()?

我希望将动态变量国际化。

我有以下代码:

_e($widget['description'], MyStaticClass::$i18n_prefix);

当我运行poedit时,这种国际化($widget['description'])没有完成。

如何使其动态化?

谢谢

我假设_e()__()是PHP本机gettext()函数或类似函数的包装器(如果我错了,请纠正我)。当您扫描要导入到 .po 或 .pot 文件中的文件时,PHP 不会解释变量,因此您需要在变量的声明中执行此操作。喜欢这个:

$widget['description'] = _e("your text here", MyStaticClass::$i18n_prefix);

然后你可以随心所欲地使用$widget['description']。如果要将其作为另一个字符串的一部分包含在内,可以使用sprintf

$var = sprintf(
    _e("Write %s please", MyStaticClass::$i18n_prefix),
    $widget['description']
);

当你回声$var它应该产生Write your text here please.然后,翻译人员将看到两个要翻译的字符串,your text hereWrite %s please 。您可能还应该使用定义的前缀添加注释,以便在不清楚时让翻译人员知道%s部分的含义。请注意,注释必须位于 _e() 函数上方的前一行。