我遇到了给定来源的翻译问题;
<?php
$this->messageAdd($this->_("Ett okänt fel uppstod när %0 skulle skapas!", $term2), "error");
return $this->setResultCode(self::RESULT_ERROR);
?>
如果我不是盲目的,这是一个完全正常的字符串,我在其他源文件中有很多相似但是这个特定的字符串导致po文件中的这些行;
#: ../../../../path/to/source_file.php:552
#, php-format
msgid "Ett okänt fel uppstod när %0 skulle skapas!"
msgstr "An unknown error occurred while creating the %0!"
错误
错误:'msgstr'不是有效的PHP格式字符串,与'msgid'不同。原因:在指令编号1中,字符“w”不是有效的会话说明符。
问题是什么,为什么只有这个字符串会导致错误?如果我从源文件中删除字符串,则不会在poedit中生成错误。
编辑#1 ;我在进一步研究后发现this issue,发现在源文件中的翻译字符串之前添加注释/* xgettext:no-php-format */
解决了问题。虽然知道为什么这只发生在指定的字符串而不是我的5k +字符串中的任何其他字符串会很好。
答案 0 :(得分:1)
删除
#, php-format
来自.po
文件的指令。