Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / libaddressinput / chromium / cpp / src / region_data_constants.cc
1 // Copyright (C) 2013 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 // The data in this file will be automatically generated. For now, the address
16 // data comes from:
17 //
18 // https://code.google.com/p/libaddressinput/source/browse/trunk/java/src/com/android/i18n/addressinput/RegionDataConstants.java?r=137
19 //
20 // The language-to-separator and country-to-language mapping is loosely based
21 // on:
22 //
23 // http://unicode.org/cldr/trac/browser/tags/release-24/common/supplemental/supplementalData.xml
24
25 #include "region_data_constants.h"
26
27 #include <algorithm>
28 #include <map>
29 #include <string>
30 #include <utility>
31 #include <vector>
32
33 namespace i18n {
34 namespace addressinput {
35
36 namespace {
37
38 std::map<std::string, std::string> InitRegionData() {
39   std::map<std::string, std::string> region_data;
40   region_data.insert(std::make_pair("AD", "{"
41       "\"name\":\"ANDORRA\","
42       "\"lang\":\"ca\","
43       "\"languages\":\"ca\","
44       "\"fmt\":\"%N%n%O%n%A%n%Z %S\","
45       "\"require\":\"AS\","
46       "\"state_name_type\":\"parish\""
47       "}"));
48   region_data.insert(std::make_pair("AE", "{"
49       "\"name\":\"UNITED ARAB EMIRATES\","
50       "\"fmt\":\"%N%n%O%n%A%n%C\","
51       "\"require\":\"AC\""
52       "}"));
53   region_data.insert(std::make_pair("AF", "{"
54       "\"name\":\"AFGHANISTAN\""
55       "}"));
56   region_data.insert(std::make_pair("AG", "{"
57       "\"name\":\"ANTIGUA AND BARBUDA\","
58       "\"require\":\"A\""
59       "}"));
60   region_data.insert(std::make_pair("AI", "{"
61       "\"name\":\"ANGUILLA\""
62       "}"));
63   region_data.insert(std::make_pair("AL", "{"
64       "\"name\":\"ALBANIA\""
65       "}"));
66   region_data.insert(std::make_pair("AM", "{"
67       "\"name\":\"ARMENIA\","
68       "\"lang\":\"hy\","
69       "\"languages\":\"hy\","
70       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C%n%S\""
71       "}"));
72   region_data.insert(std::make_pair("AN", "{"
73       "\"name\":\"NETHERLANDS ANTILLES\""
74       "}"));
75   region_data.insert(std::make_pair("AO", "{"
76       "\"name\":\"ANGOLA\""
77       "}"));
78   region_data.insert(std::make_pair("AQ", "{"
79       "\"name\":\"ANTARCTICA\""
80       "}"));
81   region_data.insert(std::make_pair("AR", "{"
82       "\"name\":\"ARGENTINA\","
83       "\"lang\":\"es\","
84       "\"languages\":\"es\","
85       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
86       "\"state_name_type\":\"state\""
87       "}"));
88   region_data.insert(std::make_pair("AS", "{"
89       "\"name\":\"AMERICAN SAMOA\","
90       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
91       "\"require\":\"ACSZ\","
92       "\"zip_name_type\":\"zip\","
93       "\"state_name_type\":\"state\""
94       "}"));
95   region_data.insert(std::make_pair("AT", "{"
96       "\"name\":\"AUSTRIA\","
97       "\"fmt\":\"%O%n%N%n%A%n%Z %C\","
98       "\"require\":\"ACZ\""
99       "}"));
100   region_data.insert(std::make_pair("AU", "{"
101       "\"name\":\"AUSTRALIA\","
102       "\"lang\":\"en\","
103       "\"languages\":\"en\","
104       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
105       "\"require\":\"ACSZ\","
106       "\"state_name_type\":\"state\""
107       "}"));
108   region_data.insert(std::make_pair("AW", "{"
109       "\"name\":\"ARUBA\""
110       "}"));
111   region_data.insert(std::make_pair("AX", "{"
112       "\"name\":\"FINLAND\","
113       "\"fmt\":\"%O%n%N%n%A%nAX-%Z %C%n\xC3\x85LAND\","  // \xC3\x85 is Å.
114       "\"require\":\"ACZ\""
115       "}"));
116   region_data.insert(std::make_pair("AZ", "{"
117       "\"name\":\"AZERBAIJAN\","
118       "\"fmt\":\"%N%n%O%n%A%nAZ %Z %C\""
119       "}"));
120   region_data.insert(std::make_pair("BA", "{"
121       "\"name\":\"BOSNIA AND HERZEGOVINA\","
122       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
123       "}"));
124   region_data.insert(std::make_pair("BB", "{"
125       "\"name\":\"BARBADOS\","
126       "\"state_name_type\":\"parish\""
127       "}"));
128   region_data.insert(std::make_pair("BD", "{"
129       "\"name\":\"BANGLADESH\","
130       "\"fmt\":\"%N%n%O%n%A%n%C - %Z\""
131       "}"));
132   region_data.insert(std::make_pair("BE", "{"
133       "\"name\":\"BELGIUM\","
134       "\"fmt\":\"%O%n%N%n%A%n%Z %C\","
135       "\"require\":\"ACZ\""
136       "}"));
137   region_data.insert(std::make_pair("BF", "{"
138       "\"name\":\"BURKINA FASO\","
139       "\"fmt\":\"%N%n%O%n%A%n%C %X\""
140       "}"));
141   region_data.insert(std::make_pair("BG", "{"
142       "\"name\":\"BULGARIA (REP.)\","
143       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
144       "}"));
145   region_data.insert(std::make_pair("BH", "{"
146       "\"name\":\"BAHRAIN\","
147       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
148       "}"));
149   region_data.insert(std::make_pair("BI", "{"
150       "\"name\":\"BURUNDI\""
151       "}"));
152   region_data.insert(std::make_pair("BJ", "{"
153       "\"name\":\"BENIN\""
154       "}"));
155   region_data.insert(std::make_pair("BL", "{"
156       "\"name\":\"SAINT BARTHELEMY\","
157       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
158       "\"require\":\"ACZ\""
159       "}"));
160   region_data.insert(std::make_pair("BM", "{"
161       "\"name\":\"BERMUDA\","
162       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
163       "}"));
164   region_data.insert(std::make_pair("BN", "{"
165       "\"name\":\"BRUNEI DARUSSALAM\","
166       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
167       "}"));
168   region_data.insert(std::make_pair("BO", "{"
169       "\"name\":\"BOLIVIA\""
170       "}"));
171   region_data.insert(std::make_pair("BR", "{"
172       "\"name\":\"BRAZIL\","
173       "\"lang\":\"pt\","
174       "\"languages\":\"pt\","
175       "\"fmt\":\"%O%n%N%n%A%n%C-%S%n%Z\","
176       "\"require\":\"ASCZ\","
177       "\"state_name_type\":\"state\""
178       "}"));
179   region_data.insert(std::make_pair("BS", "{"
180       "\"name\":\"BAHAMAS\","
181       "\"lang\":\"en\","
182       "\"languages\":\"en\","
183       "\"fmt\":\"%N%n%O%n%A%n%C, %S\","
184       "\"state_name_type\":\"island\""
185       "}"));
186   region_data.insert(std::make_pair("BT", "{"
187       "\"name\":\"BHUTAN\""
188       "}"));
189   region_data.insert(std::make_pair("BV", "{"
190       "\"name\":\"BOUVET ISLAND\""
191       "}"));
192   region_data.insert(std::make_pair("BW", "{"
193       "\"name\":\"BOTSWANA\""
194       "}"));
195   region_data.insert(std::make_pair("BY", "{"
196       "\"name\":\"BELARUS\","
197       "\"fmt\":\"%S%n%Z %C %X%n%A%n%O%n%N\""
198       "}"));
199   region_data.insert(std::make_pair("BZ", "{"
200       "\"name\":\"BELIZE\""
201       "}"));
202   region_data.insert(std::make_pair("CA", "{"
203       "\"name\":\"CANADA\","
204       "\"lang\":\"en\","
205       "\"languages\":\"en~fr\","
206       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
207       "\"require\":\"ACSZ\""
208       "}"));
209   region_data.insert(std::make_pair("CC", "{"
210       "\"name\":\"COCOS (KEELING) ISLANDS\","
211       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\""
212       "}"));
213   region_data.insert(std::make_pair("CD", "{"
214       "\"name\":\"CONGO (DEM. REP.)\","
215       "\"fmt\":\"%N%n%O%n%A%n%C %X\""
216       "}"));
217   region_data.insert(std::make_pair("CF", "{"
218       "\"name\":\"CENTRAL AFRICAN REPUBLIC\""
219       "}"));
220   region_data.insert(std::make_pair("CG", "{"
221       "\"name\":\"CONGO (REP.)\""
222       "}"));
223   region_data.insert(std::make_pair("CH", "{"
224       "\"name\":\"SWITZERLAND\","
225       "\"lang\":\"de\","
226       "\"languages\":\"de~fr~it\","
227       "\"fmt\":\"%O%n%N%n%A%nCH-%Z %C\","
228       "\"require\":\"ACZ\""
229       "}"));
230   region_data.insert(std::make_pair("CI", "{"
231       "\"name\":\"COTE D'IVOIRE\","
232       "\"fmt\":\"%N%n%O%n%X %A %C %X\""
233       "}"));
234   region_data.insert(std::make_pair("CK", "{"
235       "\"name\":\"COOK ISLANDS\","
236       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
237       "}"));
238   region_data.insert(std::make_pair("CL", "{"
239       "\"name\":\"CHILE\","
240       "\"lang\":\"es\","
241       "\"languages\":\"es\","
242       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
243       "\"state_name_type\":\"state\""
244       "}"));
245   region_data.insert(std::make_pair("CM", "{"
246       "\"name\":\"CAMEROON\""
247       "}"));
248   region_data.insert(std::make_pair("CN", "{"
249       "\"name\":\"P.R. CHINA\","
250       "\"lang\":\"zh-hans\","
251       "\"languages\":\"zh-hans\","
252       "\"fmt\":\"%Z%n%S%C%D%n%A%n%O%n%N\","
253       "\"require\":\"ACSZ\""
254       "}"));
255   region_data.insert(std::make_pair("CO", "{"
256       "\"name\":\"COLOMBIA\","
257       "\"fmt\":\"%N%n%O%n%A%n%C, %S\""
258       "}"));
259   region_data.insert(std::make_pair("CR", "{"
260       "\"name\":\"COSTA RICA\","
261       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
262       "}"));
263   region_data.insert(std::make_pair("CS", "{"
264       "\"name\":\"SERBIA AND MONTENEGRO\","
265       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
266       "}"));
267   region_data.insert(std::make_pair("CV", "{"
268       "\"name\":\"CAPE VERDE\","
269       "\"lang\":\"pt\","
270       "\"languages\":\"pt\","
271       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
272       "\"state_name_type\":\"island\""
273       "}"));
274   region_data.insert(std::make_pair("CX", "{"
275       "\"name\":\"CHRISTMAS ISLAND\","
276       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\""
277       "}"));
278   region_data.insert(std::make_pair("CY", "{"
279       "\"name\":\"CYPRUS\","
280       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
281       "}"));
282   region_data.insert(std::make_pair("CZ", "{"
283       "\"name\":\"CZECH REP.\","
284       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
285       "}"));
286   region_data.insert(std::make_pair("DE", "{"
287       "\"name\":\"GERMANY\","
288       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
289       "\"require\":\"ACZ\""
290       "}"));
291   region_data.insert(std::make_pair("DJ", "{"
292       "\"name\":\"DJIBOUTI\""
293       "}"));
294   region_data.insert(std::make_pair("DK", "{"
295       "\"name\":\"DENMARK\","
296       "\"fmt\":\"%O%n%N%n%A%n%Z %C\","
297       "\"require\":\"ACZ\""
298       "}"));
299   region_data.insert(std::make_pair("DM", "{"
300       "\"name\":\"DOMINICA\""
301       "}"));
302   region_data.insert(std::make_pair("DO", "{"
303       "\"name\":\"DOMINICAN REP.\","
304       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
305       "}"));
306   region_data.insert(std::make_pair("DZ", "{"
307       "\"name\":\"ALGERIA\","
308       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
309       "}"));
310   region_data.insert(std::make_pair("EC", "{"
311       "\"name\":\"ECUADOR\","
312       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C\""
313       "}"));
314   region_data.insert(std::make_pair("EE", "{"
315       "\"name\":\"ESTONIA\","
316       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
317       "}"));
318   region_data.insert(std::make_pair("EG", "{"
319       "\"name\":\"EGYPT\","
320       "\"fmt\":\"%N%n%O%n%A%n%C%n%S%n%Z\""
321       "}"));
322   region_data.insert(std::make_pair("EH", "{"
323       "\"name\":\"WESTERN SAHARA\""
324       "}"));
325   region_data.insert(std::make_pair("ER", "{"
326       "\"name\":\"ERITREA\""
327       "}"));
328   region_data.insert(std::make_pair("ES", "{"
329       "\"name\":\"SPAIN\","
330       "\"lang\":\"es\","
331       "\"languages\":\"es\","
332       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\","
333       "\"require\":\"ACSZ\""
334       "}"));
335   region_data.insert(std::make_pair("ET", "{"
336       "\"name\":\"ETHIOPIA\","
337       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
338       "}"));
339   region_data.insert(std::make_pair("FI", "{"
340       "\"name\":\"FINLAND\","
341       "\"fmt\":\"%O%n%N%n%A%nFI-%Z %C\","
342       "\"require\":\"ACZ\""
343       "}"));
344   region_data.insert(std::make_pair("FJ", "{"
345       "\"name\":\"FIJI\""
346       "}"));
347   region_data.insert(std::make_pair("FK", "{"
348       "\"name\":\"FALKLAND ISLANDS (MALVINAS)\","
349       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
350       "\"require\":\"ACZ\""
351       "}"));
352   region_data.insert(std::make_pair("FM", "{"
353       "\"name\":\"MICRONESIA (Federated State of)\","
354       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
355       "\"require\":\"ACSZ\","
356       "\"zip_name_type\":\"zip\","
357       "\"state_name_type\":\"state\""
358       "}"));
359   region_data.insert(std::make_pair("FO", "{"
360       "\"name\":\"FAROE ISLANDS\","
361       "\"fmt\":\"%N%n%O%n%A%nFO%Z %C\""
362       "}"));
363   region_data.insert(std::make_pair("FR", "{"
364       "\"name\":\"FRANCE\","
365       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
366       "\"require\":\"ACZ\""
367       "}"));
368   region_data.insert(std::make_pair("GA", "{"
369       "\"name\":\"GABON\""
370       "}"));
371   region_data.insert(std::make_pair("GB", "{"
372       "\"name\":\"UNITED KINGDOM\","
373       "\"fmt\":\"%N%n%O%n%A%n%C%n%S%n%Z\","
374       "\"require\":\"ACZ\","
375       "\"state_name_type\":\"county\""
376       "}"));
377   region_data.insert(std::make_pair("GD", "{"
378       "\"name\":\"GRENADA (WEST INDIES)\""
379       "}"));
380   region_data.insert(std::make_pair("GE", "{"
381       "\"name\":\"GEORGIA\","
382       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
383       "}"));
384   region_data.insert(std::make_pair("GF", "{"
385       "\"name\":\"FRENCH GUIANA\","
386       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
387       "\"require\":\"ACZ\""
388       "}"));
389   region_data.insert(std::make_pair("GG", "{"
390       "\"name\":\"CHANNEL ISLANDS\","
391       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%nGUERNSEY%n%Z\","
392       "\"require\":\"ACZ\""
393       "}"));
394   region_data.insert(std::make_pair("GH", "{"
395       "\"name\":\"GHANA\""
396       "}"));
397   region_data.insert(std::make_pair("GI", "{"
398       "\"name\":\"GIBRALTAR\","
399       "\"fmt\":\"%N%n%O%n%A\","
400       "\"require\":\"A\""
401       "}"));
402   region_data.insert(std::make_pair("GL", "{"
403       "\"name\":\"GREENLAND\","
404       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
405       "\"require\":\"ACZ\""
406       "}"));
407   region_data.insert(std::make_pair("GM", "{"
408       "\"name\":\"GAMBIA\""
409       "}"));
410   region_data.insert(std::make_pair("GN", "{"
411       "\"name\":\"GUINEA\","
412       "\"fmt\":\"%N%n%O%n%Z %A %C\""
413       "}"));
414   region_data.insert(std::make_pair("GP", "{"
415       "\"name\":\"GUADELOUPE\","
416       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
417       "\"require\":\"ACZ\""
418       "}"));
419   region_data.insert(std::make_pair("GQ", "{"
420       "\"name\":\"EQUATORIAL GUINEA\""
421       "}"));
422   region_data.insert(std::make_pair("GR", "{"
423       "\"name\":\"GREECE\","
424       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
425       "\"require\":\"ACZ\""
426       "}"));
427   region_data.insert(std::make_pair("GS", "{"
428       "\"name\":\"SOUTH GEORGIA\","
429       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
430       "\"require\":\"ACZ\""
431       "}"));
432   region_data.insert(std::make_pair("GT", "{"
433       "\"name\":\"GUATEMALA\","
434       "\"fmt\":\"%N%n%O%n%A%n%Z- %C\""
435       "}"));
436   region_data.insert(std::make_pair("GU", "{"
437       "\"name\":\"GUAM\","
438       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
439       "\"require\":\"ACSZ\","
440       "\"zip_name_type\":\"zip\","
441       "\"state_name_type\":\"state\""
442       "}"));
443   region_data.insert(std::make_pair("GW", "{"
444       "\"name\":\"GUINEA-BISSAU\","
445       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
446       "}"));
447   region_data.insert(std::make_pair("GY", "{"
448       "\"name\":\"GUYANA\""
449       "}"));
450   region_data.insert(std::make_pair("HK", "{"
451       "\"name\":\"HONG KONG\","
452       "\"lang\":\"zh\","
453       "\"languages\":\"zh\","
454       "\"fmt\":\"%S%n%A%n%O%n%N\","
455       "\"require\":\"AS\","
456       "\"state_name_type\":\"area\""
457       "}"));
458   region_data.insert(std::make_pair("HM", "{"
459       "\"name\":\"HEARD AND MCDONALD ISLANDS\","
460       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\""
461       "}"));
462   region_data.insert(std::make_pair("HN", "{"
463       "\"name\":\"HONDURAS\","
464       "\"fmt\":\"%N%n%O%n%A%n%C, %S%n%Z\","
465       "\"require\":\"ACS\""
466       "}"));
467   region_data.insert(std::make_pair("HR", "{"
468       "\"name\":\"CROATIA\","
469       "\"fmt\":\"%N%n%O%n%A%nHR-%Z %C\""
470       "}"));
471   region_data.insert(std::make_pair("HT", "{"
472       "\"name\":\"HAITI\","
473       "\"fmt\":\"%N%n%O%n%A%nHT%Z %C %X\""
474       "}"));
475   region_data.insert(std::make_pair("HU", "{"
476       "\"name\":\"HUNGARY (Rep.)\","
477       "\"fmt\":\"%N%n%O%n%C%n%A%n%Z\""
478       "}"));
479   region_data.insert(std::make_pair("ID", "{"
480       "\"name\":\"INDONESIA\","
481       "\"fmt\":\"%N%n%O%n%A%n%C %Z%n%S\""
482       "}"));
483   region_data.insert(std::make_pair("IE", "{"
484       "\"name\":\"IRELAND\","
485       "\"lang\":\"en\","
486       "\"languages\":\"en\","
487       "\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
488       "\"state_name_type\":\"county\""
489       "}"));
490   region_data.insert(std::make_pair("IL", "{"
491       "\"name\":\"ISRAEL\","
492       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
493       "}"));
494   region_data.insert(std::make_pair("IM", "{"
495       "\"name\":\"ISLE OF MAN\","
496       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
497       "\"require\":\"ACZ\""
498       "}"));
499   region_data.insert(std::make_pair("IN", "{"
500       "\"name\":\"INDIA\","
501       "\"lang\":\"en\","
502       "\"languages\":\"en\","
503       "\"fmt\":\"%N%n%O%n%A%n%C %Z%n%S\","
504       "\"require\":\"ACSZ\","
505       "\"state_name_type\":\"state\""
506       "}"));
507   region_data.insert(std::make_pair("IO", "{"
508       "\"name\":\"BRITISH INDIAN OCEAN TERRITORY\","
509       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
510       "\"require\":\"ACZ\""
511       "}"));
512   region_data.insert(std::make_pair("IQ", "{"
513       "\"name\":\"IRAQ\","
514       "\"fmt\":\"%O%n%N%n%A%n%C, %S%n%Z\","
515       "\"require\":\"ACS\""
516       "}"));
517   region_data.insert(std::make_pair("IS", "{"
518       "\"name\":\"ICELAND\","
519       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
520       "}"));
521   region_data.insert(std::make_pair("IT", "{"
522       "\"name\":\"ITALY\","
523       "\"lang\":\"it\","
524       "\"languages\":\"it\","
525       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\","
526       "\"require\":\"ACSZ\""
527       "}"));
528   region_data.insert(std::make_pair("JE", "{"
529       "\"name\":\"CHANNEL ISLANDS\","
530       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%nJERSEY%n%Z\","
531       "\"require\":\"ACZ\""
532       "}"));
533   region_data.insert(std::make_pair("JM", "{"
534       "\"name\":\"JAMAICA\","
535       "\"lang\":\"en\","
536       "\"languages\":\"en\","
537       "\"fmt\":\"%N%n%O%n%A%n%C%n%S %X\","
538       "\"require\":\"ACS\","
539       "\"state_name_type\":\"parish\""
540       "}"));
541   region_data.insert(std::make_pair("JO", "{"
542       "\"name\":\"JORDAN\","
543       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
544       "}"));
545   region_data.insert(std::make_pair("JP", "{"
546       "\"name\":\"JAPAN\","
547       "\"lang\":\"ja\","
548       "\"languages\":\"ja\","
549       "\"fmt\":\"\xE3\x80\x92%Z%n%S%C%n%A%n%O%n%N\","  // \xE3\x80\x92 is 〒.
550       "\"require\":\"ACSZ\","
551       "\"state_name_type\":\"prefecture\""
552       "}"));
553   region_data.insert(std::make_pair("KE", "{"
554       "\"name\":\"KENYA\","
555       "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\""
556       "}"));
557   region_data.insert(std::make_pair("KG", "{"
558       "\"name\":\"KYRGYZSTAN\","
559       "\"fmt\":\"%Z %C %X%n%A%n%O%n%N\""
560       "}"));
561   region_data.insert(std::make_pair("KH", "{"
562       "\"name\":\"CAMBODIA\","
563       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
564       "}"));
565   region_data.insert(std::make_pair("KI", "{"
566       "\"name\":\"KIRIBATI\","
567       "\"fmt\":\"%N%n%O%n%A%n%S%n%C\","
568       "\"state_name_type\":\"island\""
569       "}"));
570   region_data.insert(std::make_pair("KM", "{"
571       "\"name\":\"COMOROS\""
572       "}"));
573   region_data.insert(std::make_pair("KN", "{"
574       "\"name\":\"SAINT KITTS AND NEVIS\","
575       "\"lang\":\"en\","
576       "\"languages\":\"en\","
577       "\"fmt\":\"%N%n%O%n%A%n%C, %S\","
578       "\"require\":\"ACS\","
579       "\"state_name_type\":\"island\""
580       "}"));
581   region_data.insert(std::make_pair("KR", "{"
582       "\"name\":\"KOREA (REP.)\","
583       "\"lang\":\"ko\","
584       "\"languages\":\"ko\","
585       "\"fmt\":\"%S %C%D%n%A%n%O%n%N%nSEOUL %Z\","
586       "\"require\":\"ACSZ\","
587       "\"state_name_type\":\"do_si\""
588       "}"));
589   region_data.insert(std::make_pair("KW", "{"
590       "\"name\":\"KUWAIT\","
591       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
592       "}"));
593   region_data.insert(std::make_pair("KY", "{"
594       "\"name\":\"CAYMAN ISLANDS\","
595       "\"lang\":\"en\","
596       "\"languages\":\"en\","
597       "\"fmt\":\"%N%n%O%n%A%n%S\","
598       "\"require\":\"AS\","
599       "\"state_name_type\":\"island\""
600       "}"));
601   region_data.insert(std::make_pair("KZ", "{"
602       "\"name\":\"KAZAKHSTAN\","
603       "\"fmt\":\"%Z%n%S%n%C%n%A%n%O%n%N\""
604       "}"));
605   region_data.insert(std::make_pair("LA", "{"
606       "\"name\":\"LAO (PEOPLE'S DEM. REP.)\","
607       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
608       "}"));
609   region_data.insert(std::make_pair("LB", "{"
610       "\"name\":\"LEBANON\","
611       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
612       "}"));
613   region_data.insert(std::make_pair("LC", "{"
614       "\"name\":\"SAINT LUCIA\""
615       "}"));
616   region_data.insert(std::make_pair("LI", "{"
617       "\"name\":\"LIECHTENSTEIN\","
618       "\"fmt\":\"%O%n%N%n%A%nFL-%Z %C\","
619       "\"require\":\"ACZ\""
620       "}"));
621   region_data.insert(std::make_pair("LK", "{"
622       "\"name\":\"SRI LANKA\","
623       "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\""
624       "}"));
625   region_data.insert(std::make_pair("LR", "{"
626       "\"name\":\"LIBERIA\","
627       "\"fmt\":\"%N%n%O%n%A%n%Z %C %X\""
628       "}"));
629   region_data.insert(std::make_pair("LS", "{"
630       "\"name\":\"LESOTHO\","
631       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
632       "}"));
633   region_data.insert(std::make_pair("LT", "{"
634       "\"name\":\"LITHUANIA\","
635       "\"fmt\":\"%O%n%N%n%A%nLT-%Z %C\""
636       "}"));
637   region_data.insert(std::make_pair("LU", "{"
638       "\"name\":\"LUXEMBOURG\","
639       "\"fmt\":\"%O%n%N%n%A%nL-%Z %C\","
640       "\"require\":\"ACZ\""
641       "}"));
642   region_data.insert(std::make_pair("LV", "{"
643       "\"name\":\"LATVIA\","
644       "\"fmt\":\"%N%n%O%n%A%n%C, %Z\""
645       "}"));
646   region_data.insert(std::make_pair("LY", "{"
647       "\"name\":\"LIBYA\""
648       "}"));
649   region_data.insert(std::make_pair("MA", "{"
650       "\"name\":\"MOROCCO\","
651       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
652       "}"));
653   region_data.insert(std::make_pair("MC", "{"
654       "\"name\":\"MONACO\","
655       "\"fmt\":\"%N%n%O%n%A%nMC-%Z %C %X\""
656       "}"));
657   region_data.insert(std::make_pair("MD", "{"
658       "\"name\":\"Rep. MOLDOVA\","
659       "\"fmt\":\"%N%n%O%n%A%nMD-%Z %C\""
660       "}"));
661   region_data.insert(std::make_pair("ME", "{"
662       "\"name\":\"MONTENEGRO\","
663       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
664       "}"));
665   region_data.insert(std::make_pair("MF", "{"
666       "\"name\":\"SAINT MARTIN\","
667       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
668       "\"require\":\"ACZ\""
669       "}"));
670   region_data.insert(std::make_pair("MG", "{"
671       "\"name\":\"MADAGASCAR\","
672       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
673       "}"));
674   region_data.insert(std::make_pair("MH", "{"
675       "\"name\":\"MARSHALL ISLANDS\","
676       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
677       "\"require\":\"ACSZ\","
678       "\"zip_name_type\":\"zip\","
679       "\"state_name_type\":\"state\""
680       "}"));
681   region_data.insert(std::make_pair("MK", "{"
682       "\"name\":\"MACEDONIA\","
683       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
684       "}"));
685   region_data.insert(std::make_pair("ML", "{"
686       "\"name\":\"MALI\""
687       "}"));
688   region_data.insert(std::make_pair("MN", "{"
689       "\"name\":\"MONGOLIA\","
690       "\"fmt\":\"%N%n%O%n%A%n%S %C-%X%n%Z\""
691       "}"));
692   region_data.insert(std::make_pair("MO", "{"
693       "\"name\":\"MACAO\","
694       "\"lang\":\"zh-hant\","
695       "\"languages\":\"zh-hant\","
696       "\"fmt\":\"%A%n%O%n%N\","
697       "\"require\":\"A\""
698       "}"));
699   region_data.insert(std::make_pair("MP", "{"
700       "\"name\":\"NORTHERN MARIANA ISLANDS\","
701       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
702       "\"require\":\"ACSZ\","
703       "\"zip_name_type\":\"zip\","
704       "\"state_name_type\":\"state\""
705       "}"));
706   region_data.insert(std::make_pair("MQ", "{"
707       "\"name\":\"MARTINIQUE\","
708       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
709       "\"require\":\"ACZ\""
710       "}"));
711   region_data.insert(std::make_pair("MR", "{"
712       "\"name\":\"MAURITANIA\""
713       "}"));
714   region_data.insert(std::make_pair("MS", "{"
715       "\"name\":\"MONTSERRAT\""
716       "}"));
717   region_data.insert(std::make_pair("MT", "{"
718       "\"name\":\"MALTA\","
719       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
720       "}"));
721   region_data.insert(std::make_pair("MU", "{"
722       "\"name\":\"MAURITIUS\","
723       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C\""
724       "}"));
725   region_data.insert(std::make_pair("MV", "{"
726       "\"name\":\"MALDIVES\","
727       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
728       "}"));
729   region_data.insert(std::make_pair("MW", "{"
730       "\"name\":\"MALAWI\","
731       "\"fmt\":\"%N%n%O%n%A%n%C %X\""
732       "}"));
733   region_data.insert(std::make_pair("MX", "{"
734       "\"name\":\"MEXICO\","
735       "\"lang\":\"es\","
736       "\"languages\":\"es\","
737       "\"fmt\":\"%N%n%O%n%A%n%Z %C, %S\","
738       "\"require\":\"ACZ\","
739       "\"state_name_type\":\"state\""
740       "}"));
741   region_data.insert(std::make_pair("MY", "{"
742       "\"name\":\"MALAYSIA\","
743       "\"lang\":\"ms\","
744       "\"languages\":\"ms\","
745       "\"fmt\":\"%N%n%O%n%A%n%Z %C, %S\","
746       "\"require\":\"ACZ\","
747       "\"state_name_type\":\"state\""
748       "}"));
749   region_data.insert(std::make_pair("MZ", "{"
750       "\"name\":\"MOZAMBIQUE\","
751       "\"fmt\":\"%N%n%O%n%A%n%C\""
752       "}"));
753   region_data.insert(std::make_pair("NA", "{"
754       "\"name\":\"NAMIBIA\""
755       "}"));
756   region_data.insert(std::make_pair("NC", "{"
757       "\"name\":\"NEW CALEDONIA\","
758       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
759       "\"require\":\"ACZ\""
760       "}"));
761   region_data.insert(std::make_pair("NE", "{"
762       "\"name\":\"NIGER\","
763       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
764       "}"));
765   region_data.insert(std::make_pair("NF", "{"
766       "\"name\":\"NORFOLK ISLAND\","
767       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\""
768       "}"));
769   region_data.insert(std::make_pair("NG", "{"
770       "\"name\":\"NIGERIA\","
771       "\"lang\":\"fr\","
772       "\"languages\":\"fr\","
773       "\"fmt\":\"%N%n%O%n%A%n%C %Z%n%S\","
774       "\"state_name_type\":\"state\""
775       "}"));
776   region_data.insert(std::make_pair("NI", "{"
777       "\"name\":\"NICARAGUA\","
778       "\"lang\":\"es\","
779       "\"languages\":\"es\","
780       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C, %S\","
781       "\"state_name_type\":\"department\""
782       "}"));
783   region_data.insert(std::make_pair("NL", "{"
784       "\"name\":\"NETHERLANDS\","
785       "\"fmt\":\"%O%n%N%n%A%n%Z %C\","
786       "\"require\":\"ACZ\""
787       "}"));
788   region_data.insert(std::make_pair("NO", "{"
789       "\"name\":\"NORWAY\","
790       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
791       "\"require\":\"ACZ\""
792       "}"));
793   region_data.insert(std::make_pair("NP", "{"
794       "\"name\":\"NEPAL\","
795       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
796       "}"));
797   region_data.insert(std::make_pair("NR", "{"
798       "\"name\":\"NAURU CENTRAL PACIFIC\","
799       "\"lang\":\"en\","
800       "\"languages\":\"en\","
801       "\"fmt\":\"%N%n%O%n%A%n%S\","
802       "\"require\":\"AS\","
803       "\"state_name_type\":\"district\""
804       "}"));
805   region_data.insert(std::make_pair("NU", "{"
806       "\"name\":\"NIUE\""
807       "}"));
808   region_data.insert(std::make_pair("NZ", "{"
809       "\"name\":\"NEW ZEALAND\","
810       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
811       "\"require\":\"ACZ\""
812       "}"));
813   region_data.insert(std::make_pair("OM", "{"
814       "\"name\":\"OMAN\","
815       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C\""
816       "}"));
817   region_data.insert(std::make_pair("PA", "{"
818       "\"name\":\"PANAMA (REP.)\","
819       "\"fmt\":\"%N%n%O%n%A%n%C%n%S\""
820       "}"));
821   region_data.insert(std::make_pair("PE", "{"
822       "\"name\":\"PERU\""
823       "}"));
824   region_data.insert(std::make_pair("PF", "{"
825       "\"name\":\"FRENCH POLYNESIA\","
826       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\","
827       "\"require\":\"ACSZ\","
828       "\"state_name_type\":\"island\""
829       "}"));
830   region_data.insert(std::make_pair("PG", "{"
831       "\"name\":\"PAPUA NEW GUINEA\","
832       "\"fmt\":\"%N%n%O%n%A%n%C %Z %S\","
833       "\"require\":\"ACS\""
834       "}"));
835   region_data.insert(std::make_pair("PH", "{"
836       "\"name\":\"PHILIPPINES\","
837       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
838       "\"require\":\"AC\""
839       "}"));
840   region_data.insert(std::make_pair("PK", "{"
841       "\"name\":\"PAKISTAN\","
842       "\"fmt\":\"%N%n%O%n%A%n%C-%Z\""
843       "}"));
844   region_data.insert(std::make_pair("PL", "{"
845       "\"name\":\"POLAND\","
846       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
847       "\"require\":\"ACZ\""
848       "}"));
849   region_data.insert(std::make_pair("PM", "{"
850       "\"name\":\"ST. PIERRE AND MIQUELON\","
851       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
852       "\"require\":\"ACZ\""
853       "}"));
854   region_data.insert(std::make_pair("PN", "{"
855       "\"name\":\"PITCAIRN\","
856       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
857       "\"require\":\"ACZ\""
858       "}"));
859   region_data.insert(std::make_pair("PR", "{"
860       "\"name\":\"PUERTO RICO\","
861       "\"fmt\":\"%N%n%O%n%A%n%C PR %Z\","
862       "\"require\":\"ACZ\","
863       "\"zip_name_type\":\"zip\""
864       "}"));
865   region_data.insert(std::make_pair("PS", "{"
866       "\"name\":\"PALESTINIAN TERRITORY\""
867       "}"));
868   region_data.insert(std::make_pair("PT", "{"
869       "\"name\":\"PORTUGAL\","
870       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
871       "\"require\":\"ACZ\""
872       "}"));
873   region_data.insert(std::make_pair("PW", "{"
874       "\"name\":\"PALAU\","
875       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
876       "\"require\":\"ACSZ\","
877       "\"zip_name_type\":\"zip\","
878       "\"state_name_type\":\"state\""
879       "}"));
880   region_data.insert(std::make_pair("PY", "{"
881       "\"name\":\"PARAGUAY\","
882       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
883       "}"));
884   region_data.insert(std::make_pair("QA", "{"
885       "\"name\":\"QATAR\""
886       "}"));
887   region_data.insert(std::make_pair("RE", "{"
888       "\"name\":\"REUNION\","
889       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
890       "\"require\":\"ACZ\""
891       "}"));
892   region_data.insert(std::make_pair("RO", "{"
893       "\"name\":\"ROMANIA\","
894       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
895       "}"));
896   region_data.insert(std::make_pair("RS", "{"
897       "\"name\":\"REPUBLIC OF SERBIA\","
898       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
899       "}"));
900   region_data.insert(std::make_pair("RU", "{"
901       "\"name\":\"RUSSIAN FEDERATION\","
902       "\"fmt\":\"%Z %C  %n%A%n%O%n%N\","
903       "\"require\":\"ACZ\""
904       "}"));
905   region_data.insert(std::make_pair("RW", "{"
906       "\"name\":\"RWANDA\""
907       "}"));
908   region_data.insert(std::make_pair("SA", "{"
909       "\"name\":\"SAUDI ARABIA\","
910       "\"fmt\":\"%N%n%O%n%A%n%C %Z\""
911       "}"));
912   region_data.insert(std::make_pair("SB", "{"
913       "\"name\":\"SOLOMON ISLANDS\""
914       "}"));
915   region_data.insert(std::make_pair("SC", "{"
916       "\"name\":\"SEYCHELLES\","
917       "\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
918       "\"state_name_type\":\"island\""
919       "}"));
920   region_data.insert(std::make_pair("SE", "{"
921       "\"name\":\"SWEDEN\","
922       "\"fmt\":\"%O%n%N%n%A%nSE-%Z %C\","
923       "\"require\":\"ACZ\""
924       "}"));
925   region_data.insert(std::make_pair("SG", "{"
926       "\"name\":\"REP. OF SINGAPORE\","
927       "\"fmt\":\"%N%n%O%n%A%nSINGAPORE %Z\","
928       "\"require\":\"AZ\""
929       "}"));
930   region_data.insert(std::make_pair("SH", "{"
931       "\"name\":\"SAINT HELENA\","
932       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
933       "\"require\":\"ACZ\""
934       "}"));
935   region_data.insert(std::make_pair("SI", "{"
936       "\"name\":\"SLOVENIA\","
937       "\"fmt\":\"%N%n%O%n%A%nSI- %Z %C\""
938       "}"));
939   region_data.insert(std::make_pair("SJ", "{"
940       "\"name\":\"SVALBARD AND JAN MAYEN ISLANDS\","
941       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
942       "\"require\":\"ACZ\""
943       "}"));
944   region_data.insert(std::make_pair("SK", "{"
945       "\"name\":\"SLOVAKIA\","
946       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
947       "}"));
948   region_data.insert(std::make_pair("SL", "{"
949       "\"name\":\"SIERRA LEONE\""
950       "}"));
951   region_data.insert(std::make_pair("SM", "{"
952       "\"name\":\"SAN MARINO\","
953       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
954       "\"require\":\"AZ\""
955       "}"));
956   region_data.insert(std::make_pair("SN", "{"
957       "\"name\":\"SENEGAL\","
958       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
959       "}"));
960   region_data.insert(std::make_pair("SO", "{"
961       "\"name\":\"SOMALIA\","
962       "\"lang\":\"so\","
963       "\"languages\":\"so\","
964       "\"fmt\":\"%N%n%O%n%A%n%C, %S %Z\","
965       "\"require\":\"ACS\""
966       "}"));
967   region_data.insert(std::make_pair("SR", "{"
968       "\"name\":\"SURINAME\","
969       "\"lang\":\"nl\","
970       "\"languages\":\"nl\","
971       "\"fmt\":\"%N%n%O%n%A%n%C %X%n%S\""
972       "}"));
973   region_data.insert(std::make_pair("ST", "{"
974       "\"name\":\"SAO TOME AND PRINCIPE\","
975       "\"fmt\":\"%N%n%O%n%A%n%C %X\""
976       "}"));
977   region_data.insert(std::make_pair("SV", "{"
978       "\"name\":\"EL SALVADOR\","
979       "\"lang\":\"es\","
980       "\"languages\":\"es\","
981       "\"fmt\":\"%N%n%O%n%A%n%Z-%C%n%S\","
982       "\"require\":\"ACS\""
983       "}"));
984   region_data.insert(std::make_pair("SZ", "{"
985       "\"name\":\"SWAZILAND\","
986       "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\""
987       "}"));
988   region_data.insert(std::make_pair("TC", "{"
989       "\"name\":\"TURKS AND CAICOS ISLANDS\","
990       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
991       "\"require\":\"ACZ\""
992       "}"));
993   region_data.insert(std::make_pair("TD", "{"
994       "\"name\":\"CHAD\""
995       "}"));
996   region_data.insert(std::make_pair("TF", "{"
997       "\"name\":\"FRENCH SOUTHERN TERRITORIES\""
998       "}"));
999   region_data.insert(std::make_pair("TG", "{"
1000       "\"name\":\"TOGO\""
1001       "}"));
1002   region_data.insert(std::make_pair("TH", "{"
1003       "\"name\":\"THAILAND\","
1004       "\"lang\":\"th\","
1005       "\"languages\":\"th\","
1006       "\"fmt\":\"%N%n%O%n%A%n%C%n%S %Z\""
1007       "}"));
1008   region_data.insert(std::make_pair("TJ", "{"
1009       "\"name\":\"TAJIKISTAN\","
1010       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
1011       "}"));
1012   region_data.insert(std::make_pair("TK", "{"
1013       "\"name\":\"TOKELAU\""
1014       "}"));
1015   region_data.insert(std::make_pair("TL", "{"
1016       "\"name\":\"TIMOR-LESTE\""
1017       "}"));
1018   region_data.insert(std::make_pair("TM", "{"
1019       "\"name\":\"TURKMENISTAN\","
1020       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
1021       "}"));
1022   region_data.insert(std::make_pair("TN", "{"
1023       "\"name\":\"TUNISIA\","
1024       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
1025       "}"));
1026   region_data.insert(std::make_pair("TO", "{"
1027       "\"name\":\"TONGA\""
1028       "}"));
1029   region_data.insert(std::make_pair("TR", "{"
1030       "\"name\":\"TURKEY\","
1031       "\"fmt\":\"%N%n%O%n%A%n%Z %C/%S\","
1032       "\"require\":\"ACZ\""
1033       "}"));
1034   region_data.insert(std::make_pair("TT", "{"
1035       "\"name\":\"TRINIDAD AND TOBAGO\""
1036       "}"));
1037   region_data.insert(std::make_pair("TV", "{"
1038       "\"name\":\"TUVALU\","
1039       "\"lang\":\"tyv\","
1040       "\"languages\":\"tyv\","
1041       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%S\","
1042       "\"state_name_type\":\"island\""
1043       "}"));
1044   region_data.insert(std::make_pair("TW", "{"
1045       "\"name\":\"TAIWAN\","
1046       "\"lang\":\"zh-hant\","
1047       "\"languages\":\"zh-hant\","
1048       "\"fmt\":\"%Z%n%S%C%n%A%n%O%n%N\","
1049       "\"require\":\"ACSZ\","
1050       "\"state_name_type\":\"county\""
1051       "}"));
1052   region_data.insert(std::make_pair("TZ", "{"
1053       "\"name\":\"TANZANIA (UNITED REP.)\""
1054       "}"));
1055   region_data.insert(std::make_pair("UA", "{"
1056       "\"name\":\"UKRAINE\","
1057       "\"fmt\":\"%Z %C%n%A%n%O%n%N\""
1058       "}"));
1059   region_data.insert(std::make_pair("UG", "{"
1060       "\"name\":\"UGANDA\""
1061       "}"));
1062   // NOTE: The fmt value for UM and US differs from the i18napis fmt by the
1063   // insertion of a comma separating city and state.
1064   region_data.insert(std::make_pair("UM", "{"
1065       "\"name\":\"UNITED STATES MINOR OUTLYING ISLANDS\","
1066       "\"fmt\":\"%N%n%O%n%A%n%C, %S %Z\","
1067       "\"require\":\"ACS\","
1068       "\"zip_name_type\":\"zip\","
1069       "\"state_name_type\":\"state\""
1070       "}"));
1071   region_data.insert(std::make_pair("US", "{"
1072       "\"name\":\"UNITED STATES\","
1073       "\"lang\":\"en\","
1074       "\"languages\":\"en\","
1075       "\"fmt\":\"%N%n%O%n%A%n%C, %S %Z\","
1076       "\"require\":\"ACSZ\","
1077       "\"zip_name_type\":\"zip\","
1078       "\"state_name_type\":\"state\""
1079       "}"));
1080   region_data.insert(std::make_pair("UY", "{"
1081       "\"name\":\"URUGUAY\","
1082       "\"lang\":\"es\","
1083       "\"languages\":\"es\","
1084       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\""
1085       "}"));
1086   region_data.insert(std::make_pair("UZ", "{"
1087       "\"name\":\"UZBEKISTAN\","
1088       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\""
1089       "}"));
1090   region_data.insert(std::make_pair("VA", "{"
1091       "\"name\":\"VATICAN\","
1092       "\"fmt\":\"%N%n%O%n%A%n%Z %C\""
1093       "}"));
1094   region_data.insert(std::make_pair("VC", "{"
1095       "\"name\":\"SAINT VINCENT AND THE GRENADINES (ANTILLES)\""
1096       "}"));
1097   region_data.insert(std::make_pair("VE", "{"
1098       "\"name\":\"VENEZUELA\","
1099       "\"lang\":\"es\","
1100       "\"languages\":\"es\","
1101       "\"fmt\":\"%N%n%O%n%A%n%C %Z, %S\","
1102       "\"require\":\"ACS\""
1103       "}"));
1104   region_data.insert(std::make_pair("VG", "{"
1105       "\"name\":\"VIRGIN ISLANDS (BRITISH)\","
1106       "\"require\":\"A\""
1107       "}"));
1108   region_data.insert(std::make_pair("VI", "{"
1109       "\"name\":\"VIRGIN ISLANDS (U.S.)\","
1110       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
1111       "\"require\":\"ACSZ\","
1112       "\"zip_name_type\":\"zip\","
1113       "\"state_name_type\":\"state\""
1114       "}"));
1115   region_data.insert(std::make_pair("VN", "{"
1116       "\"name\":\"VIET NAM\","
1117       "\"lang\":\"vi\","
1118       "\"languages\":\"vi\","
1119       "\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
1120       "\"require\":\"AC\""
1121       "}"));
1122   region_data.insert(std::make_pair("VU", "{"
1123       "\"name\":\"VANUATU\""
1124       "}"));
1125   region_data.insert(std::make_pair("WF", "{"
1126       "\"name\":\"WALLIS AND FUTUNA ISLANDS\","
1127       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
1128       "\"require\":\"ACZ\""
1129       "}"));
1130   region_data.insert(std::make_pair("WS", "{"
1131       "\"name\":\"SAMOA\""
1132       "}"));
1133   region_data.insert(std::make_pair("YE", "{"
1134       "\"name\":\"YEMEN\","
1135       "\"require\":\"AC\""
1136       "}"));
1137   region_data.insert(std::make_pair("YT", "{"
1138       "\"name\":\"MAYOTTE\","
1139       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
1140       "\"require\":\"ACZ\""
1141       "}"));
1142   region_data.insert(std::make_pair("ZA", "{"
1143       "\"name\":\"SOUTH AFRICA\","
1144       "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\","
1145       "\"require\":\"ACZ\""
1146       "}"));
1147   region_data.insert(std::make_pair("ZM", "{"
1148       "\"name\":\"ZAMBIA\","
1149       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1150       "\"require\":\"AC\""
1151       "}"));
1152   region_data.insert(std::make_pair("ZW", "{"
1153       "\"name\":\"ZIMBABWE\""
1154       "}"));
1155   return region_data;
1156 }
1157
1158 const std::map<std::string, std::string>& GetAllRegionData() {
1159   static const std::map<std::string, std::string> kRegionData(InitRegionData());
1160   return kRegionData;
1161 }
1162
1163 struct SelectFirst {
1164   template <typename Pair>
1165   const typename Pair::first_type& operator()(const Pair& pair) const {
1166     return pair.first;
1167   }
1168 };
1169
1170 std::vector<std::string> InitRegionCodes() {
1171   std::vector<std::string> region_codes(GetAllRegionData().size());
1172   std::transform(GetAllRegionData().begin(), GetAllRegionData().end(),
1173                  region_codes.begin(), SelectFirst());
1174   return region_codes;
1175 }
1176
1177 }  // namespace
1178
1179 // static
1180 const std::vector<std::string>& RegionDataConstants::GetRegionCodes() {
1181   static const std::vector<std::string> kRegionCodes(InitRegionCodes());
1182   return kRegionCodes;
1183 }
1184
1185 // static
1186 const std::string& RegionDataConstants::GetRegionData(
1187     const std::string& region_code) {
1188   static const std::string kEmptyString;
1189   std::map<std::string, std::string>::const_iterator it =
1190       GetAllRegionData().find(region_code);
1191   return it != GetAllRegionData().end() ? it->second : kEmptyString;
1192 }
1193
1194 // static
1195 const std::string& RegionDataConstants::GetDefaultRegionData() {
1196   static const std::string kDefaultRegionData(
1197       "{"
1198       "\"fmt\":\"%N%n%O%n%A%n%C\","
1199       "\"require\":\"AC\","
1200       "\"state_name_type\":\"province\","
1201       "\"zip_name_type\":\"postal\""
1202       "}");
1203   return kDefaultRegionData;
1204 }
1205
1206 // static
1207 const std::string& RegionDataConstants::GetLanguageCompactLineSeparator(
1208     const std::string& language_code) {
1209   static const std::string kEmptyString;
1210   static const std::string kArabicSeparator =  "، ";
1211   static const std::string kSpace = " ";
1212   static const std::string kCommaAndSpace = ", ";
1213   if (language_code == "ja" ||
1214       language_code == "zh" ||
1215       language_code == "zh-hant" ||
1216       language_code == "zh-hans") {
1217     return kEmptyString;
1218   }
1219
1220   if (language_code == "ar" ||
1221       language_code == "cjm" ||
1222       language_code == "doi" ||
1223       language_code == "fa" ||
1224       language_code == "lah" ||
1225       language_code == "prd" ||
1226       language_code == "ps" ||
1227       language_code == "swb" ||
1228       language_code == "ug" ||
1229       language_code == "ur") {
1230     return kArabicSeparator;
1231   }
1232
1233   if (language_code == "ko" ||
1234       language_code == "kdt" ||
1235       language_code == "lcp" ||
1236       language_code == "lwl" ||
1237       language_code == "th" ||
1238       language_code == "tts") {
1239     return kSpace;
1240   }
1241
1242   return kCommaAndSpace;
1243 }
1244
1245 }  // namespace addressinput
1246 }  // namespace i18n