jrmajor/pluralrules

Identify plural categories according to CLDR

Maintainers

👁 jrmajor

Package info

github.com/jrmajor/pluralrules

pkg:composer/jrmajor/pluralrules

Fund package maintenance!

jrmajor

Statistics

Installs: 21 521

Dependents: 1

Suggesters: 0

Stars: 5

Open Issues: 2

v1.2.0 2025-12-07 12:22 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 77ef49d15dac84edcaf752ed7d02a7014318a4c9

  • Jeremiasz Major <jrh.mjr.woop@gmail.com>

i18nlocalelanguagel10nlocalizationinternationalizationpluralcldrplural rulesplural categories


README

👁 Latest Stable Version
👁 Required PHP Version

A PHP package for identifying the plural category, according to CLDR, for a given number.

Major\PluralRules\PluralRules::select('en', 1); // 'one'
Major\PluralRules\PluralRules::select('en', 2); // 'other'
Major\PluralRules\PluralRules::select('pl', 1); // 'one'
Major\PluralRules\PluralRules::select('pl', 42); // 'few'
Major\PluralRules\PluralRules::select('pl', 45); // 'many'
Major\PluralRules\PluralRules::select('pl', 1.5); // 'other'

You may install it via composer: composer require jrmajor/pluralrules.

Contributing

This package works by compiling CLDR plural rules to PHP closures like these. This is done by gen script (php gen rules and php gen tests). Before running it, you would need to run yarn install to download cldr-core package.

Testing

vendor/bin/phpunit # Tests
vendor/bin/phpstan analyze # Static analysis
vendor/bin/php-cs-fixer fix # Formatting