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 157 def footer
158 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 161 ].join("\n")
163 162 end
164 163  
... ...
app/helpers/language_helper.rb
1 1 module LanguageHelper
2 2 def language
3   - code = GetText.locale.to_s.downcase
4   - (code == 'en_us') ? 'en' : code
  3 + code = GetText.locale.to_s
5 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 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 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 11 theme_advanced_buttons3 : "",
12 12 apply_source_formatting : true,
13   - language: <%= language.inspect %>,
  13 + language: <%= tinymce_language.inspect %>,
14 14 });
15 15 </script>
... ...
test/unit/language_helper_test.rb
... ... @@ -4,20 +4,46 @@ class LanguageHelperTest &lt; Test::Unit::TestCase
4 4  
5 5 include LanguageHelper
6 6  
7   - def test_english
  7 + should 'return current language' do
8 8 locale = mock
9   - locale.expects(:to_s).returns('en_us')
  9 + locale.expects(:to_s).returns('pt_BR')
10 10 GetText.stubs(:locale).returns(locale)
11   -
12   - assert_equal 'en', self.language
  11 +
  12 + assert_equal 'pt_BR', self.language
13 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 47 end
22 48  
23 49 end
... ...