Pertanyaan Bagaimana cara mem-break baris dalam file lokalisasi .yml pada rel?


Saya memiliki file terms.en.yml dengan beberapa pelokalan, misalnya:

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'

Bagaimana saya bisa melanggar garis atau membuat paragraf di sana?

Berikut beberapa info tetapi itu tidak membantu saya, saya telah melakukan sesuatu yang salah. http://yaml.org/spec/1.1/#b-paragraph-separator


23
2018-06-11 15:03


asal


Jawaban:


Ini bekerja untuk saya:

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

Pemakaian:

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

45
2018-06-11 15:21



Jika Anda ingin memiliki linebreak dalam kode, tetapi tidak dalam output:

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
2018-06-12 15:11



Saya menganggap bahwa jawaban Anda berarti:

"Bagaimana cara menulis frasa / paragraf dalam file .yml (YAML) dengan garis putus-putus dan membuat keluaran rel (HTML) berisi garis pemisah itu?"

Jadi bagi saya tujuannya adalah menulis frasa di dalam file .yml (YAML) dengan breaklines, untuk dengan mudah memahami hasil akhir dan kemudian memiliki output yang tepat dalam HTML kami, yang dihasilkan oleh Rails.

Untuk melakukan itu kita perlu beberapa tindakan pencegahan mudah baik pada file .yml dan di file .html.erb | .slim kami.

Ini bagaimana saya melakukannya.

welcome_page.html.slim

h4.white = t('welcome_html')

Harap di sini perhatikan bagian akhir _html. Jika kunci terjemahan Anda berakhir dengan _html, Anda bebas melarikan diri. Sumber: http://guides.rubyonrails.org/i18n.html#using-safe-html-translations

en.yml

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

Jadi sekarang di dalam file .yml kita dapat menggunakan tag HTML </ br> yang akan diloloskan. Untuk membaca dan memahami dengan mudah bagaimana akan muncul output kami ingin menggunakan "|" pilihan yaml yang memungkinkan kita memiliki garis putus juga di dalam file .yml. Tetapi ingatkan bahwa "|" pilihan di sini hanya untuk kita, agar lebih mudah dibaca manusia dan ramah kepada pengembang. "|" Pilihan YAML tidak akan mempengaruhi output! Juga kita bisa menggunakan opsi-opsi YAML lain seperti ini:

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

atau:

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

atau:

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

Mereka semua menghasilkan output yang sama, jadi sekarang halaman HTML Anda akan mencerminkan garis batas itu.


6
2017-09-23 10:29



Jawaban Diego D dengan menggunakan _html karena awalan YAML kebanyakan bekerja, tetapi ketika awalan YAML tidak bekerja (misalnya dalam peringatan flash), Anda juga dapat mencoba menggunakannya .html_safe pada string lokal Anda dalam template.

Jadi sebagai contoh:

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

0
2017-08-24 11:02