Rails i18n - 如何获取一个键的所有翻译

4

我按照正常方式组织我的翻译:

en:
  foo:
    bar: 'hello friend'
es:
  foo:
    bar: 'hola amigo'

我需要返回给定键的所有翻译的哈希值,其中语言作为哈希的键,格式如下:
# translations for foo.bar
{
  en: 'hello friend',
  es: 'hola amigo'
}

我该如何从i18n引擎中提取它?
2个回答

4

如果有人感兴趣,我来回答自己的问题。这可能不是解决问题最有效的方法,但以下方法可以实现:

Hash[
  I18n.available_locales.map{|locale|
    [locale, I18n.translate('foo.bar', default: '', locale: locale)]
  }
]

2

您确实可以使用I18n来获取给定关键字的所有翻译:

key = 'hello'
I18n.available_locales.reduce({}) do |acc, locale|
  acc[locale] = I18n.with_locale(locale) { I18n.t(key) }; acc
end

我们同时回答了。你的也可以。 - kid_drew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接