Rails本地化

1. 安装gem包

gem "rails-i18n"

2. 修改配置

修改config/application.rb

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
config.i18n.default_local = "zh-CN"

3. 新增本地化文件

config/locales/setting.zh-CN.yml

zh-CN:
  hello: 你好
  admin:
    event: 管理员事件

view

t("admin.event")

t(:event, :scope => :admin)

不在view

I18n.t(:hello)

传递参数

zh-CN:
  hello: "亲爱的%{name}您好!"
t(:hello, :name=> @user_name)

4. 搭配Modal使用

zh-CN:
  activerecord:
    attributes:
      event:
        name: "活动名称"
        description: "描述"

4.设置某个Controller的编码

before_action :set_locale

def set_locale
  if params[:locale] && I18n.available_locales.include?(params[:locale].to_sym)
    session[:locale] = params[:locale]
  end

  I18n.locale = session[:locale] || I18n.default_local
end

你可能感兴趣的:(Rails本地化)