From 138448a8bbb3691d70e7f9a3e25097ac1599ffa0 Mon Sep 17 00:00:00 2001 From: Daiki Matoba Date: Mon, 9 Jan 2017 03:37:13 +0900 Subject: [PATCH] Add config option to set locale --- app/controllers/rails_admin/application_controller.rb | 5 +++++ lib/rails_admin/config.rb | 3 +++ .../rails_admin/application_controller_spec.rb | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/app/controllers/rails_admin/application_controller.rb b/app/controllers/rails_admin/application_controller.rb index ed7fee5cb0..9957c2ec49 100644 --- a/app/controllers/rails_admin/application_controller.rb +++ b/app/controllers/rails_admin/application_controller.rb @@ -16,6 +16,7 @@ class ApplicationController < Config.parent_controller.constantize before_action :_authenticate! before_action :_authorize! before_action :_audit! + before_action :_set_locale! helper_method :_current_user, :_get_plugin_name @@ -58,6 +59,10 @@ def _audit! instance_eval(&RailsAdmin::Config.audit_with) end + def _set_locale! + I18n.locale = RailsAdmin.config.locale if RailsAdmin.config.locale + end + def rails_admin_controller? true end diff --git a/lib/rails_admin/config.rb b/lib/rails_admin/config.rb index 2f185a02bb..f79da8b1a5 100644 --- a/lib/rails_admin/config.rb +++ b/lib/rails_admin/config.rb @@ -78,6 +78,9 @@ class << self # yell about fields that are not marked as accessible attr_accessor :yell_for_non_accessible_fields + # set locale for rails_admin + attr_accessor :locale + # Setup authentication to be run as a before filter # This is run inside the controller instance so you can setup any authentication you need to # diff --git a/spec/controllers/rails_admin/application_controller_spec.rb b/spec/controllers/rails_admin/application_controller_spec.rb index 2150b4c388..35ef2fc656 100644 --- a/spec/controllers/rails_admin/application_controller_spec.rb +++ b/spec/controllers/rails_admin/application_controller_spec.rb @@ -39,4 +39,12 @@ expect(controller.send(:rails_admin_controller?)).to be true end end + + describe '#_set_locale!' do + it 'works with config' do + RailsAdmin.config.locale = :fr + controller.send(:_set_locale!) + expect(I18n.locale).to eq(:fr) + end + end end