2013-10-30 8 views
3

YAML 배열에 변수를 전달하는 방법은 무엇입니까? 나는 일에 상상하는 방법이 (일반적인 예)와 같은 일반 문자열로 전달과 같았다 :YAML 배열에 변수 전달

en: 
    names: 
    - First %{name} 
    - Second %{name} 
    - Third %{name} 

t('names', name: 'foo')[0] 

그러나 이것은 텍스트 First %{name} 렌더링됩니다. name_0:, name_1:, 등등과 같이 명시 적으로 색인 된 키를 사용할 수 있다는 것을 알고 있습니다. 그러나 YAML 배열을 훨씬 더 명확한 방식으로보고 사용하고 싶습니다.

답변

4

I18n 보석 interpolate function을 보면 출력이 string이 아닌 경우 작동하지 않으므로 값을 전달할 수 없다는 것을 알 수 있습니다.

그러나 아무것도 다음을 수행 할 수 없습니다 없습니다 :

t('names').map{|s| I18n.interpolate(s, name: 'foo')} 
+2

흠, 그 경우에는 내가뿐만 아니라't ('이름') [0] .gsub ('% {이름을 지정할 수 있습니다 ... 참조 } ','foo ')'(기본적으로 보간은 무엇인가?) (https://github.com/svenfuchs/i18n/blob/3e5395036dd138a6dbf1148ecd4f14a56786f9fd/lib/i18n/interpolate/ruby.rb#L21) 두 예제 모두에서 ,'t ('names.name_0', name : 'foo')'가 더 쉽습니다. – zykadelic