我正在尝试使用Poedit翻译一个主题,除了两个字符串给我带来如下错误外,一切都正常:
Error: \'msgstr\' is not a valid PHP format string, unlike \'msgid\'. Reason: The character that terminates the directive number 1 is not a valid conversation specifier.
字符串本身是:
% comments
这两个错误都在字符串中
% comment
(不是什么
% s
).现在我有两个问题:1。如何解决这些错误?我需要更改主题代码吗?在得到这些编译错误后,我使用了。mo和。po文件,但有些短语已经翻译,有些没有!这是什么原因?
编辑:关联的PHP代码翻译为:
comments_number( __(\'There are no comments so far\', \'hbthemes\'), __(\'There is <strong>1 comment</strong> so far\', \'hbthemes\'), __(\'There are <strong>% comments</strong> so far\', \'hbthemes\') );
SO网友:Ben Miller - Remember Monica
这个%
字符是gettext翻译函数中的一个特殊字符。逃离%
要在字符串中使用它,请将其更改为%%
.
如果您没有使用__()
翻译功能,然后是单个%
角色会给你评论的数量。但是,当您使用翻译功能时,%
是一个具有特殊含义的特殊字符。如果您想实际包括%
字符串中的字符,您需要将其键入为%%
. 这个__()
函数将发送一个%
转到comments_number
函数,并且您应该获得其位置上的注释数。
你的comments_number
功能应为:
comments_number( __(\'There are no comments so far\', \'hbthemes\'), __(\'There is <strong>1 comment</strong> so far\', \'hbthemes\'), __(\'There are <strong>%% comments</strong> so far\', \'hbthemes\') );