Commit 089cccb050d76864c6efdbe6c0ba8daa037d5cca

Authored by AntonioTerceiro
1 parent 756e91de

ActionItem137: final adjustements in language_chooser


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1301 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/helpers/application_helper.rb
@@ -157,8 +157,7 @@ module ApplicationHelper @@ -157,8 +157,7 @@ module ApplicationHelper
157 def footer 157 def footer
158 # FIXME: add some information from the environment 158 # FIXME: add some information from the environment
159 [ 159 [
160 - content_tag('div', 'Copyright © 2007, Noosfero - Change Me!'),  
161 - content_tag('div', _('%s, version %s' % [ link_to('developers', 'http://www.colivre.coop.br/Noosfero'), Noosfero::VERSION])), 160 + content_tag('div', _('This is %s, version %s' % [ link_to(Noosfero::PROJECT, 'http://www.colivre.coop.br/Noosfero'), Noosfero::VERSION])),
162 ].join("\n") 161 ].join("\n")
163 end 162 end
164 163
app/helpers/language_helper.rb
1 module LanguageHelper 1 module LanguageHelper
2 def language 2 def language
3 - code = GetText.locale.to_s.downcase  
4 - (code == 'en_us') ? 'en' : code 3 + code = GetText.locale.to_s
5 end 4 end
  5 +
  6 + def tinymce_language
  7 + language.downcase
  8 + end
  9 +
  10 + def language_chooser
  11 + current = language
  12 + Noosfero.locales.map do |code,name|
  13 + if code == current
  14 + content_tag('strong', name)
  15 + else
  16 + link_to(name, :lang => code)
  17 + end
  18 + end.join(' — ')
  19 + end
  20 +
6 end 21 end
app/views/shared/language_chooser.rhtml
1 -<% Noosfero.locales.each do |locale_code,locale_name| %>  
2 - <% if GetText.locale.to_s == locale_code %>  
3 - <strong><%= locale_name %></strong>  
4 - <% else %>  
5 - <%= link_to locale_name, { :lang => locale_code }%>  
6 - <% end %>  
7 -<% end %> 1 +<%= language_chooser %>
  2 +
  3 +<%= help(_('The language you choose here if the language used for options, buttons, etc. It does not affect the language of the content created by other users.'), _('Help on languages')) %>
app/views/shared/tiny_mce.rhtml
@@ -10,6 +10,6 @@ tinyMCE.init({ @@ -10,6 +10,6 @@ tinyMCE.init({
10 theme_advanced_buttons2 : "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,link,unlink,image,table,separator,cleanup,code", 10 theme_advanced_buttons2 : "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,link,unlink,image,table,separator,cleanup,code",
11 theme_advanced_buttons3 : "", 11 theme_advanced_buttons3 : "",
12 apply_source_formatting : true, 12 apply_source_formatting : true,
13 - language: <%= language.inspect %>, 13 + language: <%= tinymce_language.inspect %>,
14 }); 14 });
15 </script> 15 </script>
test/unit/language_helper_test.rb
@@ -4,20 +4,46 @@ class LanguageHelperTest &lt; Test::Unit::TestCase @@ -4,20 +4,46 @@ class LanguageHelperTest &lt; Test::Unit::TestCase
4 4
5 include LanguageHelper 5 include LanguageHelper
6 6
7 - def test_english 7 + should 'return current language' do
8 locale = mock 8 locale = mock
9 - locale.expects(:to_s).returns('en_us') 9 + locale.expects(:to_s).returns('pt_BR')
10 GetText.stubs(:locale).returns(locale) 10 GetText.stubs(:locale).returns(locale)
11 -  
12 - assert_equal 'en', self.language 11 +
  12 + assert_equal 'pt_BR', self.language
13 end 13 end
14 14
15 - def test_other_languages  
16 - locale = mock  
17 - locale.expects(:to_s).returns('pt_BR')  
18 - GetText.stubs(:locale).returns(locale) 15 + should 'downcase language for tinymce' do
  16 + self.expects(:language).returns('pt_BR')
  17 + assert_equal 'pt_br', tinymce_language
  18 + end
  19 +
  20 + should 'generate language chooser correcly' do
  21 + Noosfero.expects(:locales).returns({ 'en' => 'English', 'pt_BR' => 'Português Brasileiro', 'fr' => 'Français', 'it' => 'Italiano' }).at_least_once
  22 +
  23 + self.expects(:language).returns('pt_BR')
  24 + result = self.language_chooser
  25 + assert_match /<strong>Português Brasileiro<\/strong>/, result
  26 + assert_no_match /<strong>English<\/strong>/, result
  27 + assert_no_match /<strong>Français<\/strong>/, result
  28 + assert_no_match /<strong>Italiano<\/strong>/, result
  29 +
  30 + self.expects(:language).returns('fr')
  31 + result = self.language_chooser
  32 + assert_no_match /<strong>Português Brasileiro<\/strong>/, result
  33 + assert_no_match /<strong>English<\/strong>/, result
  34 + assert_match /<strong>Français<\/strong>/, result
  35 + assert_no_match /<strong>Italiano<\/strong>/, result
  36 +
  37 + end
  38 +
  39 + protected
  40 +
  41 + def content_tag(tag, text)
  42 + "<#{tag}>#{text}</#{tag}>"
  43 + end
19 44
20 - assert_equal 'pt_br', self.language 45 + def link_to(text, opts)
  46 + "<a href='?lang=#{opts[:lang]}'>#{text}</a>"
21 end 47 end
22 48
23 end 49 end