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

时间:2013-09-11 15:31:30

标签: php wordpress internationalization

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

我有以下代码:

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

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

我如何让它变得动态?

由于

1 个答案:

答案 0 :(得分:3)

我假设_e()__()是PHP本地gettext() function或类似的包装器(如果我错了请纠正我)。当您扫描文件以导入到.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()函数上方的前一行。