PoEdit .PO生成错误

时间:2011-11-20 14:12:11

标签: php wamp gettext poedit po

我尝试将所有_('gettext')函数调用的脚本扫描到新的PoEdit目录中。解析文件后,它会显示以下错误:

Filename.class.php:11: warning: Although being used in a format string position, the msgid is not a valid PHP format string. Reason: In the directive number 1, the character '"' is not a valid conversion specifier.

Filename.class.php,第11行看起来像这样:

throw new fatalException(sprintf(_('The chosen directory "%" does not exist.'), $dir));

仍会生成.MO文件,但网站上不会显示翻译文本。将显示调用_('gettext')内的原始文本。这可能是问题,还是有其他原因(例如错误的setlocale()信息)翻译不起作用?有人能告诉我上面的错误信息是什么意思吗?

在我的localhost上使用PHP 5.3.8和Apache 2.2.17在WAMP Server 2.1上运行Windows。

谢谢。

2 个答案:

答案 0 :(得分:1)

我怎么会错过这个...

异常消息在s之后没有%所以它将双引号改为转换说明符......

使用以下代码替换有问题文件的第11行解决了问题。

throw new fatalException(sprintf(_('The chosen directory "%s" does not exist.'), $dir));

我仍然无法显示已翻译的文本,因此似乎问题出在其他地方。我可能稍后会发布另一个关于此的问题......

答案 1 :(得分:1)

另外,也许你应该通过在它们前面加上反斜杠来转义引号?