我的应用程序控制器中有这个方法:
before_action :set_locale
def set_locale
locale = params[:locale].to_s.strip.to_sym
I18n.locale = I18n.available_locales.include?(locale) ?
locale :
I18n.default_locale
end
def set_locale_or_redirect
unless no_locale_needed?
if params[:locale].present?
@current_locale = I18n.locale = params[:locale]
else
redirect_to locale: 'fr'
end
end
end
我想做的是在layouts/mylayout.html.erb
(我的导航菜单中也有)指向当前网址的链接,但在params中设置区域设置并调用set_locale
。
我该怎么做?
答案 0 :(得分:0)
您需要指向当前页面的链接。这个快速的小黑客可能适合你
link_to 'English', url_for('?locale=eng')
答案 1 :(得分:0)
这是解决方案:
<%= link_to 'nl', url_for( :locale => 'nl') %>