Rails持久化语言环境

时间:2012-05-14 16:33:50

标签: ruby-on-rails ruby-on-rails-3 internationalization

我即将开始为我正在开发的Rails应用程序添加I18n支持。过去,我已经从URL设置了区域设置值。我只是想知道坚持使用语言环境有多糟糕?

所以不要这样:

before_filter :set_locale

def set_locale
  I18n.locale = params[:locale] || I18n.default_locale
end

执行类似

的操作
before_filter :set_locale

def set_locale
  I18n.locale = current_user.try(:locale) || I18n.default_locale
end

看起来FB坚持使用语言环境,这种模式的权衡取舍是什么?这怎么会影响SEO的东西?

谢谢!

1 个答案:

答案 0 :(得分:8)

我遇到了这些问题并最终使用了这个策略:

  • URL中的区域设置(允许以特定语言进行页面缓存和直接链接)
  • 在用户Cookie中存储区域设置

如果URL中不存在区域设置,请尝试(按顺序):

  • 从Cookie中检索
  • 从地理位置猜测
  • 猜测来自浏览器标题接受语言
  • 回退到app default

希望有所帮助;如果你想要阐述任何要点,请告诉我。