web-dev-qa-db-fra.com

Comment rompre les lignes dans les fichiers de localisation .yml sur des rails?

J'ai un fichier terms.en.yml avec une localisation, par exemple:

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'

Comment pourrais-je casser une ligne ou créer un paragraphe là-bas?

Voici quelques informations mais cela ne m’a pas aidé, j’avais fait quelque chose de mal. http://yaml.org/spec/1.1/#b- paragraphe-separator

25
Rootical V.

Cela fonctionne pour moi:

en:
  hello: "Hello world"
  bye: |
    Bye!
    See you!
  error: >
    Something happend.
    Try later.

Usage:

irb(main):001:0> I18n.t 'bye'
=> "Bye!\nSee you!\n"
irb(main):002:0> I18n.t 'error'
=> "Something happend. Try later.\n"
48
jdoe

Je considère que votre réponse signifie:

"Comment écrire une phrase/un paragraphe dans un fichier .yml (YAML) avec des lignes de séparation et faire en sorte que la sortie Rails (HTML) contienne ces lignes de rupture?"

Donc, pour moi, le but est d’écrire une phrase dans un fichier .yml (YAML) avec des lignes de séparation, afin de comprendre facilement la sortie finale, puis d’avoir cette sortie exacte dans notre code HTML, générée par Rails.

Pour ce faire, nous avons besoin de quelques précautions simples à la fois sur le fichier .yml et dans notre fichier .html.erb | .slim.

C'est comme ça que je le fais.

welcome_page.html.slim

h4.white = t('welcome_html')

Veuillez noter ici la dernière partie _html. Si votre clé de traduction se termine par _html, vous échapperez gratuitement. Source: http://guides.rubyonrails.org/i18n.html#using-safe-html-translations

en.yml

en:
  welcome_html: |
    Welcome on StackOverflow!</br>
    This is your personal dashboard!

Nous pouvons maintenant utiliser dans notre fichier .yml </ br> la balise HTML qui sera échappée. Pour lire et comprendre facilement comment apparaîtra la sortie que nous aimerions utiliser le "|" L'option yaml qui nous a laissé des lignes de rupture également à l'intérieur du fichier .yml. Mais rappelez que "|" L’option ici est juste pour nous, pour être plus lisible par l’homme et plus convivial pour le développeur. "|" L'option YAML n'affectera pas la sortie! Nous pouvons également utiliser d'autres options YAML telles que celles-ci:

en:
  welcome_html: >
    Welcome on StackOverflow!</br>
    This is your personal dashboard!

ou:

en:
  welcome_html:
    Welcome on StackOverflow!</br>
    This is your personal dashboard!

ou:

en:
  welcome_html: "Welcome on StackOverflow!</br>This is your personal dashboard!"

Ils produisent tous la même sortie, donc maintenant votre page HTML reflétera cette ligne de rupture.

10
Diego D

Si vous voulez avoir des sauts de ligne dans le code, mais pas dans la sortie:

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
7
clarkevans

La réponse de Diego D avec l'utilisation de _html comme préfixe YAML fonctionne généralement, mais dans le cas contraire (par exemple dans une alerte flash), vous pouvez également essayer d'utiliser .html_safe sur votre chaîne localisée dans le modèle.

Donc, à titre d'exemple:

<% flash.each do |name, msg| -%>
  <%= content_tag :div, msg.html_safe, class: name %>
<% end -%>
0
dain