1--TEST--
2locale_get_display_language() 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_language 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        'uk-ua_CALIFORNIA@currency=;currency=GRN',
23        'root',
24        'uk@currency=EURO',
25        'Hindi',
26//Simple language subtag
27        'de',
28        'fr',
29        'ja',
30        'i-enochian', //(example of a grandfathered tag)
31        'art-lojban', //(example of a grandfathered tag)
32//Language subtag plus Script subtag:
33        'zh-Hant',
34        'zh-Hans',
35        'sr-Cyrl',
36        'sr-Latn',
37//Language-Script-Region
38        'zh-Hans-CN',
39        'sr-Latn-CS',
40//Language-Variant
41        'sl-rozaj',
42        'sl-nedis',
43//Language-Region-Variant
44        'de-CH-1901',
45        'sl-IT-nedis',
46//Language-Script-Region-Variant
47        'sl-Latn-IT-nedis',
48//Language-Region:
49        'de-DE',
50        'en-US',
51        'es-419',
52//Private use subtags:
53        'de-CH-x-phonebk',
54        'az-Arab-x-AZE-derbend',
55//Extended language subtags
56        'zh-min',
57        'zh-min-nan-Hant-CN',
58//Private use registry values
59        'x-whatever',
60        'qaa-Qaaa-QM-x-southern',
61        'sr-Latn-QM',
62        'sr-Qaaa-CS',
63/*Tags that use extensions (examples ONLY: extensions MUST be defined
64   by revision or update to this document or by RFC): */
65        'en-US-u-islamCal',
66        'zh-CN-a-myExt-x-private',
67        'en-a-myExt-b-another',
68//Some Invalid Tags:
69        'de-419-DE',
70        'a-DE',
71        'ar-a-aaa-b-bbb-a-ccc'
72    );
73
74
75    $res_str = '';
76
77    foreach( $locales as $locale )
78    {
79        $res_str .= "locale='$locale'\n";
80        foreach( $disp_locales as $disp_locale )
81        {
82            $scr = ut_loc_get_display_language( $locale ,$disp_locale );
83            $res_str .= "disp_locale=$disp_locale :  display_language=$scr";
84            $res_str .= "\n";
85        }
86        $res_str .= "-----------------\n";
87    }
88
89    return $res_str;
90
91}
92
93include_once( 'ut_common.inc' );
94ut_run();
95
96?>
97--EXPECTREGEX--
98locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
99disp_locale=en :  display_language=Ukrainian
100disp_locale=fr :  display_language=ukrainien
101disp_locale=de :  display_language=Ukrainisch
102-----------------
103locale='root'
104disp_locale=en :  display_language=(Root|Unknown language)
105disp_locale=fr :  display_language=(racine|langue indéterminée)
106disp_locale=de :  display_language=([rR]oot|Unbekannte Sprache)
107-----------------
108locale='uk@currency=EURO'
109disp_locale=en :  display_language=Ukrainian
110disp_locale=fr :  display_language=ukrainien
111disp_locale=de :  display_language=Ukrainisch
112-----------------
113locale='Hindi'
114disp_locale=en :  display_language=hindi
115disp_locale=fr :  display_language=hindi
116disp_locale=de :  display_language=hindi
117-----------------
118locale='de'
119disp_locale=en :  display_language=German
120disp_locale=fr :  display_language=allemand
121disp_locale=de :  display_language=Deutsch
122-----------------
123locale='fr'
124disp_locale=en :  display_language=French
125disp_locale=fr :  display_language=français
126disp_locale=de :  display_language=Französisch
127-----------------
128locale='ja'
129disp_locale=en :  display_language=Japanese
130disp_locale=fr :  display_language=japonais
131disp_locale=de :  display_language=Japanisch
132-----------------
133locale='i-enochian'
134disp_locale=en :  display_language=i-enochian
135disp_locale=fr :  display_language=i-enochian
136disp_locale=de :  display_language=i-enochian
137-----------------
138locale='art-lojban'
139disp_locale=en :  display_language=Lojban
140disp_locale=fr :  display_language=lojban
141disp_locale=de :  display_language=Lojban
142-----------------
143locale='zh-Hant'
144disp_locale=en :  display_language=Chinese
145disp_locale=fr :  display_language=chinois
146disp_locale=de :  display_language=Chinesisch
147-----------------
148locale='zh-Hans'
149disp_locale=en :  display_language=Chinese
150disp_locale=fr :  display_language=chinois
151disp_locale=de :  display_language=Chinesisch
152-----------------
153locale='sr-Cyrl'
154disp_locale=en :  display_language=Serbian
155disp_locale=fr :  display_language=serbe
156disp_locale=de :  display_language=Serbisch
157-----------------
158locale='sr-Latn'
159disp_locale=en :  display_language=Serbian
160disp_locale=fr :  display_language=serbe
161disp_locale=de :  display_language=Serbisch
162-----------------
163locale='zh-Hans-CN'
164disp_locale=en :  display_language=Chinese
165disp_locale=fr :  display_language=chinois
166disp_locale=de :  display_language=Chinesisch
167-----------------
168locale='sr-Latn-CS'
169disp_locale=en :  display_language=Serbian
170disp_locale=fr :  display_language=serbe
171disp_locale=de :  display_language=Serbisch
172-----------------
173locale='sl-rozaj'
174disp_locale=en :  display_language=Slovenian
175disp_locale=fr :  display_language=slovène
176disp_locale=de :  display_language=Slowenisch
177-----------------
178locale='sl-nedis'
179disp_locale=en :  display_language=Slovenian
180disp_locale=fr :  display_language=slovène
181disp_locale=de :  display_language=Slowenisch
182-----------------
183locale='de-CH-1901'
184disp_locale=en :  display_language=German
185disp_locale=fr :  display_language=allemand
186disp_locale=de :  display_language=Deutsch
187-----------------
188locale='sl-IT-nedis'
189disp_locale=en :  display_language=Slovenian
190disp_locale=fr :  display_language=slovène
191disp_locale=de :  display_language=Slowenisch
192-----------------
193locale='sl-Latn-IT-nedis'
194disp_locale=en :  display_language=Slovenian
195disp_locale=fr :  display_language=slovène
196disp_locale=de :  display_language=Slowenisch
197-----------------
198locale='de-DE'
199disp_locale=en :  display_language=German
200disp_locale=fr :  display_language=allemand
201disp_locale=de :  display_language=Deutsch
202-----------------
203locale='en-US'
204disp_locale=en :  display_language=English
205disp_locale=fr :  display_language=anglais
206disp_locale=de :  display_language=Englisch
207-----------------
208locale='es-419'
209disp_locale=en :  display_language=Spanish
210disp_locale=fr :  display_language=espagnol
211disp_locale=de :  display_language=Spanisch
212-----------------
213locale='de-CH-x-phonebk'
214disp_locale=en :  display_language=German
215disp_locale=fr :  display_language=allemand
216disp_locale=de :  display_language=Deutsch
217-----------------
218locale='az-Arab-x-AZE-derbend'
219disp_locale=en :  display_language=Azerbaijani
220disp_locale=fr :  display_language=azéri
221disp_locale=de :  display_language=Aserbaidschanisch
222-----------------
223locale='zh-min'
224disp_locale=en :  display_language=Chinese
225disp_locale=fr :  display_language=chinois
226disp_locale=de :  display_language=Chinesisch
227-----------------
228locale='zh-min-nan-Hant-CN'
229disp_locale=en :  display_language=Chinese
230disp_locale=fr :  display_language=chinois
231disp_locale=de :  display_language=Chinesisch
232-----------------
233locale='x-whatever'
234disp_locale=en :  display_language=x-whatever
235disp_locale=fr :  display_language=x-whatever
236disp_locale=de :  display_language=x-whatever
237-----------------
238locale='qaa-Qaaa-QM-x-southern'
239disp_locale=en :  display_language=qaa
240disp_locale=fr :  display_language=qaa
241disp_locale=de :  display_language=qaa
242-----------------
243locale='sr-Latn-QM'
244disp_locale=en :  display_language=Serbian
245disp_locale=fr :  display_language=serbe
246disp_locale=de :  display_language=Serbisch
247-----------------
248locale='sr-Qaaa-CS'
249disp_locale=en :  display_language=Serbian
250disp_locale=fr :  display_language=serbe
251disp_locale=de :  display_language=Serbisch
252-----------------
253locale='en-US-u-islamCal'
254disp_locale=en :  display_language=English
255disp_locale=fr :  display_language=anglais
256disp_locale=de :  display_language=Englisch
257-----------------
258locale='zh-CN-a-myExt-x-private'
259disp_locale=en :  display_language=Chinese
260disp_locale=fr :  display_language=chinois
261disp_locale=de :  display_language=Chinesisch
262-----------------
263locale='en-a-myExt-b-another'
264disp_locale=en :  display_language=English
265disp_locale=fr :  display_language=anglais
266disp_locale=de :  display_language=Englisch
267-----------------
268locale='de-419-DE'
269disp_locale=en :  display_language=German
270disp_locale=fr :  display_language=allemand
271disp_locale=de :  display_language=Deutsch
272-----------------
273locale='a-DE'
274disp_locale=en :  display_language=a
275disp_locale=fr :  display_language=a
276disp_locale=de :  display_language=a
277-----------------
278locale='ar-a-aaa-b-bbb-a-ccc'
279disp_locale=en :  display_language=Arabic
280disp_locale=fr :  display_language=arabe
281disp_locale=de :  display_language=Arabisch
282-----------------
283