I18n.locale.to_s 在 rails return 中的语言环境是什么
what locale does I18n.locale.to_s in rails return
我无法获取语言环境字符串 I18n.locale.to_s
returns。它是代码运行的语言环境(即部署代码的服务器的语言环境)还是从请求中获取语言环境(请求 URL 的语言环境)?
我认为它应该是服务器的语言环境,就像我们(en_US) 的用户访问日本(ja_JP) 的服务器运行 一样,I18n.locale.to_s
应该return 语言环境为 JP。如果我的假设是错误的,请纠正我。
是的,你是对的。除非您使用额外的代码(例如额外的 gem),否则 Rails 不会查找访问者的 IP 地址,也不会考虑与浏览器有关的任何内容访客。
当您在控制器或代码中的其他地方调用 I18n.locale.to_s
时,您将获得服务器位置的默认语言环境。但是,如果您想更改当前访问者的区域设置,例如,他们单击 link 通过在请求中发送 :locale
参数来更改它,您可以这样做:
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
然后,该请求中对 I18n.locale.to_s
的所有调用现在都将使用覆盖的语言环境进行响应。
我无法获取语言环境字符串 I18n.locale.to_s
returns。它是代码运行的语言环境(即部署代码的服务器的语言环境)还是从请求中获取语言环境(请求 URL 的语言环境)?
我认为它应该是服务器的语言环境,就像我们(en_US) 的用户访问日本(ja_JP) 的服务器运行 一样,I18n.locale.to_s
应该return 语言环境为 JP。如果我的假设是错误的,请纠正我。
是的,你是对的。除非您使用额外的代码(例如额外的 gem),否则 Rails 不会查找访问者的 IP 地址,也不会考虑与浏览器有关的任何内容访客。
当您在控制器或代码中的其他地方调用 I18n.locale.to_s
时,您将获得服务器位置的默认语言环境。但是,如果您想更改当前访问者的区域设置,例如,他们单击 link 通过在请求中发送 :locale
参数来更改它,您可以这样做:
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
然后,该请求中对 I18n.locale.to_s
的所有调用现在都将使用覆盖的语言环境进行响应。