From 6ae357043b91f48a1eca88e1a4edac63b88b4daf Mon Sep 17 00:00:00 2001 From: Antonio Terceiro Date: Wed, 25 Mar 2009 15:56:47 -0300 Subject: [PATCH] ActionItem830: forcing single-supported locale --- app/controllers/application.rb | 16 +++++++++++----- lib/noosfero.rb | 2 +- test/integration/locale_setting_test.rb | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/controllers/application.rb b/app/controllers/application.rb index adb31f4..cfcaa1e 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -62,6 +62,9 @@ class ApplicationController < ActionController::Base before_init_gettext :maybe_save_locale after_init_gettext :check_locale + if Noosfero.available_locales.size == 1 + GetText.locale = Noosfero.available_locales.first + end init_gettext 'noosfero' include NeedsProfile @@ -117,16 +120,19 @@ class ApplicationController < ActionController::Base end def maybe_save_locale - # save locale if forced - if params[:lang] - cookies[:lang] = params[:lang] + if Noosfero.available_locales.size > 1 + # save locale if forced + if params[:lang] + cookies[:lang] = params[:lang] + end + # force GetText to load a matching locale + GetText.locale = nil end - # force GetText to load a matching locale - GetText.locale = nil end def check_locale available_locales = Noosfero.available_locales + return if available_locales.size == 1 # do not accept unsupported locales if !available_locales.include?(locale.to_s) diff --git a/lib/noosfero.rb b/lib/noosfero.rb index a0adfd7..5ccfaf2 100644 --- a/lib/noosfero.rb +++ b/lib/noosfero.rb @@ -13,7 +13,7 @@ module Noosfero attr_accessor :locales attr_accessor :default_locale def available_locales - Dir.glob(File.join(RAILS_ROOT, 'locale', '*')).map { |f| File.basename(f) }.select {|item| locales.include?(item) } + @available_locales ||= (Dir.glob(File.join(RAILS_ROOT, 'locale', '*')).map { |f| File.basename(f) }.select {|item| locales.include?(item) }) end end diff --git a/test/integration/locale_setting_test.rb b/test/integration/locale_setting_test.rb index dd71aff..6ad6185 100644 --- a/test/integration/locale_setting_test.rb +++ b/test/integration/locale_setting_test.rb @@ -6,7 +6,7 @@ class LocaleSettingTest < ActionController::IntegrationTest # reset GetText before every test GetText.locale = nil Noosfero.stubs(:default_locale).returns('en') - Noosfero.stubs(:available_locales).returns(['pt_BR']) + Noosfero.stubs(:available_locales).returns(['pt_BR', 'ja_JP']) end should 'be able to set a default language' do -- libgit2 0.21.2