2012-06-11 4 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' 

어떻게 선을 깰 수 또는이 단락을 만들?

여기에 몇 가지 정보가 있지만 나에게 도움이되지 못했습니다. 나는 잘못하고 있습니다.

+0

당신이 레일 및 YAML 측 모두 몇 가지주의 사항을 사용할 필요가 레일을 사용하는 것처럼. 아래에서 자세한 내용을 보려면 내 답변을 참조하고 정답으로 표시하십시오. 감사. –

답변

45

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

이것은 올바른 문자열을 설정하지만, devise는 HTML'
'을 생성하지 않으므로 아무 효과가 없습니까? – amoebe

+1

'simple_format' 헬퍼를 사용 하시겠습니까? –

+2

이렇게하면 YAML 코드에만 줄 바꿈이 있지만 HTML 출력에는 줄 바꿈이 없습니다. 이 파일을 Rails 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

I 대답의 의미는 다음과 같습니다.

".yml (YAML) 파일의 구/단락을 구분선으로 작성하고 출력 (HTML)에 해당 구분선이 포함되는 방법은 무엇입니까?"

나에게 목표는 브레이크 아웃이 포함 된 .yml (YAML) 파일 안에 구문을 작성하여 최종 출력을 쉽게 이해 한 다음 레일스에서 ​​생성 된 HTML에서 정확하게 출력되도록하는 것입니다.

이렇게하려면 .yml 파일과 .html.erb | .slim 파일에 대한 간단한 예방 조치가 필요합니다.

내가 어떻게하는지.

h4.white = t('welcome_html') 

welcome_page.html.slim 여기 _html 마지막 부분을 유의하시기 바랍니다. 번역 키가 _html로 끝나면 무료로 이스케이프 처리됩니다. 출처 : 우리가 탈출한다 </BR> HTML 태그를 사용할 수 있습니다 우리의 .yml 파일 내부에 그래서 지금 http://guides.rubyonrails.org/i18n.html#using-safe-html-translations

en.yml

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

합니다. 읽기 쉽고 출력이 어떻게 나타날지 이해하려면 "|" yaml 옵션을 사용하면 .yml 파일 내부에 줄 바꿈을 넣을 수 있습니다. 그러나 "|" 여기에있는 옵션은 인간을 읽기 쉽고 개발자에게 친숙한 우리를위한 것입니다. "|" YAML 옵션은 출력에 영향을 미치지 않습니다! 그들은 모두 이제 HTML 페이지가 반영됩니다, 같은 출력을 생성

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! 

또는 또한 우리는이 같은 다른 YAML 옵션을 사용할 수 있습니다 그 브레이크 라인.

0

YAML 접두어로 _html을 사용하는 Diego D의 답변이 대부분 작동하지만, (예 : 플래시 알림과 같이)을 템플릿의 현지화 된 문자열에 사용해 볼 수도 있습니다. 그래서 예를 들어

:

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