我已经编写了一个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(或任何其他类似的应用程序)正确解析自定义函数?
最佳答案
我找到了解决方案,必须使用以下表达式定义关键字:
_e:1,2
资料来源:http://osdir.com/ml/editors.poedit.user/2008-05/msg00012.html
关于php - 如何使PoEdit正确解析自定义 "ngettext"实现?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3393139/