Rails 3.2.11:RailsAdmin本地化

时间:2013-01-18 04:43:31

标签: ruby-on-rails ruby-on-rails-3 rails-admin

我已在我的本地化网站上安装了rails_admin gem(2种语言),我需要管理(/ admin)始终使用英语。根据{{​​3}},我应该在rails_admin.rb文件的开头添加以下两行。

require 'i18n'
I18n.default_locale = :de

但它不起作用。知道怎么做吗?

2 个答案:

答案 0 :(得分:2)

偶然发现了同样的问题。以下是我解决它的方法:

class ApplicationController < ActionController::Base
  include Clearance::Controller
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception

  before_filter :set_locale

  def set_locale
    if [Clearance, RailsAdmin].include?(self.class.parent)
      I18n.locale = :en
    else
      I18n.locale = params[:locale] || I18n.default_locale
    end
  end
end

RailsAdmin控制器继承自ApplicationController,因此您需要明确告诉他们使用区域设置:在那里或者您可以打开类并覆盖set_locale

答案 1 :(得分:1)

如果您的本地设置为英语以外的其他内容,则会在文档中声明您只需执行此操作,因此您可能会发现不需要设置此项。如果您确实需要设置此项,请确保它低于RailsAdmin.config do |config|

中的rails_admin.rb

更新 -

由于您仍遇到问题,请您告诉我您使用的红宝石版本是什么?你运行bundle install了吗?你能试试sudo gem install i18n吗?此外,如果找不到您的区域设置,您可能需要指向它们,即I18n.load_translations "#{RAILS_ROOT}/locales/#{locale}.rb"