Rails 2.3.4 と I18n
Lighthouse の 2.3.4 milestone によれば、Rails 2.3.4 は今月末(2009年8月31日)のリリース予定だそうです。
で、私にとって嬉しいのが、Ticket #745 への対応が、Rails 2.3.4 に入ったことです。まだ open の状態だけど、パッチはもうできあがっているし、確実にコミットされるはず。
このチケットは、Rails 2.2.2 で導入された国際化(I18n)モジュールのちょっとした不足を補うものです。
config/locals/ja.yml で次のように書いたとします。
ja:
activerecord:
attributes:
user:
name: 名前
phone: 電話番号
すると ERB テンプレートでフォームをこんな風に書きたいですよね。
<% form_for @user do |f| %> <%= f.label :name %>: <%= f.text_field :name %><br /> <%= f.label :phone %>: <%= f.text_field :phone %><br /> <%= f.submit %> <% end %>
でも、これまでは label メソッドが I18n に対応していなかったので、f.label :name は「Name」という文字列を返すだけでした。
「名前」を返すのが自然なのに。
Rails 2.3.3 までの実装では、label メソッドはカラム名を humanize メソッドで変換しているだけ。国際化とは無関係なのです。
だから、次のように書かなくてはなりませんでした。
<% I18n.with_options :scope => [:activerecord, :attributes, :user] do |locale| %> <% form_for @user do |f| %> <%= f.label :name, local.t(:name) %>: <%= f.text_field :name %><br /> <%= f.label :phone, local.t(:phone) %>: <%= f.text_field :phone %><br /> <%= f.submit %> <% end %> <% end %>
Rails 2.3.4 の登場で、かなり記述量が減りますね。
欲を言えば、submit メソッドが作るボタンの文字列も、翻訳ファイルで指定できるといいのにね。
P.S. 残念ながら Rails 2.3.4 には取り込まれませんでした。マイルストーンが 2.3.5 に変更されています。
(2009/08/15)
記事に関するご質問は、 hermes@oiax.jp までメールでお送りください。
ウェブサイト構築の発注先を検討されているお客様は、ご相談フォームをご利用ください。
- はじめに
- Rails はエンタープライズの世界で主流になるか (2008/03/29)
- Rails 2.0 ベンチマーク (2008/03/30)
- テスト駆動開発とデバッグコード (2008/04/07)
- Git or Mercurial (2008/04/22)
- RESTful Ruby on Rails -- その美しさと難しさ (2008/04/23)
- RESTful Ruby on Rails -- 単数と複数 (2008/04/24)
- Rails のソースコードを読む (2008/05/02)
- sudo: no passwd entry for app! (Capistrano 2.3.0) (2008/05/12)
- Rails on GlassFish (2008/06/18)
- 「Ruby は型宣言がないけど、ちゃんとしたシステムに使えるのか」という質問にどう答えるか (2008/11/23)
- 「Ruby はスクリプト言語だけど、遅くないですか」という質問にどう答えるか (2008/11/24)
- どのプログラミング言語が将来的に有望か (2009/01/10)
- どのフレームワークが将来的に有望か (2009/01/11)
- フレームワーク対 CMS (2009/01/12)
- Rails 2.3 で spawner/reaper は DEPRECATED に (2009/03/25)
- db/seeds.rb (2009/06/08)
- LESSとSass (2009/08/03)
- Rails 2.3.4 と I18n (2009/08/15)
- RubyGems のアップデート(上書きインストール) (2010/02/03)
- クリエイティブ・コモンズの Rails 教材 (2010/03/08)
- Yet Another Ruby Reference (2010/03/12)
- Rails で MongoDB を使ってみた (2010/03/23)
- Rails で MongoDB を使ってみた(2) (2010/03/25)
- 祝 Ruby on Rails 3.0 beta2 リリース (2010/04/02)
- Rails 3.x 時代のテストフレームワーク (2010/04/24)
- 続・Rails 3.x 時代のテストフレームワーク (2010/05/06)
- Test::Unit と RSpec と Shoulda (2010/05/06)
- Windows + Rails + MySQL 5.1 (2010/07/20)

