2010-12-11 6 views
4

Wenn ich Länder in meine Datenbank speichere, verwende ich die internationale Abkürzung.Name des Landes mit zend locale

Wie konvertiere ich diese Abkürzung mit zend_locale in den vollständigen Ländernamen?

+0

Sie, dass bu mit extra Tisch tun können, die zwischen den beiden Karte: http: // 27.org/isocountrylist/iso_country_list.sql – tawfekov

Antwort

5

Hier ist die Methode. Es versucht, das Gebietsschema des Browsers zu verwenden und verwendet standardmäßig US-Englisch, falls dies fehlschlägt.

try { 
    $locale = new Zend_Locale(Zend_Locale::BROWSER); 
    $countries = $locale->getTranslationList('Territory', Zend_Locale::BROWSER, 2); 
} catch (exception $e) { 
    $locale = new Zend_Locale('en_US'); 
    $countries = $locale->getTranslationList('Territory', 'en_US', 2); 
} 

asort($countries, SORT_LOCALE_STRING); 

// Unset invalid countries 
// SU = USSR 
// ZZ = Unknown or Invalid Region 
// VD = North Vietnam 
// DD = East Germany 
unset($countries['SU'], $countries['ZZ'], $countries['VD'], $countries['DD']); 
3

Sie können Funktionalität von der intl Erweiterung verwenden, die als PHP 5.2.0 als PHP 5.3.0 oder als PECL-Erweiterung gebündelt.

Um eine Region mit einem Gebietsschema anzuzeigen:

<?php 
print \Locale::getDisplayRegion('da_DK') . "\n"; 
print \Locale::getDisplayRegion('en_US') . "\n"; 
print \Locale::getDisplayRegion('ru_RU', 'ru_RU') . "\n"; 
?> 

Will Ausgang:

Denmark 
United States 
Россия 

http://php.net/manual/en/locale.getdisplayregion.php

Verwandte Themen