2012-06-11 8 views
23

मैं उदाहरण के लिए कुछ स्थानीयकरण के साथ एक terms.en.yml फ़ाइल है,:रेल पर .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

+0

आप रेल आप रेल और YAML पक्ष पर दोनों कुछ सावधानियों का उपयोग करने की आवश्यकता का उपयोग कर रहे हैं। अधिक जानकारी के लिए नीचे मेरा उत्तर देखें और कृपया इसे सही उत्तर के रूप में चिह्नित करने पर विचार करें। धन्यवाद। –

उत्तर

45

यह मेरे लिए काम करता है:

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" 
+0

यह सही स्ट्रिंग सेट करता है, लेकिन devise HTML '
का निर्माण नहीं करता है, इसलिए इसका कोई प्रभाव नहीं है? – amoebe

+1

उस के लिए 'simple_format' सहायक का उपयोग करें? –

+2

इस तरह आप केवल YAML कोड में लाइनरेक हैं, लेकिन HTML आउटपुट में नहीं। इसे रेल 4.2.6 के साथ सामान्य .yml फ़ाइल में आज़माएं और यह काम नहीं करता है, दोनों "|" और ">" विकल्प। अधिक जानकारी के लिए नीचे मेरा उत्तर देखें और कृपया इसे सही उत्तर के रूप में चिह्नित करने पर विचार करें। धन्यवाद। –

7

आप कोड में लाइनब्रेक करना चाहते हैं, लेकिन उत्पादन में नहीं:

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 
6

मैं मान लें कि आपके उत्तर का अर्थ है:

"ब्रेक लाइनों के साथ .yml (YAML) फ़ाइल में वाक्यांश/अनुच्छेद कैसे लिखें और रेल आउटपुट (HTML) में उन ब्रेक लाइनों को शामिल करें?"

तो मेरे लिए लक्ष्य अंतिम आउटपुट को आसानी से समझने के लिए .iml (YAML) फ़ाइल के अंदर एक वाक्यांश लिखना है, और उसके बाद रेल द्वारा उत्पन्न हमारे एचटीएमएल में सटीक आउटपुट है।

ऐसा करने के लिए हमें .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 टैग कि छोड़ दिया जाएगा उपयोग कर सकते हैं। आसानी से पढ़ने और समझने के लिए आउटपुट कैसे दिखाई देगा हम "|" yaml विकल्प है कि हमें .yml फ़ाइल के अंदर भी ब्रेक लाइनें दें। लेकिन याद दिलाएं कि "|" यहां विकल्प सिर्फ हमारे लिए है, और अधिक मानव पठनीय और डेवलपर के अनुकूल है। "|" वाईएएमएल विकल्प आउटपुट को प्रभावित नहीं करेगा!

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

या:

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

या: इसके अलावा हम इन जैसे अन्य YAML विकल्पों का उपयोग कर सकते हैं

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

वे सभी एक ही उत्पादन का उत्पादन है, इसलिए अब अपने HTML पृष्ठ को प्रतिबिंबित करेगा वह ब्रेक लाइन।_html YAML उपसर्ग के रूप में उपयोग करने के साथ

0

डिएगो D के जवाब ज्यादातर काम करता है, लेकिन जब यह नहीं है (एक फ्लैश चेतावनी में उदाहरण के लिए) आप भी टेम्पलेट में अपने स्थानीय स्ट्रिंग पर .html_safe उपयोग करने का प्रयास कर सकते हैं।

तो एक उदाहरण के रूप

:

<% flash.each do |name, msg| -%> 
    <%= content_tag :div, msg.html_safe, class: name %> 
<% end -%> 
संबंधित मुद्दे