polyglot/plural-detector-registry-cardinal-cldr

PHP Polyglot CLDR plural registry of cardinal type

v1.0.0 2023-09-08 19:43 UTC

This package is not auto-updated.

Last update: 2024-04-20 20:40:24 UTC


README

A simple polyglot CLDR plural detector registry.

This plural detector registry contains plural detectors with CLDR rules

Install

composer require polyglot/plural-detector-registry-cardinal-cldr:^1.0

Using

<?php

$registry = new \Polyglot\CldrCardinalPluralDetectorRegistry\CldrCardinalPluralDetectorRegistry();
$en = $registry->get('en_US'); // or $registry->get('en')
$en->getAllowedCategories(); // returns ["one", "other"]
$en->detect(1); // returns "one"
$en->detect(2); // returns "other"

$ar = $registry->get('ar');
$en->getAllowedCategories(); // returns ["zero", "one", "two", "few", "many", "other"]
$en->detect(0); // returns "zero"
$en->detect(1); // returns "one"
$en->detect(2); // returns "two"
$en->detect(rand(3, 10) + 100 * rand(0, 100)); // returns "few"
$en->detect(rand(11, 99) + 100 * rand(0, 100)); // returns "many"
$en->detect(rand(10, 99) / 10); // returns "other"

$registry->get('unknown'); // throws \Polyglot\Contract\PluralDetectorRegistry\Exception\LocaleNotSupported