実行環境: ruby 1.9.3 Rails 3.1.3 I18n 文字列を国際化する I18n の使い方のまとめです。 今回は、その2としてロケールの切り替えについて考えてみたいと思います。 表示ロケールを決定する流れ 複数のロケールを定義している場合、表示するロケールがアクセス毎に判断することになります。それをどうやって(どの情報を使って)判断するか、というお話です。 ロケール値が明示的に指定されていたら、そのロケールで表示 ロケール値を URL のクエリ(パラメータ)で指定 ロケール値を URL のパス名で指定(実態はクエリと同じ) ロケール値をセッション情報で指定 アクセス先のURLのドメイン名で判別(複数のドメイン名で運用している場合のみ) TLD(Top Level Domain)で判別 サブドメインで判別 接続元の情報に応じて、適切なロケールで表示 HTTP_ACCEPT_L