【问题标题】:Rails 3.2.11: RailsAdmin localizationRails 3.2.11:RailsAdmin 本地化
【发布时间】:2013-01-18 04:43:30
【问题描述】:

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

require 'i18n'
I18n.default_locale = :de

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

【问题讨论】:

  • 您是否将:de 更改为:en 并尝试过?
  • 不起作用是什么意思?
  • 您的应用控制器中有任何配置吗? RailsAdmin 继承自您的 ApplicationController...
  • 感谢您的回复。这是我的源代码:github.com/galtgaridsoft/moru

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


【解决方案1】:

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

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,因此您需要明确告诉他们使用区域设置 :en 或者您可以打开类并覆盖 set_locale

【讨论】:

  • 我遇到了,即使RailsAdmin 控制器是从ApplicationController 继承的,当它路由到'/admin' 或'/admin/etc..' 时它永远不会触发'ApplicationController'所以你的解决方案与RailsAdmin 无关
【解决方案2】:

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

更新 -

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多