rails multi missing locales language i18n available_locales html ruby-on-rails localization translation

html - multi - rails translation interpolation



Usar HTML dentro de un archivo de traducción de Rails (2)

Tengo algunas traducciones en mi aplicación Rails (config / locale / [en | de] .yml) y las uso en mis vistas con <%=t "teasers.welcome" %> . Ejemplo:

teasers: welcome: "<strong>Welcome</strong> to the Website ..."

En Rails 2.3.8 esto funciona bien, con Rails 3, el HTML se escapa y se traduce a &lt; ... ¿Cómo puedo evitar esta forma esta traducción y usar HTML en mis archivos de traducción como en Rails 2.3.8?


Aparte de usar en raw , hay otra forma indocumentada (pero oficial) de hacerlo. Todas las claves que terminan con _html se vuelven automáticamente sin escapar.

Renombrar la clave de

teasers: welcome: "<strong>Welcome</strong> to the Website ..."

a

teasers: welcome_html: "<strong>Welcome</strong> to the Website ..."


Supongo que es porque hacer

<%= t("blah") %>

En los carriles 2.x, ahora es el equivalente a hacer.

<%=h t("blah") %>

cuando estás usando rieles 3.

De la nota de lanzamiento s:

Cambie a XSS de escape por defecto para los rieles.

Para arreglar esto, y una vez más desde las notas de la versión:

Ya no necesita llamar a h (cadena) para escapar de la salida HTML, está activada de forma predeterminada en todas las plantillas de vista. Si desea la cadena sin escapar, llame a raw (cadena).

Así que solo reemplaza

<%= t("blah") %>

por

<%= raw t("blah") %>