| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15103 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.form.i18n">
- <title>Internacionalización de Zend_Form</title>
- <para> Cada vez más, desarrolladores necesitan adaptar su contenido para multiples idiomas y
- regiones. <classname>Zend_Form</classname> intenta hacer de ésta una tarea trivial, y provee
- funcionalidad en ambas <link linkend="zend.translate">Zend_Translate</link> y <link
- linkend="zend.validate">Zend_Validate</link> para realizar esa funcionalidad. </para>
- <para> Por defecto, no se realiza ninguna internacionalización (I18n). Para iniciar las
- caraterísticas de I18n en <classname>Zend_Form</classname>, se necesitará instanciar un
- objeto <classname>Zend_Translate</classname> con un adaptador apropiado, y adjuntarlo a
- <classname>Zend_Form</classname> y/o <classname>Zend_Validate</classname>. Ver la <link
- linkend="zend.translate">documentación Zend_Translate </link> para más información sobre
- crear el objeto traducción y los archivos de traducción </para>
- <note>
- <title>La Traducción Puede Ser Deshabilitado Por Item</title>
- <para> Se puede deshabilitar la traducción para cualquier formulario, elemento, grupo de
- visualización o subformulario llamando al método
- <methodname>setDisableTranslator($flag)</methodname> o pasando la opción
- <methodname>disableTranslator</methodname> al objeto. Puede ser de mucha ayuda
- cuando se quiere deshabilitar selectivamente la traducción para elementos individuales o
- grupo de elementos. </para>
- </note>
- <sect2 id="zend.form.i18n.initialization">
- <title>Inicializando I18n en formularios</title>
- <para> Para poder inicializar I18n en formularios, se necesitará un objeto
- <classname>Zend_Translate</classname> o un objeto
- <classname>Zend_Translate_Adapter</classname>, como se detalló en la documentación
- <classname>Zend_Translate</classname>. Una vez que se tenga el objeto traducción,
- existen varias opciones: </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Fácil:</emphasis> añadirlo al registro. Todos los componentes I18n de
- Zend Framework descubrirán automáticamente un objeto traducción que está en el
- registro con la clave 'Zend_Translate' y lo usará para ejecutar la traducción
- y/o la localización: </para>
- <programlisting language="php"><![CDATA[
- // use la clave 'Zend_Translate'; $translate es un objeto Zend_Translate:
- Zend_Registry::set('Zend_Translate', $translate);
- ]]></programlisting>
- <para> Será recibido por <classname>Zend_Form</classname>,
- <classname>Zend_Validate</classname> y
- <classname>Zend_View_Helper_Translate</classname>. </para>
- </listitem>
- <listitem>
- <para> Si todo lo que le preocupa es traducir los mensajes de error de validación,
- puede registrar el objeto traducción con
- <classname>Zend_Validate_Abstract</classname>: </para>
- <programlisting language="php"><![CDATA[
- // Decir a todas las clases de validación que se use un adaptador especifico de traducción
- Zend_Validate_Abstract::setDefaultTranslator($translate);
- ]]></programlisting>
- </listitem>
- <listitem>
- <para> Alternativamente, se puede adjuntar al objeto
- <classname>Zend_Form</classname> como un traductor global. Tiene el mismo
- efecto que traduciendo los mensajes de error de validación. </para>
- <programlisting language="php"><![CDATA[
- // Decir a todas las clases del formulario usar un adaptador especifico, así como también
- // use este adaptador para traducir mensajes de error de validación
- Zend_Form::setDefaultTranslator($translate);
- ]]></programlisting>
- </listitem>
- <listitem>
- <para> Finalmente, se puede adjuntar un traductor a una instancia especifica de un
- formulario o a elementos especificar usando sus métodos
- <methodname>setTranslator()</methodname>: </para>
- <programlisting language="php"><![CDATA[
- // Decir a *esta* instancia del formulario que use un adaptador especifico de traducción;
- // será usado para traducir mensajes de error de validación para todos los
- // elementos:
- $form->setTranslator($translate);
- // Decir a *este* elemento usar un adaptador especifico de traducción; será
- // usado para traducir los mensajes de error de validación para este
- // elemento en particular:
- $element->setTranslator($translate);
- ]]></programlisting>
- </listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.form.i18n.standard">
- <title>Objetivos estándar I18n</title>
- <para> Ahora que ya se tiene adjuntado un objeto de traducción, ¿qué se puede traducir
- exactamente por defecto? </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Mensajes de error de validación.</emphasis> Los mensajes de error de
- validación pueden ser traducidos. Para hacerlo, use la variedad de constantes de
- códigos de error de <classname>Zend_Validate</classname> las clases de
- validación como los ID del mensaje. Para más información sobre esos códigos, ver
- la documentación <link linkend="zend.validate">Zend_Validate</link>. </para>
- <para> Alternativamente, desde la versión 1.6.0, se pueden proveer cadenas de
- traducción usando los mensajes de error actuales como mensajes identificadores.
- Este es el caso preferido de uso para 1.6.0 en adelante, así como también se
- volverá obsoleta la traducción de las claves de mensajes en versiones futuras.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Etiquetas.</emphasis> Las etiquetas elemento serán traducidas, si una
- traducción existe. </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Leyendas de campos.</emphasis> Grupos de visualización y
- subformularios se generan por defecto en fieldsets. El decorador de fieldsets
- intenta traducir la leyenda antes de generar el fieldset. </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Descripciones de formularios y elementos.</emphasis> Todos los tipos
- de formulario (elemento, formulario, visualización de grupos, subformularios)
- permiten especificar una descripción opcional. El decorador Description puede
- generarlo y por defecto tomará el valor e intentará traducirlo. </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Valores multi-opción.</emphasis> Para los múltiples items que heredan
- de <classname>Zend_Form_Element_Multi</classname> (incluyendo el MultiCheckbox,
- Multiselect y elementos Radio), la valores de opciones (no claves) serán
- traducidos si una traducción esta disponible; eso significa que las etiquetas de
- opciones presentadas al usuario serán traducidas. </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Submit y etiquetas Button.</emphasis> Los múltiples elementos Submit y
- Button (Button, Submit y Reset) traducirán la etiqueta mostrada al usuario.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
|