PropertyText¶
Die PropertyText
-Klasse erlaubt die Definition von Texten, die
über einen Schlüssel referenzierbar sind.
Je nach Sprache gibt es unterschiedliche Mehrzahlregelungen für Hauptwörter und Einheiten (Stunde und Stunden). Einige Sprachen wie Englisch haben zwei Formen, andere Sprachen haben eine oder viele Regeln.
Die Pluralregeln werden in die folgendne Kategorien eingeteil:
- zero
- one (Einzahl)
- two (Dual)
- few (Paucal)
- many
- other
Die Kategorien sind in der \Alvine\I18n\Util\PluralRules
-Klasse als Konstanten definiert.
$property=new \Alvine\Types\Properties();
$property->setValue('text', 'Es gibt {count} Autos');
$property->setValue('text.ONE', 'Es gibt {count} Auto');
$text=new \Alvine\I18n\PropertyText($property, 'text');
Ein Formatter erlaubt die Formierung des ausgwählten Textes.
// Lokale bestimmt die Mehrzahlregel
$locale=\Alvine\I18n\Locale::getInstance('de');
// Einen MessageFormatter definieren
$formatter=new \Alvine\I18N\MessageFormatter($locale);
In diesem Beispiel wird die Anzahl auf 0 gesetzt.
// Über die Map wird dann gesteuert, welcher
// Text als Vorlage genommen werden soll.
$mapZero=new \Alvine\Types\Map(['count'=>0]);
echo $formatter->format($text, $mapZero, 'count');
// Es gibt 0 Autos
In diesem Beispiel wird die Anzahl auf 1 gesetzt.
$mapOne=new \Alvine\Types\Map(['count'=>1]);
echo $formatter->format($text, $mapOne, 'count');
// ⇢ Es gibt 1 Auto
In diesem Beispiel wird die Anzahl auf 2 gesetzt.
$mapTwo=new \Alvine\Types\Map(['count'=>2]);
echo $formatter->format($text, $mapTwo, 'count');
// ⇢ Es gibt 2 Autos