Zend_Application-AvailableResources-Locale.xml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 23009 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.application.available-resources.locale">
  5. <title>Zend_Application_Resource_Locale</title>
  6. <para>
  7. <classname>Zend_Application_Resource_Locale</classname> puede ser usado para configurar
  8. una localidad en el ámbito de una aplicación entera. Ésta localidad es usada en todas las
  9. clases y componentes que trabajen con localización o internacionalización. Por defecfto
  10. la localidad es guardada en una entrada en <classname>Zend_Registry</classname> baje la
  11. clave '<property>Zend_Locale</property>'.
  12. </para>
  13. <para>
  14. Hay básicamente tres casos de uso para el Locale Resource Plugin. Cada uno deberá ser usado
  15. dependiendo de la necesidad de la apliación.
  16. </para>
  17. <sect3 id="zend.application.available-resources.locale.auto">
  18. <title>Autodetectando la localidad a usar</title>
  19. <para>
  20. Sin especificar ninguna opción para
  21. <classname>Zend_Application_Resource_Locale</classname>,
  22. <classname>Zend_Locale</classname> detectará la localidad y la aplicación la usará
  23. automaticamente.
  24. </para>
  25. <para>
  26. Ésta detección funciona porque el cliente envía el idioma deseado en su pedido
  27. <acronym>HTTP</acronym>. Normalmente el navegador envía los idiomas que desea ver
  28. y <classname>Zend_Locale</classname> usa esta información para la detección.
  29. </para>
  30. <para>
  31. Pero hay dos problemas con este enfoque:
  32. </para>
  33. <itemizedlist>
  34. <listitem>
  35. <para>
  36. El navegador podría estar configurado para no enviar el idioma
  37. </para>
  38. </listitem>
  39. <listitem>
  40. <para>
  41. El usuario podría haber configurado manualmente una localidad que no exista
  42. </para>
  43. </listitem>
  44. </itemizedlist>
  45. <para>
  46. En ambos casos <classname>Zend_Locale</classname> se apoyará en otros mecanismos
  47. para realizar la detección de la localidad:
  48. </para>
  49. <itemizedlist>
  50. <listitem>
  51. <para>
  52. Cuando se configuró una localidad que no existe,
  53. <classname>Zend_Locale</classname> trata de degradar la cadena.
  54. </para>
  55. <para>
  56. Cuando, por ejemplo se configura <emphasis>en_ZZ</emphasis>, automáticamente
  57. será degradado a <emphasis>en</emphasis>. En este caso <emphasis>en</emphasis>
  58. será usado como la localidad de la aplicación.
  59. </para>
  60. </listitem>
  61. <listitem>
  62. <para>
  63. Cuando la localidad tampoco haya podido ser detectada incluso degradando la
  64. cadena, la localidad de su entorno (servidor web) será usada. La mayoría de
  65. los entornos disponibles en la web usan <emphasis>en</emphasis> como localidad.
  66. </para>
  67. </listitem>
  68. <listitem>
  69. <para>
  70. Cuando la localidad del sistema no se haya podido detectar,
  71. <classname>Zend_Locale</classname> usara su localidad por defecto, que está
  72. configurada como <emphasis>en</emphasis>.
  73. </para>
  74. </listitem>
  75. </itemizedlist>
  76. <para>
  77. Para más información acerda de la detección de localidad, vea <link
  78. linkend="zend.locale.selection.automatic">este capitulo acerca de detección automática
  79. de Zend_Locale</link>
  80. </para>
  81. </sect3>
  82. <sect3 id="zend.application.available-resources.locale.fallback">
  83. <title>Autodetectando la localidad y agregando su mecanismo propio de reserva</title>
  84. <para>
  85. La detección descrita más arriba podría llegar a provocar problemas cuando la localidad
  86. no haya podido ser detectada y se desea tener otra localidad como defecto que no sea
  87. <emphasis>en</emphasis>. Para prevenir esto,
  88. <classname>Zend_Application_Resource_Locale</classname> permite configurar su propia
  89. localidad, que será usada en el cado de que una localidad no se haya podido detectar.
  90. </para>
  91. <example id="zend.application.available-resources.locale.configExampleDetectAndFallback">
  92. <title>Autodetectar la loclidad configurando un mecanismo de reserva</title>
  93. <para>
  94. El siguiente ejemplo muestra como configurar su propia localidad que será usada
  95. cuando el cliente no especifique ninguna localidad.
  96. </para>
  97. <programlisting language="ini"><![CDATA[
  98. ; Try to determine automatically first,
  99. ; if unsuccessful, use nl_NL as fallback.
  100. resources.locale.default = "nl_NL"
  101. ]]></programlisting>
  102. </example>
  103. </sect3>
  104. <sect3 id="zend.application.available-resources.locale.forcing">
  105. <title>Forzando una localidad en particular</title>
  106. <para>
  107. Muchas veces es útil definir una única localidad para ser usada. Esto se puede
  108. conseguir usando la opción <property>force</property>.
  109. </para>
  110. <para>
  111. En este caso, ésta única localidad será usada y detección automática será desactivada.
  112. </para>
  113. <example id="zend.application.available-resources.locale.configExampleFallbackOnly">
  114. <title>Definiendo una única localidad a ser usada</title>
  115. <para>
  116. El siguiente ejemplo muestra como usar una única localidad para la aplicación
  117. entera.
  118. </para>
  119. <programlisting language="ini"><![CDATA[
  120. ; No matter what, the nl_NL locale will be used.
  121. resources.locale.default = "nl_NL"
  122. resources.locale.force = true
  123. ]]></programlisting>
  124. </example>
  125. </sect3>
  126. </sect2>