2

我目前正在从以数组形式存储国家、州和省列表的类迁移到以ldml xml 文件形式使用 Zend 的区域设置数据。这些 ldml 文件提供了国家、货币、语言的本地化列表 - 所以我不确定我应该在哪里存储美国各州、(加拿大各省)、前缀 - 我在想可能只是创建一个通用 xml 文件并将其存储在同一个文件中目录作为 ldml 文件,但有疑问,因为它不会真正本地化,因为我会用英文存储它。

我应该将它存储在通用 xml 文件中,还是可能更新每个语言环境文件(例如 en.xml )并附加它们?后者可能不值得工作,这就是为什么我倾向于只使用general.xmlor dropdown-data.xml

至于生成下拉选项,我想我可以说,抓住所有美国州,将数组附加到加拿大各省,然后附加一个“其他”选项——这似乎是正确的做法吗?

4

2 回答 2

1

我也遇到了这个问题。我混合使用 Zend_Locale 和自定义 xml 文件。

Zend_Locale 用于生成国家列表:

$locale = new Zend_Locale(Zend_Locale::BROWSER);
$countries = $locale->getTranslationList('Territory', Zend_Locale::BROWSER, 2);
asort($countries, SORT_LOCALE_STRING);
// unset invalid countries
unset($countries['SU'], $countries['ZZ'], $countries['IM'], $countries['JE'], $countries['VD']);

然后我的自定义 XML 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<countries>
  <AD>
    <region>Andorra</region>
    <region>Parròquia de Canillo</region>
    <region>Parròquia d'Encamp</region>
    <region>Parròquia de la Massana</region>

其中 的每个子元素<countries>是对应于 的键值的 2 个字母的国家代码$countries。然后,每当更改国家/地区下拉值时,我都会使用 ajax/php/xpath 重新填充州/省下拉列表。

随意在这里下载我的 XML 文件:http: //gregan.org/provinces.xml 我不记得我从哪里得到原始数据,我也不保证它的有效性

于 2010-01-06T20:52:50.760 回答
0

如果你真的很有野心,你可以尝试设计/贡献一些东西给 CLDR,其中#1529与这种类型的数据有关。

于 2010-05-15T01:33:14.360 回答