class PluralRules

PluralRules

Die verschiedenen Sprachen haben unterschiedliche Formen der Pluralbildung. Das Englische kennt zwei, das polnische kennt vier Pluralformen. Diese Klasse bildet die Pluralregeln ab. Die angegebenen Schlüsselwörter sind nur Platzhalter, denen eine Kategorie zugewisen wird.

// Polnische Regeln.
$locale = \Alvine\I18n\Locale::getInstance('pl');
$rule = \Alvine\I18n\Util\PluralRules::getInstance($locale);
$rule->getKeyword(1); // ist ONE;
$rule->getKeyword(2); // ist FEW;

Beispiel für das Wort Auto in polnisch
0 aut
1 auto
2-4 auta
5-19 aut
20-21 aut
22-24 auta
25-29 aut
x0-x1 aut
x2-x4 auta
x5-x9 aut

Constants

ZERO

Null, oder kein.

ONE

ein oder singular

TWO

zwei / dual

FEW

Einige

MANY

Viele

OTHER

Alle restlichen Formen

Properties

protected Constraint $constraint Regelwerk für die Ermittlung des Schlüsselwortes.
static protected array $instanceMap Alle Instanzen des Regelwerks nach Localen gemapped.
static protected array $rulemap Liste mit ISO-Codes der Sprachen und eine Referenz auf die für die Locale definierte Mehrzahlregel.
static protected array $rules Definition der einzelnen Regeln zur Mehrzahlbildung.

Methods

__construct(Locale $locale = null)

Neues Objekt

static PluralRules
getInstance(Locale $locale = null)

getInstance

static 
parse(type $rule)

Zerlegen einer Plural-Regel

static array
getRule(type $iso)

Diese Funktion ermittelt die für diese Locale gültige Regel und gibt diese zurück. Wird keine Regel gefunden, so wird ein leeres Array zurückgegeben.

string
getKeyword(integer $n)

Diese Funktion gibt das Schlüsselwort für die Mehrzahlbildung zurück.

Details

at line 465
protected __construct(Locale $locale = null)

Neues Objekt

Neues Objekt für Locale anlegen und das Regelwerk initialisieren.

Parameters

Locale $locale Locale

at line 487
static PluralRules getInstance(Locale $locale = null)

getInstance

Die Plural-Regeln sollen pro Locale nur einmal erstellt werden. Aus diesem Grund ist der Konstruktor protected und kann nur über diese Methode indirekt aufgerufen werden.

Parameters

Locale $locale Locale

Return Value

PluralRules Bestehendes oder neues Objekt.

at line 534
static parse(type $rule)

Zerlegen einer Plural-Regel

condition :     or_condition
                and_condition
or_condition :  and_condition 'or' condition
and_condition : relation
                relation 'and' relation
relation :      is_relation
                in_relation
                within_relation
                'n' EOL
is_relation :   expr 'is' value
                expr 'is' 'not' value
in_relation :   expr 'in' range
                expr 'not' 'in' range
within_relation : expr 'within' range
                  expr 'not' 'within' range
expr :          'n'
                'n' 'mod' value
value :         digit+
digit :         0|1|2|3|4|5|6|7|8|9
range :         value'..'value

Parameters

type $rule

Exceptions

ParseException

at line 629
static protected array getRule(type $iso)

Diese Funktion ermittelt die für diese Locale gültige Regel und gibt diese zurück. Wird keine Regel gefunden, so wird ein leeres Array zurückgegeben.

Parameters

type $iso Iso-Code der Locale (z.B. de)

Return Value

array Liste mit den Regeln

at line 645
string getKeyword(integer $n)

Diese Funktion gibt das Schlüsselwort für die Mehrzahlbildung zurück.

Parameters

integer $n Zahl

Return Value

string Schlüsselwort ZERO,ONE,TWO,FEW,MANY,OTHER