是否可以在 Rails 中设置控制器的默认区域设置。假设应用程序支持不同的语言,例如 fr、nl、en、cn 等,并且我想使用“en”作为管理仪表板控制器的默认语言。请推荐
只需使用
before_action
回调来设置默认区域设置。
class Admin::DashboardController
before_action :set_default_locale
# ...
private
def set_default_locale
I18n.default_locale = :en
end
end
但是需要注意的一件事是
I18n.default_locale
不是线程安全的,在一个控制器中设置它可能会对其他控制器产生副作用。
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
更多详细信息请参见 link 和 http://guides.rubyonrails.org/i18n.html