tとl
I18n.t
I18n.l Time.now
は、
translate # 訳文を参照する localize # DateオブジェクトやTimeオブジェクトを現地のフォーマットに変換する
の意味
遅延読み込み
I18のバックエンドは、訳文が初めて参照されるときに遅延読み込みを行います。これにより、訳文を既に公開した後でもバックエンドを他のものに差し替えることができます
3 アプリケーションを国際化する
なるほどお!
Railsはt(translate) ヘルパーメソッドを自動的にビューに追加してくれるので、I18n.tとフルスペルで書かなくても済みます。さらに、このヘルパーは訳文が見つからない場合にエラーメッセージを` でラップして表示してくれます。
ヘルパーによって楽チン表記に
ロケールファイルを新しく追加した場合はサーバーを再起動しないと反映されません。
これかなり注意ですね!
なんだかんだで忘れがちです。
サーバーをとめてからrails server
で再起動を忘れないように。
3.2 訳文に変数を渡す
# config/locales/en.yml en: greet_username: "%{message}, %{user}!"
変数を渡してi18nに対応させることも可能
3.5 ローカライズ済みビューテンプレート
スペイン語ローカライズ版 index.es.html.erb
をおくことも可能
4.1 訳文の参照
I18n.t :message I18n.t 'message'
は等価であるので、シンボル呼び出しでも文字列として呼ぶのも同じである
また、スコープの定義も以下は全て同様のものになっている
I18n.t 'activerecord.errors.messages.record_invalid' I18n.t 'errors.messages.record_invalid', scope: :active_record I18n.t :record_invalid, scope: 'activerecord.errors.messages' I18n.t :record_invalid, scope: [:activerecord, :errors, :messages]
シンボル記述ができるのは知らなかった。
デフォルトの値を設定できる
I18n.t :missing, default: [:also_missing, 'Not here']
で設定可能
ビューヘルパーの省略
ビューの時には
= t '.title'
という呼び出しが可能
パーシャルによる自動訳文スコープは、translateビューヘルパーメソッドでのみ使用できます。
4.3 複数形化
複数形にすることも可能
4.5 安全なHTML変換
HTMLを入れ込むことが可能
コードの参照
この記事のコードは
Rails国際化 (I18n) API | Rails ガイド
こちらからお借りしています。