Rails翻译栏位

  1. 在model里增加:

    有一个前提条件:这个栏位需要是integer类型。

    1
    enum exchange_type: [:stock, :rebate, :withdraw]
  2. 在view里这样写:

    1
    <%= t log.exchange_type, scope: [:active_record, :value, :point_log, :exchange_type] %>
  3. config/initializers/local.rb里增加:

    1
    2
    3
    4
    5
    6
    7
    8
    # 指定 I18n 库搜索翻译文件的路径
    I18n.load_path += Dir[Rails.root.join('lib', 'locale', '*.{rb,yml}')]
    # 应用可用的区域设置白名单
    I18n.available_locales = [:en, :zh]
    # 修改默认区域设置(默认是 :en)
    I18n.default_locale = :zh
  4. 如果用的是devise,把语言文件:config/locales/devise/en.yml改成:config/locales/devise.zh.yml,打开文件,把里面的en改成zh

  5. 新增config/locales/zh.yml里增加:

    1
    2
    3
    4
    5
    6
    7
    8
    zh:
    active_record:
    value:
    point_log:
    exchange_type:
    stock: 进货
    withdraw: 提现
    rebate: 返佣

搞定!!!!

好处:自动翻译。

enum定义后,会多出这些方法: