0

我希望国际化一个动态变量。

我有以下代码:

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

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

我怎样才能让它充满活力?

谢谢

4

1 回答 1

3

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

$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 here以及Write %s please. 如果不清楚,您可能还应该使用定义的前缀添加注释,让翻译人员知道该%s部分的含义。请注意,注释必须位于_e()函数上方的前一行。

于 2013-09-11T20:56:51.883 回答