【发布时间】: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