我编写了一个gettext包装器,它使l10n的整个过程变得更简单但不知何故我无法让PoEdit正确识别和解析对该函数的多个版本调用。这就是我最初的所作所为:
_e(array('%d house', '%d houses'), 5);
但这根本不起作用,PoEdit根本没有选择。我也尝试过:
_e('%d house', '%d houses', 5);
这次PoEdit捕获%d house
而不是%d houses
的复数形式,但是如果我尝试完全相同但是ngettext()
调用它完全正常,无论是单数还是复数确定表格:
ngettext('%d house', '%d house', 5);
我已正确(?)将_e
关键字添加到项目设置中,但它没有获取多个变体。我还注意到PoEdit只有_
,gettext
和gettext_noop
作为默认的keyworks,而ngettext
,{{1}没有任何参考}}或dngettext
函数,但它仍然可以正确地接听dcngettext
次调用...这让我想知道PoEdit是否对ngettext
关键字进行了硬编码 - 这真的很难过。
无论如何,有没有办法制作PoEdit(或任何其他类似的应用程序),正确解析自定义函数?
答案 0 :(得分:9)
答案 1 :(得分:3)
实际上你需要做以上两件事。
到目录设置
答案 2 :(得分:0)
这是另一种解决方案,它很容易设置。只需按照以下步骤操作:
菜单:目录 - >设置将打开“设置”对话框。在项目信息选项卡上,您会在底部找到“多个表单”。只需复制&在此字段中粘贴以下行:
nplurals=2; plural=n != 1;
这将完美地解决问题。我甚至没有重新扫描来源; PoEditer中会自动出现正确的线条。