Ruby言語やLinuxのネタが多いです。
July 15, 2006 [おもひで]
■ [Rails] GetTextを使っても error_message_on が日本語化されない。
というわけで、Ruby-GetTextの方を、後に提示して頂いたパッチを参考にローカライズするように修正しました(まだCVSにもあげていませんが)。
■ ただちょっと悩んだのが戻り値にする情報(エラーメッセージ)。案が3つあったんですよね。
■ (案1)オリジナルのフォーマットをそのまま踏襲する
デフォルトで"is invalid"が返されることになります。先頭に何か文字を追加する、とか言うのはオプション引数(prepend_text, append_text)で指定するのですが、その文字列はアプリ開発者側が指定する必要があります。
コレが単にローカライズされると「は不正です。」というメッセージが返されることになります。prepend_textにカラム名を指定すれば「○○は不正です。」と返されます。
この例では一見問題ないように感じますが、「カラム名から文章をはじめる」ことに違和感のある言語、を考慮すると問題になります。例えば(存在するかは知りませんが)、「不正です、○○」という記述順序の言語の場合を考慮すると、言語毎に適切にオプション引数(prepend_text, append_text)を設定することになり、これは現実的ではなさそうです。
(案2)Ruby-GetTextで利用しているローカライズ直後のフォーマッタ文字列を返す
「%{fn}は不正です。」という文字が返されるので、そこは開発者が値を正しく入れます。 error_message_on(...) % {:fn => "カラム名" } と記述することになるでしょう。これであれば前述の問題は回避できます。
(案3)全部翻訳しちゃえ!
ちょっと乱暴ですが、「○○は不正です。」とカラム名を入れて返してしまいます。
この変更は、当然英語版にも影響があるため、既存の英語版をローカライズする場合には修正が必要になるかもしれません。
