はじめてのRuby on Rails、トラブル記録
スポンサーサイト

一定期間更新がないため広告を表示しています

posted by スポンサードリンク | | - | - | - |はてなブックマーク - スポンサーサイト
Rails2.2での日本語化(i18n)
Rails1.2系では日本語アプリを作る時にはGetTextというプラグインを使っていたみたいだけど、
Rails2.0以降では多言語対応が正式にRailsの機能として実装されたということで
せっかくなのでこれを使って日本語化をしてみることにしました。
私の環境はRails2.3.4です。

多言語化のことをi18nとかいうみたいですが、これはinternationalizationの最初と最後のiとnを取って中が18文字だからとのこと。

【1】i18n_generatorのインストール


自分のとこのgemのsourceにhttp://gems.github.comが入ってなければ下記を実行。
入ってればとばしてOK。
gem so -a http://gems.github.com

インストールします。
gem i amatsuda-i18n_generators


【2】日本語の設定ファイルを作る


ruby script¥generate i18n ja
プロジェクトフォルダでこれを実行すると、congfig/localesの下にja.yml、translate_ja.ymlができます。
ja.ymlにはエラーメッセージとか、普通にプロジェクトを作ると入ってるデフォルトのメッセージが入ってます。
tlanslate_ja.ymlには自分で追加したメッセージの日本語にする用のタグが入っています。

私の場合は「かんたんRuby on Railsでアプリケーション開発」の4日目のalbumプロジェクト英語版をRails2.3.4で新しく作り直したやつ(*一部うまくいってないとこあったけどとりあえずそれは放置でだいたいの状態)にやってみました。
translate_ja.ymlには自動でこんなのが入ってました。
ja:
 activerecord:
  models:
page:

 attributes:
  page:
   title:
   site:
   directory:
   memo:
この中身をja.ymlに移します。
ただし、ja:とactiverecord:はja.ymlにもう入ってるので、ja.ymlのactiverecordの下にmodels:以下とattributes:以下を全部コピー。
このときインデントを変えるとエラーが出るので注意。あと、activerecord:が同じファイルに2つあったりしてもダメなので注意。

で、コピーしたところをこんな感じで書き換えました。
 activerecord:
  models:
   page: "ページ" #g

 attributes:
  page:
   title: "タイトル" #g
   site: "撮影場所" #g
   directory: "ディレクトリ" #g
   memo: "メモ" #g
これでとりあえずの日本語設定はOK。
ページを確認すると、日本語を入れたところは日本語になっています。
これだけだとまだ日本語になっていない個所もあるので、それは1つ1つ自分でタグを設定していきます。


【3】i18nする単語の表示


△泙任笋襪函△修海修海里箸海蹐肋ー蠅棒瀋蠅気譴襪韻譴鼻⊆分で追加するときにはこんな感じで書いていきます。

・普通にベタで文字を表示するとき
<%=t 'title' %>
これはja.ymlで、ja:のすぐ下にtitle:ってタグを作った場合

すでに使ってる単語とかを使いたい場合は下のような感じで、階層から指定してやると使えます。
<%=t 'activerecord.attributes.page.title' %>


・ボタンの文字
こんな感じで。
<%= link_to t('Show'), page %>


・labelの文字にも適用したい
フォームとか作るとlabelは必ず使うので日本語になってほしいのですが、今のところここは自動で日本語になってくれない模様くもり
ということで、何か手がないか調べたところ、labelも日本語になるようにするプログラムを公開されてる方がいらっしゃったので使わせていただきました!

imishin.com Rails 2.2 の i18n を使ってみた


助かりました、ありがとうございました嬉しい

上のソースを使わせていただいて、コントローラーからrequire 'active_record_helper.rb'を呼んどけば、
<%= f.label :title %>

みたいのもうまいこと日本語になってました拍手

【4】デフォルト言語の設定


i18nのgenerateをしたあとならいつでもいいけれど、デフォルト言語の設定をします。
config/environment.rbのRails::Initializer.run do |config|……endの中に
# config.i18n.default_locale = :de

と書いてあるところがあるので、#をはずして
config.i18n.default_locale = :ja

としてやれば日本語になります。


【参考】
Close to the EDGE Rails 2.2の I18nによる日本語化を最も簡単に行う方法
imishin.com Rails 2.2 の i18n を使ってみた
公式ドキュメント http://guides.rubyonrails.org/i18n.html
posted by トモト | 14:20 | 日本語化(i18n) | comments(0) | trackbacks(0) |はてなブックマーク - Rails2.2での日本語化(i18n)
Rails3レシピブック 190の技
Rails3レシピブック 190の技
ついにRails3対応版が出ました!!
WEB+DB PRESS Vol.58
WEB+DB PRESS Vol.58
Rails2系から3への移行時に知りたいことがひとまとまりになっててよかった!色々ググるよりこれを読む方が早い。
Rubyレシピブック 第3版 303の技
Rubyレシピブック 第3版 303の技
Rubyやるならこのリファレンスは必要。
Search this site