如何将变量传递给 YAML 数组?我想象它的工作方式就像将它传递给普通字符串,就像这样(一般示例):
en:
names:
- First %{name}
- Second %{name}
- Third %{name}
t('names', name: 'foo')[0]
但这将呈现文本First %{name}。我知道我可以使用显式索引键,例如name_0:,name_1:等,但我认为 YAML 数组是一种更简洁的方式,并希望使用它。
如何将变量传递给 YAML 数组?我想象它的工作方式就像将它传递给普通字符串,就像这样(一般示例):
en:
names:
- First %{name}
- Second %{name}
- Third %{name}
t('names', name: 'foo')[0]
但这将呈现文本First %{name}。我知道我可以使用显式索引键,例如name_0:,name_1:等,但我认为 YAML 数组是一种更简洁的方式,并希望使用它。
如果您查看I18ngem interpolate function,您会发现您不能通过传递值来做到这一点,因为如果输出不是stringinterpolate 将不起作用。
但没有什么能阻止您执行以下操作:
t('names').map{|s| I18n.interpolate(s, name: 'foo')}