1

私は 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 が返されます。どうすれば次のことができますか。

  1. 現在のビューがRefineryCSSページに関連しているかどうかを確認しますか?
  2. 表示されたRefineryCSSページのロケールを取得しますか? ( gem を使用して選択されたロケールrefinerycms-i18n)

どんな助けでも大歓迎です!

4

0 に答える 0