From 3fcd683e6bad87ba5df91a17c3a5933519b81320 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Fri, 26 Dec 2014 11:38:52 +0000 Subject: [PATCH] Force UTF-8 encoding of language names. git-svn-id: http://svn.redmine.org/redmine/trunk@13807 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/i18n.rb | 3 ++- test/unit/lib/redmine/i18n_test.rb | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/redmine/i18n.rb b/lib/redmine/i18n.rb index 4b8dc2185..7f16105f1 100644 --- a/lib/redmine/i18n.rb +++ b/lib/redmine/i18n.rb @@ -93,7 +93,7 @@ module Redmine # The result is cached to prevent from loading all translations files # unless :cache => false option is given def languages_options(options={}) - if options[:cache] == false + options = if options[:cache] == false valid_languages. select {|locale| ::I18n.exists?(:general_lang_name, locale)}. map {|lang| [ll(lang.to_s, :general_lang_name), lang.to_s]}. @@ -103,6 +103,7 @@ module Redmine languages_options :cache => false end end + options.map {|name, lang| [name.force_encoding("UTF-8"), lang.force_encoding("UTF-8")]} end def find_language(lang) diff --git a/test/unit/lib/redmine/i18n_test.rb b/test/unit/lib/redmine/i18n_test.rb index a267fd7b9..6684220fb 100644 --- a/test/unit/lib/redmine/i18n_test.rb +++ b/test/unit/lib/redmine/i18n_test.rb @@ -199,6 +199,11 @@ class Redmine::I18nTest < ActiveSupport::TestCase assert_include [ja, "ja"], options end + def test_languages_options_should_return_strings_with_utf8_encoding + strings = languages_options.flatten + assert_equal ["UTF-8"], strings.map(&:encoding).uniq.map(&:name).sort + end + def test_languages_options_should_ignore_locales_without_general_lang_name_key stubs(:valid_languages).returns([:en, :foo]) assert_equal [["English", "en"]], languages_options(:cache => false) -- 2.39.5