2010-01-06 21 views
2

Je migre actuellement à partir d'une classe qui stocke des listes de pays, états & provinces sous la forme de tableaux à l'aide de données Zend Locale sous la forme de ldml xml files. Ces fichiers ldml fournissent des listes localisées de pays, de devises, de langues - donc je ne sais pas exactement où je devrais stocker les états américains, les provinces canadiennes, les préfixes - je pensais peut-être juste créer un fichier xml générique et le stocker dans le même répertoire que les fichiers ldml, mais ayant des doutes car il ne serait pas vraiment localisé car je le stockerais en anglais. Dois-je le stocker dans un fichier xml générique, ou éventuellement mettre à jour chacun des fichiers de paramètres régionaux (par exemple, en.xml) et les ajouter? Ce dernier ne vaut probablement pas le travail, c'est pourquoi je suis en train de balancer vers un general.xml ou dropdown-data.xml. Pour ce qui est de générer des options de liste déroulante, je suppose que je pourrais juste dire: attraper tous les États américains, ajouter le tableau aux provinces canadiennes et ajouter cela avec une option «Autre» - cela semble-t-il être la bonne solution?Stratégie de stockage et d'affichage des données déroulantes de formulaire pour les provinces, les états, les préfixes?

Répondre

1

J'ai également rencontré ce problème. J'utilise un mélange de Zend_Locale et un fichier xml personnalisé.

Zend_Locale est utilisé pour générer la liste des pays:

$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']); 

Ensuite, mon fichier XML personnalisé ressemble à ceci:

<?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> 

chaque élément enfant de <countries> est un code de pays 2 lettres correspondant à la valeur de clé de $countries. J'utilise ensuite ajax/php/xpath pour repeupler l'état/province déroulant chaque fois que la valeur du pays est modifiée.

Ne hésitez pas à télécharger mon fichier XML ici: http://gregan.org/provinces.xml Je ne me souviens pas où je suis les données d'origine, et je ne garantir sa validité

0

Si vous sentez-vous vraiment ambitieux pourrait essayer de concevoir/contribuer quelque chose de retour à CLDR, où #1529 se rapporte à ce type de données.