使用__($MESSAGE)函数转换数据库内容

时间:2011-04-03 作者:Albert

我编写了一个插件,允许用户在数据库中添加信息。它运行良好,但我无法使用WPML翻译信息。这是一个简单的问题示例:

$消息=\'测试\';//在这里,我得到了DB的信息(\'我的插件\');

有没有办法解决这个问题?我不知道我们是否可以用变量而不是字符串来翻译。当我在管理面板中分析小部件时,它不会显示要翻译的字符串。

这个示例在WPML中工作,因为它是一个字符串:\\uuu(\'test\',\'my plugin\');

提前谢谢。

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

如果要在文本中翻译变量,通常的方法是使用如下字符串格式:

<?php
printf(__("text %s text2."), $message);
?>
带整数:

<?php
printf(__("text %d text2."), $count);
?>
具有多个占位符:

<?php
printf(__("text %1$s text2 %2$S."), $message, $message2);
?>
但变量本身不会以任何方式转换。

WPML以前不运行代码__();_e(); 函数它只在文件中搜索它们,这就是为什么当您编写以下内容时:

$message = \'test\'; // here I get the information of the DB
__($message, \'my-plugin\');
WPML只看到__($message, \'my-plugin\'); 其中$消息为空。

结束

相关推荐

How do you debug plugins?

我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?