Ruby on Rails 国际化:从设置到应用的全面指南
1. 从客户端信息设置语言环境
在特定情况下,根据客户端提供的信息而非 URL 来设置语言环境是很有意义的。这些信息来源多样,例如用户在浏览器中设置的首选语言、通过用户 IP 推断出的地理位置,或者用户在应用程序界面中选择并保存到个人资料的语言环境。这种方法更适用于基于 Web 的应用程序或服务,而非网站。
1.1 使用 Accept - Language
客户端提供的信息来源之一是 Accept - Language HTTP 头。用户可以在浏览器或其他客户端(如 curl )中设置该头。在 ApplicationController 中,基于 Accept - Language 头设置语言环境的简单实现如下:
before_filter :set_locale
def set_locale
I18n.locale = extract_locale_from_accept_language_header
logger.debug "* Locale set to '#{I18n.locale}'"
end
private
def extract_locale_from_accept_language_header
request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first
end
在实际生产环境中,应使用比上述示
超级会员免费看
订阅专栏 解锁全文
999

被折叠的 条评论
为什么被折叠?



