Country.php 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978
  1. <?php
  2. /*
  3. * FecShop file.
  4. *
  5. * @link http://www.fecshop.com/
  6. * @copyright Copyright (c) 2016 FecShop Software LLC
  7. * @license http://www.fecshop.com/license/
  8. */
  9. namespace fecshop\services\helper;
  10. use fecshop\services\Service;
  11. /**
  12. * Country services.
  13. * @author Terry Zhao <2358269014@qq.com>
  14. * @since 1.0
  15. */
  16. class Country extends Service
  17. {
  18. public $default_country;
  19. /**
  20. * 得到默认的国家
  21. */
  22. public function getDefaultCountry()
  23. {
  24. if (!$this->default_country) {
  25. $this->default_country = 'US';
  26. }
  27. return $this->default_country;
  28. }
  29. /**
  30. * 通过国家,得到省的option html的字符串
  31. */
  32. public function getStateOptionsByContryCode($CountryCode, $selected = '')
  33. {
  34. if (!$CountryCode) {
  35. $CountryCode = $this->getDefaultCountry();
  36. }
  37. $stateArr = $this->getStateByContryCode($CountryCode);
  38. $str = '';
  39. if (is_array($stateArr) && !empty($stateArr)) {
  40. if ($selected) {
  41. foreach ($stateArr as $code=>$name) {
  42. if ($selected == $code || strtolower($selected) == strtolower($name)) {
  43. $str .= '<option selected="selected" value="'.$code.'" rel="'.$name.'">'.$name.'</option>';
  44. } else {
  45. $str .= '<option value="'.$code.'" rel="'.$name.'" >'.$name.'</option>';
  46. }
  47. }
  48. } else {
  49. foreach ($stateArr as $code=>$name) {
  50. $str .= '<option value="'.$code.'" rel="'.$name.'">'.$name.'</option>';
  51. }
  52. }
  53. }
  54. return $str;
  55. }
  56. /**
  57. * 得到所有国家的option
  58. */
  59. public function getAllCountryOptions($name = 'country', $class = 'country', $current = '', $nullShow = '')
  60. {
  61. $all_country_array = $this->getAllCountryArray();
  62. if ($name && $class) {
  63. $str = '<select name="'.$name.'" class="'.$class.'">';
  64. }
  65. $str .= '<option value="">'.$nullShow.'</option>';
  66. foreach ($all_country_array as $k=>$v) {
  67. if ($current) {
  68. if ($k == $current) {
  69. $str .= '<option selected="selected" value="'.$k.'">'.$v.'</option>';
  70. } else {
  71. $str .= '<option value="'.$k.'">'.$v.'</option>';
  72. }
  73. } else {
  74. $str .= '<option value="'.$k.'">'.$v.'</option>';
  75. }
  76. }
  77. if ($name && $class) {
  78. $str .= '</select>';
  79. }
  80. return $str;
  81. }
  82. /**
  83. * 通过国家简码得到国家的全称名字
  84. */
  85. public function getCountryNameByKey($key)
  86. {
  87. $all_country = $this->getAllCountryArray();
  88. return isset($all_country[$key]) ? $all_country[$key] : $key;
  89. }
  90. /**
  91. * 国家option html
  92. */
  93. public function getCountryOptionsHtml($selectd = '')
  94. {
  95. if (!$selectd) {
  96. $selectd = $this->getDefaultCountry();
  97. }
  98. $all_country = $this->getAllCountryArray();
  99. $str = '';
  100. foreach ($all_country as $key=>$value) {
  101. if ($selectd && ($selectd == $key)) {
  102. $str .= '<option selected="selected" value="'.$key.'">'.$value.'</option>';
  103. } else {
  104. $str .= '<option value="'.$key.'">'.$value.'</option>';
  105. }
  106. }
  107. return $str;
  108. }
  109. /**
  110. * @param $countryCode |String 国家简码
  111. * @param $stateCode | String 省市简码
  112. * @return string OR Array 如果不传递省市简码,那么返回的是该国家对应的省市数组
  113. * 如果传递省市简码,传递的是省市的名称
  114. */
  115. public function getStateByContryCode($countryCode, $stateCode = '')
  116. {
  117. $countryStates = $this->getCountryStateArr();
  118. $returnStateArr = [];
  119. $returnStateName = '';
  120. if ($countryCode) {
  121. if ($stateCode) {
  122. if (isset($countryStates[$countryCode][$stateCode]) && !empty($countryStates[$countryCode][$stateCode])) {
  123. $returnStateName = $countryStates[$countryCode][$stateCode];
  124. }
  125. return $returnStateName ? $returnStateName : $stateCode;
  126. } else {
  127. if (isset($countryStates[$countryCode]) && !empty($countryStates[$countryCode]) && is_array($countryStates[$countryCode])) {
  128. $returnStateArr = $countryStates[$countryCode];
  129. }
  130. return $returnStateArr;
  131. }
  132. }
  133. }
  134. /**
  135. * @return array ,得到所有国家的数组
  136. * 格式:['国家简码' => '国家全称']
  137. */
  138. public static function getAllCountryArray()
  139. {
  140. return [
  141. 'AF'=>'Afghanistan',
  142. 'AX'=>'Åland Islands',
  143. 'AL'=>'Albania',
  144. 'DZ'=>'Algeria',
  145. 'AS'=>'American Samoa',
  146. 'AD'=>'Andorra',
  147. 'AO'=>'Angola',
  148. 'AI'=>'Anguilla',
  149. 'AQ'=>'Antarctica',
  150. 'AG'=>'Antigua and Barbuda',
  151. 'AR'=>'Argentina',
  152. 'AM'=>'Armenia',
  153. 'AW'=>'Aruba',
  154. 'AU'=>'Australia',
  155. 'AT'=>'Austria',
  156. 'AZ'=>'Azerbaijan',
  157. 'BS'=>'Bahamas',
  158. 'BH'=>'Bahrain',
  159. 'BD'=>'Bangladesh',
  160. 'BB'=>'Barbados',
  161. 'BY'=>'Belarus',
  162. 'BE'=>'Belgium',
  163. 'BZ'=>'Belize',
  164. 'BJ'=>'Benin',
  165. 'BM'=>'Bermuda',
  166. 'BT'=>'Bhutan',
  167. 'BO'=>'Bolivia',
  168. 'BA'=>'Bosnia and Herzegovina',
  169. 'BW'=>'Botswana',
  170. 'BV'=>'Bouvet Island',
  171. 'BR'=>'Brazil',
  172. 'IO'=>'British Indian Ocean Territory',
  173. 'VG'=>'British Virgin Islands',
  174. 'BN'=>'Brunei',
  175. 'BG'=>'Bulgaria',
  176. 'BF'=>'Burkina Faso',
  177. 'BI'=>'Burundi',
  178. 'KH'=>'Cambodia',
  179. 'CM'=>'Cameroon',
  180. 'CA'=>'Canada',
  181. 'CV'=>'Cape Verde',
  182. 'KY'=>'Cayman Islands',
  183. 'CF'=>'Central African Republic',
  184. 'TD'=>'Chad',
  185. 'CL'=>'Chile',
  186. 'CN'=>'China',
  187. 'CX'=>'Christmas Island',
  188. 'CC'=>'Cocos [Keeling] Islands',
  189. 'CO'=>'Colombia',
  190. 'KM'=>'Comoros',
  191. 'CG'=>'Congo - Brazzaville',
  192. 'CD'=>'Congo - Kinshasa',
  193. 'CK'=>'Cook Islands',
  194. 'CR'=>'Costa Rica',
  195. 'CI'=>'Côte d’Ivoire',
  196. 'HR'=>'Croatia',
  197. 'CU'=>'Cuba',
  198. 'CY'=>'Cyprus',
  199. 'CZ'=>'Czech Republic',
  200. 'DK'=>'Denmark',
  201. 'DJ'=>'Djibouti',
  202. 'DM'=>'Dominica',
  203. 'DO'=>'Dominican Republic',
  204. 'EC'=>'Ecuador',
  205. 'EG'=>'Egypt',
  206. 'SV'=>'El Salvador',
  207. 'GQ'=>'Equatorial Guinea',
  208. 'ER'=>'Eritrea',
  209. 'EE'=>'Estonia',
  210. 'ET'=>'Ethiopia',
  211. 'FK'=>'Falkland Islands',
  212. 'FO'=>'Faroe Islands',
  213. 'FJ'=>'Fiji',
  214. 'FI'=>'Finland',
  215. 'FR'=>'France',
  216. 'GF'=>'French Guiana',
  217. 'PF'=>'French Polynesia',
  218. 'TF'=>'French Southern Territories',
  219. 'GA'=>'Gabon',
  220. 'GM'=>'Gambia',
  221. 'GE'=>'Georgia',
  222. 'DE'=>'Germany',
  223. 'GH'=>'Ghana',
  224. 'GI'=>'Gibraltar',
  225. 'GR'=>'Greece',
  226. 'GL'=>'Greenland',
  227. 'GD'=>'Grenada',
  228. 'GP'=>'Guadeloupe',
  229. 'GU'=>'Guam',
  230. 'GT'=>'Guatemala',
  231. 'GG'=>'Guernsey',
  232. 'GN'=>'Guinea',
  233. 'GW'=>'Guinea-Bissau',
  234. 'GY'=>'Guyana',
  235. 'HT'=>'Haiti',
  236. 'HM'=>'Heard Island and McDonald Islands',
  237. 'HN'=>'Honduras',
  238. 'HK'=>'Hong Kong SAR China',
  239. 'HU'=>'Hungary',
  240. 'IS'=>'Iceland',
  241. 'IN'=>'India',
  242. 'ID'=>'Indonesia',
  243. 'IR'=>'Iran',
  244. 'IQ'=>'Iraq',
  245. 'IE'=>'Ireland',
  246. 'IM'=>'Isle of Man',
  247. 'IL'=>'Israel',
  248. 'IT'=>'Italy',
  249. 'JM'=>'Jamaica',
  250. 'JP'=>'Japan',
  251. 'JE'=>'Jersey',
  252. 'JO'=>'Jordan',
  253. 'KZ'=>'Kazakhstan',
  254. 'KE'=>'Kenya',
  255. 'KI'=>'Kiribati',
  256. 'KW'=>'Kuwait',
  257. 'KG'=>'Kyrgyzstan',
  258. 'LA'=>'Laos',
  259. 'LV'=>'Latvia',
  260. 'LB'=>'Lebanon',
  261. 'LS'=>'Lesotho',
  262. 'LR'=>'Liberia',
  263. 'LY'=>'Libya',
  264. 'LI'=>'Liechtenstein',
  265. 'LT'=>'Lithuania',
  266. 'LU'=>'Luxembourg',
  267. 'MO'=>'Macau SAR China',
  268. 'MK'=>'Macedonia',
  269. 'MG'=>'Madagascar',
  270. 'MW'=>'Malawi',
  271. 'MY'=>'Malaysia',
  272. 'MV'=>'Maldives',
  273. 'ML'=>'Mali',
  274. 'MT'=>'Malta',
  275. 'MH'=>'Marshall Islands',
  276. 'MQ'=>'Martinique',
  277. 'MR'=>'Mauritania',
  278. 'MU'=>'Mauritius',
  279. 'YT'=>'Mayotte',
  280. 'MX'=>'Mexico',
  281. 'FM'=>'Micronesia',
  282. 'MD'=>'Moldova',
  283. 'MC'=>'Monaco',
  284. 'MN'=>'Mongolia',
  285. 'ME'=>'Montenegro',
  286. 'MS'=>'Montserrat',
  287. 'MA'=>'Morocco',
  288. 'MZ'=>'Mozambique',
  289. 'MM'=>'Myanmar [Burma]',
  290. 'NA'=>'Namibia',
  291. 'NR'=>'Nauru',
  292. 'NP'=>'Nepal',
  293. 'NL'=>'Netherlands',
  294. 'AN'=>'Netherlands Antilles',
  295. 'NC'=>'New Caledonia',
  296. 'NZ'=>'New Zealand',
  297. 'NI'=>'Nicaragua',
  298. 'NE'=>'Niger',
  299. 'NG'=>'Nigeria',
  300. 'NU'=>'Niue',
  301. 'NF'=>'Norfolk Island',
  302. 'MP'=>'Northern Mariana Islands',
  303. 'KP'=>'North Korea',
  304. 'NO'=>'Norway',
  305. 'OM'=>'Oman',
  306. 'PK'=>'Pakistan',
  307. 'PW'=>'Palau',
  308. 'PS'=>'Palestinian Territories',
  309. 'PA'=>'Panama',
  310. 'PG'=>'Papua New Guinea',
  311. 'PY'=>'Paraguay',
  312. 'PE'=>'Peru',
  313. 'PH'=>'Philippines',
  314. 'PN'=>'Pitcairn Islands',
  315. 'PL'=>'Poland',
  316. 'PT'=>'Portugal',
  317. 'PR'=>'Puerto Rico',
  318. 'QA'=>'Qatar',
  319. 'RE'=>'R¨¦union',
  320. 'RO'=>'Romania',
  321. 'RU'=>'Russia',
  322. 'RW'=>'Rwanda',
  323. 'BL'=>'Saint Barth¨¦lemy',
  324. 'SH'=>'Saint Helena',
  325. 'KN'=>'Saint Kitts and Nevis',
  326. 'LC'=>'Saint Lucia',
  327. 'MF'=>'Saint Martin',
  328. 'PM'=>'Saint Pierre and Miquelon',
  329. 'VC'=>'Saint Vincent and the Grenadines',
  330. 'WS'=>'Samoa',
  331. 'SM'=>'San Marino',
  332. 'ST'=>'São Tomé and Príncipe',
  333. 'SA'=>'Saudi Arabia',
  334. 'SN'=>'Senegal',
  335. 'RS'=>'Serbia',
  336. 'SC'=>'Seychelles',
  337. 'SL'=>'Sierra Leone',
  338. 'SG'=>'Singapore',
  339. 'SK'=>'Slovakia',
  340. 'SI'=>'Slovenia',
  341. 'SB'=>'Solomon Islands',
  342. 'SO'=>'Somalia',
  343. 'ZA'=>'South Africa',
  344. 'GS'=>'South Georgia and the South Sandwich Islands',
  345. 'KR'=>'South Korea',
  346. 'ES'=>'Spain',
  347. 'LK'=>'Sri Lanka',
  348. 'SD'=>'Sudan',
  349. 'SR'=>'Suriname',
  350. 'SJ'=>'Svalbard and Jan Mayen',
  351. 'SZ'=>'Swaziland',
  352. 'SE'=>'Sweden',
  353. 'CH'=>'Switzerland',
  354. 'SY'=>'Syria',
  355. 'TW'=>'Taiwan',
  356. 'TJ'=>'Tajikistan',
  357. 'TZ'=>'Tanzania',
  358. 'TH'=>'Thailand',
  359. 'TL'=>'Timor-Leste',
  360. 'TG'=>'Togo',
  361. 'TK'=>'Tokelau',
  362. 'TO'=>'Tonga',
  363. 'TT'=>'Trinidad and Tobago',
  364. 'TN'=>'Tunisia',
  365. 'TR'=>'Turkey',
  366. 'TM'=>'Turkmenistan',
  367. 'TC'=>'Turks and Caicos Islands',
  368. 'TV'=>'Tuvalu',
  369. 'UG'=>'Uganda',
  370. 'UA'=>'Ukraine',
  371. 'AE'=>'United Arab Emirates',
  372. 'GB'=>'United Kingdom',
  373. 'US'=>'United States',
  374. 'UY'=>'Uruguay',
  375. 'UM'=>'U.S. Minor Outlying Islands',
  376. 'VI'=>'U.S. Virgin Islands',
  377. 'UZ'=>'Uzbekistan',
  378. 'VU'=>'Vanuatu',
  379. 'VA'=>'Vatican City',
  380. 'VE'=>'Venezuela',
  381. 'VN'=>'Vietnam',
  382. 'WF'=>'Wallis and Futuna',
  383. 'EH'=>'Western Sahara',
  384. 'YE'=>'Yemen',
  385. 'ZM'=>'Zambia',
  386. 'ZW'=>'Zimbabwe',
  387. ];
  388. }
  389. /**
  390. * 得到国家和省市数组
  391. * 格式为: [
  392. * 国家简码 =>
  393. * [
  394. * 省/市简码 => 省/市名称,
  395. * 省/市简码 => 省/市名称,
  396. * 省/市简码 => 省/市名称,
  397. * ]
  398. * ]
  399. * ]
  400. * 在选择国家后,省市的信息会以ajax的形式带出,存在以下列表的国家,会以下拉选择条
  401. * 的方式显示,如果不存在以下列表,则显示inputtext输入框,如果您想要某个国家的省市以
  402. * 下拉条的方式选择,可以在下面的函数里面添加对应的国家和省市信息,添加后
  403. * 选择国家后,省市会以下拉条的方式供用户选择,而不是inputtext填写省市信息。
  404. */
  405. public function getCountryStateArr()
  406. {
  407. $data = [
  408. 'US' => [
  409. 'AL' => 'Alabama',
  410. 'AK' => 'Alaska',
  411. 'AS' => 'American Samoa',
  412. 'AZ' => 'Arizona',
  413. 'AR' => 'Arkansas',
  414. 'AF' => 'Armed Forces Africa',
  415. 'AA' => 'Armed Forces Americas',
  416. 'AC' => 'Armed Forces Canada',
  417. 'AE' => 'Armed Forces Europe',
  418. 'AM' => 'Armed Forces Middle East',
  419. 'AP' => 'Armed Forces Pacific',
  420. 'CA' => 'California',
  421. 'CO' => 'Colorado',
  422. 'CT' => 'Connecticut',
  423. 'DE' => 'Delaware',
  424. 'DC' => 'District of Columbia',
  425. 'FM' => 'Federated States Of Micronesia',
  426. 'FL' => 'Florida',
  427. 'GA' => 'Georgia',
  428. 'GU' => 'Guam',
  429. 'HI' => 'Hawaii',
  430. 'ID' => 'Idaho',
  431. 'IL' => 'Illinois',
  432. 'IN' => 'Indiana',
  433. 'IA' => 'Iowa',
  434. 'KS' => 'Kansas',
  435. 'KY' => 'Kentucky',
  436. 'LA' => 'Louisiana',
  437. 'ME' => 'Maine',
  438. 'MH' => 'Marshall Islands',
  439. 'MD' => 'Maryland',
  440. 'MA' => 'Massachusetts',
  441. 'MI' => 'Michigan',
  442. 'MN' => 'Minnesota',
  443. 'MS' => 'Mississippi',
  444. 'MO' => 'Missouri',
  445. 'MT' => 'Montana',
  446. 'NE' => 'Nebraska',
  447. 'NV' => 'Nevada',
  448. 'NH' => 'New Hampshire',
  449. 'NJ' => 'New Jersey',
  450. 'NM' => 'New Mexico',
  451. 'NY' => 'New York',
  452. 'NC' => 'North Carolina',
  453. 'ND' => 'North Dakota',
  454. 'MP' => 'Northern Mariana Islands',
  455. 'OH' => 'Ohio',
  456. 'OK' => 'Oklahoma',
  457. 'OR' => 'Oregon',
  458. 'PW' => 'Palau',
  459. 'PA' => 'Pennsylvania',
  460. 'PR' => 'Puerto Rico',
  461. 'RI' => 'Rhode Island',
  462. 'SC' => 'South Carolina',
  463. 'SD' => 'South Dakota',
  464. 'TN' => 'Tennessee',
  465. 'TX' => 'Texas',
  466. 'UT' => 'Utah',
  467. 'VT' => 'Vermont',
  468. 'VI' => 'Virgin Islands',
  469. 'VA' => 'Virginia',
  470. 'WA' => 'Washington',
  471. 'WV' => 'West Virginia',
  472. 'WI' => 'Wisconsin',
  473. 'WY' => 'Wyoming',
  474. ],
  475. 'CA' => [
  476. 'AB' => 'Alberta',
  477. 'BC' => 'British Columbia',
  478. 'MB' => 'Manitoba',
  479. 'NL' => 'Newfoundland and Labrador',
  480. 'NB' => 'New Brunswick',
  481. 'NS' => 'Nova Scotia',
  482. 'NT' => 'Northwest Territories',
  483. 'NU' => 'Nunavut',
  484. 'ON' => 'Ontario',
  485. 'PE' => 'Prince Edward Island',
  486. 'QC' => 'Quebec',
  487. 'SK' => 'Saskatchewan',
  488. 'YT' => 'Yukon Territory',
  489. ],
  490. 'DE' => [
  491. 'NDS' => 'Niedersachsen',
  492. 'BAW' => 'Baden-Württemberg',
  493. 'BAY' => 'Bayern',
  494. 'BER' => 'Berlin',
  495. 'BRG' => 'Brandenburg',
  496. 'BRE' => 'Bremen',
  497. 'HAM' => 'Hamburg',
  498. 'HES' => 'Hessen',
  499. 'MEC' => 'Mecklenburg-Vorpommern',
  500. 'NRW' => 'Nordrhein-Westfalen',
  501. 'RHE' => 'Rheinland-Pfalz',
  502. 'SAR' => 'Saarland',
  503. 'SAS' => 'Sachsen',
  504. 'SAC' => 'Sachsen-Anhalt',
  505. 'SCN' => 'Schleswig-Holstein',
  506. 'THE' => 'Thüringen',
  507. ],
  508. 'AT' => [
  509. 'WI' => 'Wien',
  510. 'NO' => 'Niederösterreich',
  511. 'OO' => 'Oberösterreich',
  512. 'SB' => 'Salzburg',
  513. 'KN' => 'Kärnten',
  514. 'ST' => 'Steiermark',
  515. 'TI' => 'Tirol',
  516. 'BL' => 'Burgenland',
  517. 'VB' => 'Voralberg',
  518. ],
  519. 'CH' => [
  520. 'AG' => 'Aargau',
  521. 'AI' => 'Appenzell Innerrhoden',
  522. 'AR' => 'Appenzell Ausserrhoden',
  523. 'BE' => 'Bern',
  524. 'BL' => 'Basel-Landschaft',
  525. 'BS' => 'Basel-Stadt',
  526. 'FR' => 'Freiburg',
  527. 'GE' => 'Genf',
  528. 'GL' => 'Glarus',
  529. 'GR' => 'Graubünden',
  530. 'JU' => 'Jura',
  531. 'LU' => 'Luzern',
  532. 'NE' => 'Neuenburg',
  533. 'NW' => 'Nidwalden',
  534. 'OW' => 'Obwalden',
  535. 'SG' => 'St. Gallen',
  536. 'SH' => 'Schaffhausen',
  537. 'SO' => 'Solothurn',
  538. 'SZ' => 'Schwyz',
  539. 'TG' => 'Thurgau',
  540. 'TI' => 'Tessin',
  541. 'UR' => 'Uri',
  542. 'VD' => 'Waadt',
  543. 'VS' => 'Wallis',
  544. 'ZG' => 'Zug',
  545. 'ZH' => 'Zürich',
  546. ],
  547. 'ES' => [
  548. 'A Coruсa' => 'A Coruña',
  549. 'Alava' => 'Alava',
  550. 'Albacete' => 'Albacete',
  551. 'Alicante' => 'Alicante',
  552. 'Almeria' => 'Almeria',
  553. 'Asturias' => 'Asturias',
  554. 'Avila' => 'Avila',
  555. 'Badajoz' => 'Badajoz',
  556. 'Baleares' => 'Baleares',
  557. 'Barcelona' => 'Barcelona',
  558. 'Burgos' => 'Burgos',
  559. 'Caceres' => 'Caceres',
  560. 'Cadiz' => 'Cadiz',
  561. 'Cantabria' => 'Cantabria',
  562. 'Castellon' => 'Castellon',
  563. 'Ceuta' => 'Ceuta',
  564. 'Ciudad Real' => 'Ciudad Real',
  565. 'Cordoba' => 'Cordoba',
  566. 'Cuenca' => 'Cuenca',
  567. 'Girona' => 'Girona',
  568. 'Granada' => 'Granada',
  569. 'Guadalajara' => 'Guadalajara',
  570. 'Guipuzcoa' => 'Guipuzcoa',
  571. 'Huelva' => 'Huelva',
  572. 'Huesca' => 'Huesca',
  573. 'Jaen' => 'Jaen',
  574. 'La Rioja' => 'La Rioja',
  575. 'Las Palmas' => 'Las Palmas',
  576. 'Leon' => 'Leon',
  577. 'Lleida' => 'Lleida',
  578. 'Lugo' => 'Lugo',
  579. 'Madrid' => 'Madrid',
  580. 'Malaga' => 'Malaga',
  581. 'Melilla' => 'Melilla',
  582. 'Murcia' => 'Murcia',
  583. 'Navarra' => 'Navarra',
  584. 'Ourense' => 'Ourense',
  585. 'Palencia' => 'Palencia',
  586. 'Pontevedra' => 'Pontevedra',
  587. 'Salamanca' => 'Salamanca',
  588. 'Santa Cruz de Tenerife' => 'Santa Cruz de Tenerife',
  589. 'Segovia' => 'Segovia',
  590. 'Sevilla' => 'Sevilla',
  591. 'Soria' => 'Soria',
  592. 'Tarragona' => 'Tarragona',
  593. 'Teruel' => 'Teruel',
  594. 'Toledo' => 'Toledo',
  595. 'Valencia' => 'Valencia',
  596. 'Valladolid' => 'Valladolid',
  597. 'Vizcaya' => 'Vizcaya',
  598. 'Zamora' => 'Zamora',
  599. 'Zaragoza' => 'Zaragoza',
  600. ],
  601. 'FR' => [
  602. '1' => 'Ain',
  603. '2' => 'Aisne',
  604. '3' => 'Allier',
  605. '4' => 'Alpes-de-Haute-Provence',
  606. '5' => 'Hautes-Alpes',
  607. '6' => 'Alpes-Maritimes',
  608. '7' => 'Ardèche',
  609. '8' => 'Ardennes',
  610. '9' => 'Ariège',
  611. '10' => 'Aube',
  612. '11' => 'Aude',
  613. '12' => 'Aveyron',
  614. '13' => 'Bouches-du-Rhône',
  615. '14' => 'Calvados',
  616. '15' => 'Cantal',
  617. '16' => 'Charente',
  618. '17' => 'Charente-Maritime',
  619. '18' => 'Cher',
  620. '19' => 'Corrèze',
  621. '2A' => 'Corse-du-Sud',
  622. '2B' => 'Haute-Corse',
  623. '21' => 'Côte-d\'Or',
  624. '22' => 'Côtes-d\'Armor',
  625. '23' => 'Creuse',
  626. '24' => 'Dordogne',
  627. '25' => 'Doubs',
  628. '26' => 'Drôme',
  629. '27' => 'Eure',
  630. '28' => 'Eure-et-Loir',
  631. '29' => 'Finistère',
  632. '30' => 'Gard',
  633. '31' => 'Haute-Garonne',
  634. '32' => 'Gers',
  635. '33' => 'Gironde',
  636. '34' => 'Hérault',
  637. '35' => 'Ille-et-Vilaine',
  638. '36' => 'Indre',
  639. '37' => 'Indre-et-Loire',
  640. '38' => 'Isère',
  641. '39' => 'Jura',
  642. '40' => 'Landes',
  643. '41' => 'Loir-et-Cher',
  644. '42' => 'Loire',
  645. '43' => 'Haute-Loire',
  646. '44' => 'Loire-Atlantique',
  647. '45' => 'Loiret',
  648. '46' => 'Lot',
  649. '47' => 'Lot-et-Garonne',
  650. '48' => 'Lozère',
  651. '49' => 'Maine-et-Loire',
  652. '50' => 'Manche',
  653. '51' => 'Marne',
  654. '52' => 'Haute-Marne',
  655. '53' => 'Mayenne',
  656. '54' => 'Meurthe-et-Moselle',
  657. '55' => 'Meuse',
  658. '56' => 'Morbihan',
  659. '57' => 'Moselle',
  660. '58' => 'Nièvre',
  661. '59' => 'Nord',
  662. '60' => 'Oise',
  663. '61' => 'Orne',
  664. '62' => 'Pas-de-Calais',
  665. '63' => 'Puy-de-Dôme',
  666. '64' => 'Pyrénées-Atlantiques',
  667. '65' => 'Hautes-Pyrénées',
  668. '66' => 'Pyrénées-Orientales',
  669. '67' => 'Bas-Rhin',
  670. '68' => 'Haut-Rhin',
  671. '69' => 'Rhône',
  672. '70' => 'Haute-Saône',
  673. '71' => 'Saône-et-Loire',
  674. '72' => 'Sarthe',
  675. '73' => 'Savoie',
  676. '74' => 'Haute-Savoie',
  677. '75' => 'Paris',
  678. '76' => 'Seine-Maritime',
  679. '77' => 'Seine-et-Marne',
  680. '78' => 'Yvelines',
  681. '79' => 'Deux-Sèvres',
  682. '80' => 'Somme',
  683. '81' => 'Tarn',
  684. '82' => 'Tarn-et-Garonne',
  685. '83' => 'Var',
  686. '84' => 'Vaucluse',
  687. '85' => 'Vendée',
  688. '86' => 'Vienne',
  689. '87' => 'Haute-Vienne',
  690. '88' => 'Vosges',
  691. '89' => 'Yonne',
  692. '90' => 'Territoire-de-Belfort',
  693. '91' => 'Essonne',
  694. '92' => 'Hauts-de-Seine',
  695. '93' => 'Seine-Saint-Denis',
  696. '94' => 'Val-de-Marne',
  697. '95' => 'Val-d\'Oise',
  698. ],
  699. 'RO' => [
  700. 'AB' => 'Alba',
  701. 'AR' => 'Arad',
  702. 'AG' => 'Argeş',
  703. 'BC' => 'Bacău',
  704. 'BH' => 'Bihor',
  705. 'BN' => 'Bistriţa-Năsăud',
  706. 'BT' => 'Botoşani',
  707. 'BV' => 'Braşov',
  708. 'BR' => 'Brăila',
  709. 'B' => 'Bucureşti',
  710. 'BZ' => 'Buzău',
  711. 'CS' => 'Caraş-Severin',
  712. 'CL' => 'Călăraşi',
  713. 'CJ' => 'Cluj',
  714. 'CT' => 'Constanţa',
  715. 'CV' => 'Covasna',
  716. 'DB' => 'Dâmboviţa',
  717. 'DJ' => 'Dolj',
  718. 'GL' => 'Galaţi',
  719. 'GR' => 'Giurgiu',
  720. 'GJ' => 'Gorj',
  721. 'HR' => 'Harghita',
  722. 'HD' => 'Hunedoara',
  723. 'IL' => 'Ialomiţa',
  724. 'IS' => 'Iaşi',
  725. 'IF' => 'Ilfov',
  726. 'MM' => 'Maramureş',
  727. 'MH' => 'Mehedinţi',
  728. 'MS' => 'Mureş',
  729. 'NT' => 'Neamţ',
  730. 'OT' => 'Olt',
  731. 'PH' => 'Prahova',
  732. 'SM' => 'Satu-Mare',
  733. 'SJ' => 'Sălaj',
  734. 'SB' => 'Sibiu',
  735. 'SV' => 'Suceava',
  736. 'TR' => 'Teleorman',
  737. 'TM' => 'Timiş',
  738. 'TL' => 'Tulcea',
  739. 'VS' => 'Vaslui',
  740. 'VL' => 'Vâlcea',
  741. 'VN' => 'Vrancea',
  742. ],
  743. 'FI' => [
  744. 'Lappi' => 'Lappi',
  745. 'Pohjois-Pohjanmaa' => 'Pohjois-Pohjanmaa',
  746. 'Kainuu' => 'Kainuu',
  747. 'Pohjois-Karjala' => 'Pohjois-Karjala',
  748. 'Pohjois-Savo' => 'Pohjois-Savo',
  749. 'Etelä-Savo' => 'Etelä-Savo',
  750. 'Etelä-Pohjanmaa' => 'Etelä-Pohjanmaa',
  751. 'Pohjanmaa' => 'Pohjanmaa',
  752. 'Pirkanmaa' => 'Pirkanmaa',
  753. 'Satakunta' => 'Satakunta',
  754. 'Keski-Pohjanmaa' => 'Keski-Pohjanmaa',
  755. 'Keski-Suomi' => 'Keski-Suomi',
  756. 'Varsinais-Suomi' => 'Varsinais-Suomi',
  757. 'Etelä-Karjala' => 'Etelä-Karjala',
  758. 'Päijät-Häme' => 'Päijät-Häme',
  759. 'Kanta-Häme' => 'Kanta-Häme',
  760. 'Uusimaa' => 'Uusimaa',
  761. 'Itä-Uusimaa' => 'Itä-Uusimaa',
  762. 'Kymenlaakso' => 'Kymenlaakso',
  763. 'Ahvenanmaa' => 'Ahvenanmaa',
  764. ],
  765. 'EE' => [
  766. 'EE-37' => 'Harjumaa',
  767. 'EE-39' => 'Hiiumaa',
  768. 'EE-44' => 'Ida-Virumaa',
  769. 'EE-49' => 'Jõgevamaa',
  770. 'EE-51' => 'Järvamaa',
  771. 'EE-57' => 'Läänemaa',
  772. 'EE-59' => 'Lääne-Virumaa',
  773. 'EE-65' => 'Põlvamaa',
  774. 'EE-67' => 'Pärnumaa',
  775. 'EE-70' => 'Raplamaa',
  776. 'EE-74' => 'Saaremaa',
  777. 'EE-78' => 'Tartumaa',
  778. 'EE-82' => 'Valgamaa',
  779. 'EE-84' => 'Viljandimaa',
  780. 'EE-86' => 'Võrumaa',
  781. ],
  782. 'LV' => [
  783. 'LV-DGV' => 'Daugavpils',
  784. 'LV-JEL' => 'Jelgava',
  785. 'Jēkabpils' => 'Jēkabpils',
  786. 'LV-JUR' => 'Jūrmala',
  787. 'LV-LPX' => 'Liepāja',
  788. 'LV-LE' => 'Liepājas novads',
  789. 'LV-REZ' => 'Rēzekne',
  790. 'LV-RIX' => 'Rīga',
  791. 'LV-RI' => 'Rīgas novads',
  792. 'Valmiera' => 'Valmiera',
  793. 'LV-VEN' => 'Ventspils',
  794. 'Aglonas novads' => 'Aglonas novads',
  795. 'LV-AI' => 'Aizkraukles novads',
  796. 'Aizputes novads' => 'Aizputes novads',
  797. 'Aknīstes novads' => 'Aknīstes novads',
  798. 'Alojas novads' => 'Alojas novads',
  799. 'Alsungas novads' => 'Alsungas novads',
  800. 'LV-AL' => 'Alūksnes novads',
  801. 'Amatas novads' => 'Amatas novads',
  802. 'Apes novads' => 'Apes novads',
  803. 'Auces novads' => 'Auces novads',
  804. 'Babītes novads' => 'Babītes novads',
  805. 'Baldones novads' => 'Baldones novads',
  806. 'Baltinavas novads' => 'Baltinavas novads',
  807. 'LV-BL' => 'Balvu novads',
  808. 'LV-BU' => 'Bauskas novads',
  809. 'Beverīnas novads' => 'Beverīnas novads',
  810. 'Brocēnu novads' => 'Brocēnu novads',
  811. 'Burtnieku novads' => 'Burtnieku novads',
  812. 'Carnikavas novads' => 'Carnikavas novads',
  813. 'Cesvaines novads' => 'Cesvaines novads',
  814. 'Ciblas novads' => 'Ciblas novads',
  815. 'LV-CE' => 'Cēsu novads',
  816. 'Dagdas novads' => 'Dagdas novads',
  817. 'LV-DA' => 'Daugavpils novads',
  818. 'LV-DO' => 'Dobeles novads',
  819. 'Dundagas novads' => 'Dundagas novads',
  820. 'Durbes novads' => 'Durbes novads',
  821. 'Engures novads' => 'Engures novads',
  822. 'Garkalnes novads' => 'Garkalnes novads',
  823. 'Grobiņas novads' => 'Grobiņas novads',
  824. 'LV-GU' => 'Gulbenes novads',
  825. 'Iecavas novads' => 'Iecavas novads',
  826. 'Ikšķiles novads' => 'Ikšķiles novads',
  827. 'Ilūkstes novads' => 'Ilūkstes novads',
  828. 'Inčukalna novads' => 'Inčukalna novads',
  829. 'Jaunjelgavas novads' => 'Jaunjelgavas novads',
  830. 'Jaunpiebalgas novads' => 'Jaunpiebalgas novads',
  831. 'Jaunpils novads' => 'Jaunpils novads',
  832. 'LV-JL' => 'Jelgavas novads',
  833. 'LV-JK' => 'Jēkabpils novads',
  834. 'Kandavas novads' => 'Kandavas novads',
  835. 'Kokneses novads' => 'Kokneses novads',
  836. 'Krimuldas novads' => 'Krimuldas novads',
  837. 'Krustpils novads' => 'Krustpils novads',
  838. 'LV-KR' => 'Krāslavas novads',
  839. 'LV-KU' => 'Kuldīgas novads',
  840. 'Kārsavas novads' => 'Kārsavas novads',
  841. 'Lielvārdes novads' => 'Lielvārdes novads',
  842. 'LV-LM' => 'Limbažu novads',
  843. 'Lubānas novads' => 'Lubānas novads',
  844. 'LV-LU' => 'Ludzas novads',
  845. 'Līgatnes novads' => 'Līgatnes novads',
  846. 'Līvānu novads' => 'Līvānu novads',
  847. 'LV-MA' => 'Madonas novads',
  848. 'Mazsalacas novads' => 'Mazsalacas novads',
  849. 'Mālpils novads' => 'Mālpils novads',
  850. 'Mārupes novads' => 'Mārupes novads',
  851. 'Naukšēnu novads' => 'Naukšēnu novads',
  852. 'Neretas novads' => 'Neretas novads',
  853. 'Nīcas novads' => 'Nīcas novads',
  854. 'LV-OG' => 'Ogres novads',
  855. 'Olaines novads' => 'Olaines novads',
  856. 'Ozolnieku novads' => 'Ozolnieku novads',
  857. 'LV-PR' => 'Preiļu novads',
  858. 'Priekules novads' => 'Priekules novads',
  859. 'Priekuļu novads' => 'Priekuļu novads',
  860. 'Pārgaujas novads' => 'Pārgaujas novads',
  861. 'Pāvilostas novads' => 'Pāvilostas novads',
  862. 'Pļaviņu novads' => 'Pļaviņu novads',
  863. 'Raunas novads' => 'Raunas novads',
  864. 'Riebiņu novads' => 'Riebiņu novads',
  865. 'Rojas novads' => 'Rojas novads',
  866. 'Ropažu novads' => 'Ropažu novads',
  867. 'Rucavas novads' => 'Rucavas novads',
  868. 'Rugāju novads' => 'Rugāju novads',
  869. 'Rundāles novads' => 'Rundāles novads',
  870. 'LV-RE' => 'Rēzeknes novads',
  871. 'Rūjienas novads' => 'Rūjienas novads',
  872. 'Salacgrīvas novads' => 'Salacgrīvas novads',
  873. 'Salas novads' => 'Salas novads',
  874. 'Salaspils novads' => 'Salaspils novads',
  875. 'LV-SA' => 'Saldus novads',
  876. 'Saulkrastu novads' => 'Saulkrastu novads',
  877. 'Siguldas novads' => 'Siguldas novads',
  878. 'Skrundas novads' => 'Skrundas novads',
  879. 'Skrīveru novads' => 'Skrīveru novads',
  880. 'Smiltenes novads' => 'Smiltenes novads',
  881. 'Stopiņu novads' => 'Stopiņu novads',
  882. 'Strenču novads' => 'Strenču novads',
  883. 'Sējas novads' => 'Sējas novads',
  884. 'LV-TA' => 'Talsu novads',
  885. 'LV-TU' => 'Tukuma novads',
  886. 'Tērvetes novads' => 'Tērvetes novads',
  887. 'Vaiņodes novads' => 'Vaiņodes novads',
  888. 'LV-VK' => 'Valkas novads',
  889. 'LV-VM' => 'Valmieras novads',
  890. 'Varakļānu novads' => 'Varakļānu novads',
  891. 'Vecpiebalgas novads' => 'Vecpiebalgas novads',
  892. 'Vecumnieku novads' => 'Vecumnieku novads',
  893. 'LV-VE' => 'Ventspils novads',
  894. 'Viesītes novads' => 'Viesītes novads',
  895. 'Viļakas novads' => 'Viļakas novads',
  896. 'Viļānu novads' => 'Viļānu novads',
  897. 'Vārkavas novads' => 'Vārkavas novads',
  898. 'Zilupes novads' => 'Zilupes novads',
  899. 'Ādažu novads' => 'Ādažu novads',
  900. 'Ērgļu novads' => 'Ērgļu novads',
  901. 'Ķeguma novads' => 'Ķeguma novads',
  902. 'Ķekavas novads' => 'Ķekavas novads',
  903. ],
  904. 'LT' => [
  905. 'LT-AL' => 'Alytaus Apskritis',
  906. 'LT-KU' => 'Kauno Apskritis',
  907. 'LT-KL' => 'Klaipėdos Apskritis',
  908. 'LT-MR' => 'Marijampolės Apskritis',
  909. 'LT-PN' => 'Panevėžio Apskritis',
  910. 'LT-SA' => 'Šiaulių Apskritis',
  911. 'LT-TA' => 'Tauragės Apskritis',
  912. 'LT-TE' => 'Telšių Apskritis',
  913. 'LT-UT' => 'Utenos Apskritis',
  914. 'LT-VL' => 'Vilniaus Apskritis',
  915. ],
  916. 'CN' => [
  917. 'BJ' => '北京市',
  918. 'SH' => '上海市',
  919. 'TJ' => '天津市',
  920. 'CQ' => '重庆市',
  921. 'HEB' => '河北省',
  922. 'SAX' => '山西省',
  923. 'LN' => '辽宁省',
  924. 'JL' => '吉林省',
  925. 'HLJ' => '黑龙江省',
  926. 'JS' => '江苏省',
  927. 'ZJ' => '浙江省',
  928. 'AH' => '安徽省',
  929. 'FJ' => '福建省',
  930. 'JX' => '江西省',
  931. 'SD' => '山东省',
  932. 'HEN' => '河南省',
  933. 'HUB' => '湖北省',
  934. 'HUN' => '湖南省',
  935. 'GD' => '广东省',
  936. 'HN' => '海南省',
  937. 'SC' => '四川省',
  938. 'HZ' => '贵州省',
  939. 'YN' => '云南省',
  940. 'SNX' => '陕西省',
  941. 'GS' => '甘肃省',
  942. 'QH' => '青海省',
  943. 'TW' => '台湾省',
  944. 'GX' => '广西壮族自治区',
  945. 'NMG' => '内蒙古自治区',
  946. 'XZ' => '西藏自治区',
  947. 'NX' => '宁夏回族自治区',
  948. 'XJ' => '新疆维吾尔自治区',
  949. 'XG' => '香港特别行政区',
  950. ],
  951. ];
  952. return $data;
  953. }
  954. }