私はいくつかのローカライズされたterms.en.ymlファイルを持っています、例えば:
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'
どうすれば改行したり、そこに段落を作成したりできますか?
ここにいくつかの情報がありますが、それは私には役に立ちませんでした、私は何か間違ったことをしていました。 http://yaml.org/spec/1.1/#b-paragraph-separator
これは私にとってはうまくいきます:
en:
hello: "Hello world"
bye: |
Bye!
See you!
error: >
Something happend.
Try later.
使用法:
irb(main):001:0> I18n.t 'bye'
=> "Bye!\nSee you!\n"
irb(main):002:0> I18n.t 'error'
=> "Something happend. Try later.\n"
私はあなたの答えが意味することを考える:
"。yml(YAML)ファイルに改行を含む句/段落を記述し、Rails出力(HTML)にそれらの改行を含める方法は?"
したがって、私にとっての目標は、ブレークラインを使用して.yml(YAML)ファイル内にフレーズを記述し、最終出力を簡単に理解して、Railsによって生成されたHTMLでその正確な出力を取得することです。
そのためには、.ymlファイルと.html.erb | .slimファイルの両方でいくつかの簡単な予防策が必要です。
これは私がやる方法です。
welcome_page.html.slim
h4.white = t('welcome_html')
ここで_htmlの最後の部分に注意してください。翻訳キーが_htmlで終わっている場合は、無料でエスケープできます。出典: http://guides.rubyonrails.org/i18n.html#using-safe-html-translations
en.yml
en:
welcome_html: |
Welcome on StackOverflow!</br>
This is your personal dashboard!
ここで、.ymlファイル内で、エスケープされる</ br> HTMLタグを使用できます。読み、出力がどのように表示されるかを簡単に理解するために、 「|」を使用したい.ymlファイル内にも改行を入れるyamlオプション。ただし、「|」ここでのオプションは、開発者にとってより人間が読みやすくフレンドリーなものにするためのものです。 「|」 YAMLオプションは出力に影響しません!また、次のような他のYAMLオプションを使用することもできます。
en:
welcome_html: >
Welcome on StackOverflow!</br>
This is your personal dashboard!
または:
en:
welcome_html:
Welcome on StackOverflow!</br>
This is your personal dashboard!
または:
en:
welcome_html: "Welcome on StackOverflow!</br>This is your personal dashboard!"
これらはすべて同じ出力を生成するため、HTMLページにはその改行が反映されます。
コードには改行を入れたいが、出力には入れたくない場合:
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
YAMLプレフィックスとして_html
を使用したDiego Dの回答は主に機能しますが、機能しない場合(フラッシュアラートなど)、テンプレートのローカライズされた文字列で.html_safe
を使用してみることもできます。
例として:
<% flash.each do |name, msg| -%>
<%= content_tag :div, msg.html_safe, class: name %>
<% end -%>
他の誰かがDiego Dの回答を機能させるのにも問題がある場合に備えて:
私は</br>
と<br>
または<br />
。