7

我即将开始为我目前正在开发的 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 的东西?

谢谢!

4

1 回答 1

9

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

  • URL 中的语言环境(允许页面缓存和特定语言的直接链接)
  • 将语言环境存储在用户 cookie 中

如果 URL 中不存在语言环境,请尝试(按顺序):

  • 从 cookie 中检索
  • 从地理位置猜测
  • 从浏览器标题中猜测接受语言
  • 回退到应用默认值

希望有帮助;如果您想详细说明任何要点,请告诉我。

于 2012-05-14T21:02:12.180 回答