about summary refs log tree commit diff
path: root/app/controllers/concerns/localized.rb
diff options
context:
space:
mode:
authorEugen <eugen@zeonfederated.com>2017-04-08 11:36:43 +0200
committerGitHub <noreply@github.com>2017-04-08 11:36:43 +0200
commitc141f0a886c03ff1edf99e36c6d50c4bbdf10418 (patch)
treefd6217860790e46f532cc99802353cc33120d2b8 /app/controllers/concerns/localized.rb
parent55d03da303dcc2d0cdf0d642534d0f6337e252c9 (diff)
parent40703b96fa6ccc2b53a266ab67bbb61ce4b64160 (diff)
Merge pull request #1216 from tootsuite/fix-default-locale-regression
Fix #1165 - Default locale no longer breaks form submissions
Diffstat (limited to 'app/controllers/concerns/localized.rb')
-rw-r--r--app/controllers/concerns/localized.rb20
1 files changed, 16 insertions, 4 deletions
diff --git a/app/controllers/concerns/localized.rb b/app/controllers/concerns/localized.rb
index b6f868090..6528ce45e 100644
--- a/app/controllers/concerns/localized.rb
+++ b/app/controllers/concerns/localized.rb
@@ -4,13 +4,25 @@ module Localized
   extend ActiveSupport::Concern
 
   included do
-    before_action :set_locale
+    around_action :set_locale
   end
 
+  private
+
   def set_locale
-    I18n.locale = current_user.try(:locale) || default_locale
-  rescue I18n::InvalidLocale
-    I18n.locale = default_locale
+    locale = default_locale
+
+    if user_signed_in?
+      begin
+        locale = current_user.try(:locale) || default_locale
+      rescue I18n::InvalidLocale
+        locale = default_locale
+      end
+    end
+
+    I18n.with_locale(locale) do
+      yield
+    end
   end
 
   def default_locale