Commit 85411b0cbed634b390f220af4ce3b1028fff5fb8
1 parent
7e605ffd
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
hotfix for gettext tranlation
Showing
5 changed files
with
59 additions
and
21 deletions
Show diff stats
Gemfile
| @@ -18,6 +18,8 @@ gem 'rake', :require => false | @@ -18,6 +18,8 @@ gem 'rake', :require => false | ||
| 18 | gem 'grape', '0.2.1' | 18 | gem 'grape', '0.2.1' |
| 19 | gem 'rest-client' | 19 | gem 'rest-client' |
| 20 | gem 'exception_notification' | 20 | gem 'exception_notification' |
| 21 | +gem 'gettext_i18n_rails' | ||
| 22 | +gem 'gettext', '>=3.0.2', :require => false, :group => :development | ||
| 21 | 23 | ||
| 22 | # FIXME list here all actual dependencies (i.e. the ones in debian/control), | 24 | # FIXME list here all actual dependencies (i.e. the ones in debian/control), |
| 23 | # with their GEM names (not the Debian package names) | 25 | # with their GEM names (not the Debian package names) |
Gemfile.lock
| @@ -67,22 +67,49 @@ GEM | @@ -67,22 +67,49 @@ GEM | ||
| 67 | activesupport (>= 3.0.4) | 67 | activesupport (>= 3.0.4) |
| 68 | fast_gettext (0.6.8) | 68 | fast_gettext (0.6.8) |
| 69 | ffi (1.0.11) | 69 | ffi (1.0.11) |
| 70 | + gettext (3.1.4) | ||
| 71 | + locale (>= 2.0.5) | ||
| 72 | + text | ||
| 73 | + gettext_i18n_rails (1.0.5) | ||
| 74 | + fast_gettext (>= 0.4.8) | ||
| 70 | gherkin (2.4.21) | 75 | gherkin (2.4.21) |
| 71 | json (>= 1.4.6) | 76 | json (>= 1.4.6) |
| 77 | + gitlab (3.1.0) | ||
| 78 | + httparty | ||
| 79 | + terminal-table | ||
| 80 | + grape (0.2.1) | ||
| 81 | + hashie (~> 1.2) | ||
| 82 | + multi_json | ||
| 83 | + multi_xml | ||
| 84 | + rack | ||
| 85 | + rack-mount | ||
| 86 | + hashie (1.2.0) | ||
| 72 | hike (1.2.1) | 87 | hike (1.2.1) |
| 73 | hpricot (0.8.6) | 88 | hpricot (0.8.6) |
| 89 | + httparty (0.11.0) | ||
| 90 | + multi_json (~> 1.0) | ||
| 91 | + multi_xml (>= 0.5.2) | ||
| 74 | i18n (0.6.0) | 92 | i18n (0.6.0) |
| 93 | + jenkins_api_client (0.14.1) | ||
| 94 | + json | ||
| 95 | + mixlib-shellout (>= 1.1.0) | ||
| 96 | + nokogiri (~> 1.5.0) | ||
| 97 | + terminal-table (>= 1.4.0) | ||
| 98 | + thor (>= 0.16.0) | ||
| 75 | journey (1.0.3) | 99 | journey (1.0.3) |
| 76 | json (1.7.3) | 100 | json (1.7.3) |
| 101 | + locale (2.1.0) | ||
| 77 | mail (2.4.4) | 102 | mail (2.4.4) |
| 78 | i18n (>= 0.4.0) | 103 | i18n (>= 0.4.0) |
| 79 | mime-types (~> 1.16) | 104 | mime-types (~> 1.16) |
| 80 | treetop (~> 1.4.8) | 105 | treetop (~> 1.4.8) |
| 81 | metaclass (0.0.1) | 106 | metaclass (0.0.1) |
| 82 | mime-types (1.19) | 107 | mime-types (1.19) |
| 108 | + mixlib-shellout (1.4.0) | ||
| 83 | mocha (0.11.3) | 109 | mocha (0.11.3) |
| 84 | metaclass (~> 0.0.1) | 110 | metaclass (~> 0.0.1) |
| 85 | multi_json (1.3.6) | 111 | multi_json (1.3.6) |
| 112 | + multi_xml (0.5.5) | ||
| 86 | nokogiri (1.5.5) | 113 | nokogiri (1.5.5) |
| 87 | pg (0.13.2) | 114 | pg (0.13.2) |
| 88 | polyglot (0.3.3) | 115 | polyglot (0.3.3) |
| @@ -91,6 +118,8 @@ GEM | @@ -91,6 +118,8 @@ GEM | ||
| 91 | rack (1.4.1) | 118 | rack (1.4.1) |
| 92 | rack-cache (1.2) | 119 | rack-cache (1.2) |
| 93 | rack (>= 0.4) | 120 | rack (>= 0.4) |
| 121 | + rack-mount (0.8.3) | ||
| 122 | + rack (>= 1.0.0) | ||
| 94 | rack-ssl (1.3.2) | 123 | rack-ssl (1.3.2) |
| 95 | rack | 124 | rack |
| 96 | rack-test (0.6.1) | 125 | rack-test (0.6.1) |
| @@ -143,11 +172,13 @@ GEM | @@ -143,11 +172,13 @@ GEM | ||
| 143 | rack (~> 1.0) | 172 | rack (~> 1.0) |
| 144 | tilt (~> 1.1, != 1.3.0) | 173 | tilt (~> 1.1, != 1.3.0) |
| 145 | term-ansicolor (1.0.7) | 174 | term-ansicolor (1.0.7) |
| 175 | + terminal-table (1.4.5) | ||
| 176 | + text (1.3.0) | ||
| 146 | thin (1.3.1) | 177 | thin (1.3.1) |
| 147 | daemons (>= 1.0.9) | 178 | daemons (>= 1.0.9) |
| 148 | eventmachine (>= 0.12.6) | 179 | eventmachine (>= 0.12.6) |
| 149 | rack (>= 1.0.0) | 180 | rack (>= 1.0.0) |
| 150 | - thor (0.15.3) | 181 | + thor (0.19.1) |
| 151 | tilt (1.3.3) | 182 | tilt (1.3.3) |
| 152 | treetop (1.4.10) | 183 | treetop (1.4.10) |
| 153 | polyglot | 184 | polyglot |
| @@ -172,7 +203,12 @@ DEPENDENCIES | @@ -172,7 +203,12 @@ DEPENDENCIES | ||
| 172 | database_cleaner | 203 | database_cleaner |
| 173 | exception_notification | 204 | exception_notification |
| 174 | fast_gettext | 205 | fast_gettext |
| 206 | + gettext (>= 3.0.2) | ||
| 207 | + gettext_i18n_rails | ||
| 208 | + gitlab (~> 3.1.0) | ||
| 209 | + grape (= 0.2.1) | ||
| 175 | hpricot | 210 | hpricot |
| 211 | + jenkins_api_client (~> 0.14.1) | ||
| 176 | mocha | 212 | mocha |
| 177 | nokogiri | 213 | nokogiri |
| 178 | pg | 214 | pg |
lib/noosfero/i18n.rb
| @@ -20,5 +20,5 @@ if File.exists?(locale_dir) | @@ -20,5 +20,5 @@ if File.exists?(locale_dir) | ||
| 20 | repos << FastGettext::TranslationRepository.build('iso_3166', :type => 'mo', :path => locale_dir) | 20 | repos << FastGettext::TranslationRepository.build('iso_3166', :type => 'mo', :path => locale_dir) |
| 21 | end | 21 | end |
| 22 | 22 | ||
| 23 | -FastGettext.add_text_domain 'noosferofull', :type => :chain, :chain => repos | ||
| 24 | -FastGettext.default_text_domain = 'noosferofull' | 23 | +FastGettext.add_text_domain 'noosfero', :type => :chain, :chain => repos |
| 24 | +FastGettext.default_text_domain = 'noosfero' |
lib/tasks/gettext.rake
| @@ -6,8 +6,8 @@ makemo_stamp = 'tmp/makemo.stamp' | @@ -6,8 +6,8 @@ makemo_stamp = 'tmp/makemo.stamp' | ||
| 6 | desc "Create mo-files for L10n" | 6 | desc "Create mo-files for L10n" |
| 7 | task :makemo => makemo_stamp | 7 | task :makemo => makemo_stamp |
| 8 | file makemo_stamp => Dir.glob('po/*/noosfero.po') do | 8 | file makemo_stamp => Dir.glob('po/*/noosfero.po') do |
| 9 | - ruby '-I. -rconfig/boot -e \'require "gettext"; require "gettext/utils"; GetText.create_mofiles(true, "po", "locale")\'' | ||
| 10 | Rake::Task['symlinkmo'].invoke | 9 | Rake::Task['symlinkmo'].invoke |
| 10 | + Rake::Task['gettext:pack'].invoke | ||
| 11 | FileUtils.mkdir_p 'tmp' | 11 | FileUtils.mkdir_p 'tmp' |
| 12 | FileUtils.touch makemo_stamp | 12 | FileUtils.touch makemo_stamp |
| 13 | end | 13 | end |
| @@ -22,10 +22,12 @@ task :symlinkmo do | @@ -22,10 +22,12 @@ task :symlinkmo do | ||
| 22 | 'pt' => 'pt_BR', | 22 | 'pt' => 'pt_BR', |
| 23 | } | 23 | } |
| 24 | mkdir_p(Rails.root.join('locale')) | 24 | mkdir_p(Rails.root.join('locale')) |
| 25 | - Dir.glob(Rails.root.join('locale/*')).each do |dir| | 25 | + Dir.glob(Rails.root.join('po/*/')).each do |dir| |
| 26 | lang = File.basename(dir) | 26 | lang = File.basename(dir) |
| 27 | orig_lang = langmap[lang] || lang | 27 | orig_lang = langmap[lang] || lang |
| 28 | mkdir_p(Rails.root.join('locale', "#{lang}", 'LC_MESSAGES')) | 28 | mkdir_p(Rails.root.join('locale', "#{lang}", 'LC_MESSAGES')) |
| 29 | + ln_sf "../../po/#{lang}/noosfero.po", "locale/#{lang}/noosfero.po" | ||
| 30 | + ln_sf "../../po/#{lang}/noosfero-doc.po", "locale/#{lang}/noosfero-doc.po" | ||
| 29 | ['iso_3166'].each do |domain| | 31 | ['iso_3166'].each do |domain| |
| 30 | origin = "/usr/share/locale/#{orig_lang}/LC_MESSAGES/#{domain}.mo" | 32 | origin = "/usr/share/locale/#{orig_lang}/LC_MESSAGES/#{domain}.mo" |
| 31 | target = Rails.root.join('locale', "#{lang}", 'LC_MESSAGES', "#{domain}.mo") | 33 | target = Rails.root.join('locale', "#{lang}", 'LC_MESSAGES', "#{domain}.mo") |
| @@ -36,23 +38,21 @@ task :symlinkmo do | @@ -36,23 +38,21 @@ task :symlinkmo do | ||
| 36 | end | 38 | end |
| 37 | end | 39 | end |
| 38 | 40 | ||
| 39 | -desc "Update pot/po files to match new version." | ||
| 40 | -task :updatepo do | ||
| 41 | - require 'gettext_rails/tools' | ||
| 42 | - require_dependency 'noosfero' | ||
| 43 | - | ||
| 44 | - GetText::RubyParser::ID << '__' | ||
| 45 | - GetText::RubyParser::PLURAL_ID << 'n__' | ||
| 46 | - GetText::ActiveRecordParser.init(:use_classname => false) | 41 | +namespace :gettext do |
| 42 | + def files_to_translate | ||
| 43 | + sources = | ||
| 44 | + Dir.glob("{app,lib}/**/*.{rb,rhtml,erb}") + | ||
| 45 | + Dir.glob('config/initializers/*.rb') + | ||
| 46 | + Dir.glob('public/*.html.erb') + | ||
| 47 | + Dir.glob('public/designs/themes/{base,noosfero,profile-base}/*.{rhtml,html.erb}') + | ||
| 48 | + Dir.glob('plugins/**/{controllers,models,lib,views}/**/*.{rhtml,html.erb,rb}') | ||
| 49 | + end | ||
| 50 | +end | ||
| 47 | 51 | ||
| 52 | +desc "Update pot/po files to match new version." | ||
| 53 | +task :updatepo => :symlinkmo do | ||
| 48 | puts 'Extracting strings from source. This may take a while ...' | 54 | puts 'Extracting strings from source. This may take a while ...' |
| 49 | - sources = | ||
| 50 | - Dir.glob("{app,lib}/**/*.{rb,rhtml,erb}") + | ||
| 51 | - Dir.glob('config/initializers/*.rb') + | ||
| 52 | - Dir.glob('public/*.html.erb') + | ||
| 53 | - Dir.glob('public/designs/themes/{base,noosfero,profile-base}/*.{rhtml,html.erb}') + | ||
| 54 | - Dir.glob('plugins/**/{controllers,models,lib,views}/**/*.{rhtml,html.erb,rb}') | ||
| 55 | - GetText.update_pofiles(Noosfero::PROJECT, sources, "#{Noosfero::PROJECT} #{Noosfero::VERSION}") | 55 | + Rake::Task['gettext:find'].invoke |
| 56 | end | 56 | end |
| 57 | 57 | ||
| 58 | task :checkpo do | 58 | task :checkpo do |
test/unit/dates_helper_test.rb
| @@ -57,7 +57,7 @@ class DatesHelperTest < ActiveSupport::TestCase | @@ -57,7 +57,7 @@ class DatesHelperTest < ActiveSupport::TestCase | ||
| 57 | end | 57 | end |
| 58 | 58 | ||
| 59 | should 'not crash with events that have start_date and end_date' do | 59 | should 'not crash with events that have start_date and end_date' do |
| 60 | - FastGettext.default_text_domain = 'noosferofull' | 60 | + FastGettext.default_text_domain = 'noosfero' |
| 61 | assert_nothing_raised do | 61 | assert_nothing_raised do |
| 62 | Noosfero.locales.keys.each do |key| | 62 | Noosfero.locales.keys.each do |key| |
| 63 | Noosfero.with_locale(key) do | 63 | Noosfero.with_locale(key) do |