l18n保持语言环境变量改变链接轨道

时间:2016-06-29 12:51:27

标签: ruby-on-rails

我正在开发一个必须使用英语或匈牙利语的rails应用程序。用户可以选择语言。 所以我使用Rails Internationalization (I18n) API。 问题是我不明白当用户更改页面时如何保持变量'locale'。

#application_controller.rb
before_action :set_locale
def set_locale
    I18n.locale = params[:locale] || I18n.default_locale
end

非常感谢您的回答

2 个答案:

答案 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)