带有格式化数字的PHP复数gettext
我希望能够格式化(多语言)句子,如:带有格式化数字的PHP复数gettext,php,multilingual,gettext,Php,Multilingual,Gettext,我希望能够格式化(多语言)句子,如: 我有12345个小部件。 在我的口袋里,我有 msgid "I only have %d widget." msgid_plural "I have %d widgets." msgstr[0] "I don't have any widgets." msgstr[1] "I only have %d widget." msgstr[2] "I have %d widgets." ngettext(“我只有%d个小部件。”,“我有%d个小部件。”,1234
我有12345个小部件。
在我的口袋里,我有
msgid "I only have %d widget."
msgid_plural "I have %d widgets."
msgstr[0] "I don't have any widgets."
msgstr[1] "I only have %d widget."
msgstr[2] "I have %d widgets."
ngettext(“我只有%d个小部件。”,“我有%d个小部件。”,12345)代码>
如果我使用number\u格式(12345)
我会返回一个字符串“12345”
,它不能用于检测复数()
有没有办法让gettext
提供一个格式化的数字?您可以将sprintf
与number\u格式结合使用,比如:
sprintf(ngettext("I only have %s widget.", "I have %s widgets.", 1), number_format(1, 0, '.', ','));
sprintf(ngettext("I only have %s widget.", "I have %s widgets.", 999), number_format(999, 0, '.', ','));
sprintf(ngettext("I only have %s widget.", "I have %s widgets.", 1000), number_format(1000, 0, '.', ','));
这将返回:
I only have 1 widget.
I have 999 widgets.
I have 1,000 widgets.