3

ISO 3166有一个包含 2 个字符的国家/地区代码列表,例如USUKFR

我使用的购物车既有这些代码,也有文化代码,例如en-USen-UK

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

我应该使用这些“文化代码”来跟踪国家/地区还是只使用 2 个字符的 ISO 3166 名称?使用其中之一可能有什么问题?

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

编辑: 我在哪里可以获得文化代码列表?这是 ISO 标准吗?假设文化代码的国家/地区部分是 ISO 3166 国家/地区代码是否正确?

4

6 回答 6

7

国家代码用于识别国家。简单的国家。

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

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

您确实需要告诉我们您想到的使用场景,然后才有可能提供更好的建议。

于 2009-10-23T20:57:55.040 回答
4

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

国家

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

ISO 3166-1 Alpha-2 代码与 Internet ccTLD 无关,尽管它们通常相同。

文化

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

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

在计算应用中

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

这是熟悉的文化国家代码(如 en-US)出现的地方。这告诉您语言是英语(美国),国家是美国。

美式英语与标准英语的拼写不同,甚至单词也不同,这可能与您的申请有关,应使用英式数字表示法。它还告诉你展示产品的货币是美元,符号是“$”,货币有100个细分,你应该使用英制度量衡(英尺和磅),汽车部件必须是左手驱动器等。

关于语言的注释

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

于 2014-03-25T02:29:45.833 回答
0

如果您只是跟踪用户所在的国家/地区,我会坚持使用国家/地区代码。文化更多地用于跟踪诸如小数分隔符(.vs ,)之类的东西。

于 2009-10-23T20:57:43.687 回答
0

我不是在回答您的主要问题,但英国的 ISO 3166 国家代码是 GB,而不是 UK(虽然是“例外保留”),尽管后者是英国的 DNS TLD 代码(因为乔恩·波斯特的个人错误,一个都市传说有它)。因此,“英式英语”的语言标签是 en-GB,而不是 en-UK。

话虽如此,尚不清楚您需要这些代码做什么。

于 2009-10-23T21:12:01.067 回答
0

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

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

于 2009-10-23T21:44:11.733 回答
0

正如其他人所说,如果要记录用户的地理位置,则使用 ISO 国家代码。

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

于 2009-10-24T00:25:38.143 回答