= 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
* homepage[http://www.yotabanana.com/hiki/ruby-gettext.html]
* on rubyforge[http://gettext/rubyforge.org/]
* on github[http://github.com/gettext_activerecord/]

== Requirements
* {Ruby 1.8.3 or later}[http://www.ruby-lang.org]
* {Rubygems}[http://www.rubygems.org/]
* {locale gem}[http://rubyforge.org/projects/locale/]
  * $ gem install locale
* {gettext gem}[http://rubyforge.org/projects/gettext/]
  * $ gem install gettext

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

    #from github (edge/unstable)
    (sudo/su on POSIX system)
    gem install locale
    gem install mutoh-gettext -s http://gems.github.com/

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

== 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 [http://github.com/mutoh/gettext_rails/tree/master]

== Support matrix
* 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 the file 'COPYING'.)

* Copyright (C) 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.0.2
* 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>