Commit 64ec5b8529cc5ddf689b4d9b606520c8dad1f306

Authored by Antonio Terceiro
Committed by Daniela Feitosa
1 parent 1b0b8860

Fix browser language detection

FastGettext.locale= returns its argument instead of returning the locale
that was actually detected.

(ActionItem2297)
app/controllers/application_controller.rb
... ... @@ -42,7 +42,8 @@ class ApplicationController < ActionController::Base
42 42 def set_locale
43 43 FastGettext.available_locales = Noosfero.available_locales
44 44 FastGettext.default_locale = Noosfero.default_locale
45   - I18n.locale = FastGettext.locale = (params[:lang] || session[:lang] || Noosfero.default_locale || request.env['HTTP_ACCEPT_LANGUAGE'] || 'en')
  45 + FastGettext.locale = (params[:lang] || session[:lang] || Noosfero.default_locale || request.env['HTTP_ACCEPT_LANGUAGE'] || 'en')
  46 + I18n.locale = FastGettext.locale
46 47 if params[:lang]
47 48 session[:lang] = params[:lang]
48 49 end
... ...
test/functional/application_controller_test.rb
... ... @@ -334,6 +334,12 @@ class ApplicationControllerTest < ActionController::TestCase
334 334 assert_tag :html, :attributes => { :lang => 'es' }
335 335 end
336 336  
  337 + should 'set Rails locale correctly' do
  338 + @request.env['HTTP_ACCEPT_LANGUAGE'] = 'pt-BR,pt;q=0.8,en;q=0.6,en-US;q=0.4'
  339 + get :index
  340 + assert_equal 'pt', I18n.locale.to_s
  341 + end
  342 +
337 343 should 'include stylesheets supplied by plugins' do
338 344 class Plugin1 < Noosfero::Plugin
339 345 def stylesheet?
... ...