1--TEST--
2locale_get_display_region() icu >= 4.8 && icu < 51.2
3--SKIPIF--
4<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
5<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?>
6<?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >=  0) die('skip for ICU < 50.1.2'); ?>
7--FILE--
8<?php
9
10/*
11 * Try getting the display_region 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//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_region( $locale ,$disp_locale );
82            $res_str .= "disp_locale=$disp_locale :  display_region=$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_region=Ukraine
99disp_locale=fr :  display_region=Ukraine
100disp_locale=de :  display_region=Ukraine
101-----------------
102locale='root'
103disp_locale=en :  display_region=
104disp_locale=fr :  display_region=
105disp_locale=de :  display_region=
106-----------------
107locale='uk@currency=EURO'
108disp_locale=en :  display_region=
109disp_locale=fr :  display_region=
110disp_locale=de :  display_region=
111-----------------
112locale='Hindi'
113disp_locale=en :  display_region=
114disp_locale=fr :  display_region=
115disp_locale=de :  display_region=
116-----------------
117locale='de'
118disp_locale=en :  display_region=
119disp_locale=fr :  display_region=
120disp_locale=de :  display_region=
121-----------------
122locale='fr'
123disp_locale=en :  display_region=
124disp_locale=fr :  display_region=
125disp_locale=de :  display_region=
126-----------------
127locale='ja'
128disp_locale=en :  display_region=
129disp_locale=fr :  display_region=
130disp_locale=de :  display_region=
131-----------------
132locale='i-enochian'
133disp_locale=en :  display_region=
134disp_locale=fr :  display_region=
135disp_locale=de :  display_region=
136-----------------
137locale='zh-Hant'
138disp_locale=en :  display_region=
139disp_locale=fr :  display_region=
140disp_locale=de :  display_region=
141-----------------
142locale='zh-Hans'
143disp_locale=en :  display_region=
144disp_locale=fr :  display_region=
145disp_locale=de :  display_region=
146-----------------
147locale='sr-Cyrl'
148disp_locale=en :  display_region=
149disp_locale=fr :  display_region=
150disp_locale=de :  display_region=
151-----------------
152locale='sr-Latn'
153disp_locale=en :  display_region=
154disp_locale=fr :  display_region=
155disp_locale=de :  display_region=
156-----------------
157locale='zh-Hans-CN'
158disp_locale=en :  display_region=China
159disp_locale=fr :  display_region=Chine
160disp_locale=de :  display_region=China
161-----------------
162locale='sr-Latn-CS'
163disp_locale=en :  display_region=Serbia [Aa]nd Montenegro
164disp_locale=fr :  display_region=Serbie-et-Monténégro
165disp_locale=de :  display_region=Serbien und Montenegro
166-----------------
167locale='sl-rozaj'
168disp_locale=en :  display_region=(ROZAJ)?
169disp_locale=fr :  display_region=(ROZAJ)?
170disp_locale=de :  display_region=(ROZAJ)?
171-----------------
172locale='sl-nedis'
173disp_locale=en :  display_region=(NEDIS)?
174disp_locale=fr :  display_region=(NEDIS)?
175disp_locale=de :  display_region=(NEDIS)?
176-----------------
177locale='de-CH-1901'
178disp_locale=en :  display_region=Switzerland
179disp_locale=fr :  display_region=Suisse
180disp_locale=de :  display_region=Schweiz
181-----------------
182locale='sl-IT-nedis'
183disp_locale=en :  display_region=Italy
184disp_locale=fr :  display_region=Italie
185disp_locale=de :  display_region=Italien
186-----------------
187locale='sl-Latn-IT-nedis'
188disp_locale=en :  display_region=Italy
189disp_locale=fr :  display_region=Italie
190disp_locale=de :  display_region=Italien
191-----------------
192locale='de-DE'
193disp_locale=en :  display_region=Germany
194disp_locale=fr :  display_region=Allemagne
195disp_locale=de :  display_region=Deutschland
196-----------------
197locale='en-US'
198disp_locale=en :  display_region=United States
199disp_locale=fr :  display_region=États-Unis
200disp_locale=de :  display_region=Vereinigte Staaten
201-----------------
202locale='es-419'
203disp_locale=en :  display_region=Latin America
204disp_locale=fr :  display_region=Amérique latine
205disp_locale=de :  display_region=Lateinamerika
206-----------------
207locale='de-CH-x-phonebk'
208disp_locale=en :  display_region=Switzerland
209disp_locale=fr :  display_region=Suisse
210disp_locale=de :  display_region=Schweiz
211-----------------
212locale='az-Arab-x-AZE-derbend'
213disp_locale=en :  display_region=X?
214disp_locale=fr :  display_region=X?
215disp_locale=de :  display_region=X?
216-----------------
217locale='zh-min'
218disp_locale=en :  display_region=
219disp_locale=fr :  display_region=
220disp_locale=de :  display_region=
221-----------------
222locale='zh-min-nan-Hant-CN'
223disp_locale=en :  display_region=MIN
224disp_locale=fr :  display_region=MIN
225disp_locale=de :  display_region=MIN
226-----------------
227locale='x-whatever'
228disp_locale=en :  display_region=
229disp_locale=fr :  display_region=
230disp_locale=de :  display_region=
231-----------------
232locale='qaa-Qaaa-QM-x-southern'
233disp_locale=en :  display_region=QM
234disp_locale=fr :  display_region=QM
235disp_locale=de :  display_region=QM
236-----------------
237locale='sr-Latn-QM'
238disp_locale=en :  display_region=QM
239disp_locale=fr :  display_region=QM
240disp_locale=de :  display_region=QM
241-----------------
242locale='sr-Qaaa-CS'
243disp_locale=en :  display_region=Serbia [Aa]nd Montenegro
244disp_locale=fr :  display_region=Serbie-et-Monténégro
245disp_locale=de :  display_region=Serbien und Montenegro
246-----------------
247locale='en-US-u-islamCal'
248disp_locale=en :  display_region=United States
249disp_locale=fr :  display_region=États-Unis
250disp_locale=de :  display_region=Vereinigte Staaten
251-----------------
252locale='zh-CN-a-myExt-x-private'
253disp_locale=en :  display_region=China
254disp_locale=fr :  display_region=Chine
255disp_locale=de :  display_region=China
256-----------------
257locale='en-a-myExt-b-another'
258disp_locale=en :  display_region=A?
259disp_locale=fr :  display_region=A?
260disp_locale=de :  display_region=A?
261-----------------
262locale='de-419-DE'
263disp_locale=en :  display_region=Latin America
264disp_locale=fr :  display_region=Amérique latine
265disp_locale=de :  display_region=Lateinamerika
266-----------------
267locale='a-DE'
268disp_locale=en :  display_region=Germany
269disp_locale=fr :  display_region=Allemagne
270disp_locale=de :  display_region=Deutschland
271-----------------
272locale='ar-a-aaa-b-bbb-a-ccc'
273disp_locale=en :  display_region=A?
274disp_locale=fr :  display_region=A?
275disp_locale=de :  display_region=A?
276-----------------
277