【问题标题】:setting up a countries table for Rails i18n为 Rails i18n 设置国家/地区表
【发布时间】:2011-09-19 20:55:47
【问题描述】:
在准备将我们的 Rails 应用程序国际化时,我发现我们需要创建一个国家表和模型,其中将包含(除其他外)每个国家/地区的默认语言环境。我找到了一个有 4 年历史的资源 http://snippets.dzone.com/posts/show/1727,其中包含我想要的大部分内容,但没有语言环境。是否每个人都必须手动将这部分拼凑在一起,还是我忽略了将国家/地区映射到默认语言环境的一些更简单的方法。
附:我们已经使用 GeoIpCountry 查找了用户所在的国家/地区,效果很好,但该表仅提供国家名称和 2 个字母的缩写。我还想使用 country 为用户分配默认区域设置、货币和 3 字母缩写(第三方集成需要)
【问题讨论】:
标签:
ruby-on-rails
internationalization
locale
countries
【解决方案1】:
识别用户区域设置的最佳方法是查找 HTTP 请求的 Accept-Language 设置。
例如,我说:Accept-Language: fr-BE
这为您提供了我的语言环境、我的语言(法语:法语)和我的国家(比利时:比利时)。
另外,请记住,在许多国家/地区,基于国家/地区的语言环境识别是错误的,例如我的:许多网站正确识别我的国家(比利时)并假定默认语言环境:nl-BE,因为 60% 的比利时人说荷兰语(nl )。因此,这些网站对 40% 的比利时访问者(包括我)来说是错误的。
他们的网站对我来说是一个糟糕的体验,因为它显示的语言不是我的,我必须做的第一件事就是寻找他们的小语言弹出菜单。
如果他们只是查看我的Accept-Language,他们就会立即以我的语言向我展示他们的网站。