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
Package: Alvine\I18n\Util
Category: Framework
License: Licence
Author: schukai GmbH info@schukai.de
Version: Release: $Revision: 173 $
Since: 20110904
Link: Alvine
Link: Plural-Regeln
Located at i18n/util/PluralRules.class.php
protected
|
|
public static
|
|
public static
|
|
protected 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. |
public
string
|
string |
ZERO
Null, oder kein. |
#
'ZERO'
|
string |
ONE
ein oder singular |
#
'ONE'
|
string |
TWO
zwei / dual |
#
'TWO'
|
string |
FEW
Einige |
#
'FEW'
|
string |
MANY
Viele |
#
'MANY'
|
string |
OTHER
Alle restlichen Formen |
#
'OTHER'
|
protected
Constraint
|
$constraint
Regelwerk für die Ermittlung des Schlüsselwortes. |
#
null
|
protected static
array
|
$instanceMap
Alle Instanzen des Regelwerks nach Localen gemapped. |
#
array()
|
protected static
array
|
$rulemap
Liste mit ISO-Codes der Sprachen und eine Referenz auf die für die Locale definierte Mehrzahlregel. |
#
array(
'az'=>1,
'bm'=>1,
'bo'=>1,
'dz'=>1,
'fa'=>1,
'id'=>1,
'ig'=>1,
'ii'=>1,
'hu'=>1,
'ja'=>1,
'jv'=>1,
'ka'=>1,
'kde'=>1,
'kea'=>1,
'km'=>1,
'kn'=>1,
'ko'=>1,
'lo'=>1,
'ms'=>1,
'my'=>1,
'sah'=>1,
'ses'=>1,
'sg'=>1,
'th'=>1,
'to'=>1,
'tr'=>1,
'vi'=>1,
'wo'=>1,
'yo'=>1,
'zh'=>1,
'ar'=>2,
'he'=>3,
'asa'=>4,
'ast'=>4,
'af'=>4,
'bem'=>4,
'bez'=>4,
'bg'=>4,
'bn'=>4,
'brx'=>4,
'ca'=>4,
'cgg'=>4,
'chr'=>4,
'ckb'=>4,
'da'=>4,
'de'=>4,
'dv'=>4,
'ee'=>4,
'el'=>4,
'en'=>4,
'eo'=>4,
'es'=>4,
'et'=>4,
'eu'=>4,
'fi'=>4,
'fo'=>4,
'fur'=>4,
'fy'=>4,
'gl'=>4,
'gsw'=>4,
'gu'=>4,
'ha'=>4,
'haw'=>4,
'hy'=>4,
'is'=>4,
'it'=>4,
'jgo'=>4,
'jmc'=>4,
'kaj'=>4,
'kcg'=>4,
'kk'=>4,
'kkj'=>4,
'kl'=>4,
'ks'=>4,
'ksb'=>4,
'ku'=>4,
'ky'=>4,
'lb'=>4,
'lg'=>4,
'mas'=>4,
'mgo'=>4,
'ml'=>4,
'mn'=>4,
'mr'=>4,
'nah'=>4,
'nb'=>4,
'nd'=>4,
'ne'=>4,
'nl'=>4,
'nn'=>4,
'nnh'=>4,
'no'=>4,
'nr'=>4,
'ny'=>4,
'nyn'=>4,
'om'=>4,
'or'=>4,
'os'=>4,
'pa'=>4,
'pap'=>4,
'ps'=>4,
'pt'=>4,
'rof'=>4,
'rm'=>4,
'rwk'=>4,
'saq'=>4,
'seh'=>4,
'sn'=>4,
'so'=>4,
'sq'=>4,
'ss'=>4,
'ssy'=>4,
'st'=>4,
'sv'=>4,
'sw'=>4,
'syr'=>4,
'ta'=>4,
'te'=>4,
'teo'=>4,
'tig'=>4,
'tk'=>4,
'tn'=>4,
'ts'=>4,
'ur'=>4,
'vo'=>4,
'wae'=>4,
've'=>4,
'vun'=>4,
'xh'=>4,
'xog'=>4,
'zu'=>4,
'ak'=>5,
'am'=>5,
'bh'=>5,
'fil'=>5,
'tl'=>5,
'guw'=>5,
'hi'=>5,
'ln'=>5,
'mg'=>5,
'nso'=>5,
'ti'=>5,
'wa'=>5,
'ff'=>6,
'fr'=>6,
'kab'=>6,
'lv'=>7,
'iu'=>8,
'kw'=>8,
'naq'=>8,
'se'=>8,
'sma'=>8,
'smi'=>8,
'smj'=>8,
'smn'=>8,
'sms'=>8,
'ga'=>9,
'ro'=>10,
'mo'=>10,
'lt'=>11,
'be'=>12,
'bs'=>12,
'hr'=>12,
'ru'=>12,
'sh'=>12,
'sr'=>12,
'uk'=>12,
'cs'=>13,
'sk'=>13,
'pl'=>14,
'sl'=>15,
'mt'=>16,
'mk'=>17,
'cy'=>18,
'lag'=>19,
'shi'=>20,
'br'=>21,
'ksh'=>22,
'tzm'=>23,
'gv'=>24,
'gd'=>25,
)
|
protected static
array
|
$rules
Definition der einzelnen Regeln zur Mehrzahlbildung. |
#
array(
1=>
array(
),
2=>
array(
'ZERO'=>'n is 0',
'ONE'=>'n is 1',
'TWO'=>'n is 2',
'FEW'=>'n mod 100 in 3..10',
'MANY'=>'n mod 100 in 11..99',
),
3=>
array(
'ONE'=>'n is 1',
'TWO'=>'n is 2',
'MANY'=>'n is not 0 AND n mod 10 is 0',
),
4=>
array(
'ONE'=>'n is 1',
),
5=>
array(
'ONE'=>'n in 0..1',
),
6=>
array(
'ONE'=>'n within 0..2 and n is not 2',
),
7=>
array(
'ZERO'=>'n is 0',
'ONE'=>'n mod 10 is 1 and n mod 100 is not 11',
),
8=>
array(
'ONE'=>'n is 1',
'TWO'=>'n is 2',
),
9=>
array(
'ONE'=>'n is 1',
'TWO'=>'n is 2',
'FEW'=>'n in 3..6',
'MANY'=>'n in 7..10',
),
10=>
array(
'ONE'=>'n is 1',
'FEW'=>'n is 0 OR n is not 1 AND n mod 100 in 1..19',
),
11=>
array(
'ONE'=>'n mod 10 is 1 and n mod 100 not in 11..19',
'FEW'=>'n mod 10 in 2..9 and n mod 100 not in 11..19',
),
12=>
array(
'ONE'=>'n mod 10 is 1 and n mod 100 is not 11',
'FEW'=>'n mod 10 in 2..4 and n mod 100 not in 12..14',
'MANY'=>'n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14',
),
13=>
array(
'ONE'=>'n is 1',
'FEW'=>'n in 2..4',
),
14=>
array(
'ONE'=>'n is 1',
'FEW'=>'n mod 10 in 2..4 and n mod 100 not in 12..14',
'MANY'=>'n is not 1 and n mod 10 in 0..1 or n mod 10 in 5..9 or n mod 100 in 12..14',
),
15=>
array(
'ONE'=>'n mod 100 is 1',
'TWO'=>'n mod 100 is 2',
'FEW'=>'n mod 100 in 3..4',
),
16=>
array(
'ONE'=>'n is 1',
'FEW'=>'n is 0 or n mod 100 in 2..10',
'MANY'=>'n mod 100 in 11..19',
),
17=>
array(
'ONE'=>'n mod 10 is 1 and n is not 11',
),
18=>
array(
'ZERO'=>'n is 0',
'ONE'=>'n is 1',
'TWO'=>'n is 2',
'FEW'=>'n is 3',
'MANY'=>'n is 6',
),
19=>
array(
'ZERO'=>'n is 0',
'ONE'=>'n within 0..2 and n is not 0 and n is not 2',
),
20=>
array(
'ONE'=>'n within 0..1',
'FEW'=>'n in 2..10',
),
21=>
array(
'ONE'=>'n mod 10 is 1 and n mod 100 not in 11,71,91',
'TWO'=>'n mod 10 is 2 and n mod 100 not in 12,72,92',
'FEW'=>'n mod 10 in 3..4,9 and n mod 100 not in 10..19,70..79,90..99',
'MANY'=>'n is not 0 and n mod 1000000 is 0',
),
22=>
array(
'ZERO'=>'n is 0',
'ONE'=>'n is 1',
),
23=>
array(
'ONE'=>'n in 0..1 or n in 11..99',
),
24=>
array(
'ONE'=>'n mod 10 in 1..2 or n mod 20 is 0',
),
25=>
array(
'ONE'=>'n in 1,11',
'TWO'=>'n in 2,12',
'FEW'=>'n in 3..10,13..19',
),
)
|