如何获取当前查看页面的区域设置?

时间:2013-01-12 17:15:03

标签: ruby-on-rails-3.2 refinerycms

我已将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中的locale变量变得方便,我将使用它来选择基于语言环境的css

但是,当我查看RefineryCSS本地化页面时,上面的extract_locale_from_tld将无法获取已查看的页面区域设置,它将始终返回en,我该如何执行以下操作:

  1. 检查当前视图是否与RefineryCSS页面相关?
  2. 获取已查看的RefineryCSS页面的区域设置? (使用gem refinerycms-i18n选择的语言环境)
  3. 确实感谢任何帮助!

0 个答案:

没有答案