about summary refs log tree commit diff
path: root/app/controllers/concerns/localized.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-04-07 12:40:26 +0200
committerEugen Rochko <eugen@zeonfederated.com>2017-04-07 12:40:26 +0200
commite3a3422a65901c71ec3ff4a2729309c441660d63 (patch)
treed992cec0c566046fd28d0d4f3d0c17e310b540f4 /app/controllers/concerns/localized.rb
parent624a9a7136159d460228a0c2f5df18a9ead3b7f2 (diff)
Allow setting of default language through config
Setting of locale in controller extracted to Localized concern,
the doorkeeper authorized applications controller moved under
custom namespace with inclusion of Localized, which resolves the
"it sometimes appears in a different random language" bug
Diffstat (limited to 'app/controllers/concerns/localized.rb')
-rw-r--r--app/controllers/concerns/localized.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/app/controllers/concerns/localized.rb b/app/controllers/concerns/localized.rb
new file mode 100644
index 000000000..b6f868090
--- /dev/null
+++ b/app/controllers/concerns/localized.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Localized
+  extend ActiveSupport::Concern
+
+  included do
+    before_action :set_locale
+  end
+
+  def set_locale
+    I18n.locale = current_user.try(:locale) || default_locale
+  rescue I18n::InvalidLocale
+    I18n.locale = default_locale
+  end
+
+  def default_locale
+    ENV.fetch('DEFAULT_LOCALE') { I18n.default_locale }
+  end
+end