1--TEST--
2locale_get_display_region() icu >= 4.8 && icu < 51.2
3--SKIPIF--
4<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
5<?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >=  0) die('skip for ICU <= 50.1.2'); ?>
6--FILE--
7<?php
8
9/*
10 * Try getting the display_region 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//Language subtag plus Script subtag:
31        'zh-Hant',
32        'zh-Hans',
33        'sr-Cyrl',
34        'sr-Latn',
35//Language-Script-Region
36        'zh-Hans-CN',
37        'sr-Latn-CS',
38//Language-Variant
39        'sl-rozaj',
40        'sl-nedis',
41//Language-Region-Variant
42        'de-CH-1901',
43        'sl-IT-nedis',
44//Language-Script-Region-Variant
45        'sl-Latn-IT-nedis',
46//Language-Region:
47        'de-DE',
48        'en-US',
49        'es-419',
50//Private use subtags:
51        'de-CH-x-phonebk',
52        'az-Arab-x-AZE-derbend',
53//Extended language subtags
54        'zh-min',
55        'zh-min-nan-Hant-CN',
56//Private use registry values
57        'x-whatever',
58        'qaa-Qaaa-QM-x-southern',
59        'sr-Latn-QM',
60        'sr-Qaaa-CS',
61/*Tags that use extensions (examples ONLY: extensions MUST be defined
62   by revision or update to this document or by RFC): */
63        'en-US-u-islamCal',
64        'zh-CN-a-myExt-x-private',
65        'en-a-myExt-b-another',
66//Some Invalid Tags:
67        'de-419-DE',
68        'a-DE',
69        'ar-a-aaa-b-bbb-a-ccc'
70    );
71
72
73    $res_str = '';
74
75    foreach( $locales as $locale )
76    {
77        $res_str .= "locale='$locale'\n";
78        foreach( $disp_locales as $disp_locale )
79        {
80            $scr = ut_loc_get_display_region( $locale ,$disp_locale );
81            $res_str .= "disp_locale=$disp_locale :  display_region=$scr";
82            $res_str .= "\n";
83        }
84        $res_str .= "-----------------\n";
85    }
86
87    return $res_str;
88
89}
90
91include_once( 'ut_common.inc' );
92ut_run();
93
94?>
95--EXPECTREGEX--
96locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
97disp_locale=en :  display_region=Ukraine
98disp_locale=fr :  display_region=Ukraine
99disp_locale=de :  display_region=Ukraine
100-----------------
101locale='root'
102disp_locale=en :  display_region=
103disp_locale=fr :  display_region=
104disp_locale=de :  display_region=
105-----------------
106locale='uk@currency=EURO'
107disp_locale=en :  display_region=
108disp_locale=fr :  display_region=
109disp_locale=de :  display_region=
110-----------------
111locale='Hindi'
112disp_locale=en :  display_region=
113disp_locale=fr :  display_region=
114disp_locale=de :  display_region=
115-----------------
116locale='de'
117disp_locale=en :  display_region=
118disp_locale=fr :  display_region=
119disp_locale=de :  display_region=
120-----------------
121locale='fr'
122disp_locale=en :  display_region=
123disp_locale=fr :  display_region=
124disp_locale=de :  display_region=
125-----------------
126locale='ja'
127disp_locale=en :  display_region=
128disp_locale=fr :  display_region=
129disp_locale=de :  display_region=
130-----------------
131locale='i-enochian'
132disp_locale=en :  display_region=
133disp_locale=fr :  display_region=
134disp_locale=de :  display_region=
135-----------------
136locale='zh-Hant'
137disp_locale=en :  display_region=
138disp_locale=fr :  display_region=
139disp_locale=de :  display_region=
140-----------------
141locale='zh-Hans'
142disp_locale=en :  display_region=
143disp_locale=fr :  display_region=
144disp_locale=de :  display_region=
145-----------------
146locale='sr-Cyrl'
147disp_locale=en :  display_region=
148disp_locale=fr :  display_region=
149disp_locale=de :  display_region=
150-----------------
151locale='sr-Latn'
152disp_locale=en :  display_region=
153disp_locale=fr :  display_region=
154disp_locale=de :  display_region=
155-----------------
156locale='zh-Hans-CN'
157disp_locale=en :  display_region=China
158disp_locale=fr :  display_region=Chine
159disp_locale=de :  display_region=China
160-----------------
161locale='sr-Latn-CS'
162disp_locale=en :  display_region=Serbia [Aa]nd Montenegro
163disp_locale=fr :  display_region=Serbie-et-Monténégro
164disp_locale=de :  display_region=Serbien und Montenegro
165-----------------
166locale='sl-rozaj'
167disp_locale=en :  display_region=(ROZAJ)?
168disp_locale=fr :  display_region=(ROZAJ)?
169disp_locale=de :  display_region=(ROZAJ)?
170-----------------
171locale='sl-nedis'
172disp_locale=en :  display_region=(NEDIS)?
173disp_locale=fr :  display_region=(NEDIS)?
174disp_locale=de :  display_region=(NEDIS)?
175-----------------
176locale='de-CH-1901'
177disp_locale=en :  display_region=Switzerland
178disp_locale=fr :  display_region=Suisse
179disp_locale=de :  display_region=Schweiz
180-----------------
181locale='sl-IT-nedis'
182disp_locale=en :  display_region=Italy
183disp_locale=fr :  display_region=Italie
184disp_locale=de :  display_region=Italien
185-----------------
186locale='sl-Latn-IT-nedis'
187disp_locale=en :  display_region=Italy
188disp_locale=fr :  display_region=Italie
189disp_locale=de :  display_region=Italien
190-----------------
191locale='de-DE'
192disp_locale=en :  display_region=Germany
193disp_locale=fr :  display_region=Allemagne
194disp_locale=de :  display_region=Deutschland
195-----------------
196locale='en-US'
197disp_locale=en :  display_region=United States
198disp_locale=fr :  display_region=États-Unis
199disp_locale=de :  display_region=Vereinigte Staaten
200-----------------
201locale='es-419'
202disp_locale=en :  display_region=Latin America
203disp_locale=fr :  display_region=Amérique latine
204disp_locale=de :  display_region=Lateinamerika
205-----------------
206locale='de-CH-x-phonebk'
207disp_locale=en :  display_region=Switzerland
208disp_locale=fr :  display_region=Suisse
209disp_locale=de :  display_region=Schweiz
210-----------------
211locale='az-Arab-x-AZE-derbend'
212disp_locale=en :  display_region=X?
213disp_locale=fr :  display_region=X?
214disp_locale=de :  display_region=X?
215-----------------
216locale='zh-min'
217disp_locale=en :  display_region=
218disp_locale=fr :  display_region=
219disp_locale=de :  display_region=
220-----------------
221locale='zh-min-nan-Hant-CN'
222disp_locale=en :  display_region=MIN
223disp_locale=fr :  display_region=MIN
224disp_locale=de :  display_region=MIN
225-----------------
226locale='x-whatever'
227disp_locale=en :  display_region=
228disp_locale=fr :  display_region=
229disp_locale=de :  display_region=
230-----------------
231locale='qaa-Qaaa-QM-x-southern'
232disp_locale=en :  display_region=QM
233disp_locale=fr :  display_region=QM
234disp_locale=de :  display_region=QM
235-----------------
236locale='sr-Latn-QM'
237disp_locale=en :  display_region=QM
238disp_locale=fr :  display_region=QM
239disp_locale=de :  display_region=QM
240-----------------
241locale='sr-Qaaa-CS'
242disp_locale=en :  display_region=Serbia [Aa]nd Montenegro
243disp_locale=fr :  display_region=Serbie-et-Monténégro
244disp_locale=de :  display_region=Serbien und Montenegro
245-----------------
246locale='en-US-u-islamCal'
247disp_locale=en :  display_region=United States
248disp_locale=fr :  display_region=États-Unis
249disp_locale=de :  display_region=Vereinigte Staaten
250-----------------
251locale='zh-CN-a-myExt-x-private'
252disp_locale=en :  display_region=China
253disp_locale=fr :  display_region=Chine
254disp_locale=de :  display_region=China
255-----------------
256locale='en-a-myExt-b-another'
257disp_locale=en :  display_region=A?
258disp_locale=fr :  display_region=A?
259disp_locale=de :  display_region=A?
260-----------------
261locale='de-419-DE'
262disp_locale=en :  display_region=Latin America
263disp_locale=fr :  display_region=Amérique latine
264disp_locale=de :  display_region=Lateinamerika
265-----------------
266locale='a-DE'
267disp_locale=en :  display_region=Germany
268disp_locale=fr :  display_region=Allemagne
269disp_locale=de :  display_region=Deutschland
270-----------------
271locale='ar-a-aaa-b-bbb-a-ccc'
272disp_locale=en :  display_region=A?
273disp_locale=fr :  display_region=A?
274disp_locale=de :  display_region=A?
275-----------------
276