Wordpress PHP函数_n()只翻译单数文本


Wordpress PHP function _n() only translates singular text

我正在使我们的Wordpress插件与translate.Wordpress.org兼容,并使用此代码轻松实现多元化/翻译:

echo _n( 'size', 'sizes', $count, 'my-domain' );

我们仍然有.po/.mo文件,其中包含例如:

msgid "size"
msgstr "afmeting"
msgid "sizes"
msgstr "afmetingen"

这是我得到的输出:

echo _n( 'size', 'sizes', 1, 'my-domain' );
// expected: 1 afmeting 
// actual: 1 afmeting 
echo _n( 'size', 'sizes', 2, 'my-domain' );
// expected: 2 afmetingen
// actual: 2 sizes

翻译就在那里,如果我颠倒复数/单数文本,仍然只有单数被翻译。

有没有想过我做错了什么,我应该如何让它发挥作用?

我似乎没有正确存储复数翻译。我已经修改了插件代码以使用translate.wordpress.org,现在该翻译被视为同时具有单数和复数版本。

将其存储在.po/.mo文件中的解决方案是这样的(未测试):

msgid "size"
msgid_plural "sizes"
msgstr[0] "afmeting"
msgstr[1] "afmetingen"

另请参阅:为什么在gettext翻译文件中需要msgid_plural?。