当用户访问该网站时,我可以获得他们的国家/地区代码。我想用它来设置默认语言(如果需要,他们可以稍后修改,只是根据他们所在的国家/地区对他们可能会说什么语言进行一般猜测)。
某处是否存在从国家/地区代码到语言代码的明确映射?我找不到。我知道并非特定国家/地区的每个人都说同一种语言,但我只需要一个通用映射,用户可以稍后手动选择他们的语言。
最佳答案
搜索“国家语言映射”会出现此Languages by Countries表,您可能可以通过一些工作将其转换为语言代码。 (国家数量不到 200 个。)
警告:这样做肯定会惹恼瑞士或加拿大等多语言国家的许多用户。对于这些国家/地区,习惯上让用户在 UI 主页上选择他们的语言。请参阅Google Switzerland或Best Buy Canada举一些例子。这也让外籍人士和旅行者感到烦恼。
更好的是,为什么不使用 Accept-Language HTTP header 来确定要使用哪种语言?在确定用户的语言时,正确的做法是查看 Accept-Language header 。它甚至会按偏好顺序为您提供一个列表,因此,如果用户最流利地使用您不支持的某种语言,但相当流利地使用您支持的其他语言,您可以正确地回退。 Accept-Language 的一个问题是大多数用户将其保留为默认设置。不过,大多数浏览器应该默认为平台的语言设置,所以这还不错。 (一些较旧的浏览器默认为英语,这有点灾难,因为“en”实际上意味着未设置 Accept-Language。)
关于localization - 我有一个国家代码列表和一个语言代码列表。如何从国家/地区代码映射到语言代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1876103/