よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

February 13, 2002 Ruby GetText Package 0.1.2 is released.

[Ruby] Ruby GetText Package 0.1.2をリリースしました

メインは平松さんに指摘された問題の修正版という位置づけですが、細かい変更もいくつか入っています。それからサンプルとしてRuby/Tk版を用意しました。


February 13, 2006

[Ruby-GNOME2] Mr. Guid

Ruby GUIデバッガだそうです。デバッガとしてはすでにかなりの完成度と見ましたがどうでしょうか(使ってないで言うヤツ(^^;))。


February 13, 2009

[Rails] ActiveRecord-2.3.0のValidationのローカライズ

Ruby-GetText-PackageのActiveRecordのローカライズではメッセージのローカライズは出力時に実施する、というポリシーで実装している。以下の例を見ればわかりやすいと思う。

GetText.locale = "ja"
a = Article.new
a.save #=> false
a.errors.full_messages #=>  ["タイトルを入力してください。", "内容は10文字以上で入力してください。"]
GetText.locale = "en"
a.errors.full_messages #=> ["Title can't be blank", "Description is too short (minimum is 10 characters)"]

しかし、ActiveRecord-2.3.0では、エラーメッセージを生成したタイミングでローカライズしてしまうので一度エラーメッセージを生成後、そのメッセージを再度別の言語で出力できない。具体的には以下のようになる。

I18n.locale = "ja"
a = Article.new
a.save #=> false
a.errors.full_messages #=>  ["タイトル を入力してください。", "内容 は10文字以上で入力してください。"]
I18n.locale = "en"
a.errors.full_messages #=>  ["タイトル を入力してください。", "内容 は10文字以上で入力してください。"]

例えば、1画面で英語と日本語のエラーメッセージを出力する、ということができる今のGetText wayの方が作りとしてはベターだと思う。

今後の方針だけど、GetTextの実装を再度ActiveRecord-2.3.0に適合させるか、あるいは単にActiveRecord-2.3.0に合わせるか、という2つの案がある。
前者は再びモンキーパッチと言われてしまうデメリットがあり、後者は機能的な退化になる。どうしたものかなぁ。悩ましい。


追記