我已在我的本地化网站上安装了rails_admin gem(2种语言),我需要管理(/ admin)始终使用英语。根据{{3}},我应该在rails_admin.rb文件的开头添加以下两行。
require 'i18n'
I18n.default_locale = :de
但它不起作用。知道怎么做吗?
答案 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"