Localization 我有一个国家代码列表和一个语言代码列表。如何从国家代码映射到语言代码?

Localization 我有一个国家代码列表和一个语言代码列表。如何从国家代码映射到语言代码?,localization,internationalization,nlp,country-codes,Localization,Internationalization,Nlp,Country Codes,当用户访问该网站时,我可以得到他们的国家代码。我想用它来设置默认语言(如果有必要,他们可以稍后修改,只是根据他们所在的国家对他们可能会说什么语言进行一般猜测) 是否存在从国家代码到某个地方存在的语言代码的明确映射?我找不到它。我知道特定国家的每个人讲的语言并不相同,但我只需要一个通用映射,用户可以在以后手动选择他们的语言。搜索“国家语言映射”会出现此表,您可能需要做一些工作就可以将其转换为语言代码。(只有不到200个国家。) 不过有一个警告:这样做肯定会惹恼瑞士或加拿大等多语种国家的许多用户。对

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

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

搜索“国家语言映射”会出现此表,您可能需要做一些工作就可以将其转换为语言代码。(只有不到200个国家。)

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


更好的是,为什么不使用Accept Language HTTP头来确定使用哪种语言呢?在确定用户的语言时,Accept Language标头是正确的选择。它甚至会按优先顺序给你一个列表,因此如果用户最流利地使用了你不支持的某种语言,但相当流利地使用了你支持的另一种语言,你可以正确地回退。Accept语言的一个问题是大多数用户将其保留为默认设置。不过,大多数浏览器都应该默认为平台的语言设置,所以这并不太糟糕。(一些较旧的浏览器会默认使用英语,这是一种灾难,因为“en”实际上意味着接受语言未设置。)

虽然有很好的理由尝试将国家(或一个国家内的特定位置/地区)映射到语言,但似乎出于您的目的,使用

HTTP请求头

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

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


一般来说,在瑞士、卢森堡等许多国家,这种方法应优于仅基于地理位置(和查找表)的方法。。。正如许多大都市地区所说,纽约、日内瓦或迈阿密……

接受语言HTTP头是正确的方式,而不是另一种方式。如果你能编辑你的答案并解释一下,那就太好了。根据国家选择语言是一种非常错误的方式。@Sorin我想它已经说过了,但好吧,我已经编辑了,详细说明了为什么接受语言是上帝而国家地图不是上帝。我只是要求一些粗体字,让那些懒于阅读全文的人更容易阅读主要信息;)我在维基百科上找到了一些相似的东西:这显然需要对国家名称和代码列表进行交叉索引:…和语言代码:Oops。。。我认为,最后一个链接基本上满足了您的要求。看一看!或者我建议您使用“接受语言”http请求头来确定用户喜欢哪种语言。为什么你想猜测用户明确要求什么?我一直在寻找完全相同的东西。真奇怪,这么难找到。最后我遇到了这样一个问题: