Rails I18n 的 locale 值是直接用 applicationController 的实例变量保存吗?

egg_show · 2014年08月26日 · 最后由 Martin91 回复于 2014年08月27日 · 2322 次阅读

如题,国际化的 locale 值是用实例变量保存到 applicationController 中吗,然后在视图中取,or 还是有其他方法呢?

/config/locales/*.yml 这是在 view 层使用的啊,跟 controller 没关系

#1 楼 @dddd1919 就是我要在地址里面写用户当前选择的语言的嘛?

#2 楼 @egg_show 你的意思是可以根据用户的访问路径或 ip 之类的自动切换语言么?看 这个

#3 楼 @dddd1919 放在 session 里面啊?

有多种方式可以保存,具体看 Rails Guides

#4 楼 @egg_show 比较常见的有: 1) 放在域名里边http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-domain-name) 比如 zh.example.com 2) 放在参数字符串里边http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-url-params) 比如 www.example.com/orders/?locale=zh-CN 3) 放在请求的 Header 里边http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-client-supplied-information) 4) 放在 session 里边(这个最不推荐,不利于 SEO,而且每次 session 过期之后,用户都得重新选择语言)

这么详细,应该能满足楼主要求了吧?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号