1--TEST--
2locale_get_display_language() for grandfathered and redundant tags
3--EXTENSIONS--
4intl
5--FILE--
6<?php
7
8function ut_main()
9{
10    $res_str = '';
11    $disp_locales = ['en', 'fr', 'de'];
12
13    // This array includes all grandfathered tags, as well as any redundant tags
14    // that have a Preferred-Value.
15    // See: https://www.iana.org/assignments/language-subtag-registry/
16    $locales = [
17        'art-lojban',
18        'cel-gaulish',
19        'en-GB-oed',
20        'i-ami',
21        'i-bnn',
22        'i-default',
23        'i-enochian',
24        'i-hak',
25        'i-klingon',
26        'i-lux',
27        'i-mingo',
28        'i-navajo',
29        'i-pwn',
30        'i-tao',
31        'i-tay',
32        'i-tsu',
33        'no-bok',
34        'no-nyn',
35        'sgn-BE-FR',
36        'sgn-BE-NL',
37        'sgn-BR',
38        'sgn-CH-DE',
39        'sgn-CO',
40        'sgn-DE',
41        'sgn-DK',
42        'sgn-ES',
43        'sgn-FR',
44        'sgn-GB',
45        'sgn-GR',
46        'sgn-IE',
47        'sgn-IT',
48        'sgn-JP',
49        'sgn-MX',
50        'sgn-NI',
51        'sgn-NL',
52        'sgn-NO',
53        'sgn-PT',
54        'sgn-SE',
55        'sgn-US',
56        'sgn-ZA',
57        'zh-cmn',
58        'zh-cmn-Hans',
59        'zh-cmn-Hant',
60        'zh-gan',
61        'zh-guoyu',
62        'zh-hakka',
63        'zh-min',
64        'zh-min-nan',
65        'zh-wuu',
66        'zh-xiang',
67    ];
68
69    foreach ($locales as $locale) {
70        $res_str .= "locale='$locale'\n";
71
72        foreach ($disp_locales as $disp_locale) {
73            $scr = ut_loc_get_display_language($locale, $disp_locale);
74            $res_str .= "disp_locale=$disp_locale :  display_language=$scr";
75            $res_str .= "\n";
76        }
77
78        $res_str .= "-----------------\n";
79    }
80
81    return $res_str;
82}
83
84include_once 'ut_common.inc';
85ut_run();
86
87?>
88--EXPECTREGEX--
89locale='art-lojban'
90disp_locale=en :  display_language=Lojban
91disp_locale=fr :  display_language=lojban
92disp_locale=de :  display_language=Lojban
93-----------------
94locale='cel-gaulish'
95disp_locale=en :  display_language=cel
96disp_locale=fr :  display_language=cel
97disp_locale=de :  display_language=cel
98-----------------
99locale='en-GB-oed'
100disp_locale=en :  display_language=English
101disp_locale=fr :  display_language=anglais
102disp_locale=de :  display_language=Englisch
103-----------------
104locale='i-ami'
105disp_locale=en :  display_language=ami
106disp_locale=fr :  display_language=ami
107disp_locale=de :  display_language=ami
108-----------------
109locale='i-bnn'
110disp_locale=en :  display_language=bnn
111disp_locale=fr :  display_language=bnn
112disp_locale=de :  display_language=bnn
113-----------------
114locale='i-default'
115disp_locale=en :  display_language=i-default
116disp_locale=fr :  display_language=i-default
117disp_locale=de :  display_language=i-default
118-----------------
119locale='i-enochian'
120disp_locale=en :  display_language=i-enochian
121disp_locale=fr :  display_language=i-enochian
122disp_locale=de :  display_language=i-enochian
123-----------------
124locale='i-hak'
125disp_locale=en :  display_language=Hakka Chinese
126disp_locale=fr :  display_language=hakka
127disp_locale=de :  display_language=Hakka
128-----------------
129locale='i-klingon'
130disp_locale=en :  display_language=Klingon
131disp_locale=fr :  display_language=klingon
132disp_locale=de :  display_language=Klingonisch
133-----------------
134locale='i-lux'
135disp_locale=en :  display_language=Luxembourgish
136disp_locale=fr :  display_language=luxembourgeois
137disp_locale=de :  display_language=Luxemburgisch
138-----------------
139locale='i-mingo'
140disp_locale=en :  display_language=i-mingo
141disp_locale=fr :  display_language=i-mingo
142disp_locale=de :  display_language=i-mingo
143-----------------
144locale='i-navajo'
145disp_locale=en :  display_language=Navajo
146disp_locale=fr :  display_language=(navajo|navaho)
147disp_locale=de :  display_language=Navajo
148-----------------
149locale='i-pwn'
150disp_locale=en :  display_language=pwn
151disp_locale=fr :  display_language=pwn
152disp_locale=de :  display_language=pwn
153-----------------
154locale='i-tao'
155disp_locale=en :  display_language=tao
156disp_locale=fr :  display_language=tao
157disp_locale=de :  display_language=tao
158-----------------
159locale='i-tay'
160disp_locale=en :  display_language=tay
161disp_locale=fr :  display_language=tay
162disp_locale=de :  display_language=tay
163-----------------
164locale='i-tsu'
165disp_locale=en :  display_language=tsu
166disp_locale=fr :  display_language=tsu
167disp_locale=de :  display_language=tsu
168-----------------
169locale='no-bok'
170disp_locale=en :  display_language=Norwegian Bokmål
171disp_locale=fr :  display_language=norvégien bokmål
172disp_locale=de :  display_language=Norwegisch \(?Bokmål\)?
173-----------------
174locale='no-nyn'
175disp_locale=en :  display_language=Norwegian Nynorsk
176disp_locale=fr :  display_language=norvégien nynorsk
177disp_locale=de :  display_language=Norwegisch \(?Nynorsk\)?
178-----------------
179locale='sgn-BE-FR'
180disp_locale=en :  display_language=sfb
181disp_locale=fr :  display_language=sfb
182disp_locale=de :  display_language=sfb
183-----------------
184locale='sgn-BE-NL'
185disp_locale=en :  display_language=vgt
186disp_locale=fr :  display_language=vgt
187disp_locale=de :  display_language=vgt
188-----------------
189locale='sgn-BR'
190disp_locale=en :  display_language=bzs
191disp_locale=fr :  display_language=bzs
192disp_locale=de :  display_language=bzs
193-----------------
194locale='sgn-CH-DE'
195disp_locale=en :  display_language=sgg
196disp_locale=fr :  display_language=sgg
197disp_locale=de :  display_language=sgg
198-----------------
199locale='sgn-CO'
200disp_locale=en :  display_language=csn
201disp_locale=fr :  display_language=csn
202disp_locale=de :  display_language=csn
203-----------------
204locale='sgn-DE'
205disp_locale=en :  display_language=gsg
206disp_locale=fr :  display_language=gsg
207disp_locale=de :  display_language=gsg
208-----------------
209locale='sgn-DK'
210disp_locale=en :  display_language=dsl
211disp_locale=fr :  display_language=dsl
212disp_locale=de :  display_language=dsl
213-----------------
214locale='sgn-ES'
215disp_locale=en :  display_language=ssp
216disp_locale=fr :  display_language=ssp
217disp_locale=de :  display_language=ssp
218-----------------
219locale='sgn-FR'
220disp_locale=en :  display_language=fsl
221disp_locale=fr :  display_language=fsl
222disp_locale=de :  display_language=fsl
223-----------------
224locale='sgn-GB'
225disp_locale=en :  display_language=bfi
226disp_locale=fr :  display_language=bfi
227disp_locale=de :  display_language=bfi
228-----------------
229locale='sgn-GR'
230disp_locale=en :  display_language=gss
231disp_locale=fr :  display_language=gss
232disp_locale=de :  display_language=gss
233-----------------
234locale='sgn-IE'
235disp_locale=en :  display_language=isg
236disp_locale=fr :  display_language=isg
237disp_locale=de :  display_language=isg
238-----------------
239locale='sgn-IT'
240disp_locale=en :  display_language=ise
241disp_locale=fr :  display_language=ise
242disp_locale=de :  display_language=ise
243-----------------
244locale='sgn-JP'
245disp_locale=en :  display_language=jsl
246disp_locale=fr :  display_language=jsl
247disp_locale=de :  display_language=jsl
248-----------------
249locale='sgn-MX'
250disp_locale=en :  display_language=mfs
251disp_locale=fr :  display_language=mfs
252disp_locale=de :  display_language=mfs
253-----------------
254locale='sgn-NI'
255disp_locale=en :  display_language=ncs
256disp_locale=fr :  display_language=ncs
257disp_locale=de :  display_language=ncs
258-----------------
259locale='sgn-NL'
260disp_locale=en :  display_language=dse
261disp_locale=fr :  display_language=dse
262disp_locale=de :  display_language=dse
263-----------------
264locale='sgn-NO'
265disp_locale=en :  display_language=nsl
266disp_locale=fr :  display_language=nsl
267disp_locale=de :  display_language=nsl
268-----------------
269locale='sgn-PT'
270disp_locale=en :  display_language=psr
271disp_locale=fr :  display_language=psr
272disp_locale=de :  display_language=psr
273-----------------
274locale='sgn-SE'
275disp_locale=en :  display_language=swl
276disp_locale=fr :  display_language=swl
277disp_locale=de :  display_language=swl
278-----------------
279locale='sgn-US'
280disp_locale=en :  display_language=American Sign Language
281disp_locale=fr :  display_language=langue des signes américaine
282disp_locale=de :  display_language=Amerikanische Gebärdensprache
283-----------------
284locale='sgn-ZA'
285disp_locale=en :  display_language=sfs
286disp_locale=fr :  display_language=sfs
287disp_locale=de :  display_language=sfs
288-----------------
289locale='zh-cmn'
290disp_locale=en :  display_language=(cmn|Chinese)
291disp_locale=fr :  display_language=(cmn|chinois)
292disp_locale=de :  display_language=(cmn|Chinesisch)
293-----------------
294locale='zh-cmn-Hans'
295disp_locale=en :  display_language=(cmn|Chinese)
296disp_locale=fr :  display_language=(cmn|chinois)
297disp_locale=de :  display_language=(cmn|Chinesisch)
298-----------------
299locale='zh-cmn-Hant'
300disp_locale=en :  display_language=(cmn|Chinese)
301disp_locale=fr :  display_language=(cmn|chinois)
302disp_locale=de :  display_language=(cmn|Chinesisch)
303-----------------
304locale='zh-gan'
305disp_locale=en :  display_language=Gan Chinese
306disp_locale=fr :  display_language=gan
307disp_locale=de :  display_language=Gan
308-----------------
309locale='zh-guoyu'
310disp_locale=en :  display_language=(cmn|Chinese)
311disp_locale=fr :  display_language=(cmn|chinois)
312disp_locale=de :  display_language=(cmn|Chinesisch)
313-----------------
314locale='zh-hakka'
315disp_locale=en :  display_language=Hakka Chinese
316disp_locale=fr :  display_language=hakka
317disp_locale=de :  display_language=Hakka
318-----------------
319locale='zh-min'
320disp_locale=en :  display_language=Chinese
321disp_locale=fr :  display_language=chinois
322disp_locale=de :  display_language=Chinesisch
323-----------------
324locale='zh-min-nan'
325disp_locale=en :  display_language=Min Nan Chinese
326disp_locale=fr :  display_language=minnan
327disp_locale=de :  display_language=Min Nan
328-----------------
329locale='zh-wuu'
330disp_locale=en :  display_language=Wu Chinese
331disp_locale=fr :  display_language=wu
332disp_locale=de :  display_language=Wu
333-----------------
334locale='zh-xiang'
335disp_locale=en :  display_language=Xiang Chinese
336disp_locale=fr :  display_language=xiang
337disp_locale=de :  display_language=Xiang
338-----------------
339