Commit 756e91dee4528a46f750e24877cc399715fe39ed
1 parent
242b7431
Exists in
staging
and in
42 other branches
ActionItem137: adjustements in language choosing scheme
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1300 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
3 changed files
with
28 additions
and
14 deletions
Show diff stats
app/controllers/application.rb
@@ -26,7 +26,7 @@ class ApplicationController < ActionController::Base | @@ -26,7 +26,7 @@ class ApplicationController < ActionController::Base | ||
26 | include PermissionCheck | 26 | include PermissionCheck |
27 | 27 | ||
28 | init_gettext 'noosfero' | 28 | init_gettext 'noosfero' |
29 | - before_init_gettext :set_locale | 29 | + before_init_gettext :force_language |
30 | 30 | ||
31 | include NeedsProfile | 31 | include NeedsProfile |
32 | 32 | ||
@@ -62,15 +62,11 @@ class ApplicationController < ActionController::Base | @@ -62,15 +62,11 @@ class ApplicationController < ActionController::Base | ||
62 | current_user.person if logged_in? | 62 | current_user.person if logged_in? |
63 | end | 63 | end |
64 | 64 | ||
65 | - def set_locale | ||
66 | - locale = cookies[:locale] | ||
67 | - unless params[:locale].blank? | ||
68 | - locale = params[:locale] | ||
69 | - end | ||
70 | - | ||
71 | - if locale | ||
72 | - cookies[:locale] = locale | ||
73 | - GetText.locale = locale | 65 | + def force_language |
66 | + lang = params[:lang] | ||
67 | + unless lang.blank? | ||
68 | + cookies[:lang] = lang | ||
69 | + GetText.locale = lang | ||
74 | end | 70 | end |
75 | end | 71 | end |
76 | 72 |
app/views/shared/language_chooser.rhtml
@@ -2,6 +2,6 @@ | @@ -2,6 +2,6 @@ | ||
2 | <% if GetText.locale.to_s == locale_code %> | 2 | <% if GetText.locale.to_s == locale_code %> |
3 | <strong><%= locale_name %></strong> | 3 | <strong><%= locale_name %></strong> |
4 | <% else %> | 4 | <% else %> |
5 | - <%= link_to locale_name, { :locale => locale_code }%> | 5 | + <%= link_to locale_name, { :lang => locale_code }%> |
6 | <% end %> | 6 | <% end %> |
7 | <% end %> | 7 | <% end %> |
test/integration/locale_setting_test.rb
@@ -2,10 +2,27 @@ require "#{File.dirname(__FILE__)}/../test_helper" | @@ -2,10 +2,27 @@ require "#{File.dirname(__FILE__)}/../test_helper" | ||
2 | 2 | ||
3 | class LocaleSettingTest < ActionController::IntegrationTest | 3 | class LocaleSettingTest < ActionController::IntegrationTest |
4 | 4 | ||
5 | - should 'set locale properly' do | 5 | + def setup |
6 | + # reset GetText before every test | ||
7 | + GetText.locale = nil | ||
8 | + end | ||
9 | + | ||
10 | + should 'detect locale from the browser' do | ||
11 | + | ||
12 | + # user has pt_BR | ||
13 | + get '/', { }, { 'HTTP_ACCEPT_LANGUAGE' => 'pt-br, en' } | ||
14 | + assert_equal 'pt_BR', GetText.locale.to_s | ||
15 | + | ||
16 | + # user now wants en | ||
17 | + get '/', { }, { 'HTTP_ACCEPT_LANGUAGE' => 'en' } | ||
18 | + assert_equal 'en', GetText.locale.to_s | ||
19 | + | ||
20 | + end | ||
21 | + | ||
22 | + should 'be able to force locale' do | ||
6 | 23 | ||
7 | # set locale to pt_BR | 24 | # set locale to pt_BR |
8 | - get '/', :locale => 'pt_BR' | 25 | + get '/', :lang => 'pt_BR' |
9 | assert_equal 'pt_BR', GetText.locale.to_s | 26 | assert_equal 'pt_BR', GetText.locale.to_s |
10 | 27 | ||
11 | # locale is kept | 28 | # locale is kept |
@@ -13,7 +30,7 @@ class LocaleSettingTest < ActionController::IntegrationTest | @@ -13,7 +30,7 @@ class LocaleSettingTest < ActionController::IntegrationTest | ||
13 | assert_equal 'pt_BR', GetText.locale.to_s | 30 | assert_equal 'pt_BR', GetText.locale.to_s |
14 | 31 | ||
15 | # changing back | 32 | # changing back |
16 | - get '/', :locale => 'en' | 33 | + get '/', :lang => 'en' |
17 | assert_equal 'en', GetText.locale.to_s | 34 | assert_equal 'en', GetText.locale.to_s |
18 | 35 | ||
19 | # locale is kept again | 36 | # locale is kept again |
@@ -23,4 +40,5 @@ class LocaleSettingTest < ActionController::IntegrationTest | @@ -23,4 +40,5 @@ class LocaleSettingTest < ActionController::IntegrationTest | ||
23 | end | 40 | end |
24 | 41 | ||
25 | 42 | ||
43 | + | ||
26 | end | 44 | end |