| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- 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
- <property>disableTranslator</property>
- 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>
|