我已经在我的本地化站点(2 种语言)上安装了 rails_admin gem,我需要管理 (/admin) 始终使用英语。根据文档,我应该在 rails_admin.rb 文件的开头添加以下 2 行。
require 'i18n'
I18n.default_locale = :de
但它不起作用。知道怎么做吗?
我已经在我的本地化站点(2 种语言)上安装了 rails_admin gem,我需要管理 (/admin) 始终使用英语。根据文档,我应该在 rails_admin.rb 文件的开头添加以下 2 行。
require 'i18n'
I18n.default_locale = :de
但它不起作用。知道怎么做吗?
偶然发现了同样的问题。这是我解决它的方法:
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
。
它确实在文档中说明,如果您的本地设置为英语以外的其他内容,您只需要执行此操作,因此您可能会发现您不需要设置此设置。RailsAdmin.config do |config|
如果您确实需要设置它, 请确保它低于rails_admin.rb
更新 -
由于您仍然遇到问题,请告诉我您使用的是什么版本的 ruby?你跑过bundle install
吗?你能不能试试sudo gem install i18n
。此外,如果它找不到您的语言环境,您可能需要将其指向它们,即I18n.load_translations "#{RAILS_ROOT}/locales/#{locale}.rb"