Skip to content

Commit 17faa39

Browse files
authored
Merge pull request #68 from farend/support-auto-language
Fix problem with reload not working correctly when auto is set for language
2 parents f1761f3 + f8d6844 commit 17faa39

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

lib/message_customize/application_controller_patch.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ def reload_customize_messages
1919

2020
private
2121

22+
# NOTE: ApplicationController#set_localization sets the appropriate language in I18n.locale
2223
def current_user_language
23-
User.current.language.presence || Setting.default_language
24+
I18n.locale
2425
end
2526
end
2627
end

test/integration/application_controller_patch_test.rb

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,28 @@ def test_reload_if_messages_are_not_latest
2626
assert_equal custom_message_setting.updated_on.to_i.to_s, I18n.backend.send(:translations)[:en][:redmine_message_customize_timestamp]
2727
end
2828

29+
def test_reload_if_user_language_is_auto_and_browser_language_messages_are_not_latest
30+
# Reload based on the browser language if the language in User.current is ''(auto)
31+
User.find_by_login('admin').update(language: '')
32+
log_user('admin', 'admin')
33+
custom_message_setting = CustomMessageSetting.find_or_default
34+
35+
custom_message_setting.update_with_custom_messages({'label_home' => 'Changed home'}, 'ja')
36+
assert_equal 'Home2', I18n.backend.send(:translations)[:ja][:label_home]
37+
assert_equal '1640995200', I18n.backend.send(:translations)[:ja][:redmine_message_customize_timestamp]
38+
with_settings :default_language => 'en' do
39+
dummy_http_headers = @request.env
40+
dummy_http_headers['HTTP_ACCEPT_LANGUAGE'] = 'ja'
41+
ActionDispatch::Request.any_instance.stubs(:env).returns(dummy_http_headers)
42+
43+
get '/issues'
44+
end
45+
assert_equal 'Changed home', I18n.backend.send(:translations)[:ja][:label_home]
46+
assert_equal custom_message_setting.updated_on.to_i.to_s, I18n.backend.send(:translations)[:ja][:redmine_message_customize_timestamp]
47+
end
48+
2949
def test_reload_if_user_language_is_auto_and_default_language_messages_are_not_latest
30-
# User.currentのlanguageが''(auto)でもSetting.default_languageを元に用語の最新化を行うこと
50+
# Reload based on the default language if the language in User.current is ''(auto) and request.env['HTTP_ACCEPT_LANGUAGE'] is nil
3151
User.find_by_login('admin').update(language: '')
3252
log_user('admin', 'admin')
3353
custom_message_setting = CustomMessageSetting.find_or_default

0 commit comments

Comments
 (0)