Ramazeのローカライズ

Ramazeでローカライズする方法は,自分でカタログ用意,Localize,GetTexTの恐らく3つ.WEBrick::CGI使ってた時は自分でカタログ用意してたのだけど,Ramazeでは後者2つがあるので,今回はその内のLocalizeを使った(GetText試そうとしたけど,やれiconvだの,Rakefileだのが面倒になった.RailsだとGetTextなのかな).
でまぁLocalizeはソースブラウザにサンプルがあるのでそれ見ればいいのだけど,気になった所.

ya2yaml

準備出来てない言語を収集するためのcollectのために必要なんだろうけど,インストールしなくてもいいようにしてくれないかなぁと思っている(requireしたらto_yamlオーバーライドして,requireしてない時と同じように扱えるとか).

trait :file

lambdaと文字列の2つの方法があるけど分けてるメリットが分からない.lambdaだと処理を挟めるけど,そこまでロケールファイルの設定に複雑な処理するかなぁと少し疑問(何か昔問題でもあったのかな?).

ロケールの登録

:default_languageは勿論必要なのだけど,:languagesは必要かなぁと.昔俺がやった方法だと,ユーザの'ACCEPT-LANGUAGE'にdefault_languageを追加して,見つかるまでループを回すという方法で,ロケールファイルはファイル名のフォーマットが決まっているので,見つかれば読み込む.現状のように増えたら登録というのが少し面倒だったり(まぁ現状の方が速いと思うけど^^;).

trait :mapping

trait :mapping => { /^en-/ => 'en', 'ja' => 'jp'}

現在これなんだけど,ロケール表記ってjaじゃなかったっけ?と.ja-JPを考慮してるのかと思ったけどenみたいに正規表現じゃないし,何でjpに変換してるんだろう…

気になる所を書いたけども,ロケールファイルはGetTextとは違って単なるYAMLでサクッと出来るのがいい.