【问题标题】:Localized states/provinces data本地化的州/省数据
【发布时间】:2011-08-10 06:28:25
【问题描述】:

我正在尝试提供下拉菜单,以便用户可以在多语言 Web 应用程序中选择他们的国家和州。

我能够从 unicode.org 的 cldr 文件中提取国家列表以及这些国家/地区的各种语言名称。

目前这些都存储在单独文件中的数组中(我有 en.php、es.php、fr.php 等文件)。

虽然这似乎不太难,但我在尝试获取本地化形式的行政区划(州/省/县)列表时遇到了麻烦。本质上,如果此人使用的是法语版 (fr_fr) 应用程序,我希望当他选择“法国”作为他的国家/地区时,州下拉列表中将填充法语的各个法语部门。

我在 geonames.org 上找到了一些数据:http://www.geonames.org/GB/administrative-division-united-kingdom.html,但所有内容似乎都是英文的,所以我无法提供本地化状态。此外,像英国这样的一些国家在“行政部门”中有两组数据,这可能会使自动抓取数据有些问题。

类似地,如果有人使用日文版,那么县下拉列表应该包含日文的县。至于其他国家,我觉得把所有行政区划都翻译成日文是行不通的,所以默认英文就好了。

此外,国家/地区对行政区划有不同的术语(州/地区/省/县,也许还有一些我错过的其他术语。我希望在某个地方拥有这些数据,以便当有人说日本时,而不是标签是“州”,他会看到标签“县”。

我遇到的另一个问题是在哪里存储所有数据。目前,我倾向于将行政区划(州)和标签(州、县等)存储在包含语言环境(en_US.php、en_GB.php 等)的更具体的文件中。

有人在项目中处理过类似的事情吗?我很想听听您的建议/意见。另外,如果有人可以提供我可以获得本地化状态的来源,那就太好了。

编辑

  • 邮政编码:某些国家/地区没有邮政编码,因此我需要存储此信息并确保提交时不需要邮政编码。
  • 可选状态:如前所述。有些国家没有州,因此需要以某种方式存储。

【问题讨论】:

  • 请记住,对于大多数国家/地区,州与您的地址无关。我住在德国,讨厌选择我的州,因为这并不重要。德国没有人使用州作为邮政地址。
  • 我同意。差点忘记了!在我的 OP 中还添加了在某些国家/地区不使用邮政编码的要求。

标签: php resources localization


【解决方案1】:

您将州/省数据用于什么目的?如果是用于邮寄,请记住,许多国家/地区的邮寄地址中不需要(并且通常不会给出)州/省,如果您在不需要时要求它,您只会惹恼用户。

邮政编码对于邮寄更为重要,Unicode CLDR 具有适用于 158 个国家/地区的邮政编码验证正则表达式。 (下载CLDR时在supplemental/postalCodeData.xml中)

如果你真的想要州/省,那么这里有一个 CLDR 提议,将地址格式信息添加到 CLDR -http://unicode.org/review/pri180/

您会注意到该提案链接到一个 google appengine 服务,其中包含建议的地址格式信息 - http://i18napis.appspot.com/address

那里似乎列出了州/省,但仅适用于需要在邮政地址中提供此类信息的国家/地区。看起来它被翻译成每个国家的语言——例如,加拿大的省名是用英语和法语列出的。它还告诉您,例如,它在日本被称为县

如果您真的非常想要所有细分,无论是否需要在邮政地址中使用,然后获取 ISO 3166-2。在此处购买 - http://www.iso.org/iso/country_codes/iso_3166_databases.htm(您也可以将其从维基百科站点中移除以获取 ISO-3166-2)

【讨论】:

    猜你喜欢
    • 2011-06-16
    • 2021-04-13
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多