« ロングテール理論にケチをつけた | トップページ | 鳩山邦夫法務大臣を「死に神」だと祟る信仰 »
日本語、英語さらに携帯ごとにテンプレートファイルを切り替える方法。
普通に、gettextとjpmobileを入れると、携帯でのアクセスがあった後に英語に切り替わらなくなる(バグ?)。また、日本語テンプレートをデフォルトにすると、イタリア語とかでアクセスがあった時に困る。
■パターン1
これだと、イタリア語(en以外)のときにも日本語が表示される。
index.html (日本語)
index_en.html (英語)
index_mobile.html (携帯)
■パターン2
これだと、携帯でアクセスしたときに、index_ja.html が表示される。
index.html (英語)
index_ja.html (日本語)
index_mobile.html (携帯)
■解決策
パターン1を採用した上で、以下のようなコードを追加する。日本語以外は、全て英語という設定にする。
def locale
::GetText.locale = nil
if request.mobile?
::GetText.locale = "ja"
elsif ::Locale.system.language != "ja"
::GetText.locale = "en"
end
end
end
この記事のトラックバックURL:
この記事へのトラックバック一覧です: [rails] gettext と jpmobile で、テンプレートを切り替える: