我应该使用ISO 3166国家代码(美国)还是文化代码(en-US)?

时间:2009-10-23 20:52:00

标签: internationalization shopping-cart culture iso

ISO 3166包含2个字符country codes的列表,例如美国英国 FR

我使用过的购物车既有这些代码,也有 en-US en-UK 等文化代码。

对于一个单独的项目,我认为较长的代码更有用,因为它至少告诉我该国使用的语言。但我似乎无法找到准确的清单。

我应该使用这些“文化代码”来跟踪国家/地区,还是仅仅坚持使用2个字符的ISO 3166名称?什么可能是使用它们的捕获?

我不确定为什么锁定英语的购物车甚至会关心en-US而不仅仅是美国。有什么见解吗?

修改 另外我在哪里可以获得文化代码列表?这是ISO标准吗?假设文化代码的国家部分是ISO 3166国家代码是否正确?

6 个答案:

答案 0 :(得分:7)

国家/地区代码用于标识国家/地区。只是国家。

文化代码用于识别文化以引用其细节,如小数字符号,日期分隔符,货币等。在这里,您不是对一个国家,而是在特定文化中直接感兴趣。

如果您只需跟踪国家/地区,请坚持使用ISO 3166代码。这是一个很好的简单标准。如果您执行IP到国家/地区的确定,那么大多数服务只会为您提供国家/地区而非特定用户文化。

您真的需要告诉我们您的使用方案,然后就可以提供更好的建议。

答案 1 :(得分:3)

正如其他人所指出的,这个问题的答案实际上取决于应用程序。

<强>国家

国家是制定法律和管理法律管辖区的政治实体。国家定义货币及其符号,贸易关税,电话号码前缀,权重和度量系统(公制,英制等)等内容。国家由ISO标准3166定义,该标准定义了一组双字母(alpha-2),三字母(alpha-3)和数字国家代码。

ISO 3166-1 Alpha-2代码与互联网ccTLD无关,但它们通常是相同的。

<强>文化

文化是语言和社会规范的分组,用于定义数字编写方式和日期编写方式。文化通常使用ISO 639语言代码表示。每种语言实际上有四种不同的代码,基于英语名称的alpha-2,alpha-3,alpha-3和带有方言扩展名的alpha-3。

这两个国家和文化都与地理区域不完全相关。

在计算应用程序中

对于许多计算应用程序,了解两者都很有用。例如,您想知道用什么语言呈现您的网站,并且您想知道用户期望购买的货币,应用的销售税,海关和邮政费率等等。

这是熟悉的文化国家代码(如en-US)的用武之地。这告诉您该语言为英语(美国),而该国家/地区为美国。

美国英语对标准英语有不同的拼写,甚至是不同的单词,这可能与您的应用有关,应使用英国数字符号。它还告诉你显示产品的货币是美元,符号是“$”,货币有100个细分,你应该使用英制重量和尺寸(英尺和磅),汽车零部件必须是左手开车,等等。

关于语言的说明

您无法按国家/地区自动假设语言。许多国家都有不止一种官方语言。例如,在加拿大,它是英语和魁北克语(加拿大法语)。印度有18种官方语言,超过20%的人口不会使用任何一种语言。

答案 2 :(得分:0)

如果您只是跟踪用户的国家/地区,我会坚持使用国家/地区代码。文化更适合跟踪小数分隔符(. vs ,)等内容。

答案 3 :(得分:0)

我没有回答你的主要问题,但英国的ISO 3166国家代码是GB,而不是英国(虽然是“特别保留”),尽管后者是英国的DNS TLD代码(由于Jon Postel的个人错误,一个都市传奇人物有它)。因此,“英国英语”的语言标签是en-GB,而不是en-UK。

话虽如此,但是你需要这些代码还不是很清楚。

答案 4 :(得分:0)

正如少数人所指出的那样,一个只表示国家(美国),而另一个表示语言和国家(en-US)。我只是想补充说,语言/国家的全部意义在于这种关系不是一对一的。您可以在不同的国家/地区使用相同的语言(pt-BR vs pt-PT),并且您可以在同一个国家/地区使用多种语言(fr-CA和en-CA)。

如果您需要跟踪的是用户所在的国家/地区,请务必使用ISO代码。如果您需要跟踪文化和区域设置,那么我将使用完整的文化代码。

答案 5 :(得分:0)

正如其他人所说,如果您想记录用户的地理位置,请使用ISO国家/地区代码。

如果您还想跟踪用户的文化以进行演示(例如翻译,日期和数字格式),那么您应该同时存储两者。没有什么可以阻止居住在国外的用户使用他们的母语和文化设置。例如,居住在美国的讲法语的加拿大人可能拥有美国国家代码,但需要fr-CA文化代码。