翻译编译过程中的编译错误

时间:2013-09-20 作者:Mehraban

我正在尝试使用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\') );

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

问题在于POEdit 程序我使用了另一个应用程序,但它不见了。

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\') );

结束

相关推荐

Custom metabox translation

我已经创建了一个自定义的帖子类型,并添加了一些自定义的元数据库,现在我想知道我在我的网站上使用了什么样的翻译插件?我对它们都没有经验,所以我不知道谁会支持我的自定义元数据库,谁不会。