从manual复制示例,ngettext是这样工作的:ngettext("%dwindow","%dwindows",1);//'1window';ngettext("%dwindow","%dwindows",2);//'2windows';但是如果我想使用2个变量怎么办,例如%dwindows%ddoors?是否有一种标准的方法来实现这一点,以便根据2个变量出现正确的字符串(4种组合)? 最佳答案 ngettext()不支持多变量。您必须确保编写的句子可以逐block正确翻译(如果可能的话,多个句子以避免与语言相关的排序问题)。
我编写了一个gettext包装器,它使l10n的整个过程稍微简单了一点,但不知何故我无法让PoEdit正确识别和解析对该函数的复数版本调用。这是我最初拥有的:_e(array('%dhouse','%dhouses'),5);但这根本不起作用,PoEdit根本没有选择任何东西。我也试过:_e('%dhouse','%dhouses',5);这次PoEdit捕捉到%dhouse但不是%dhouses的复数形式,但是如果我尝试完全相同但使用ngettext()调用它完美地工作,单数和复数形式都被识别:ngettext('%dhouse','%dhouse',5);我已经正确地(?)将_e关