我怎么能坚持下去" rails应用程序区域设置?

时间:2016-08-26 00:49:54

标签: ruby-on-rails locale rails-i18n

我使用rails 5创建了一个rails网站,我添加了用法语翻译英文网站的可能性(默认为法语)

当我用英语设置语言环境时,一切都很好,但是当我点击链接时,网站会回到法语,用户需要再次翻译网站

有没有办法通过用户继续浏览的页面来保持语言环境?

提前谢谢

修改

我添加了我的application_controller.rb

{{1}}

2 个答案:

答案 0 :(得分:1)

您可以使用default_url_options,而不是使用posts_path(locale: params[:locale])混淆整个应用程序。

class ApplicationController < ActionController::Base
  def default_url_options
    { locale: I18n.locale }
  end
end

这样做无论何时使用url helper生成url,它都会将当前语言环境(当前请求中使用的语言环境)附加到url查询字符串。

因此,如果用户请求/users?locale=se并且呈现的视图包含link_to(@user.name, @user),则其路径为/users/1?locale=se

答案 1 :(得分:0)

您可以通过路径参数将当前区域设置传递到任何其他路径:

 link_to 'Posts', posts_path(locale: params[:locale])

然后它会传递网址请求。请务必在控制器的重定向调用中执行相同的操作。

http://guides.rubyonrails.org/i18n.html是设置I18n的好参考