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