1--TEST-- 2locale_get_display_name() icu >= 65.0 && icu < 68.1 3--EXTENSIONS-- 4intl 5--SKIPIF-- 6<?php if (version_compare(INTL_ICU_VERSION, '65.0') < 0) die('skip for ICU >= 65.0'); ?> 7<?php if (version_compare(INTL_ICU_VERSION, '68.1') >= 0) die('skip for ICU < 68.1'); ?> 8--FILE-- 9<?php 10 11/* 12 * Try getting the display_name for different locales 13 * with Procedural and Object methods. 14 */ 15 16function ut_main() 17{ 18 $res_str=''; 19 20 $disp_locales=array('en','fr','de'); 21 22 $locales = array( 23 'sl_IT_nedis_KIRTI', 24 'sl_IT_nedis-a-kirti-x-xyz', 25 'sl_IT_rozaj', 26 'sl_IT_NEDIS_ROJAZ_1901', 27 'i-enochian', 28 'zh-hakka', 29 'zh-wuu', 30 'i-tay', 31 'sgn-BE-nl', 32 'sgn-CH-de', 33 'sl_IT_rozaj@currency=EUR', 34 'uk-ua_CALIFORNIA@currency=;currency=GRN', 35 'root', 36 'uk@currency=EURO', 37 'Hindi', 38//Simple language subtag 39 'de', 40 'fr', 41 'ja', 42 'i-enochian', //(example of a grandfathered tag) 43//Language subtag plus Script subtag: 44 'zh-Hant', 45 'zh-Hans', 46 'sr-Cyrl', 47 'sr-Latn', 48//Language-Script-Region 49 'zh-Hans-CN', 50 'sr-Latn-CS', 51//Language-Variant 52 'sl-rozaj', 53 'sl-nedis', 54//Language-Region-Variant 55 'de-CH-1901', 56 'sl-IT-nedis', 57//Language-Script-Region-Variant 58 'sl-Latn-IT-nedis', 59//Language-Region: 60 'de-DE', 61 'en-US', 62 'es-419', 63//Private use subtags: 64 'de-CH-x-phonebk', 65 'az-Arab-x-AZE-derbend', 66//Extended language subtags 67 'zh-min', 68 'zh-min-nan-Hant-CN', 69//Private use registry values 70 'x-whatever', 71 'qaa-Qaaa-QM-x-southern', 72 'sr-Latn-QM', 73 'sr-Qaaa-CS', 74/*Tags that use extensions (examples ONLY: extensions MUST be defined 75 by revision or update to this document or by RFC): */ 76 'en-US-u-islamCal', 77 'zh-CN-a-myExt-x-private', 78 'en-a-myExt-b-another', 79//Some Invalid Tags: 80 'de-419-DE', 81 'a-DE', 82 'ar-a-aaa-b-bbb-a-ccc' 83 ); 84 85 86 $res_str = ''; 87 88 foreach( $locales as $locale ) 89 { 90 $res_str .= "locale='$locale'\n"; 91 foreach( $disp_locales as $disp_locale ) 92 { 93 $scr = ut_loc_get_display_name( $locale ,$disp_locale ); 94 $scr = str_replace(array('(', ')'), '#', $scr); 95 $res_str .= "disp_locale=$disp_locale : display_name=$scr"; 96 $res_str .= "\n"; 97 } 98 $res_str .= "-----------------\n"; 99 } 100 101 return $res_str; 102 103} 104 105include_once( 'ut_common.inc' ); 106ut_run(); 107 108?> 109--EXPECTREGEX-- 110locale='sl_IT_nedis_KIRTI' 111disp_locale=en : display_name=Slovenian #Italy, NEDIS_KIRTI# 112disp_locale=fr : display_name=slovène #Italie, NEDIS_KIRTI# 113disp_locale=de : display_name=Slowenisch #Italien, NEDIS_KIRTI# 114----------------- 115locale='sl_IT_nedis-a-kirti-x-xyz' 116disp_locale=en : display_name=Slovenian #Italy, NEDIS_A_KIRTI_X_XYZ# 117disp_locale=fr : display_name=slovène #Italie, NEDIS_A_KIRTI_X_XYZ# 118disp_locale=de : display_name=Slowenisch #Italien, NEDIS_A_KIRTI_X_XYZ# 119----------------- 120locale='sl_IT_rozaj' 121disp_locale=en : display_name=Slovenian #Italy, Resian# 122disp_locale=fr : display_name=slovène #Italie, dialecte de Resia# 123disp_locale=de : display_name=Slowenisch #Italien, (ROZAJ|Resianisch)# 124----------------- 125locale='sl_IT_NEDIS_ROJAZ_1901' 126disp_locale=en : display_name=Slovenian #Italy, NEDIS_ROJAZ_1901# 127disp_locale=fr : display_name=slovène #Italie, NEDIS_ROJAZ_1901# 128disp_locale=de : display_name=Slowenisch #Italien, NEDIS_ROJAZ_1901# 129----------------- 130locale='i-enochian' 131disp_locale=en : display_name=i-enochian #Private-Use=i-enochian# 132disp_locale=fr : display_name=i-enochian #usage privé=i-enochian# 133disp_locale=de : display_name=i-enochian #Privatnutzung=i-enochian# 134----------------- 135locale='zh-hakka' 136disp_locale=en : display_name=Chinese( #HAKKA#)? 137disp_locale=fr : display_name=chinois( #HAKKA#)? 138disp_locale=de : display_name=Chinesisch( #HAKKA#)? 139----------------- 140locale='zh-wuu' 141disp_locale=en : display_name=Chinese #WUU# 142disp_locale=fr : display_name=chinois #WUU# 143disp_locale=de : display_name=Chinesisch #WUU# 144----------------- 145locale='i-tay' 146disp_locale=en : display_name=i-tay 147disp_locale=fr : display_name=i-tay 148disp_locale=de : display_name=i-tay 149----------------- 150locale='sgn-BE-nl' 151disp_locale=en : display_name=sgn #Belgium, NL# 152disp_locale=fr : display_name=sgn #Belgique, NL# 153disp_locale=de : display_name=sgn #Belgien, NL# 154----------------- 155locale='sgn-CH-de' 156disp_locale=en : display_name=sgn #Switzerland, DE# 157disp_locale=fr : display_name=sgn #Suisse, DE# 158disp_locale=de : display_name=sgn #Schweiz, DE# 159----------------- 160locale='sl_IT_rozaj@currency=EUR' 161disp_locale=en : display_name=Slovenian #Italy, Resian, [Cc]urrency=Euro# 162disp_locale=fr : display_name=slovène #Italie, dialecte de Resia, [Dd]evise=euro# 163disp_locale=de : display_name=Slowenisch #Italien, (ROZAJ|Resianisch), Währung=Euro# 164----------------- 165locale='uk-ua_CALIFORNIA@currency=;currency=GRN' 166disp_locale=en : display_name= 167disp_locale=fr : display_name= 168disp_locale=de : display_name= 169----------------- 170locale='root' 171disp_locale=en : display_name=Unknown language 172disp_locale=fr : display_name=langue indéterminée 173disp_locale=de : display_name=Unbekannte Sprache 174----------------- 175locale='uk@currency=EURO' 176disp_locale=en : display_name=Ukrainian #[Cc]urrency=EURO# 177disp_locale=fr : display_name=ukrainien #[Dd]evise=EURO# 178disp_locale=de : display_name=Ukrainisch #Währung=EURO# 179----------------- 180locale='Hindi' 181disp_locale=en : display_name=hindi 182disp_locale=fr : display_name=hindi 183disp_locale=de : display_name=hindi 184----------------- 185locale='de' 186disp_locale=en : display_name=German 187disp_locale=fr : display_name=allemand 188disp_locale=de : display_name=Deutsch 189----------------- 190locale='fr' 191disp_locale=en : display_name=French 192disp_locale=fr : display_name=français 193disp_locale=de : display_name=Französisch 194----------------- 195locale='ja' 196disp_locale=en : display_name=Japanese 197disp_locale=fr : display_name=japonais 198disp_locale=de : display_name=Japanisch 199----------------- 200locale='i-enochian' 201disp_locale=en : display_name=i-enochian #Private-Use=i-enochian# 202disp_locale=fr : display_name=i-enochian #usage privé=i-enochian# 203disp_locale=de : display_name=i-enochian #Privatnutzung=i-enochian# 204----------------- 205locale='zh-Hant' 206disp_locale=en : display_name=Chinese #Traditional# 207disp_locale=fr : display_name=chinois #traditionnel# 208disp_locale=de : display_name=Chinesisch #Traditionell# 209----------------- 210locale='zh-Hans' 211disp_locale=en : display_name=Chinese #Simplified# 212disp_locale=fr : display_name=chinois #simplifié# 213disp_locale=de : display_name=Chinesisch #Vereinfacht# 214----------------- 215locale='sr-Cyrl' 216disp_locale=en : display_name=Serbian #Cyrillic# 217disp_locale=fr : display_name=serbe #cyrillique# 218disp_locale=de : display_name=Serbisch #Kyrillisch# 219----------------- 220locale='sr-Latn' 221disp_locale=en : display_name=Serbian #Latin# 222disp_locale=fr : display_name=serbe #latin# 223disp_locale=de : display_name=Serbisch #Lateinisch# 224----------------- 225locale='zh-Hans-CN' 226disp_locale=en : display_name=Chinese #Simplified, China# 227disp_locale=fr : display_name=chinois #simplifié, Chine# 228disp_locale=de : display_name=Chinesisch #Vereinfacht, China# 229----------------- 230locale='sr-Latn-CS' 231disp_locale=en : display_name=Serbian #Latin, Serbia# 232disp_locale=fr : display_name=serbe #latin, Serbie# 233disp_locale=de : display_name=Serbisch #Lateinisch, Serbien# 234----------------- 235locale='sl-rozaj' 236disp_locale=en : display_name=Slovenian #Resian# 237disp_locale=fr : display_name=slovène #dialecte de Resia# 238disp_locale=de : display_name=Slowenisch( #(ROZAJ|Resianisch)#)? 239----------------- 240locale='sl-nedis' 241disp_locale=en : display_name=Slovenian #Natisone dialect# 242disp_locale=fr : display_name=slovène #dialecte de Natisone# 243disp_locale=de : display_name=Slowenisch #Natisone-Dialekt# 244----------------- 245locale='de-CH-1901' 246disp_locale=en : display_name=German #Switzerland, Traditional German orthography# 247disp_locale=fr : display_name=allemand #Suisse, orthographe allemande traditionnelle# 248disp_locale=de : display_name=Deutsch #Schweiz, (1901|[aA]lte deutsche Rechtschreibung)# 249----------------- 250locale='sl-IT-nedis' 251disp_locale=en : display_name=Slovenian #Italy, Natisone dialect# 252disp_locale=fr : display_name=slovène #Italie, dialecte de Natisone# 253disp_locale=de : display_name=Slowenisch #Italien, (NEDIS|Natisone-Dialekt)# 254----------------- 255locale='sl-Latn-IT-nedis' 256disp_locale=en : display_name=Slovenian #Latin, Italy, Natisone dialect# 257disp_locale=fr : display_name=slovène #latin, Italie, dialecte de Natisone# 258disp_locale=de : display_name=Slowenisch #Lateinisch, Italien, (NEDIS|Natisone-Dialekt)# 259----------------- 260locale='de-DE' 261disp_locale=en : display_name=German #Germany# 262disp_locale=fr : display_name=allemand #Allemagne# 263disp_locale=de : display_name=Deutsch #Deutschland# 264----------------- 265locale='en-US' 266disp_locale=en : display_name=English #United States# 267disp_locale=fr : display_name=anglais #États-Unis# 268disp_locale=de : display_name=Englisch #Vereinigte Staaten# 269----------------- 270locale='es-419' 271disp_locale=en : display_name=Spanish #Latin America# 272disp_locale=fr : display_name=espagnol #Amérique latine# 273disp_locale=de : display_name=Spanisch #Lateinamerika# 274----------------- 275locale='de-CH-x-phonebk' 276disp_locale=en : display_name=German #Switzerland, Private-Use=phonebk# 277disp_locale=fr : display_name=allemand #Suisse, usage privé=phonebk# 278disp_locale=de : display_name=Deutsch #Schweiz, Privatnutzung=phonebk# 279----------------- 280locale='az-Arab-x-AZE-derbend' 281disp_locale=en : display_name=Azerbaijani #Arabic, Private-Use=aze-derbend# 282disp_locale=fr : display_name=azéri #arabe, usage privé=aze-derbend# 283disp_locale=de : display_name=Aserbaidschanisch #Arabisch, Privatnutzung=aze-derbend# 284----------------- 285locale='zh-min' 286disp_locale=en : display_name=Chinese #MIN# 287disp_locale=fr : display_name=chinois #MIN# 288disp_locale=de : display_name=Chinesisch #MIN# 289----------------- 290locale='zh-min-nan-Hant-CN' 291disp_locale=en : display_name=Chinese #MIN, NAN_HANT_CN# 292disp_locale=fr : display_name=chinois #MIN, NAN_HANT_CN# 293disp_locale=de : display_name=Chinesisch #MIN, NAN_HANT_CN# 294----------------- 295locale='x-whatever' 296disp_locale=en : display_name=x-whatever #Private-Use=whatever# 297disp_locale=fr : display_name=x-whatever #usage privé=whatever# 298disp_locale=de : display_name=x-whatever #Privatnutzung=whatever# 299----------------- 300locale='qaa-Qaaa-QM-x-southern' 301disp_locale=en : display_name=qaa #Qaaa, QM, Private-Use=southern# 302disp_locale=fr : display_name=qaa #Qaaa, QM, usage privé=southern# 303disp_locale=de : display_name=qaa #Qaaa, QM, Privatnutzung=southern# 304----------------- 305locale='sr-Latn-QM' 306disp_locale=en : display_name=Serbian #Latin, QM# 307disp_locale=fr : display_name=serbe #latin, QM# 308disp_locale=de : display_name=Serbisch #Lateinisch, QM# 309----------------- 310locale='sr-Qaaa-CS' 311disp_locale=en : display_name=Serbian #Qaaa, Serbia# 312disp_locale=fr : display_name=serbe #Qaaa, Serbie# 313disp_locale=de : display_name=Serbisch #Qaaa, Serbien# 314----------------- 315locale='en-US-u-islamCal' 316disp_locale=en : display_name=English #United States, attribute=islamcal# 317disp_locale=fr : display_name=anglais #États-Unis, attribute=islamcal# 318disp_locale=de : display_name=Englisch #Vereinigte Staaten, attribute=islamcal# 319----------------- 320locale='zh-CN-a-myExt-x-private' 321disp_locale=en : display_name=Chinese #China, a=myext, Private-Use=private# 322disp_locale=fr : display_name=chinois #Chine, a=myext, usage privé=private# 323disp_locale=de : display_name=Chinesisch #China, a=myext, Privatnutzung=private# 324----------------- 325locale='en-a-myExt-b-another' 326disp_locale=en : display_name=English #a=myext, b=another# 327disp_locale=fr : display_name=anglais #a=myext, b=another# 328disp_locale=de : display_name=Englisch #a=myext, b=another# 329----------------- 330locale='de-419-DE' 331disp_locale=en : display_name=German #Latin America, DE# 332disp_locale=fr : display_name=allemand #Amérique latine, DE# 333disp_locale=de : display_name=Deutsch #Lateinamerika, DE# 334----------------- 335locale='a-DE' 336disp_locale=en : display_name=a #Germany# 337disp_locale=fr : display_name=a #Allemagne# 338disp_locale=de : display_name=a #Deutschland# 339----------------- 340locale='ar-a-aaa-b-bbb-a-ccc' 341disp_locale=en : display_name=Arabic #a=aaa, b=bbb# 342disp_locale=fr : display_name=arabe #a=aaa, b=bbb# 343disp_locale=de : display_name=Arabisch #a=aaa, b=bbb# 344----------------- 345