悪徳商法?マニアックス ココログ支店

悪徳商法総合情報紹介ページ ~騙すなら、素敵にだまして~  本家「悪徳商法?マニアックス」は、こちら

« ロングテール理論にケチをつけた | トップページ | 鳩山邦夫法務大臣を「死に神」だと祟る信仰 »

2008.07.04

[rails] gettext と jpmobile で、テンプレートを切り替える

日本語、英語さらに携帯ごとにテンプレートファイルを切り替える方法。

普通に、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を採用した上で、以下のようなコードを追加する。日本語以外は、全て英語という設定にする。

class ApplicationController < ActionController::Base skip_filter :gettext_force_ja_for_mobile before_filter :locale

def locale
::GetText.locale = nil
if request.mobile?
::GetText.locale = "ja"
elsif ::Locale.system.language != "ja"
::GetText.locale = "en"
end
end
end


2008 07 04 [プログラム] | 固定リンク このエントリーを含むはてなブックマーク

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/26611/41730230

この記事へのトラックバック一覧です: [rails] gettext と jpmobile で、テンプレートを切り替える:

コメント

コメントを書く