ruby-on-rails - spanish - rails i18n with parameters
¿Cómo romper líneas en archivos de localización.yml en rieles? (4)
Tengo un archivo terms.en.yml con alguna localización, por ejemplo:
en:
devise:
registrations:
terms:
text: ''This agreement was written in English (US). To the extent any translated version of this agreement conflicts with the English version, the English version controls. Please note that Section 16 contains certain changes to the general terms for users outside the United States./n/ Some new line''
¿Cómo podría romper una línea o crear un párrafo allí?
Aquí hay algo de información, pero no me ayudó, había estado haciendo algo mal. http://yaml.org/spec/1.1/#b-paragraph-separator
Considero que tu respuesta significa:
"¿Cómo escribir una frase / párrafo en un archivo .yml (YAML) con líneas de ruptura y hacer que los rieles de salida (HTML) contengan esas líneas de ruptura?"
Así que para mí, el objetivo es escribir una frase dentro del archivo .yml (YAML) con líneas de ruptura, para comprender fácilmente la salida final y luego tener esa salida exacta en nuestro HTML, generado por Rails.
Para eso necesitamos algunas precauciones fáciles tanto en el archivo .yml como en nuestro archivo .html.erb | .slim.
Así lo hago yo.
welcome_page.html.slim
en:
devise:
registrations:
terms:
text: >
This agreement was written in English (US).
To the extent any translated version of this
agreement conflicts with the English version,
the English version controls. Please note
that Section 16 contains certain changes to
the general terms for users outside the
United States.
Some new line
Por favor, tenga en cuenta la parte final _html. Si su clave de traducción finaliza con _html, obtendrá el escape de forma gratuita. Fuente: http://guides.rubyonrails.org/i18n.html#using-safe-html-translations
en.yml
h4.white = t(''welcome_html'')
Así que ahora dentro de nuestro archivo .yml podemos usar la etiqueta </ br> HTML que se escapará. Para leer y entender fácilmente cómo aparecerá la salida, nos gustaría usar el "|" Opción yaml que nos permite tener líneas de ruptura también dentro del archivo .yml. Pero recuerda que "|" La opción aquí es solo para nosotros, para que sea más fácil de leer y amigable para el desarrollador. "|" ¡La opción YAML no afectará la salida! También podemos usar otras opciones de YAML como estas:
en:
welcome_html: |
Welcome on !</br>
This is your personal dashboard!
o:
en:
welcome_html: >
Welcome on !</br>
This is your personal dashboard!
o:
en:
welcome_html:
Welcome on !</br>
This is your personal dashboard!
Todos producen la misma salida, por lo que ahora su página HTML reflejará esa línea de ruptura.
Esto funciona para mí:
en:
hello: "Hello world"
bye: |
Bye!
See you!
error: >
Something happend.
Try later.
Uso:
irb(main):001:0> I18n.t ''bye''
=> "Bye!/nSee you!/n"
irb(main):002:0> I18n.t ''error''
=> "Something happend. Try later./n"
La respuesta de Diego D con el uso de _html
como prefijo YAML funciona en su mayoría, pero cuando no lo hace (por ejemplo, en una alerta instantánea) también puede intentar usar .html_safe
en su cadena localizada en la plantilla.
Así como un ejemplo:
<% flash.each do |name, msg| -%>
<%= content_tag :div, msg.html_safe, class: name %>
<% end -%>
Si desea tener saltos de línea en el código, pero no en la salida:
en:
welcome_html: "Welcome on !</br>This is your personal dashboard!"