gettext_activerecord

gettext_activerecord provides the localization for ActiveRecord-2.2 or later using Ruby-GetText-Package.

  • Validation messages translation

  • Model translation

    • extract messages from models with the rake task.

Website

Requirements

Install

#Uninstall old gettext if exists.
(sudo/su on POSIX system)
gem uninstall gettext

#from rubyforge 
(sudo/su on POSIX system)
gem install locale
gem install gettext_activerecord

Usage

without Rails

Rakefile

require 'rubygems'

desc "Create mo files"
task :makemo do
  require 'gettext_activerecord/tools'
  GetText.create_mofiles
end

task :updatepo do
  require 'gettext_activerecord/tools'
  # Need to access DB to find Model table/column names.
  # Use config/database.yml which is the same style with rails.
  GetText.update_pofiles("sample_ar", ["topic.rb"], "sample AR 1.0.0")
end

topic.rb

class Topic < ActiveRecord::Base
  validates_length_of :title, :minimum => 10
end

sample.rb

require 'gettext_activerecord'
require 'topic'

# Use config/database.yml which is the same style with rails.
config = YAML.load(IO.read("config/database.yml"))["development"]
ActiveRecord::Base.establish_connection(config)

GetText.bindtextdomain_to(ActiveRecord, "sample_ar", :path => "locale")

GetText.set_locale "ja_JP.UTF-8"
a = Topic.new
a.title = "Foo"
a.save
puts a.errors.full_messages  #puts Japanese error message.

Then …

$ rake updatepo
$ cd po
$ mkdir ja
$ msginit -l ja_JP.UTF-8 -i sample_ar.pot -o ja/sample_ar.po
$ Edit ja/sample_ar.po
$ cd ../../
$ rake makemo
$ ruby sample.rb

with Rails

See gettext_rails [github.com/mutoh/gettext_rails/tree/master]

Support matrix

  • gettext_activerecord-2.1.0 - rails-2.3.2,2.3.3,2.3.4

  • gettext_activerecord-2.0.2 - rails-2.3.2

  • gettext_activerecord-2.0.1 - rails-2.3.2

  • gettext_activerecord-2.0.0 - rails-2.3.2

License

This program is licenced under the same licence as Ruby(See COPYING) or LGPL(Lesser General Public License: www.gnu.org/licenses/lgpl-3.0.txt).

  • Copyright © 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>

Translators

  • Bosnian(bs) - Sanjin Sehic <saserr at gmail.com>

  • Bulgarian(bg) - Sava Chankov <sava.chankov at gmail.com>

  • Catalan(ca) - Ramon Salvadó <rsalvado at gnuine.com>

  • Chinese(Simplified)(zh_CN)

    • Yang Bob <bob.yang.dev at gmail.com> (current)

    • Yingfeng <blogyingfeng at gmail.com>

  • Chinese(Traditional)(zh_TW)

    • Yang Bob <bob.yang.dev at gmail.com> (current)

    • LIN CHUNG-YI <xmarsh at gmail.com>

  • Croatian(hr) - Sanjin Sehic <saserr at gmail.com>

  • Czech(cs) - Karel Miarka <kajism at yahoo.com>

  • Dutch(nl) - Bart ten Brinke <info at retrosync.com> (current)

    Menno Jonkers <ruby-gettext at jonkers.com>
    
  • Esperanto(eo) - Malte Milatz <malte at gmx-topmail.de>

  • Estonian(et) - Erkki Eilonen <erkki at itech.ee>

  • French(fr)

    • Vincent Isambart <vincent.isambart at gmail.com> (current)

    • David Sulc <davidsulc at gmail.com>

    • David Sulc <davidsulc at gmail.com>

    • Laurent Sansonetti <laurent.sansonetti at gmail.com>

  • German(de)

    • Patrick Lenz <patrick at limited-overload.de> (current)

    • Detlef Reichl <detlef.reichl at gmx.org>

    • Sven Herzberg <herzi at abi02.de>

    • Sascha Ebach <se at digitale-wertschoepfung.de>

  • Greek(el) - Vassilis Rizopoulos <damphyr at gmx.net>

  • Hungarian(hu) - Tamás Tompa <tompata at gmail.com>

  • Italian(it)

    • Marco Lazzeri <marco.lazzeri at gmail.com>

    • Gabriele Renzi <surrender_it at yahoo.it>

  • Japanese(ja) - Masao Mutoh <mutomasa at gmail.com>

  • Korean(ko) - Gyoung-Yoon Noh <nohmad at gmail.com>

  • Latvian(lv) - Aivars Akots <aivars.akots at gmail.com>

  • Norwegian(nb) - Runar Ingebrigtsen <runar at mopo.no>

  • Portuguese(Brazil)(pt_BR)

    • Antonio S. de A. Terceiro <terceiro at softwarelivre.org> (current)

    • Joao Pedrosa <joaopedrosa at gmail.com>

  • Russian(ru) - Yuri Kozlov <kozlov.y at gmail.com>

  • Serbian(sr) - Slobodan Paunović“ <slobodan.paunovic at gmail.com>

  • Spanish(es)

    • David Espada <davinci at escomposlinux.org> (current)

    • David Moreno Garza <damog at damog.net>

  • Ukrainian(ua) - Alex Rootoff <rootoff at pisem.net>

  • Vietnamese(vi) - Ngoc Dao Thanh <ngocdaothanh at gmail.com>

Status of translations

  • Bosnian(bs) - 1.90.0 (old)

  • Bulgarian(bg) - 2.0.0

  • Catalan(ca) - 2.0.0

  • Croatian(hr) - 1.90.0 (old)

  • Chinese(zh_CN) - 2.0.0

  • Chinese(zh_TW) - 2.0.0

  • Czech(cs) - 1.9.0 (old)

  • Dutch(nl) - 2.0.2

  • English(default) - 1.90.0 (old)

  • Esperanto(eo) - 2.0.0

  • Estonian(et) - 2.0.0

  • French(fr) - 2.0.0

  • German(de) - 2.0.0

  • Greek(el) - 2.0.0

  • Hungarian(hu) - 2.0.0

  • Italian(it) - 1.6.0 (old)

  • Japanese(ja) - 2.1.0

  • Korean(ko) - 1.9.0 (old)

  • Latvian(lv) - 2.0.0

  • Norwegian(nb) - 2.0.0

  • Portuguese(Brazil)(pt_BR) - 2.0.0

  • Russian(ru) - 2.0.0

  • Serbian(sr) - 1.91.0 (old)

  • Spanish(es) - 2.0.0

  • Ukrainian(ua) - 2.0.0

  • Vietnamese(vi) - 2.0.0

Maintainer

Masao Mutoh <mutomasa at gmail.com>