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