可译文本中的变量

时间:2013-01-15 作者:chowwy

我正在使用TGM插件激活将建议的插件列表添加到我的主题中-https://github.com/thomasgriffin/TGM-Plugin-Activation/

然而,当我运行主题检查时,会弹出大约40条建议,因为插件在可翻译函数中使用变量。通过在我的文本域中键入而不是使用插件作者使用的变量,我可以消除大约一半的问题。但是,我需要帮助更正以下错误:

建议:在类-tgm插件激活的翻译函数中找到可能的变量$instance。php。转换函数调用不能包含PHP变量。

以下是与错误相关的代码:

$table_data[$i][\'source\'] = __( \'External Link\', TGM_Plugin_Activation::$instance->domain );
我知道翻译函数应该看起来像\\uuu(\'Item Name\',\'text domain\'),但我不确定该如何处理函数的第二部分:

TGM_Plugin_Activation::$instance->domain
我如何调整它,使其能够与翻译一起正常工作?

2 个回复
最合适的回答,由SO网友:kaiser 整理而成

翻译字符串不仅在渲染过程中(在屏幕上/浏览器中输出)得到解析,还可以通过GNU gettext解析器得到解析。这是一个PHP解析器,所以它不能获取变量。这是一个主题或插件的唯一部分,您需要在其中重复您自己和add the plain string 到每个translation/gettext函数调用。

// Wrong:
__( \'External Link\', TGM_Plugin_Activation::$instance->domain );

// Right:
__( \'External Link\', \'your_textdomain\' );
为了澄清这一点:上述两个调用都将与POEdit一起使用。当自动/可湿性粉剂时,第一种方法就行不通了。org曾带来马克·贾奎斯承诺的自动翻译工具。这就是“主题检查”插件所抱怨的部分。您完全可以忽略“推荐”消息。正如你所看到的post by M.Jaquith - 简单阅读,然后转到评论-这正是“官方”来源/首席开发人员推荐的内容。

SO网友:Mark Kaplun

TGM代码看起来不可正确翻译。您只需更改代码中调用翻译函数的所有位置,即可使用主题的文本域。

结束