1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 17987 -->
4 <sect1 id="zend.form.i18n">
5 <title>Internacionalización de Zend_Form</title>
8 Cada vez más, desarrolladores necesitan adaptar su contenido para multiples idiomas y
10 <classname>Zend_Form</classname>
11 intenta hacer de ésta una tarea trivial, y provee
12 funcionalidad en ambas
13 <link linkend="zend.translate">Zend_Translate</link>
15 <link linkend="zend.validate">Zend_Validate</link>
16 para realizar esa funcionalidad.
20 Por defecto, no se realiza ninguna internacionalización (I18n). Para iniciar las
21 caraterísticas de I18n en
22 <classname>Zend_Form</classname>
23 , se necesitará instanciar un
25 <classname>Zend_Translate</classname>
26 con un adaptador apropiado, y adjuntarlo a
27 <classname>Zend_Form</classname>
29 <classname>Zend_Validate</classname>
31 <link linkend="zend.translate">documentación Zend_Translate </link>
32 para más información sobre
33 crear el objeto traducción y los archivos de traducción
37 <title>La Traducción Puede Ser Deshabilitado Por Item</title>
40 Se puede deshabilitar la traducción para cualquier formulario, elemento, grupo de
41 visualización o subformulario llamando al método
42 <methodname>setDisableTranslator($flag)</methodname>
44 <property>disableTranslator</property>
45 al objeto. Puede ser de mucha ayuda
46 cuando se quiere deshabilitar selectivamente la
47 traducción para elementos individuales o
52 <sect2 id="zend.form.i18n.initialization">
53 <title>Inicializando I18n en formularios</title>
56 Para poder inicializar I18n en formularios, se necesitará un objeto
57 <classname>Zend_Translate</classname>
59 <classname>Zend_Translate_Adapter</classname>
60 , como se detalló en la documentación
61 <classname>Zend_Translate</classname>
62 . Una vez que se tenga el objeto traducción,
63 existen varias opciones:
69 <emphasis>Fácil:</emphasis>
70 añadirlo al registro. Todos los componentes I18n de
71 Zend Framework descubrirán
72 automáticamente un objeto traducción que está en el
74 'Zend_Translate' y lo usará para ejecutar la traducción
78 <programlisting language="php"><![CDATA[
79 // use la clave 'Zend_Translate'; $translate es un objeto Zend_Translate:
80 Zend_Registry::set('Zend_Translate', $translate);
85 <classname>Zend_Form</classname>
87 <classname>Zend_Validate</classname>
89 <classname>Zend_View_Helper_Translate</classname>
96 Si todo lo que le preocupa es traducir los mensajes de error de validación,
97 puede registrar el objeto traducción con
98 <classname>Zend_Validate_Abstract</classname>
102 <programlisting language="php"><![CDATA[
103 // Decir a todas las clases de validación que se use un adaptador especifico de traducción
104 Zend_Validate_Abstract::setDefaultTranslator($translate);
110 Alternativamente, se puede adjuntar al objeto
111 <classname>Zend_Form</classname>
112 como un traductor global. Tiene el mismo
113 efecto que traduciendo los mensajes de
117 <programlisting language="php"><![CDATA[
118 // Decir a todas las clases del formulario usar un adaptador especifico, así como también
119 // use este adaptador para traducir mensajes de error de validación
120 Zend_Form::setDefaultTranslator($translate);
126 Finalmente, se puede adjuntar un traductor a una instancia especifica de un
127 formulario o a elementos especificar usando sus métodos
128 <methodname>setTranslator()</methodname>
132 <programlisting language="php"><![CDATA[
133 // Decir a *esta* instancia del formulario que use un adaptador especifico de traducción;
134 // será usado para traducir mensajes de error de validación para todos los
136 $form->setTranslator($translate);
138 // Decir a *este* elemento usar un adaptador especifico de traducción; será
139 // usado para traducir los mensajes de error de validación para este
140 // elemento en particular:
141 $element->setTranslator($translate);
147 <sect2 id="zend.form.i18n.standard">
148 <title>Objetivos estándar I18n</title>
150 <para>Ahora que ya se tiene adjuntado un objeto de traducción, ¿qué se puede traducir
151 exactamente por defecto?</para>
156 <emphasis>Mensajes de error de validación.</emphasis>
157 Los mensajes de error de
158 validación pueden ser traducidos. Para hacerlo, use la
159 variedad de constantes de
161 <classname>Zend_Validate</classname>
163 validación como los ID del mensaje. Para más información sobre esos
166 <link linkend="zend.validate">Zend_Validate</link>
170 <para>Alternativamente, desde la versión 1.6.0, se pueden proveer cadenas de
171 traducción usando los mensajes de error actuales como mensajes identificadores.
172 Este es el caso preferido de uso para 1.6.0 en adelante, así como también se
173 volverá obsoleta la traducción de las claves de mensajes en versiones futuras.
179 <emphasis>Etiquetas.</emphasis>
180 Las etiquetas elemento serán traducidas, si una
187 <emphasis>Leyendas de campos.</emphasis>
188 Grupos de visualización y
189 subformularios se generan por defecto en fieldsets. El
190 decorador de fieldsets
191 intenta traducir la leyenda antes de generar el fieldset.
197 <emphasis>Descripciones de formularios y elementos.</emphasis>
199 de formulario (elemento, formulario, visualización de grupos,
201 permiten especificar una descripción opcional. El decorador
203 generarlo y por defecto tomará el valor e intentará traducirlo.
209 <emphasis>Valores multi-opción.</emphasis>
210 Para los múltiples items que heredan
212 <classname>Zend_Form_Element_Multi</classname>
213 (incluyendo el MultiCheckbox,
214 Multiselect y elementos Radio), la valores de
215 opciones (no claves) serán
216 traducidos si una traducción esta disponible; eso
217 significa que las etiquetas de
218 opciones presentadas al usuario serán traducidas.
224 <emphasis>Submit y etiquetas Button.</emphasis>
225 Los múltiples elementos Submit y
226 Button (Button, Submit y Reset) traducirán la
227 etiqueta mostrada al usuario.