2010-01-06 41 views
2

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

我应该将它存储在一个通用的xml文件中,或者可能更新每个语言环境文件(例如en.xml)并追加它们?后者可能是不值得的工作,这就是为什么我摇摆只是general.xmldropdown-data.xml

至于产生下拉选项,我想我可以说,抓住所有美国各州,追加与加拿大各省的阵列,并追加与“其它”选项 - 这个问题似乎是一个正确的方式去?

回答

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 我不记得在那里我得到的原始数据,我也不保证它的有效性

0

如果你是技痒,你可以尝试设计/贡献回到CLDR,其中#1529属于这种类型的数据。