PHP翻译包含变量的字符串

时间:2014-08-25 13:48:03

标签: php wordpress translation

我正在使用以下未通过WordPreess主题检查的代码:

        'label'     => __( $value, '__gwfc__' ),

当我进行WP主题检查时,我得到以下内容:

翻译函数调用不得包含PHP变量。

有人可以告诉我正确的代码吗?

2 个答案:

答案 0 :(得分:1)

无法翻译变量。为什么:Wordpress不使用google-translator这样的系统。 Wordpress得到了一个存储翻译的固定文件。所以有一个固定的元素可以翻译,仅此而已。

如果选择$ value,例如,表格选项,您可以像这样交换:

switch ($value) {
    case 'example':  'label' => __( 'example', '__gwfc__' );
    case 'example2': 'label' => __( 'example2', '__gwfc__' );
    case 'example3': 'label' => __( 'example3', '__gwfc__' );
    case 'example4': 'label' => __( 'example', '__gwfc__' );
}

请确保在翻译文件中配置了应翻译的字符串!

祝你好运。

答案 1 :(得分:0)

您需要将$ value替换为它所代表的实际硬编码字符串。原因是国际化解析器在运行转换时没有真正的方法来解释PHP变量,所以它不知道$ value的含义。

感觉不对,但为了解决这条消息,您需要插入$ value的硬编码值。

因此找到$ label的值,例如,如果它是'foo',那么只需将代码更改为:

'label'     => __( 'foo', '__gwfc__' ),