私は RefineryCMS を自分の rails-devise アプリに統合しましたApplicationController
。
class ApplicationController < ActionController::Base
before_filter :set_locale
def set_locale
I18n.locale = extract_locale_from_tld || I18n.default_locale
end
def extract_locale_from_tld
parsed_locale = params[:locale] || ((lang = request.env['HTTP_ACCEPT_LANGUAGE']) && lang[/^[a-z]{2}/])
parsed_locale= 'en' if parsed_locale.nil?
I18n.available_locales.include?(parsed_locale.to_sym) ? parsed_locale : nil
end
したがって、これにより、application.html.haml でロケール変数が便利になります。これを使用して、ロケールベースの css を選択します。
しかし、RefineryCSS のローカライズされたページを表示すると、extract_locale_from_tld
上記では表示されたページのロケールを取得できず、常に en が返されます。どうすれば次のことができますか。
- 現在のビューがRefineryCSSページに関連しているかどうかを確認しますか?
- 表示されたRefineryCSSページのロケールを取得しますか? ( gem を使用して選択されたロケール
refinerycms-i18n
)
どんな助けでも大歓迎です!