4

php 是否有任何函数来处理复数或去复数词?

显然,在“apple”之类的词尾去掉或替换“s”很容易,但其他词就没那么简单了。

如果php没有原生的处理方式,那么其他语言如何处理这个问题呢?是否有可以处理复数/去复数的功能,或者英语在语法上是否过于不一致?

4

3 回答 3

1

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

Gettext是 GNU 国际化和本地化 (i18n) 库。它已被开发为 i18n 和 l10n(国际化和本地化)的工具,但正因为如此,它具有处理复数形式的大量功能,因为其他语言可能具有比英语更复杂的复数形式.

PHP 实现了 gettext,因此这可能是您研究的一个很好的起点。最后,您可能希望看看这个其他答案,建议另一种方法。

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

于 2009-11-14T12:49:51.183 回答
1

查看Damien Conway 关于此的论文。仅用英语就很好地说明了这是一个多么棘手的话题。

其他语言如何处理这个(如你所问)?Perl 对此有一个模块(由 Damien 编写),它对上述论文进行编码。请参阅Lingua-EN-Inflect。我不知道其他语言中的任何模块都可以做到这一点。

于 2009-11-14T12:53:37.010 回答
0

我认为您应该检查此示例:

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

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

于 2009-11-14T12:48:36.597 回答