Diese Methode schien mir für deutsche Fehlermeldungen in den Formularen noch am schnellsten zu sein.
Dabei gehe ich davon aus, daß die Website durchgehend in einer Sprache ist, und die Anzahl der Übersetzungen sich nur auf Meldungen der Standart-Dekoratoren und Fehlermeldungen beschränkt.
Die Idee nutzt die Tatsache, daß die Formulare auf einen Default-Translator zurückgreifen, falls dieser vorhanden.
Daher setze ich in der Bootstrap einen Default-Translator.
Als Translator nehme ich einen „Zend_Translate_Adapter_Array“, dieser ist am einfachsten mit Werten zu füllen.
Man sollte generell bei der Initialisierung des Translators mindestens eine Übersetzung bereits anlegen (im Beispiel unten ist es ‚hallo‘), normalerweise wird man hier jedoch alle Übersetzungen die man braucht, schon anlegen. Ich habe im Beispiel mal zeigen, wie man weiter Übersetzungen hinzufügt.
Eine Besonderheit bei den Formularen ist, daß man nicht den angezeigten Text als Übersetungsvorlage nehmen muß, man kann auch den Text-Key verwenden. zB ist der Text-Key für ein erforderliches Feld ‚isEmpty‘. Schwieriger wird es bei Meldungen mit einem Parameter, hier werden die Platzhalterzeichen ‚%1‘ verwenden.
require_once 'Zend/Registry.php'; if (!Zend_Registry::isRegistered('Zend_Translate')) { $adapter = new Zend_Translate_Adapter_Array( array('content' => array('Hello' => 'Hallo'), 'locale' => 'de') ); $adapter->addTranslation(array( 'content' => array( 'isEmpty' => 'eine Eingabe ist notwendig' ), 'locale' => 'de' )); Zend_Registry::set('Zend_Translate', $adapter); }
Tags: Zend Formular deutsch