i18n_generator

ちょっと入門

lib\ruby\gems\1.8\gems\activesupport-2.2.2\lib\active_support\vendor\i18n-0.0.1 以下、2.3以降で 0.1.1 でちょっと良くなってる、APIは変わってないが仲良くなってる。

を見よう。translte、t というメソッド、翻訳。locaize、l は通貨とか時間とかの調整。

あとバックエンド、最初は simple.rb のみ。長くないし、それらを見れば分かる。

言語とロケールの別指定、可能は可能。

何かプロジェクト作って

コンソールで、I18n.t で翻訳、I18n.locale に従って。yaml から読んだ翻訳リソースの一覧ももってたり。I18n.backend 見に行ってるのを確かめる、baskend切り替えるとか、作り直せばいいよね。バックエンドの翻訳リソースを DB にしたり、GetText に出来たら嬉しいなあ、だれかやらないかなあ。

Rails の実装も、メッセージとか直書きだったのをこれを呼び出すように変えてある。翻訳リソースは locale/<なんとか>.yml

railsの設定

config/environment.rb

  config.i18n.default_locale = 'ja'

その上で、ブラウザからのリクエストにしたがって、都度 I18n.locale を調整すればユーザ毎に切り替えるとか可能。なんかサンプルだかプラグインだかあった。

GitHub の amatsuda さんの所にいろいろ情報とかあったり。

i18n_generators

ジェム

  • amatsuda-i18n-generators

i18n_scaffold とか使えるようになってて、それでいける、あと script/generate i18n ja

アクティブサポートとかアクティブレコードとかサブシステム別に翻訳リソースを config/locales に作ってくれる。いろいろなやり方で翻訳をいろいろスクレーピンブしたりしてる。モデルとかアプリケーション側の翻訳はグーグル翻訳とか。
良い翻訳をどこかにストアするのも大変だし。
グーグル翻訳の結果以外の文字列が既に設定されていた場合はグーグル翻訳での上書きはしない。手で調整した分は残る。空文字列「""」も触らない。
グーグル翻訳マークとか付いてるとかはどうなんだろう「#~G」。

今時開発環境みんなネットに繋がってるよね。という前提で。

プラグインで何をやっているか、translation_ja.yml を作る。キーワードはモデルの分はまあモデルをぐるぐる回ってとってくる。ビュー方面も全部回って、一度動かして、I18nの翻訳メソッドをフックしてそのキーを憶えていってなんとかする。

ビューを書き換えたらまた generate i18n ja してやれば良い。translation_ja.yml は適当に追加とか変更してもらえる、そしてそれは Rails は読み直してくれる。

ビューでは直接「<%=t :key %>」と書けるようになってる。h とのからみでは「<%=h t(:key) %>」かな、或はヘルパーかどこかで「ht」メソッドを作る。

created_at, updated_at カラムの翻訳は必要か? 松田さんはこの二つはシステム用のカラムであってユーザに見せるところじゃないだろうとおっしゃる。でも今は一応入ってる。

ビューでの datetime_select はちょっと無様かも。月だけ「1月」表記。lメソッドの動作。Cucumber、Webrat との相性も悪い。

あと、いろいろ半角スペースが入るのをどうにかしようとか。2.3ではなんとか。