1--TEST-- 2locale_parse_locale() icu >= 4.8 3--SKIPIF-- 4<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> 5<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> 6--FILE-- 7<?php 8 9/* 10 * Try parsing different Locales 11 * with Procedural and Object methods. 12 */ 13 14function ut_main() 15{ 16 $res_str = ''; 17 18 $locales = array( 19 'uk-ua_CALIFORNIA@currency=;currency=GRN', 20 'root', 21 'uk@currency=EURO', 22 'Hindi', 23//Simple language subtag 24 'de', 25 'fr', 26 'ja', 27 'i-enochian', //(example of a grandfathered tag) 28//Language subtag plus Script subtag: 29 'zh-Hant', 30 'zh-Hans', 31 'sr-Cyrl', 32 'sr-Latn', 33//Language-Script-Region 34 'zh-Hans-CN', 35 'sr-Latn-CS', 36//Language-Variant 37 'sl-rozaj', 38 'sl-nedis', 39//Language-Region-Variant 40 'de-CH-1901', 41 'sl-IT-nedis', 42//Language-Script-Region-Variant 43 'sl-Latn-IT-nedis', 44//Language-Region: 45 'de-DE', 46 'en-US', 47 'es-419', 48//Private use subtags: 49 'de-CH-x-phonebk', 50 'az-Arab-x-AZE-derbend', 51//Extended language subtags 52 'zh-min', 53 'zh-min-nan-Hant-CN', 54//Private use registry values 55 'qaa-Qaaa-QM-x-southern', 56 'sr-Latn-QM', 57 'sr-Qaaa-CS', 58/*Tags that use extensions (examples ONLY: extensions MUST be defined 59 by revision or update to this document or by RFC): */ 60 'en-US-u-islamCal', 61 'zh-CN-a-myExt-x-private', 62 'en-a-myExt-b-another', 63//Some Invalid Tags: 64 'de-419-DE', 65 'a-DE', 66 'ar-a-aaa-b-bbb-a-ccc', 67 'x-AAAAAA', 68 ); 69 70 71 $res_str = ''; 72 73 foreach( $locales as $locale ) 74 { 75 $arr = ut_loc_locale_parse( $locale); 76 $res_str .= "---------------------\n"; 77 $res_str .= "$locale:\n"; 78 if( $arr){ 79 foreach( $arr as $key => $value){ 80 $res_str .= "$key : '$value' , "; 81 } 82 $res_str = rtrim($res_str); 83 } 84 else{ 85 $res_str .= "No values found from Locale parsing."; 86 } 87 $res_str .= "\n"; 88 } 89 90 $res_str .= "\n"; 91 return $res_str; 92 93} 94 95include_once( 'ut_common.inc' ); 96ut_run(); 97 98?> 99--EXPECTF-- 100--------------------- 101uk-ua_CALIFORNIA@currency=;currency=GRN: 102language : 'uk' , region : 'UA' , variant0 : 'CALIFORNIA' , 103--------------------- 104root: 105language : 'root' , 106--------------------- 107uk@currency=EURO: 108language : 'uk' , 109--------------------- 110Hindi: 111language : 'hindi' , 112--------------------- 113de: 114language : 'de' , 115--------------------- 116fr: 117language : 'fr' , 118--------------------- 119ja: 120language : 'ja' , 121--------------------- 122i-enochian: 123grandfathered : 'i-enochian' , 124--------------------- 125zh-Hant: 126language : 'zh' , script : 'Hant' , 127--------------------- 128zh-Hans: 129language : 'zh' , script : 'Hans' , 130--------------------- 131sr-Cyrl: 132language : 'sr' , script : 'Cyrl' , 133--------------------- 134sr-Latn: 135language : 'sr' , script : 'Latn' , 136--------------------- 137zh-Hans-CN: 138language : 'zh' , script : 'Hans' , region : 'CN' , 139--------------------- 140sr-Latn-CS: 141language : 'sr' , script : 'Latn' , region : 'CS' , 142--------------------- 143sl-rozaj: 144language : 'sl' , variant0 : 'ROZAJ' , 145--------------------- 146sl-nedis: 147language : 'sl' , variant0 : 'NEDIS' , 148--------------------- 149de-CH-1901: 150language : 'de' , region : 'CH' , variant0 : '1901' , 151--------------------- 152sl-IT-nedis: 153language : 'sl' , region : 'IT' , variant0 : 'NEDIS' , 154--------------------- 155sl-Latn-IT-nedis: 156language : 'sl' , script : 'Latn' , region : 'IT' , variant0 : 'NEDIS' , 157--------------------- 158de-DE: 159language : 'de' , region : 'DE' , 160--------------------- 161en-US: 162language : 'en' , region : 'US' , 163--------------------- 164es-419: 165language : 'es' , region : '419' , 166--------------------- 167de-CH-x-phonebk: 168language : 'de' , region : 'CH' , private0 : 'phonebk' , 169--------------------- 170az-Arab-x-AZE-derbend: 171language : 'az' , script : 'Arab' , private0 : 'AZE' , private1 : 'derbend' , 172--------------------- 173zh-min: 174grandfathered : 'zh-min' , 175--------------------- 176zh-min-nan-Hant-CN: 177language : 'zh' , region : 'MIN' , variant0 : 'NAN' , variant1 : 'HANT' , variant2 : 'CN' , 178--------------------- 179qaa-Qaaa-QM-x-southern: 180language : 'qaa' , script : 'Qaaa' , region : 'QM' , private0 : 'southern' , 181--------------------- 182sr-Latn-QM: 183language : 'sr' , script : 'Latn' , region : 'QM' , 184--------------------- 185sr-Qaaa-CS: 186language : 'sr' , script : 'Qaaa' , region : 'CS' , 187--------------------- 188en-US-u-islamCal: 189language : 'en' , region : 'US' , 190--------------------- 191zh-CN-a-myExt-x-private: 192language : 'zh' , region : 'CN' , private0 : 'private' , 193--------------------- 194en-a-myExt-b-another: 195language : 'en' , 196--------------------- 197de-419-DE: 198language : 'de' , region : '419' , variant0 : 'DE' , 199--------------------- 200a-DE: 201No values found from Locale parsing. 202--------------------- 203ar-a-aaa-b-bbb-a-ccc: 204language : 'ar' , 205--------------------- 206x-AAAAAA: 207private0 : 'AAAAAA' , 208