2014-05-01 2 views
2

나는 국가 목록을 가지고 있습니다 (즉, 'de' => 'Deutschland', 'at' => 'Austria').
지금 필요한 것은 국가 코드에서 로케일 문자열 ('de_DE' 또는 'de_AT')을 얻는 것입니다.Zend : 국가 코드에서 로케일 가져 오기

선택한 국가의 우편 번호 확인을 위해이 번호가 필요합니다. 이를 위해 우편 번호 유효성 검사기는 지역 ('de_AT' 또는 'en_US')의 로켈 문자열이 필요합니다. 'de' 또는 'en'은 작동하지 않습니다.

간단한 방법이 있습니까?

답변

1

타 솔루션 :

$contry = 'at'; 
$locale = Zend_Locale::getLocaleToTerritory($contry); 
$validator = new Zend_Validate_PostCode($locale); 

Zend_Locale::getLocaleToTerritory() 기본적으로 올바른 로케일을 검색
다음은 우편 번호에 대한 검증이없는 지역이다. (예 : 'US'는 'en_US')

+0

그게 제가 찾고있는 것이죠, 고맙습니다. – andrepolo

0

한다고 가정 $의 contry가 '드'또는 '에서'입니다.
나는 언어가 독일어 생각 ('드')
그래서이 같은 로케일 얻을 수 있습니다 :

$validator = new Zend_Validate_PostCode('de_' . strtoupper($contry)); 

또는

:이 같은 검증을 사용할 수 있습니다

$locale = new Zend_Locale('de_' . strtoupper($contry)); 

$validator = new Zend_Validate_PostCode($locale); 

편집 1
댓글 :

지역 만있는 경우 로캘을 사용할 수 없습니다.
예를 들어 지역이 'et' 인 경우 로케일이 'aa_ET' 또는 'am_ET'인지 알 수 없습니다.
그래서 더 나은 솔루션은 POST에서 좋은 가치를 얻기 위해 목록을 수정하는 것입니다. 당신 그냥이 검증 Zend_Validate_PostCode는 방법이있다하려는 경우 예를 들어
은 검증 후

Edit2가'zw'


대신 'en_ZW'을 넣어.

사실 각 로컬 xx_XX는 언어와 지역을 의미하며 동일한 지역의 모든 언어에는 동일한 형식 우편 번호가 있습니다.

$contry = 'at'; 
$list_locale = Zend_Locale::getLocaleList(); 
$contry_caps = strtoupper($contry); 

foreach($list_locale as $locale_str => $bool){ 
    $locale_obj = new Zend_Locale($locale_str); 
    if ($contry_caps == $locale_obj->getRegion()){ 
     $locale = $locale_str; 
     break; 
    }    
} 

$validator = new Zend_Validate_PostCode($locale); 


그러나, 그 젠드 (내가 사용하는 버전은 1.12.6입니다)에 정의 된 우편 번호가없는 지역을 SOMES주의 :
다음은 유효성 검사기를 회복 코드입니다.

001 
AE 
EH 
LY 
PS 
QA 
YE 
BT 
150 
AG 
BS 
BZ 
DM 
FJ 
GD 
GI 
GM 
GY 
JM 
KI 
KN 
KY 
LC 
MW 
SB 
SL 
SS 
TT 
UM 
VC 
VG 
WS 
419 
BO 
CO 
CU 
EA 
IC 
PA 
PE 
SV 
IR 
BF 
BJ 
BL 
CI 
GA 
MF 
KP 
MM 
AW 
CW 
SR 
SX 
ST 
TL 
AL 
VN 
+0

아니요, $ country는 국가 목록의 어떤 것일 수도 있습니다. – andrepolo

+0

이것은 게시물에서 가져온 값이며 'de'또는 'at'또는 목록에있는 값입니다. 목록은 아프가 니 스탄 (af)으로 시작하고 짐바브웨 (zw)로 끝납니다 – andrepolo

+0

미안하지만 아니, 내 문제에 대한 해결책이 아니야. 그러나 귀하의 목록은 매핑 목록을 만드는 데 도움이 될 수 있습니다. 고마워요 .-)) – andrepolo

관련 문제