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