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