我正在使我们的 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"
另见:Why is msgid_plural necessary in gettext translation files? .
关于php - Wordpress PHP 函数_n() 只翻译单数文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770349/