我的翻译以正常方式组织:
en:
foo:
bar: 'hello friend'
es:
foo:
bar: 'hola amigo'
我需要返回给定键的所有翻译的哈希值,并将语言作为哈希的键,如下所示:
# translations for foo.bar
{
en: 'hello friend',
es: 'hola amigo'
}
我如何从i18n引擎中取出它?
答案 0 :(得分:2)
回答我自己的问题,万一有人感兴趣。可能不是解决问题的最有效方法,但这样做:
Hash[
I18n.available_locales.map{|locale|
[locale, I18n.translate('foo.bar', default: '', locale: locale)]
}
]
答案 1 :(得分:1)
您确实可以使用I18n
来提取给定密钥的所有翻译:
key = 'hello'
I18n.available_locales.reduce({}) do |acc, locale|
acc[locale] = I18n.with_locale(locale) { I18n.t(key) }; acc
end