Ruby on Rails 中的 i18n 解决

发表于 2014-03-16, 最后更新 2016-02-14

不得不说,RoR还是相当完美的,真的所谓能想到的功能他都提供了。
最近在搞老陈的站,考虑到外贸的原因所以要搞i18n功能。

需要解决:

  1. 模型中字段的i18n
  2. 根据用户的 Accept-Language 请求自动判断
  3. 访问 en.domain.com 时,自动切换到英文站
  4. 后台编辑时,添加不同语言而不添加重复产品

其实这些问题还是没什么难度,只是我刚入行Rails水平还是太差。自己瞎折腾了一段时间,还是弄出了方案。

  1. globalize 这个gem
  2. http_accept_language 这个gem
  3. 基于第二点,在Nginx中,设置转发后端服务器,强制加上 Accept-Language en,en-US 请求头部
  4. 基于第一、二、三点,通过访问 en.domain.com/adminzh.domain.com/admin 来自动实现locale切换,添加不同语言的内容

基于上面几点,整个项目的核心问题得以顺利解决。
因为老板的原因,代码就不公布出来了。