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