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_X_PRIVATE)?, a=myext, Private-Use=private#
321disp_locale=fr :  display_name=chinois #Chine(, A_MYEXT_X_PRIVATE)?, a=myext, usage privé=private#
322disp_locale=de :  display_name=Chinesisch #China(, A_MYEXT_X_PRIVATE)?, a=myext, Privatnutzung=private#
323-----------------
324locale='en-a-myExt-b-another'
325disp_locale=en :  display_name=English #(A_MYEXT_B_ANOTHER, )?a=myext, b=another#
326disp_locale=fr :  display_name=anglais #(A_MYEXT_B_ANOTHER, )?a=myext, b=another#
327disp_locale=de :  display_name=Englisch #(A_MYEXT_B_ANOTHER, )?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_A_CCC, )?a=aaa, b=bbb#
341disp_locale=fr :  display_name=arabe #(A_AAA_B_BBB_A_CCC, )?a=aaa, b=bbb#
342disp_locale=de :  display_name=Arabisch #(A_AAA_B_BBB_A_CCC, )?a=aaa, b=bbb#
343-----------------
344