我已经将 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
)
任何帮助确实值得赞赏!