çoğalması / depluralisation

3 Cevap php

Php kelime pluralising veya depluralising ile başa çıkmak için herhangi bir işlevi var mı?

Açıkçası 'elma' değil başka deyişle gibi kelimelerin sonundaki 's' çıkarmak ya da değiştirmek için bu kadar basit oldukça kolay değil bu.

Php onunla ilgili yerli bir yol yoksa, nasıl diğer diller sorunu ile anlaşma yapmak? Çoğalması / depluralisation işleyebilir bir işlevi var mı yoksa ingilizce sadece çok gramatically tutarsız?

3 Cevap

Ben normalde yalnızca bu sorunla başa çıkmak için kendi yolunu uygular çerçeveler içinde PHP kullanıyorum, ama ben sorunuzun cevabı gettext olabileceğini düşünüyorum.

Gettext GNU uluslararasılaşma ve yerelleştirme (i18n) kütüphanesidir. Bu i18n ve L10N (uluslararasılaşma ve yerelleştirme) için bir araç olarak geliştirildi ama oldu - tam da bu, bu plenty of functions çoğul formları ile başa çıkmak için vardır, verilen diğer dilleri oluşturan çok daha karmaşık yollar olabileceğini İngilizce yok daha çoğul.

PHP implments gettext böylece içine bakmak için iyi bir başlangıç ​​noktası olabilir. Son olarak, bunu yapmanın alternatif bir yol düşündüren, this other answer için bir göz atmak isteyebilirsiniz.

EDIT: ngettext() aradığınız işlevi olabileceğini düşünüyorum.

Çıkış Damien Conway's paper on this. Bu dikenli bir konu yalnız İngilizce ne güzel göstermektedir.

(Siz sordunuz gibi) Nasıl diğer dilleri bu ile anlaşma yapmak? Perl üzerinde kağıt kodlar (Damien tarafından yazılmış) bunun için bir modül var. Bkz Lingua-EN-Inflect. Ben oldukça bu yaptığınız diğer dillerde herhangi bir modül bilmiyorum.

Bunu örnek kontrol gerektiğini düşünüyorum:

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

Orada bazı hatalar olabilir ve ben henüz denemedim, ama başlamak için yeterli olmalıdır.