我尝试将所有_('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。
谢谢。
答案 0 :(得分:1)
我怎么会错过这个...
异常消息在s
之后没有%
所以它将双引号改为转换说明符......
使用以下代码替换有问题文件的第11行解决了问题。
throw new fatalException(sprintf(_('The chosen directory "%s" does not exist.'), $dir));
我仍然无法显示已翻译的文本,因此似乎问题出在其他地方。我可能稍后会发布另一个关于此的问题......
答案 1 :(得分:1)
另外,也许你应该通过在它们前面加上反斜杠来转义引号?