在 Rails I18n 上翻译 Ruby 中的单词数组

Translating word arrays in Ruby on Rails I18n

我已经搜索和摆弄过,但我没有运气。我正在尝试找出翻译单词数组(模型文件)的最佳方法:

  def self.valid_batman_characters
    %w{batman joker}
  end

我认为像 I18n.t ['activerecord.lookup', 'activerecord.lookup'] 这样的东西会起作用,但没有骰子。我不完全确定我错过了什么?

这应该有效:

%w{batman joker}.map{ |key| I18n.t(key, scope: "active_record") }

或者,您可以使用符号:

%i{batman joker}.map{ |key| I18n.t(key, scope: :active_record) }

或字符串,不指定 I18n 范围,如下所示:

%w{batman joker}.map{ |key| I18n.t("active_record.#{key}") }

或符号字符串,只因为你可以:

%w{batman joker}.map{ |key| I18n.t(key, scope: :active_record) }

这一切都假设您的语言配置中的键设置如下:

active_record:
  batman: Translation1
  joker: Translation2