1

我试图将我的脚本扫描_('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()信息不正确)导致翻译不起作用?有人能告诉我上面的错误信息是什么意思吗?

在我的本地主机上使用 PHP 5.3.8 和 Apache 2.2.17 在 WAMP Server 2.1 上运行 Windows。

谢谢你。

4

2 回答 2

1

我怎么会错过这个...

异常消息没有s跟随,%因此它采用双引号作为转换说明符......

用下面的代码替换有问题的文件的第 11 行解决了这个问题。

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

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

于 2011-11-20T16:51:07.303 回答
1

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

于 2011-12-15T01:11:54.457 回答