将变量传递给YAML数组

时间:2013-10-30 12:02:17

标签: arrays rails-i18n string-interpolation

如何将变量传递给YAML数组?我想象它的工作方式就像把它传递给普通的字符串,就像这样(一般例子):

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

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

但是这将呈现文本First %{name}。我知道我可以使用显式索引键,例如name_0:name_1:等,但我认为YAML数组更清洁,并且想要使用它。

1 个答案:

答案 0 :(得分:4)

如果你看一下I18n gem interpolate function,你会看到你不能通过传递值来做到这一点,因为如果输出不是string,插值将无效。

但没有什么能阻止你做以下事情:

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