Argumentzeichenkette¶
Mit den Klassen ArgumentText
und MessageArgumentFormatter
lassen sich Texte mit integrierter
Map anlegen, verwalten und übersetzen.
Eine Argumentzeichenkette hat folgenden Aufbau:
Beschreibungstext mit Platzhaltern::key1=value1::key2=value2
─────────⯆───────────────────────╯
Textzeile ╰─⯆─╯ ╰──⯆───╯
Trennzeichen ╰─⯆────╯ Zweites
Erstes Schlüssel/
Schlüssel/ Wert-Paar
Wert-Paar
Über den Schlüssel pluralrulekey
kann in der Klasse MessageArgumentFormatter
spezifiziert werden, welcher Schlüssel für
die Mehrzahlregel verwendet werden soll. Der Schlüssel wird aber nur dann verwendet, wenn in der format
Methode kein $pluralRuleKey
übergeben wird.
MessageArgumentFormatter¶
Die Klasse MessageArgumentFormatter
erlaubt es schnell, einfach und sicher eine Argumentzeichenkette
zusammenzustellen. Diese kann dann zum Beispiel im Zusammenhang mit Localen oder Exceptions
verwendet werden.
$text = (new \Alvine\Text\ArgumentText('Das ist ein Test'))->setValue('a','b');
echo (string) $text;
// ⇢ Das ist ein Test::a=b
ArgumentText¶
Außerdem bietet die Klasse ArgumentText
die Vorlage für die Verwendung mit dem MessageArgumentFormatter
. In diesem Beispiel
wird eine Nachricht erstellt und in der Zeichenkette die Argumente mitgegeben.
$text=(new \Alvine\Text\ArgumentText('Meine {key} Meldung'))
->setValue('key', 'erste');
echo (string) $text;
// ⇢ Meine {key} Meldung::key=erste
echo (new \Alvine\Text\MessageArgumentFormatter())->format($text);
// ⇢ Meine erste Meldung
Ein wichtiges Einsatzgebiet sind Fehlermeldungen. Hier können die Meldungen mit den Argumenten gespeichert werden.
try {
// Fehler tritt auf
throw new Exception('Kein freier Speicherplatz');
} catch(\Exception $ex) {
$message="Es ist der Fehler '{error}' aufgetreten.::error=".$ex->getMessage();
}
echo (new \Alvine\Text\MessageArgumentFormatter())->format($message);
// ⇢ Es ist der Fehler 'Kein freier Speicherplatz' aufgetreten.