i18nの整理

Rails2.2のi18nの使い方を整理しておきましょうっと。

初期化

/config/initializers/locale.rb」で基本の設定を行う。
主な設定属性は以下のとおり。

      1. I18n.load_path 翻訳テキストファイルのパス
      2. I18n.default_locale デフォルトの言語
      3. I18n.locale 現在の言語

以下、設定例。load_pathはデフォルトのまま。言語設定は、日本語

I18n.load_path += Dir[ File.join(RAILS_ROOT, 'config', 'locales', '*.{rb,yml}') ]
I18n.default_locale = "ja"
I18n.locale = "ja"

翻訳テキスト

YAML形式で作成。
上のとおり、I18n.load_pathで設定したパスのファイルが翻訳テキストとして、読み込まれる。
階層化したキーに翻訳テキストを関連づけていく。

u_scope1:
  l_scope1:
    key1: "<翻訳テキスト>"
   

翻訳テキストの取得

I18n.t」メソッドで指定したキーの翻訳テキストを取得する。
階層化したキーを「.」区切りった文字列で指定したり。
上記階層をシンボルの配列または「.」区切った表現で:scapeパラメータに指定、最下位階層をシンボルで指定するなどいくつか記法を使って取得できる。

以下の3種類の記述は同等である。

I18n.t 'u_scope1.l_scope1.key1'
I18n.t :key1, :scope => [:u_scape, :l_scope]
I18n.t :key1, :scope => 'u_scape.l_scope'

翻訳の自動生成

翻訳テキストを自動的に生成できるようにする。
i18n-generatorsというのを使う。
まず、インストール

sudo gem sources -a http://gems.github.com
sudo gem install amatsuda-i18n_generators

RAILS_ROOTにて、以下のように実行する。

./script/generate i18n ja

これで、errorメッセージ、Modelの属性、基本的な書式パターンの日本語の翻訳テキストがYAMLファイル上に生成される。