1--TEST--
2locale_get_display_variant() icu >= 4.8
3--EXTENSIONS--
4intl
5--FILE--
6<?php
7
8/*
9 * Try getting the display_variant for different locales
10 * with Procedural and Object methods.
11 */
12
13function ut_main()
14{
15    $res_str = '';
16
17    $disp_locales=array('en','fr','de');
18
19    $locales = array(
20        'uk-ua_CALIFORNIA@currency=;currency=GRN',
21        'root',
22        'uk@currency=EURO',
23        'Hindi',
24//Simple language subtag
25        'de',
26        'fr',
27        'ja',
28        'i-enochian', //(example of a grandfathered tag)
29//Language subtag plus Script subtag:
30        'zh-Hant',
31        'zh-Hans',
32        'sr-Cyrl',
33        'sr-Latn',
34//Language-Script-Region
35        'zh-Hans-CN',
36        'sr-Latn-CS',
37//Language-Variant
38        'sl-rozaj',
39        'sl-nedis',
40//Language-Region-Variant
41        'de-CH-1901',
42        'sl-IT-nedis',
43//Language-Script-Region-Variant
44        'sl-Latn-IT-nedis',
45//Language-Region:
46        'de-DE',
47        'en-US',
48        'es-419',
49//Private use subtags:
50        'de-CH-x-phonebk',
51        'az-Arab-x-AZE-derbend',
52//Extended language subtags
53        'zh-min',
54        'zh-min-nan-Hant-CN',
55//Private use registry values
56        'x-whatever',
57        'qaa-Qaaa-QM-x-southern',
58        'sr-Latn-QM',
59        'sr-Qaaa-CS',
60/*Tags that use extensions (examples ONLY: extensions MUST be defined
61   by revision or update to this document or by RFC): */
62        'en-US-u-islamCal',
63        'zh-CN-a-myExt-x-private',
64        'en-a-myExt-b-another',
65//Some Invalid Tags:
66        'de-419-DE',
67        'a-DE',
68        'ar-a-aaa-b-bbb-a-ccc'
69    );
70
71
72    $res_str = '';
73
74    foreach( $locales as $locale )
75    {
76        $res_str .= "locale='$locale'\n";
77        foreach( $disp_locales as $disp_locale )
78        {
79            $scr = ut_loc_get_display_variant( $locale ,$disp_locale );
80            $res_str .= "disp_locale=$disp_locale :  display_variant=$scr";
81            $res_str .= "\n";
82        }
83        $res_str .= "-----------------\n";
84    }
85
86    return $res_str;
87
88}
89
90include_once( 'ut_common.inc' );
91ut_run();
92
93?>
94--EXPECTREGEX--
95locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
96disp_locale=en :  display_variant=CALIFORNIA
97disp_locale=fr :  display_variant=CALIFORNIA
98disp_locale=de :  display_variant=CALIFORNIA
99-----------------
100locale='root'
101disp_locale=en :  display_variant=
102disp_locale=fr :  display_variant=
103disp_locale=de :  display_variant=
104-----------------
105locale='uk@currency=EURO'
106disp_locale=en :  display_variant=
107disp_locale=fr :  display_variant=
108disp_locale=de :  display_variant=
109-----------------
110locale='Hindi'
111disp_locale=en :  display_variant=
112disp_locale=fr :  display_variant=
113disp_locale=de :  display_variant=
114-----------------
115locale='de'
116disp_locale=en :  display_variant=
117disp_locale=fr :  display_variant=
118disp_locale=de :  display_variant=
119-----------------
120locale='fr'
121disp_locale=en :  display_variant=
122disp_locale=fr :  display_variant=
123disp_locale=de :  display_variant=
124-----------------
125locale='ja'
126disp_locale=en :  display_variant=
127disp_locale=fr :  display_variant=
128disp_locale=de :  display_variant=
129-----------------
130locale='i-enochian'
131disp_locale=en :  display_variant=
132disp_locale=fr :  display_variant=
133disp_locale=de :  display_variant=
134-----------------
135locale='zh-Hant'
136disp_locale=en :  display_variant=
137disp_locale=fr :  display_variant=
138disp_locale=de :  display_variant=
139-----------------
140locale='zh-Hans'
141disp_locale=en :  display_variant=
142disp_locale=fr :  display_variant=
143disp_locale=de :  display_variant=
144-----------------
145locale='sr-Cyrl'
146disp_locale=en :  display_variant=
147disp_locale=fr :  display_variant=
148disp_locale=de :  display_variant=
149-----------------
150locale='sr-Latn'
151disp_locale=en :  display_variant=
152disp_locale=fr :  display_variant=
153disp_locale=de :  display_variant=
154-----------------
155locale='zh-Hans-CN'
156disp_locale=en :  display_variant=
157disp_locale=fr :  display_variant=
158disp_locale=de :  display_variant=
159-----------------
160locale='sr-Latn-CS'
161disp_locale=en :  display_variant=
162disp_locale=fr :  display_variant=
163disp_locale=de :  display_variant=
164-----------------
165locale='sl-rozaj'
166disp_locale=en :  display_variant=Resian
167disp_locale=fr :  display_variant=dialecte de Resia
168disp_locale=de :  display_variant=Resianisch
169-----------------
170locale='sl-nedis'
171disp_locale=en :  display_variant=Natisone dialect
172disp_locale=fr :  display_variant=dialecte de Natisone
173disp_locale=de :  display_variant=Natisone-Dialekt
174-----------------
175locale='de-CH-1901'
176disp_locale=en :  display_variant=Traditional German orthography
177disp_locale=fr :  display_variant=orthographe allemande traditionnelle
178disp_locale=de :  display_variant=(1901|[Aa]lte deutsche Rechtschreibung)
179-----------------
180locale='sl-IT-nedis'
181disp_locale=en :  display_variant=Natisone dialect
182disp_locale=fr :  display_variant=dialecte de Natisone
183disp_locale=de :  display_variant=(NEDIS|Natisone-Dialekt)
184-----------------
185locale='sl-Latn-IT-nedis'
186disp_locale=en :  display_variant=Natisone dialect
187disp_locale=fr :  display_variant=dialecte de Natisone
188disp_locale=de :  display_variant=(NEDIS|Natisone-Dialekt)
189-----------------
190locale='de-DE'
191disp_locale=en :  display_variant=
192disp_locale=fr :  display_variant=
193disp_locale=de :  display_variant=
194-----------------
195locale='en-US'
196disp_locale=en :  display_variant=
197disp_locale=fr :  display_variant=
198disp_locale=de :  display_variant=
199-----------------
200locale='es-419'
201disp_locale=en :  display_variant=
202disp_locale=fr :  display_variant=
203disp_locale=de :  display_variant=
204-----------------
205locale='de-CH-x-phonebk'
206disp_locale=en :  display_variant=
207disp_locale=fr :  display_variant=
208disp_locale=de :  display_variant=
209-----------------
210locale='az-Arab-x-AZE-derbend'
211disp_locale=en :  display_variant=(AZE_DERBEND)?
212disp_locale=fr :  display_variant=(AZE_DERBEND)?
213disp_locale=de :  display_variant=(AZE_DERBEND)?
214-----------------
215locale='zh-min'
216disp_locale=en :  display_variant=
217disp_locale=fr :  display_variant=
218disp_locale=de :  display_variant=
219-----------------
220locale='zh-min-nan-Hant-CN'
221disp_locale=en :  display_variant=NAN_HANT_CN
222disp_locale=fr :  display_variant=NAN_HANT_CN
223disp_locale=de :  display_variant=NAN_HANT_CN
224-----------------
225locale='x-whatever'
226disp_locale=en :  display_variant=
227disp_locale=fr :  display_variant=
228disp_locale=de :  display_variant=
229-----------------
230locale='qaa-Qaaa-QM-x-southern'
231disp_locale=en :  display_variant=
232disp_locale=fr :  display_variant=
233disp_locale=de :  display_variant=
234-----------------
235locale='sr-Latn-QM'
236disp_locale=en :  display_variant=
237disp_locale=fr :  display_variant=
238disp_locale=de :  display_variant=
239-----------------
240locale='sr-Qaaa-CS'
241disp_locale=en :  display_variant=
242disp_locale=fr :  display_variant=
243disp_locale=de :  display_variant=
244-----------------
245locale='en-US-u-islamCal'
246disp_locale=en :  display_variant=
247disp_locale=fr :  display_variant=
248disp_locale=de :  display_variant=
249-----------------
250locale='zh-CN-a-myExt-x-private'
251disp_locale=en :  display_variant=(A_MYEXT_X_PRIVATE)?
252disp_locale=fr :  display_variant=(A_MYEXT_X_PRIVATE)?
253disp_locale=de :  display_variant=(A_MYEXT_X_PRIVATE)?
254-----------------
255locale='en-a-myExt-b-another'
256disp_locale=en :  display_variant=((A_)?MYEXT_B_ANOTHER)?
257disp_locale=fr :  display_variant=((A_)?MYEXT_B_ANOTHER)?
258disp_locale=de :  display_variant=((A_)?MYEXT_B_ANOTHER)?
259-----------------
260locale='de-419-DE'
261disp_locale=en :  display_variant=DE
262disp_locale=fr :  display_variant=DE
263disp_locale=de :  display_variant=DE
264-----------------
265locale='a-DE'
266disp_locale=en :  display_variant=
267disp_locale=fr :  display_variant=
268disp_locale=de :  display_variant=
269-----------------
270locale='ar-a-aaa-b-bbb-a-ccc'
271disp_locale=en :  display_variant=((A_)?AAA_B_BBB_A_CCC)?
272disp_locale=fr :  display_variant=((A_)?AAA_B_BBB_A_CCC)?
273disp_locale=de :  display_variant=((A_)?AAA_B_BBB_A_CCC)?
274-----------------
275