【问题标题】:I have a list of country codes and a list of language codes. How do I map from country code to language code?我有一个国家代码列表和一个语言代码列表。如何从国家代码映射到语言代码?
【发布时间】:2009-12-09 19:06:37
【问题描述】:

当用户访问该网站时,我可以获得他们的国家代码。我想用它来设置默认语言(如果需要,他们可以稍后修改,只是根据他们所在的国家/地区对他们可能说的语言进行一般猜测)。

是否存在从国家代码到某处存在的语言代码的明确映射?我找不到。我知道在特定国家/地区并非每个人都说同一种语言,但我只需要一个通用映射,用户可以稍后手动选择他们的语言。

【问题讨论】:

标签: localization internationalization nlp country-codes


【解决方案1】:

搜索“国家/地区语言映射”会出现此Languages by Countries 表,您可以通过一些工作将其转换为语言代码。 (不到 200 个国家/地区。)

不过有一个警告:这样做肯定会惹恼瑞士或加拿大等多语言国家/地区的许多用户。对于此类国家/地区,习惯上让用户在 UI 的主页上选择他们的语言。有关一些示例,请参阅 Google SwitzerlandBest Buy Canada。这也让外籍人士和旅行者感到恼火。

更好的是,为什么不使用 Accept-Language HTTP 标头来确定使用哪种语言? Accept-Language 标头是确定用户语言时要查看的正确内容。它甚至会按优先顺序为您提供一个列表,因此,如果用户对您不支持的某种语言最流利,但对您支持的其他语言相当流利,则可以正确回退。 Accept-Language 的一个问题是大多数用户将其保留为默认设置。不过,大多数浏览器应该默认为平台的语言设置,所以还不错。 (一些较旧的浏览器会默认使用英语,这有点像一场灾难,因为“en”实际上意味着未设置 Accept-Language。)

【讨论】:

  • Accept-Language HTTP 标头 是正确的方式,而不是另一种方式。如果您可以编辑答案并解释这一点,那就太好了。根据国家选择语言是非常错误的方式。
  • @Sorin 我以为它已经说过了,但是好的,我已经编辑详细说明了为什么 Accept-Language 是上帝而国家映射不是。
  • 我只是要求一些粗体,以便那些懒惰阅读您的完整帖子的人更容易阅读主要信息;)
【解决方案2】:

虽然可能有充分的理由尝试将国家/地区(或者实际上是一个国家/地区内的特定位置/区域)映射到语言,但似乎出于您的目的,使用

HTTP 请求头 Accept-Language,

如果仅作为您的语言选择启发式(以及mabye teh国家代码)中的一个元素可能是一个简单而安全的选择......

这种方法偶尔会出错,因为与给定 Web 浏览器安装相关的默认语言(当底层用户没有花时间为他/她的首选自然语言选择安装包/设置时)。另一方面,它也为许多外籍人士(根据首选语言安装/设置浏览器)提供了更好的语言提示,即使地理位置/语言关联完全错误。

一般而言,在瑞士、卢森堡等许多国家/地区以及纽约、日内瓦或迈阿密等许多大都市地区,这种方法应该优于仅基于地理位置(和查找表)的方法...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    相关资源
    最近更新 更多