我想做很多本地化网站的简单事情。
当您直接访问www.example.com
时,您应该被重定向到default_locale(或基于IP地址的另一个)并获取www.example.com/en
或其他一些语言环境,但它必须是可见的。现在,根页面已本地化,但在网址中不可见,我不希望人们感到困惑,并认为该网站来自他们自己的国家。
我见过这样的解决方案(3。):
http://dhampik.com/blog/rails-routes-tricks-with-locales
它会重定向到www.example.com/en
,但每个浏览器都有错误
Firefox:该页面未正确重定向。这个问题可以 有时是因禁用或拒绝接受cookie而导致的。
或
错误代码310(net :: ERR_TOO_MANY_REDIRECTS)
我使用Cookie存储最后选择的语言,如果用户访问过,但没有注册,并且下次访问时,我们将使用Cookie中的值来确定区域设置。
更新:
代码很简单,非常类似于此处描述的内容: - http://guides.rubyonrails.org/i18n.html - http://railscasts.com/episodes/138-i18n-revised(这里提到无限重定向,但是当我提出他建议的代码时,我仍然没有直接访问该页面时被重定向到区域设置)
路由
Rails.application.routes.draw do
scope "(:locale)", :locale => /en|es/ do
root 'static_pages#home'
...
end
end