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