switch to FastGettext for translations
authorLunar <lunar@anargeek.net>
Fri, 24 Feb 2012 16:25:20 +0000 (17:25 +0100)
committerLunar <lunar@anargeek.net>
Fri, 24 Feb 2012 18:43:47 +0000 (19:43 +0100)
Using the 'po' backend of FastGettext gets us rid of having to manually build
'.mo' files upon installation.

Gemfile
Gemfile.lock
README
Rakefile
lib/coquelicot/app.rb

diff --git a/Gemfile b/Gemfile
index 55a23b0..1a341c1 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -6,8 +6,8 @@ gem "haml", "~>3.1"
 gem "haml-magic-translations",
   :git    => 'https://dl.poivron.org/new/haml-magic-translations.git',
   :branch => 'coquelicot'
+gem "fast_gettext"
 gem "lockfile", "~>1.4.3"
-gem "gettext", "~>2.1.0"
 gem "json"
 
 group :test do
@@ -18,5 +18,6 @@ group :test do
 end
 
 group :development do
+  gem "gettext", "~>2.1.0"
   gem "thin"
 end
index 75f4631..93c535a 100644 (file)
@@ -1,6 +1,6 @@
 GIT
   remote: https://dl.poivron.org/new/haml-magic-translations.git
-  revision: 39f58121b624b63afdce91c10b9b26f4f44cfeee
+  revision: 7cbe28a138157a4c2d4635699f9949fed7bb8e30
   branch: coquelicot
   specs:
     haml-magic-translations (0.3.coquelicot1)
@@ -13,6 +13,7 @@ GEM
     daemons (1.1.8)
     diff-lcs (1.1.3)
     eventmachine (0.12.10)
+    fast_gettext (0.6.4)
     gettext (2.1.0)
       locale (>= 2.0.5)
     haml (3.1.4)
@@ -55,6 +56,7 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
+  fast_gettext
   gettext (~> 2.1.0)
   haml (~> 3.1)
   haml-magic-translations!
diff --git a/README b/README
index 71c7ce0..1845af6 100644 (file)
--- a/README
+++ b/README
@@ -106,10 +106,6 @@ On Debian, one can fulfill its dependencies by issuing:
                     libhaml-ruby1.8 liblockfile-ruby libgettext-ruby1.8 \
                     rake
 
-Then create the translation catalog through:
-
-    rake makemo
-
 Finally you need to figure out the best way to host a Rack application
 depending on your setup. *evil grin*
 
index ddb7435..042cf7b 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -11,9 +11,3 @@ Haml::MagicTranslations::Tasks::UpdatePoFiles.new(:updatepo) do |t|
  t.files = Dir.glob("views/**/*.{rb,haml}") << "lib/coquelicot/app.rb"
  t.app_version = 'coquelicot 1.0.0'
 end
-
-desc "Create mo-files"
-task :makemo do
-  require 'gettext/tools'
-  GetText.create_mofiles(:mo_root => './locale')
-end
index 0fc250d..d9cd169 100644 (file)
@@ -5,7 +5,7 @@ require 'haml'
 require 'haml/magic_translations'
 require 'sass'
 require 'digest/sha1'
-require 'gettext'
+require 'fast_gettext'
 
 module Coquelicot
   class << self
@@ -36,10 +36,12 @@ module Coquelicot
 
     config_file File.expand_path('../../../conf/settings.yml', __FILE__)
 
-    GetText::bindtextdomain('coquelicot')
-    Haml::MagicTranslations.enable(:gettext)
+    FastGettext.add_text_domain 'coquelicot', :path => 'po', :type => 'po'
+    FastGettext.available_locales = [ 'en', 'fr', 'de' ]
+    Haml::MagicTranslations.enable(:fast_gettext)
     before do
-      GetText::set_current_locale(params[:lang] || request.env['HTTP_ACCEPT_LANGUAGE'] || 'en')
+      FastGettext.text_domain = 'coquelicot'
+      FastGettext.locale = params[:lang] || request.env['HTTP_ACCEPT_LANGUAGE'] || 'en'
     end
 
     not_found do