Commit cb16e304d333aa1d7ff93b4197df7231e815a230
1 parent
407767bb
Exists in
master
and in
29 other branches
[language-selection] Making languages only save the language abbreviation
Showing
2 changed files
with
13 additions
and
13 deletions
Show diff stats
app/models/environment.rb
... | ... | @@ -777,7 +777,11 @@ class Environment < ActiveRecord::Base |
777 | 777 | validate :languages_available |
778 | 778 | |
779 | 779 | def locales |
780 | - languages || Noosfero.locales | |
780 | + if languages.present? | |
781 | + languages.inject({}) {|r, l| r.merge({l => Noosfero.locales[l]})} | |
782 | + else | |
783 | + Noosfero.locales | |
784 | + end | |
781 | 785 | end |
782 | 786 | |
783 | 787 | def default_locale |
... | ... | @@ -803,8 +807,8 @@ class Environment < ActiveRecord::Base |
803 | 807 | |
804 | 808 | def languages_available |
805 | 809 | if languages.present? |
806 | - languages.each do |key, value| | |
807 | - if Noosfero.locales[key] != value | |
810 | + languages.each do |language| | |
811 | + if !Noosfero.available_locales.include?(language) | |
808 | 812 | errors.add(:languages, _('have unsupported languages.')) |
809 | 813 | break |
810 | 814 | end | ... | ... |
test/unit/environment_test.rb
... | ... | @@ -1246,17 +1246,12 @@ class EnvironmentTest < ActiveSupport::TestCase |
1246 | 1246 | |
1247 | 1247 | should 'allow only languages there are defined in locales' do |
1248 | 1248 | environment = Environment.default |
1249 | - Noosfero.stubs(:locales).returns({'en' => 'English'}) | |
1250 | 1249 | |
1251 | - environment.languages = {'pt' => 'Português'} | |
1250 | + environment.languages = ['zz'] | |
1252 | 1251 | environment.valid? |
1253 | 1252 | assert environment.errors.invalid?(:languages) |
1254 | 1253 | |
1255 | - environment.languages = {'en' => 'Bli blo'} | |
1256 | - environment.valid? | |
1257 | - assert environment.errors.invalid?(:languages) | |
1258 | - | |
1259 | - environment.languages = {'en' => 'English'} | |
1254 | + environment.languages = ['en'] | |
1260 | 1255 | environment.valid? |
1261 | 1256 | assert !environment.errors.invalid?(:languages) |
1262 | 1257 | end |
... | ... | @@ -1267,9 +1262,10 @@ class EnvironmentTest < ActiveSupport::TestCase |
1267 | 1262 | environment.save! |
1268 | 1263 | assert_equal Noosfero.locales, environment.locales |
1269 | 1264 | |
1270 | - environment.languages = {'en' => 'English'} | |
1265 | + environment.languages = ['en'] | |
1271 | 1266 | environment.save! |
1272 | - assert_equal environment.languages, environment.locales | |
1267 | + hash = {'en' => 'English'} | |
1268 | + assert_equal hash, environment.locales | |
1273 | 1269 | end |
1274 | 1270 | |
1275 | 1271 | should 'define available_locales or use the config available_locales' do |
... | ... | @@ -1278,7 +1274,7 @@ class EnvironmentTest < ActiveSupport::TestCase |
1278 | 1274 | environment.save! |
1279 | 1275 | assert_equal Noosfero.available_locales, environment.available_locales |
1280 | 1276 | |
1281 | - environment.languages = {'pt' => 'Português', 'en' => 'English'} | |
1277 | + environment.languages = ['pt', 'en'] | |
1282 | 1278 | environment.save! |
1283 | 1279 | assert_equal ['en', 'pt'], environment.available_locales |
1284 | 1280 | end | ... | ... |