我使用rails 5创建了一个rails网站,我添加了用法语翻译英文网站的可能性(默认为法语)
当我用英语设置语言环境时,一切都很好,但是当我点击链接时,网站会回到法语,用户需要再次翻译网站
有没有办法通过用户继续浏览的页面来保持语言环境?
提前谢谢
修改
我添加了我的application_controller.rb
{{1}}
答案 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的好参考