2010-12-11 12 views
4

国をデータベースに保存すると、国際的な略語が使用されます。zendロケールの国名

この略語をzend_localeで完全国名に変換するにはどうすればよいですか?

+0

あなたは、両方の間のマッピング、余分なテーブルを使用してそのBUを行うことができます。http:// 27.org/isocountrylist/iso_country_list.sql – tawfekov

答えて

5

ここにその方法があります。ブラウザのロケールを使用しようとします。デフォルトでは英語が使用できません。

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

Zend_Locale::getTranslationList()またはZend_Locale::getTranslation()を使用してください。 example #7 in the manualを参照してください。

3

あなたは、PHP 5.3.0で、またはPHP 5.2.0のようにPECL拡張モジュールとしてバンドルされintl拡張子から機能を使用することができます。ロケールを使用して地域を表示するには

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

ウィル出力:

Denmark 
United States 
Россия 

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

関連する問題