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