我编写了一个 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
作为要接听的默认按键,没有任何对ngettext
,dngettext
或dcngettext
函数的引用,但它仍然可以正确接听ngettext
电话......这让我想知道 PoEdit 是否已经硬编码ngettext
关键字 - 那真的很伤心。
无论如何,有没有办法让 PoEdit(或任何其他类似的应用程序)正确解析自定义函数?