2
0

Zend_Form-I18n.xml 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15103 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.form.i18n">
  5. <title>Internacionalización de Zend_Form</title>
  6. <para>
  7. Cada vez más, desarrolladores necesitan adaptar su contenido para multiples
  8. idiomas y regiones. <classname>Zend_Form</classname> intenta hacer de ésta una tarea trivial, y
  9. provee funcionalidad en ambas <link
  10. linkend="zend.translate">Zend_Translate</link> y <link
  11. linkend="zend.validate">Zend_Validate</link> para realizar esa funcionalidad.
  12. </para>
  13. <para>
  14. Por defecto, no se realiza ninguna internacionalización (I18n). Para iniciar las caraterísticas
  15. de I18n en <classname>Zend_Form</classname>, se necesitará instanciar un objeto
  16. <classname>Zend_Translate</classname> con un adaptador apropiado, y
  17. adjuntarlo a <classname>Zend_Form</classname> y/o <classname>Zend_Validate</classname>.
  18. Ver la <link linkend="zend.translate">documentación Zend_Translate
  19. </link> para más información sobre crear el objeto traducción
  20. y los archivos de traducción
  21. </para>
  22. <note>
  23. <title>La Traducción Puede Ser Deshabilitado Por Item</title>
  24. <para>
  25. Se puede deshabilitar la traducción para cualquier formulario, elemento, grupo de visualización o
  26. subformulario llamando al método <code>setDisableTranslator($flag)</code>
  27. o pasando la opción <code>disableTranslator</code> al
  28. objeto. Puede ser de mucha ayuda cuando se quiere deshabilitar selectivamente
  29. la traducción para elementos individuales o grupo de elementos.
  30. </para>
  31. </note>
  32. <sect2 id="zend.form.i18n.initialization">
  33. <title>Inicializando I18n en formularios</title>
  34. <para>
  35. Para poder inicializar I18n en formularios, se necesitará un objeto
  36. <classname>Zend_Translate</classname> o un objeto
  37. <classname>Zend_Translate_Adapter</classname>, como se detalló en la documentación
  38. <classname>Zend_Translate</classname>. Una vez que se tenga el
  39. objeto traducción, existen varias opciones:
  40. </para>
  41. <itemizedlist>
  42. <listitem>
  43. <para>
  44. <emphasis>Fácil:</emphasis> añadirlo al registro. Todos los componentes
  45. I18n de Zend Framework descubrirán automáticamente un objeto
  46. traducción que está en el registro con la clave 'Zend_Translate'
  47. y lo usará para ejecutar la traducción y/o la localización:
  48. </para>
  49. <programlisting role="php"><![CDATA[
  50. // use la clave 'Zend_Translate'; $translate es un objeto Zend_Translate:
  51. Zend_Registry::set('Zend_Translate', $translate);
  52. ]]></programlisting>
  53. <para>
  54. Será recibido por <classname>Zend_Form</classname>,
  55. <classname>Zend_Validate</classname> y
  56. <classname>Zend_View_Helper_Translate</classname>.
  57. </para>
  58. </listitem>
  59. <listitem>
  60. <para>
  61. Si todo lo que le preocupa es traducir los mensajes de error de
  62. validación, puede registrar el objeto traducción con
  63. <classname>Zend_Validate_Abstract</classname>:
  64. </para>
  65. <programlisting role="php"><![CDATA[
  66. // Decir a todas las clases de validación que se use un adaptador especifico de traducción
  67. Zend_Validate_Abstract::setDefaultTranslator($translate);
  68. ]]></programlisting>
  69. </listitem>
  70. <listitem>
  71. <para>
  72. Alternativamente, se puede adjuntar al objeto <classname>Zend_Form</classname>
  73. como un traductor global. Tiene el mismo efecto que traduciendo los
  74. mensajes de error de validación.
  75. </para>
  76. <programlisting role="php"><![CDATA[
  77. // Decir a todas las clases del formulario usar un adaptador especifico, así como también
  78. // use este adaptador para traducir mensajes de error de validación
  79. Zend_Form::setDefaultTranslator($translate);
  80. ]]></programlisting>
  81. </listitem>
  82. <listitem>
  83. <para>
  84. Finalmente, se puede adjuntar un traductor a una instancia especifica de un
  85. formulario o a elementos especificar usando sus métodos
  86. <code>setTranslator()</code>:
  87. </para>
  88. <programlisting role="php"><![CDATA[
  89. // Decir a *esta* instancia del formulario que use un adaptador especifico de traducción;
  90. // será usado para traducir mensajes de error de validación para todos los
  91. // elementos:
  92. $form->setTranslator($translate);
  93. // Decir a *este* elemento usar un adaptador especifico de traducción; será
  94. // usado para traducir los mensajes de error de validación para este
  95. // elemento en particular:
  96. $element->setTranslator($translate);
  97. ]]></programlisting>
  98. </listitem>
  99. </itemizedlist>
  100. </sect2>
  101. <sect2 id="zend.form.i18n.standard">
  102. <title>Objetivos estándar I18n</title>
  103. <para>
  104. Ahora que ya se tiene adjuntado un objeto de traducción, ¿qué
  105. se puede traducir exactamente por defecto?
  106. </para>
  107. <itemizedlist>
  108. <listitem>
  109. <para>
  110. <emphasis>Mensajes de error de validación.</emphasis> Los mensajes
  111. de error de validación pueden ser traducidos. Para hacerlo, use la variedad de
  112. constantes de códigos de error de <classname>Zend_Validate</classname>
  113. las clases de validación como los ID del mensaje. Para más información
  114. sobre esos códigos, ver la documentación <link
  115. linkend="zend.validate">Zend_Validate</link>.
  116. </para>
  117. <para>
  118. Alternativamente, desde la versión 1.6.0, se pueden proveer cadenas de
  119. traducción usando los mensajes de error actuales como mensajes
  120. identificadores. Este es el caso preferido de uso para 1.6.0 en
  121. adelante, así como también se volverá obsoleta la traducción de las claves de mensajes en
  122. versiones futuras.
  123. </para>
  124. </listitem>
  125. <listitem>
  126. <para>
  127. <emphasis>Etiquetas.</emphasis> Las etiquetas elemento serán
  128. traducidas, si una traducción existe.
  129. </para>
  130. </listitem>
  131. <listitem>
  132. <para>
  133. <emphasis>Leyendas de campos.</emphasis> Grupos de visualización y
  134. subformularios se generan por defecto en fieldsets. El
  135. decorador de fieldsets intenta traducir la leyenda antes de generar el fieldset.
  136. </para>
  137. </listitem>
  138. <listitem>
  139. <para>
  140. <emphasis>Descripciones de formularios y elementos.</emphasis> Todos
  141. los tipos de formulario (elemento, formulario, visualización de grupos, subformularios) permiten
  142. especificar una descripción opcional. El decorador Description puede generarlo y por defecto
  143. tomará el valor e intentará traducirlo.
  144. </para>
  145. </listitem>
  146. <listitem>
  147. <para>
  148. <emphasis>Valores multi-opción.</emphasis> Para los
  149. múltiples items que heredan de <classname>Zend_Form_Element_Multi</classname>
  150. (incluyendo el MultiCheckbox, Multiselect y elementos
  151. Radio), la valores de opciones (no claves) serán traducidos
  152. si una traducción esta disponible; eso significa que las
  153. etiquetas de opciones presentadas al usuario serán traducidas.
  154. </para>
  155. </listitem>
  156. <listitem>
  157. <para>
  158. <emphasis>Submit y etiquetas Button.</emphasis> Los múltiples
  159. elementos Submit y Button (Button, Submit y Reset)
  160. traducirán la etiqueta mostrada al usuario.
  161. </para>
  162. </listitem>
  163. </itemizedlist>
  164. </sect2>
  165. </sect1>
  166. <!--
  167. vim:se ts=4 sw=4 tw=80 et:
  168. -->