我正在开发一个必须使用英语或匈牙利语的rails应用程序。用户可以选择语言。 所以我使用Rails Internationalization (I18n) API。 问题是我不明白当用户更改页面时如何保持变量'locale'。
#application_controller.rb
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
非常感谢您的回答
答案 0 :(得分:0)
我找到的最好的方法是使用cookie来存储用户的选择。
这是一个很棒的教程,可以很容易地解释如何做到这一点:
https://www.sitepoint.com/go-global-rails-i18n/
答案 1 :(得分:0)
您应该编辑config.route.rb文件,在url中插入new:locale参数,例如:
scope "/:locale" do
# all your routes here
end
以前,您的网址如下所示:http://domain.com/banana 现在它们是这样的:http://domain.com/en/banana(用语言环境值代替en)