1--TEST-- 2locale_get_display_variant() 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 getting the display_variant for different locales 11 * with Procedural and Object methods. 12 */ 13 14function ut_main() 15{ 16 $res_str = ''; 17 18 $disp_locales=array('en','fr','de'); 19 20 $locales = array( 21 'uk-ua_CALIFORNIA@currency=;currency=GRN', 22 'root', 23 'uk@currency=EURO', 24 'Hindi', 25//Simple language subtag 26 'de', 27 'fr', 28 'ja', 29 'i-enochian', //(example of a grandfathered tag) 30//Language subtag plus Script subtag: 31 'zh-Hant', 32 'zh-Hans', 33 'sr-Cyrl', 34 'sr-Latn', 35//Language-Script-Region 36 'zh-Hans-CN', 37 'sr-Latn-CS', 38//Language-Variant 39 'sl-rozaj', 40 'sl-nedis', 41//Language-Region-Variant 42 'de-CH-1901', 43 'sl-IT-nedis', 44//Language-Script-Region-Variant 45 'sl-Latn-IT-nedis', 46//Language-Region: 47 'de-DE', 48 'en-US', 49 'es-419', 50//Private use subtags: 51 'de-CH-x-phonebk', 52 'az-Arab-x-AZE-derbend', 53//Extended language subtags 54 'zh-min', 55 'zh-min-nan-Hant-CN', 56//Private use registry values 57 'x-whatever', 58 'qaa-Qaaa-QM-x-southern', 59 'sr-Latn-QM', 60 'sr-Qaaa-CS', 61/*Tags that use extensions (examples ONLY: extensions MUST be defined 62 by revision or update to this document or by RFC): */ 63 'en-US-u-islamCal', 64 'zh-CN-a-myExt-x-private', 65 'en-a-myExt-b-another', 66//Some Invalid Tags: 67 'de-419-DE', 68 'a-DE', 69 'ar-a-aaa-b-bbb-a-ccc' 70 ); 71 72 73 $res_str = ''; 74 75 foreach( $locales as $locale ) 76 { 77 $res_str .= "locale='$locale'\n"; 78 foreach( $disp_locales as $disp_locale ) 79 { 80 $scr = ut_loc_get_display_variant( $locale ,$disp_locale ); 81 $res_str .= "disp_locale=$disp_locale : display_variant=$scr"; 82 $res_str .= "\n"; 83 } 84 $res_str .= "-----------------\n"; 85 } 86 87 return $res_str; 88 89} 90 91include_once( 'ut_common.inc' ); 92ut_run(); 93 94?> 95--EXPECTREGEX-- 96locale='uk-ua_CALIFORNIA@currency=;currency=GRN' 97disp_locale=en : display_variant=CALIFORNIA 98disp_locale=fr : display_variant=CALIFORNIA 99disp_locale=de : display_variant=CALIFORNIA 100----------------- 101locale='root' 102disp_locale=en : display_variant= 103disp_locale=fr : display_variant= 104disp_locale=de : display_variant= 105----------------- 106locale='uk@currency=EURO' 107disp_locale=en : display_variant= 108disp_locale=fr : display_variant= 109disp_locale=de : display_variant= 110----------------- 111locale='Hindi' 112disp_locale=en : display_variant= 113disp_locale=fr : display_variant= 114disp_locale=de : display_variant= 115----------------- 116locale='de' 117disp_locale=en : display_variant= 118disp_locale=fr : display_variant= 119disp_locale=de : display_variant= 120----------------- 121locale='fr' 122disp_locale=en : display_variant= 123disp_locale=fr : display_variant= 124disp_locale=de : display_variant= 125----------------- 126locale='ja' 127disp_locale=en : display_variant= 128disp_locale=fr : display_variant= 129disp_locale=de : display_variant= 130----------------- 131locale='i-enochian' 132disp_locale=en : display_variant= 133disp_locale=fr : display_variant= 134disp_locale=de : display_variant= 135----------------- 136locale='zh-Hant' 137disp_locale=en : display_variant= 138disp_locale=fr : display_variant= 139disp_locale=de : display_variant= 140----------------- 141locale='zh-Hans' 142disp_locale=en : display_variant= 143disp_locale=fr : display_variant= 144disp_locale=de : display_variant= 145----------------- 146locale='sr-Cyrl' 147disp_locale=en : display_variant= 148disp_locale=fr : display_variant= 149disp_locale=de : display_variant= 150----------------- 151locale='sr-Latn' 152disp_locale=en : display_variant= 153disp_locale=fr : display_variant= 154disp_locale=de : display_variant= 155----------------- 156locale='zh-Hans-CN' 157disp_locale=en : display_variant= 158disp_locale=fr : display_variant= 159disp_locale=de : display_variant= 160----------------- 161locale='sr-Latn-CS' 162disp_locale=en : display_variant= 163disp_locale=fr : display_variant= 164disp_locale=de : display_variant= 165----------------- 166locale='sl-rozaj' 167disp_locale=en : display_variant=Resian 168disp_locale=fr : display_variant=dialecte de Resia 169disp_locale=de : display_variant=Resianisch 170----------------- 171locale='sl-nedis' 172disp_locale=en : display_variant=Natisone dialect 173disp_locale=fr : display_variant=dialecte de Natisone 174disp_locale=de : display_variant=Natisone-Dialekt 175----------------- 176locale='de-CH-1901' 177disp_locale=en : display_variant=Traditional German orthography 178disp_locale=fr : display_variant=orthographe allemande traditionnelle 179disp_locale=de : display_variant=(1901|[Aa]lte deutsche Rechtschreibung) 180----------------- 181locale='sl-IT-nedis' 182disp_locale=en : display_variant=Natisone dialect 183disp_locale=fr : display_variant=dialecte de Natisone 184disp_locale=de : display_variant=(NEDIS|Natisone-Dialekt) 185----------------- 186locale='sl-Latn-IT-nedis' 187disp_locale=en : display_variant=Natisone dialect 188disp_locale=fr : display_variant=dialecte de Natisone 189disp_locale=de : display_variant=(NEDIS|Natisone-Dialekt) 190----------------- 191locale='de-DE' 192disp_locale=en : display_variant= 193disp_locale=fr : display_variant= 194disp_locale=de : display_variant= 195----------------- 196locale='en-US' 197disp_locale=en : display_variant= 198disp_locale=fr : display_variant= 199disp_locale=de : display_variant= 200----------------- 201locale='es-419' 202disp_locale=en : display_variant= 203disp_locale=fr : display_variant= 204disp_locale=de : display_variant= 205----------------- 206locale='de-CH-x-phonebk' 207disp_locale=en : display_variant= 208disp_locale=fr : display_variant= 209disp_locale=de : display_variant= 210----------------- 211locale='az-Arab-x-AZE-derbend' 212disp_locale=en : display_variant=(AZE_DERBEND)? 213disp_locale=fr : display_variant=(AZE_DERBEND)? 214disp_locale=de : display_variant=(AZE_DERBEND)? 215----------------- 216locale='zh-min' 217disp_locale=en : display_variant= 218disp_locale=fr : display_variant= 219disp_locale=de : display_variant= 220----------------- 221locale='zh-min-nan-Hant-CN' 222disp_locale=en : display_variant=NAN_HANT_CN 223disp_locale=fr : display_variant=NAN_HANT_CN 224disp_locale=de : display_variant=NAN_HANT_CN 225----------------- 226locale='x-whatever' 227disp_locale=en : display_variant= 228disp_locale=fr : display_variant= 229disp_locale=de : display_variant= 230----------------- 231locale='qaa-Qaaa-QM-x-southern' 232disp_locale=en : display_variant= 233disp_locale=fr : display_variant= 234disp_locale=de : display_variant= 235----------------- 236locale='sr-Latn-QM' 237disp_locale=en : display_variant= 238disp_locale=fr : display_variant= 239disp_locale=de : display_variant= 240----------------- 241locale='sr-Qaaa-CS' 242disp_locale=en : display_variant= 243disp_locale=fr : display_variant= 244disp_locale=de : display_variant= 245----------------- 246locale='en-US-u-islamCal' 247disp_locale=en : display_variant= 248disp_locale=fr : display_variant= 249disp_locale=de : display_variant= 250----------------- 251locale='zh-CN-a-myExt-x-private' 252disp_locale=en : display_variant= 253disp_locale=fr : display_variant= 254disp_locale=de : display_variant= 255----------------- 256locale='en-a-myExt-b-another' 257disp_locale=en : display_variant=(MYEXT_B_ANOTHER)? 258disp_locale=fr : display_variant=(MYEXT_B_ANOTHER)? 259disp_locale=de : display_variant=(MYEXT_B_ANOTHER)? 260----------------- 261locale='de-419-DE' 262disp_locale=en : display_variant=DE 263disp_locale=fr : display_variant=DE 264disp_locale=de : display_variant=DE 265----------------- 266locale='a-DE' 267disp_locale=en : display_variant= 268disp_locale=fr : display_variant= 269disp_locale=de : display_variant= 270----------------- 271locale='ar-a-aaa-b-bbb-a-ccc' 272disp_locale=en : display_variant=(AAA_B_BBB_A_CCC)? 273disp_locale=fr : display_variant=(AAA_B_BBB_A_CCC)? 274disp_locale=de : display_variant=(AAA_B_BBB_A_CCC)? 275----------------- 276