Rails i18n传递一个URL参数

时间:2011-07-06 08:57:23

标签: ruby-on-rails ruby internationalization

我正在成功使用i18n和Rails,但是当我在网址中传递参数时i18n停止工作并且似乎回退到英语。我的表单标签切换回英语而不是荷兰语。我怎样才能防止这种情况发生?

相关专栏:

config.i18n.default_locale = :nl
config.i18n.locale = :nl

示例网址:

#/users?param1=abc

localized do
  resources :users
end

2 个答案:

答案 0 :(得分:0)

如果您在URL中提供区域设置(我无法通过您提供的信息提供),那么您可以通过使用这样的代码段覆盖默认的URL选项,确保它始终传递给URL帮助程序在您的应用程序控制器中:

def default_url_options(options={})
  { :locale => I18n.locale }
end

通过http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-url-params

答案 1 :(得分:0)

在导轨中使用:

# config/routes.rb
scope "/:locale" do
  resources :books
end

设置区域设置:

before_filter :set_current_locale

private
def set_current_locale
  I18n.locale = params[:locale]
end