Programmer's Reference Guide
| Standard Form Dekoratore die mit dem Zend Framework ausgeliefert werden |
Internationalisierung von Zend_Form
Immer mehr Entwickler müssen Ihren Inhalt für mehere Sprachen und Regionen zur Verfügung stellen. Zend_Form versucht so einen Arbeitsschritt trivial zu machen und verwendet Funktionalitäten sowohl in Zend_Translate als auch in Zend_Validate um das zu tun.
Standardmäßig wird keine Internationalisiernug (I18n) durchgeführt. Um I18n Features in
Zend_Form einzuschalten, muß ein Zend_Translate Objekt mit einem
gewünschten Adapter instanziert werden, und es mit Zend_Form und/oder
Zend_Validate verbunden werden. Siehe in die
Dokumentation zu Zend_Translate für weitere
Informationen darüber wie ein Übersetzungsobjekt und Übersetzungsdateien erstellt werden.
Hinweis: Die Übersetzung kann für jedes Element einzeln abgeschaltet werden
Übersetzung kann für jede Form, Element, Anzeigegruppe, oder Subform, durch den Aufruf dessensetDisableTranslator($flag)Methode oder der Übergabe derdisableTranslatorOption an das Objekt, ausgeschaltet werden. Das kann nützlich sein wenn man Übersetzungen selektiv für individuelle Elemente oder Sets von Elementen ausschalten will.
I18n in Formen initialisieren
Um I18n in Forms zu initialisieren, muß man entweder ein Zend_Translate
Objekt oder ein Zend_Translate_Adapter haben, wie in der
Zend_Translate Dokumentation beschrieben. Soband man ein
Übersetzungsobjekt hat, besitzt man verschiedene Möglichkeiten:
-
Einfachste: es der Registry hinzufügen. Alle I18n fähigen Komponenten vom Zend Framework erkennen ein Übersetzungsobjekt automatisch wenn es in der Registrierung unter dem 'Zend_Translate' Schlüssel vorhanden ist und verwenden es um eine Übersetzung und/oder Lokalisierung durchzuführen:
// verwende den 'Zend_Translate' Schlüssel; $translate ist ein Zend_Translate Objekt: Zend_Registry::set('Zend_Translate', $translate);Das wird von
Zend_Form,Zend_Validate, undZend_View_Helper_Translateaufgegriffen. -
Wenn man besorgt ist wegen der Übersetzung von Prüf-Fehlermeldungen, kann das Übersetzungsobjekt in
Zend_Validate_Abstractregistriert werden:// Allen Prüfklassen mitteilen das ein spezieller Übersetzungsadapter verwendet werden soll: Zend_Validate_Abstract::setDefaultTranslator($translate); -
Alternativ kann das
Zend_FormObjekt als globaler Übersetzer angefügt werden. Das hat auch einen Nebeneffekt auf die Übersetzung von Fehlermeldungen:// Allen Form Klassen mitteilen das ein spezieller Übersetzungsadapter // verwendet werden soll, sowie das der Adapter für die Übersetzung von // Fehlermeldungen verwendet werden soll: Zend_Form::setDefaultTranslator($translate); -
Letztendlich kann ein Übersetzer mit einer speziellen Instanz einer Form verbunden werden oder zu einem speziellen Element indem dessen
setTranslator()Methode verwendet wird:// *Dieser* Form Klassen mitteilen das ein spezieller Übersetzungsadapter // verwendet werden soll, sie wird auch für die Übersetzung von allen // Prüf-Fehlermeldungen für alle Elemente verwendet: $form->setTranslator($translate); // *Diesem* Element mitteilen das ein spezieller Übersetzungsadapter // verwendet werden soll, sie wird auch für die Übersetzung von allen // Prüf-Fehlermeldungen für dieses Elemente verwendet: $element->setTranslator($translate);
Standard I18n Ziele
Was kann nun standardmäßig übersetzt werden nachdem nun ein Übersetzungs Objekt angehängt wurde?
-
Prüfungs Fehlermeldungen. Prüfungs Fehlermeldungen können übersetzt werden. Um das zu tun, müssen die verschiedenen Konstanten der Fehlercodes von den
Zend_ValidatePrüfungsklassen als Message IDs verwendet werden. Für weitere Details über diese Codes kann in die Dokumentation zu Zend_Validate gesehen werden.Zusätzlich können ab 1.6.0 Übersetzungen angegeben werden indem die aktuelle Fehlermeldung als Identifikator der Meldung verwendet wird. Das ist die bevorzugte Verwendung für 1.6.0 und höher, da die Übersetzung der Nachrichtenschlüssel in zukünftigen Releases als depreciated sein wird.
-
Labels. Element Labels werden übersetzt wenn eine Übersetzung existiert.
-
Fieldset Legenden. Anzeigegruppen und Unterformen werden standardmäßig in Fieldsets dargestellt. Der Fieldset Dekorator versucht die Legende zu übersetzen bevor das Fieldset dargestellt wird.
-
Form und Element Beschreibungen. Alle Formtypen (Element, Form, Anzeigegruppen, Unterformen) erlauben die Spezifikation von optionalen Elementbeschreibungen. Der Beschreibungs Dekorator kann verwendet werden um Sie darzustellen und standardmäßig nimmt er den Wert und versucht Ihn zu übersetzen.
-
Multi-Option Werte. Für die verschiedenen Elemente die von
Zend_Form_Element_Multiabgeleitet sind (enthält die MultiCheckbox, Multiselect, und Radio Elemente), werden die Optionswerte (nicht die Schlüssel) übersetzt wenn eine Übersetzung vorhanden ist; das bedeutet das die Label der vorhandenen Optionen die dem Benutzer angezeigt werden, übersetzt werden. -
Submit und Button Labels. Die verschiedenen Submit und Button Elemente (Button, Submit und Reset) übersetzen das Label das dem Benutzer angezeigt wird.
| Standard Form Dekoratore die mit dem Zend Framework ausgeliefert werden |
Select a Version
Languages Available
Components
Search the Manual
Navigation
- Programmierer Referenzhandbuch
- Programmierer Referenzhandbuch
- Zend_Form
- Zend_Form
- Schnellstart mit Zend_Form
- Erstellen von Form Elementen mit Hilfe von Zend_Form_Element
- Erstellen von Form durch Verwendung von Zend_Form
- Erstellen von eigenem Form Markup durch Zend_Form_Decorator
- Standard Form Elemente die mit dem With Zend Framework ausgeliefert werden
- Standard Form Dekoratore die mit dem Zend Framework ausgeliefert werden
- Internationalisierung von Zend_Form
- Fortgeschrittene Verwendung von Zend_Form
