自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。
Ruby言語やLinuxのネタが多いです。
May 09, 2006 [おもひで]
■ [Rails] Ruby-GetText-Packageでデフォルトのロケールを英語以外にする
アプリのmsgidとしては英語で用意するんだけど、中国のリソースを用意してかつ、中国語をデフォルトにしたい、という要望がrails MLで出たので例を書いてみた。
require 'gettext/rails'
class ApplicationController < ActionController::Base
prepend_before_filter :default_locale
def default_locale
if (cookies["lang"].nil? or cookies["lang"].empty?)
GetText.locale = "zh_CN"
else
GetText.locale = cookies["lang"]
end
end
init_gettext "yourapp"
end
この例はcookie["lang"]にデフォルトのロケールをセットする例。langの選択・設定自体は他にGUIを作って設定する。
場合によってはセッションを使っても良いだろうし、ユーザ毎にGUIの制御を行っている場合はデータベースの該当テーブルに設定したりすることもあるだろう。ということで、ライブラリ化は先送りかな。まぁ、Tipsということで。
■ [Ruby] Ruby-GetText-Package Railsでのバグ
validates_length_ofでmessageを%d付きで指定するとローカライズされないとい不具合があったので修正しました。同時にお二方からレポートいただきました。
このファイルのRevision 1.34をダウンロードしてお手元のlib/gettext/rails.rbと置き換えてください(例えば/usr/lib/ruby/gems/1.8/gems/gettext-1.5.0/lib/gettext/配下にインストールされていると思います)。
しかし、我ながらすごいソースだ・・・。見ちゃいやん。
[ツッコミを入れる]
