我有一份国家/地区代码列表和一系列语言代码。如何从国家/地区代码映射到语言代码?

时间:2009-12-09 19:06:37

标签: localization internationalization nlp country-codes

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

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

2 个答案:

答案 0 :(得分:8)

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

警告:这样做几乎可以保证在瑞士或加拿大等多语种国家中惹恼许多用户。对于这些国家,习惯上让用户在UI的主页面上选择他们的语言。有关示例,请参阅Google SwitzerlandBest Buy Canada。这也惹恼了外籍人士和旅行者。

更好的是,为什么不使用Accept-Language HTTP标头来确定使用哪种语言? Accept-Language标题是在确定用户语言时要查看的正确事物。它甚至会按照首选项的顺序为您提供一个列表,因此如果用户能够流利地使用某些您不支持的语言,但是在您支持的其他语言中能够流利地使用,则可以正确回退。 Accept-Language的一个问题是大多数用户将其保留为默认设置。但是,大多数浏览器都应该默认使用平台的语言设置,因此它不是太糟糕。 (一些较旧的浏览器会默认使用英语,因为“en”实际上意味着接受语言未被设置。)

答案 1 :(得分:4)

虽然可能有充分的理由尝试将国家/地区(或某个国家/地区内的特定地点/地区)映射到语言,但似乎为了您的目的,使用

HTTP请求标头Accept-Language

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

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

一般来说,在瑞士,卢森堡等许多国家,这种方法的表现应优于仅基于地理定位的方法(并在查询表上)......以及许多大都市区如纽约,日内瓦或迈阿密...