存储和显示省,州,前缀的表单下拉数据的策略?

时间:2010-01-06 03:12:03

标签: php zend-framework internationalization zend-locale

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

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

至于生成下拉选项,我想我可以说,抓住所有美国州,将数组附加到加拿大各省,并附加“其他”选项 - 这看起来是正确的方式吗?< / p>

2 个答案:

答案 0 :(得分: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>的每个子元素都是与$countries的键值对应的2个字母的国家/地区代码。然后我使用ajax / php / xpath在国家/地区下拉值更改时重新填充州/省下拉列表。

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

答案 1 :(得分:0)

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