PluralRules
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
Zerlegen einer Plural-Regel
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.
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.
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.
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
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.
at line 645
string
getKeyword(integer $n)
Diese Funktion gibt das Schlüsselwort für die Mehrzahlbildung zurück.