名字的复数/ depluralisation

时间:2009-11-14 12:14:53

标签: php pluralize

php是否有任何处理复数或淡化词的功能?

显然,在“苹果”之类的单词结尾处取下或替换“s”非常容易,但其他单词并非如此简单。

如果php没有本地处理方式,其他语言如何处理问题?是否存在可以处理多元化/多元化的功能,或者英语是否过于粗略地不一致?

3 个答案:

答案 0 :(得分:1)

我通常只在框架中使用PHP来实现他们自己的方式来处理这个问题,但我认为你的问题的答案可能是 gettext

Gettext是GNU国际化和本地化(i18n)库。它已被开发为i18n和l10n(国际化和本地化)的工具,但是 - 正因为如此,它有plenty of functions来处理复数形式,因为其他语言可能有比复杂形式多得多的形式。英语呢。

PHP implments gettext所以这可能是你调查的好起点。最后,您可能希望查看this other answer,建议另一种方法。

编辑:我认为ngettext()可能是您正在寻找的功能。

答案 1 :(得分:1)

结帐Damien Conway's paper on this。它很好地说明了仅用英语这是一个棘手的话题。

其他语言如何解决这个问题(正如您所问)? Perl有一个模块(由Damien编写)编写上述文件。见Lingua-EN-Inflect。我不知道其他语言中的任何模块都做到了这一点。

答案 2 :(得分:0)

我认为你应该检查这个样本:

http://kuwamoto.org/2007/12/14/how-to-pluralize-in-php-and-please-help-me-check-the-code/

可能存在一些错误,我还没有测试过,但它应该足以让你开始。