5

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

require 'i18n'
I18n.default_locale = :de

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

4

2 回答 2

3

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

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,所以你需要明确地告诉他们使用 locale :en 或者你可以打开类并覆盖set_locale

于 2015-10-30T09:19:49.393 回答
1

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

更新 -

由于您仍然遇到问题,请告诉我您使用的是什么版本的 ruby​​?你跑过bundle install吗?你能不能试试sudo gem install i18n。此外,如果它找不到您的语言环境,您可能需要将其指向它们,即I18n.load_translations "#{RAILS_ROOT}/locales/#{locale}.rb"

于 2013-01-22T02:41:59.247 回答