WebmasterController.php 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Models\Site;
  4. use App\Http\Models\WebmasterCountry;
  5. use App\Http\Models\WebmasterEffect;
  6. use App\Http\Models\WebmasterFlow;
  7. use App\Http\Models\WebmasterInclude;
  8. use App\Http\Models\WebmasterKeyword;
  9. use App\Http\Models\WebmasterKeywordInfo;
  10. use App\Http\Models\WebmasterLog;
  11. use GuzzleHttp\Client;
  12. use Illuminate\Http\Request;
  13. use App\Http\Controllers\Controller;
  14. use Google_Service_Webmasters_SearchAnalyticsQueryRequest;
  15. use Google_Client;
  16. use Google_Service_Webmasters;
  17. /**
  18. * 谷歌webmaster
  19. * Class WebmasterController
  20. * @package App\Http\Controllers\Admin
  21. */
  22. class WebmasterController extends Controller
  23. {
  24. protected $_redirectUrl = 'http://test.yinqingli.com/admin/webmaster/data';
  25. // protected $_redirectUrl = 'http://test.rank.yinqingli.cn/admincp/webmaster/api';
  26. protected $_oAuthCredentialsFile = './auth.json';
  27. public function getData(Request $request)
  28. {
  29. $oauth_credentials = $this->getOAuthCredentialsFile($this->_oAuthCredentialsFile);
  30. if (!$oauth_credentials) dd('CredentialsFile not exists');
  31. $httpClient = new Client(['verify' => false]);
  32. $client = new Google_Client();
  33. $client->setHttpClient($httpClient);
  34. $client->setAuthConfig($oauth_credentials);
  35. $client->addScope([Google_Service_Webmasters::WEBMASTERS]);
  36. if ($request->input('code')) {
  37. $token = $client->fetchAccessTokenWithAuthCode($request->input('code'));
  38. dd($token);
  39. $client->setAccessToken($token);
  40. $service = new Google_Service_Webmasters($client);
  41. $this->makeSearchConsoleData($service);
  42. dd('success');
  43. } else {
  44. dd('google 授权授权失败');
  45. }
  46. }
  47. /**
  48. * 授权
  49. * @throws \Google_Exception
  50. */
  51. public function oauth()
  52. {
  53. $oauth_credentials = $this->getOAuthCredentialsFile($this->_oAuthCredentialsFile);
  54. if (!$oauth_credentials) dump('CredentialsFile not exists');
  55. $httpClient = new Client([
  56. 'verify' => false
  57. ]);
  58. $client = new Google_Client();
  59. $client->setHttpClient($httpClient);
  60. $client->setAuthConfig($oauth_credentials);
  61. $client->setRedirectUri($this->_redirectUrl);
  62. $client->addScope([Google_Service_Webmasters::WEBMASTERS]);
  63. $authUrl = $client->createAuthUrl();
  64. return redirect($authUrl);
  65. // header('Location: ' . $authUrl);
  66. // exit;
  67. }
  68. protected function getOAuthCredentialsFile($file)
  69. {
  70. if (file_exists($file)) {
  71. return $file;
  72. }
  73. return false;
  74. }
  75. protected $_webmasterStartTime;
  76. /**
  77. * 生成webmaster数据
  78. * @param $service
  79. */
  80. public function makeSearchConsoleData($service)
  81. {
  82. ignore_user_abort(true);
  83. set_time_limit(0);
  84. $body = new Google_Service_Webmasters_SearchAnalyticsQueryRequest();
  85. $ym = date('Ym', strtotime('-1 month'));//默认读取上个月的数据
  86. $this->_webmasterStartTime = strtotime($ym . '01');
  87. $sites = Site::query()->where([])->get();
  88. foreach ($sites as $key => $item) {
  89. if (empty($item['webmaster_domain'])) {
  90. continue;
  91. }
  92. if (empty($item['report_day'])) {
  93. continue;
  94. }
  95. if (!WebmasterFlow::query()->where(['flow_ym' => $ym, 'site_id' => $item->id])->exists()) {
  96. $isFirst = 0;
  97. if (!WebmasterFlow::query()->where(['site_id' => $item->id])->exists()) {
  98. $isFirst = 1;
  99. }
  100. $flow = WebmasterFlow::query()->create([ //提前记录此项目已生成webmaster数据
  101. 'project_id' => $item['id'],
  102. 'flow_ym' => $ym,
  103. 'create_time' => time(),
  104. 'webmaster_domain' => $item['webmaster_domain'],
  105. 'status' => 1
  106. ]);
  107. $finalResult = 1;
  108. $this->traffic($body, $item, $service, $finalResult, $isFirst);
  109. $this->homepageKeywords($body, $item, $service, $finalResult, $isFirst);
  110. $this->countryTraffic($body, $item, $service, $finalResult, $isFirst);
  111. $this->includePage($body, $item, $service, $finalResult, $isFirst);
  112. $flow->update(['status' => $finalResult]);
  113. }
  114. }
  115. }
  116. /**
  117. * time 1号的时间戳
  118. * @param $time
  119. * @return false|int
  120. */
  121. public function getEndDate($time)
  122. {
  123. return date('Y-m-d', strtotime('+1 month -1 day', $time));
  124. }
  125. /**
  126. * webmaster 效果
  127. * @param Google_Service_Webmasters_SearchAnalyticsQueryRequest $body
  128. * @param $project
  129. * @param $service
  130. * @param $finalResult
  131. * @param $isFirst //是否是第一次
  132. * @return mixed
  133. */
  134. public function traffic(Google_Service_Webmasters_SearchAnalyticsQueryRequest $body, $project, $service, &$finalResult, $isFirst)
  135. {
  136. $frequency = 1;
  137. if ($isFirst) {
  138. $frequency = 6; //如果是第一次查6次
  139. }
  140. for ($count = 0; $count < $frequency; $count++) {
  141. $startTime = strtotime('-' . $count . ' month', $this->_webmasterStartTime);
  142. $body->setDimensions(['date']);
  143. $body->setStartDate(date('Y-m-d', $startTime));
  144. $body->setEndDate($this->getEndDate($startTime));
  145. try {
  146. $results = $service->searchanalytics->query($project['webmaster_domain'], $body);
  147. } catch (\Throwable $exception) {
  148. $finalResult = 0;
  149. //如果有发现查询错误直接终止
  150. return WebmasterLog::query()->create([
  151. 'project_id' => $project['id'],
  152. 'domain' => $project['webmaster_domain'],
  153. 'ym' => date('Ym', $startTime),
  154. 'create_time' => time(),
  155. 'method' => __METHOD__,
  156. 'detail' => $exception->getMessage()
  157. ]);
  158. }
  159. if (!empty($results->rows)) {
  160. foreach ($results->rows as $item) {
  161. if (empty($item['keys'][0])) continue;
  162. WebmasterEffect::query()->create([
  163. 'project_id' => $project['id'],
  164. 'domain' => $project['webmaster_domain'],
  165. 'date_key' => $item['keys'][0],
  166. 'clicks' => $item['clicks'],
  167. 'impressions' => $item['impressions'],
  168. 'ctr' => $item['ctr'],
  169. 'position' => $item['position'],
  170. 'create_time' => time(),
  171. 'ym' => date('Ym', $startTime)
  172. ]);
  173. }
  174. }
  175. }
  176. }
  177. /**
  178. * 整站关键词首页量=>排名小于10的 个数相加 query
  179. * @param Google_Service_Webmasters_SearchAnalyticsQueryRequest $body
  180. * @param $project
  181. * @param $service
  182. * @param $finalResult
  183. * @param $isFirst
  184. * @return mixed
  185. */
  186. public function homepageKeywords(Google_Service_Webmasters_SearchAnalyticsQueryRequest $body, $project, $service, &$finalResult, $isFirst)
  187. {
  188. $frequency = 1;
  189. if ($isFirst) {
  190. $frequency = 6; //如果是第一次查6次
  191. }
  192. for ($count = 0; $count < $frequency; $count++) {
  193. $startTime = strtotime('-' . $count . ' month', $this->_webmasterStartTime);
  194. $body->setStartDate(date('Y-m-d', $startTime));
  195. $body->setEndDate($this->getEndDate($startTime));
  196. $body->setDimensions(['query']);
  197. try {
  198. $results = $service->searchanalytics->query($project['webmaster_domain'], $body);
  199. } catch (\Throwable $exception) {
  200. $finalResult = 0;
  201. return WebmasterLog::query()->create([
  202. 'project_id' => $project['id'],
  203. 'webmaster_domain' => $project['webmaster_domain'],
  204. 'ym' => date('Ym', $startTime),
  205. 'create_time' => time(),
  206. 'method' => __METHOD__,
  207. 'detail' => $exception->getMessage()
  208. ]);
  209. }
  210. if (!empty($results->rows)) {
  211. $total = 0;
  212. foreach ($results->rows as $item) {
  213. if ($item['position'] < 10) {
  214. WebmasterKeywordInfo::query()->create([
  215. 'domain' => $project['webmaster_domain'],
  216. 'project_id' => $project['id'],
  217. 'query' => $item['keys'][0] ? $item['keys'][0] : '',
  218. 'clicks' => $item['clicks'],
  219. 'impressions' => $item['impressions'],
  220. 'ctr' => $item['ctr'],
  221. 'position' => $item['position'],
  222. 'ym' => date('Ym', $startTime),
  223. 'create_time' => time()
  224. ]);
  225. $total++;
  226. }
  227. }
  228. WebmasterKeyword::query()->create([
  229. 'project_id' => $project['id'],
  230. 'ym' => date('Ym', $startTime),
  231. 'domain' => $project['webmaster_domain'],
  232. 'total' => $total,
  233. 'create_time' => time()
  234. ]);
  235. }
  236. }
  237. }
  238. /**
  239. * webmaster 覆盖率 有效网页
  240. * @param Google_Service_Webmasters_SearchAnalyticsQueryRequest $body
  241. * @param $project
  242. * @param $service
  243. * @param $finalResult
  244. * @param $isFirst
  245. * @return mixed
  246. */
  247. public function includePage(Google_Service_Webmasters_SearchAnalyticsQueryRequest $body, $project, $service, &$finalResult, $isFirst)
  248. {
  249. $frequency = 1;
  250. if ($isFirst) {
  251. $frequency = 6; //如果是第一次查6次
  252. }
  253. for ($count = 0; $count < $frequency; $count++) {
  254. $body->setDimensions(['page']);
  255. $startTime = strtotime('-' . $count . ' month', $this->_webmasterStartTime);
  256. $body->setStartDate(date('Y-m-d', $startTime));
  257. $body->setEndDate($this->getEndDate($startTime));
  258. try {
  259. $results = $service->searchanalytics->query($project['webmaster_domain'], $body);
  260. } catch (\Throwable $exception) {
  261. $finalResult = 0;
  262. return WebmasterLog::query()->create([
  263. 'project_id' => $project['id'],
  264. 'webmaster_domain' => $project['webmaster_domain'],
  265. 'ym' => date('Ym', $startTime),
  266. 'create_time' => time(),
  267. 'method' => __METHOD__,
  268. 'detail' => $exception->getMessage()
  269. ]);
  270. }
  271. if (!empty($results->rows)) {
  272. WebmasterInclude::query()->create([
  273. 'project_id' => $project['id'],
  274. 'domain' => $project['webmaster_domain'],
  275. 'total' => count($results->rows),
  276. 'create_time' => time(),
  277. 'ym' => date('Ym', $startTime)
  278. ]);
  279. }
  280. }
  281. }
  282. /**
  283. * 国家地区分布
  284. * @param Google_Service_Webmasters_SearchAnalyticsQueryRequest $body
  285. * @param $project
  286. * @param $service
  287. * @param $finalResult
  288. * @param $isFirst
  289. * @return mixed
  290. */
  291. public function countryTraffic(Google_Service_Webmasters_SearchAnalyticsQueryRequest $body, $project, $service, &$finalResult, $isFirst)
  292. {
  293. $frequency = 1;
  294. if ($isFirst) {
  295. $frequency = 6; //如果是第一次查6次
  296. }
  297. for ($count = 0; $count < $frequency; $count++) {
  298. $regions = $this->regions();
  299. $body->setDimensions(['country']);
  300. $startTime = strtotime('-' . $count . ' month', $this->_webmasterStartTime);
  301. $body->setStartDate(date('Y-m-d', $startTime));
  302. $body->setEndDate($this->getEndDate($startTime));
  303. try {
  304. $results = $service->searchanalytics->query($project['webmaster_domain'], $body);
  305. } catch (\Throwable $exception) {
  306. $finalResult = 0;
  307. return WebmasterLog::query()->create([
  308. 'project_id' => $project['id'],
  309. 'webmaster_domain' => $project['webmaster_domain'],
  310. 'ym' => date('Ym', $startTime),
  311. 'create_time' => time(),
  312. 'method' => __METHOD__,
  313. 'detail' => $exception->getMessage()
  314. ]);
  315. }
  316. if (!empty($results->rows)) {
  317. $rows = $this->objectToArray($results->rows);
  318. $clicksList = array_column($rows, 'clicks');
  319. array_multisort($clicksList, SORT_DESC, $rows);
  320. $totalClicks = array_sum($clicksList);
  321. $fiveTotalRate = $fiveTotalClicks = 0;
  322. for ($count = 0; $count < 5; $count++) {
  323. $rate = $rows[$count]['clicks'] / $totalClicks;
  324. $fiveTotalRate += $rate;
  325. $fiveTotalClicks += $rows[$count]['clicks'];
  326. WebmasterCountry::query()->create([
  327. 'project_id' => $project['id'],
  328. 'domain' => $project['webmaster_domain'],
  329. 'clicks' => $rows[$count]['clicks'],
  330. 'rate' => $rate,
  331. 'country_code' => $rows[$count]['keys'][0],
  332. 'country_zh' => $regions[strtoupper($rows[$count]['keys'][0])]['zh'],
  333. 'create_time' => time(),
  334. 'ym' => date('Ym', $startTime)
  335. ]);
  336. }
  337. WebmasterCountry::query()->create([
  338. 'project_id' => $project['id'],
  339. 'domain' => $project['webmaster_domain'],
  340. 'clicks' => $totalClicks - $fiveTotalClicks,
  341. 'rate' => 1 - $fiveTotalRate,
  342. 'country_code' => '',
  343. 'country_zh' => '其他',
  344. 'create_time' => time(),
  345. 'ym' => date('Ym', $startTime)
  346. ]);
  347. }
  348. }
  349. }
  350. /**
  351. * 将二维数组下的对象转为数组
  352. * @param $data
  353. * @return mixed
  354. */
  355. protected function objectToArray($data)
  356. {
  357. foreach ($data as &$item) {
  358. $item = (array)$item;
  359. }
  360. return $data;
  361. }
  362. protected function regions()
  363. {
  364. return [
  365. 'ABW' => [
  366. 'en' => 'Aruba',
  367. 'zh' => '阿鲁巴岛'
  368. ],
  369. 'AFG' => [
  370. 'en' => 'Afghanistan',
  371. 'zh' => '阿富汗'
  372. ],
  373. 'AGO' => [
  374. 'en' => 'Angola',
  375. 'zh' => '安哥拉'
  376. ],
  377. 'AIA' => [
  378. 'en' => 'Anguilla',
  379. 'zh' => '安圭拉岛'
  380. ],
  381. 'ALA' => [
  382. 'en' => 'Aland Islands',//Åland Islands
  383. 'zh' => '阿兰群岛'
  384. ],
  385. 'ALB' => [
  386. 'en' => 'Albania',
  387. 'zh' => '阿尔巴尼亚'
  388. ],
  389. 'AND' => [
  390. 'en' => 'Andorra',
  391. 'zh' => '安道尔'
  392. ],
  393. 'ARE' => [
  394. 'en' => 'United Arab Emirates',
  395. 'zh' => '阿拉伯联合酋长国'
  396. ],
  397. 'ARG' => [
  398. 'en' => 'Argentina',
  399. 'zh' => '阿根廷'
  400. ],
  401. 'ARM' => [
  402. 'en' => 'Armenia',
  403. 'zh' => '亚美尼亚'
  404. ],
  405. 'ASM' => [
  406. 'en' => 'American Samoa',
  407. 'zh' => '美属萨摩亚'
  408. ],
  409. 'ATA' => [
  410. 'en' => 'Antarctica',
  411. 'zh' => '南极洲'
  412. ],
  413. 'ATF' => [
  414. 'en' => 'French Southern Territories',
  415. 'zh' => '法国南部地区'
  416. ],
  417. 'ATG' => [
  418. 'en' => 'Antigua and Barbuda',
  419. 'zh' => '安提瓜和巴布达'
  420. ],
  421. 'AUS' => [
  422. 'en' => 'Australia',
  423. 'zh' => '澳大利亚'
  424. ],
  425. 'AUT' => [
  426. 'en' => 'Austria',
  427. 'zh' => '奥地利'
  428. ],
  429. 'AZE' => [
  430. 'en' => 'Azerbaijan',
  431. 'zh' => '阿塞拜疆'
  432. ],
  433. 'BDI' => [
  434. 'en' => 'Burundi',
  435. 'zh' => '布隆迪'
  436. ],
  437. 'BEL' => [
  438. 'en' => 'Belgium',
  439. 'zh' => '比利时'
  440. ],
  441. 'BEN' => [
  442. 'en' => 'Benin',
  443. 'zh' => '贝宁'
  444. ],
  445. 'BES' => [
  446. 'en' => 'Bonaire, Sint Eustatius and Saba',
  447. 'zh' => '博奈尔,圣尤斯塔修斯和示巴'
  448. ],
  449. 'BFA' => [
  450. 'en' => 'Burkina Faso',
  451. 'zh' => '布吉纳法索'
  452. ],
  453. 'BGD' => [
  454. 'en' => 'Bangladesh',
  455. 'zh' => '孟加拉国'
  456. ],
  457. 'BGR' => [
  458. 'en' => 'Bulgaria',
  459. 'zh' => '保加利亚'
  460. ],
  461. 'BHR' => [
  462. 'en' => 'Bahrain',
  463. 'zh' => '巴林'
  464. ],
  465. 'BHS' => [
  466. 'en' => 'Bahamas',
  467. 'zh' => '巴哈马群岛'
  468. ],
  469. 'BIH' => [
  470. 'en' => 'Bosnia and Herzegovina',
  471. 'zh' => '波斯尼亚和黑塞哥维那'
  472. ],
  473. 'BLM' => [
  474. 'en' => 'Saint Barthélemy',
  475. 'zh' => '圣巴特尔米'
  476. ],
  477. 'BLR' => [
  478. 'en' => 'Belarus',
  479. 'zh' => '白俄罗斯'
  480. ],
  481. 'BLZ' => [
  482. 'en' => 'Belize',
  483. 'zh' => '伯利兹'
  484. ],
  485. 'BMU' => [
  486. 'en' => 'Bermuda',
  487. 'zh' => '百慕大'
  488. ],
  489. 'BOL' => [
  490. 'en' => 'Bolivia(Plurinational State of)',
  491. 'zh' => '玻利维亚'
  492. ],
  493. 'BRA' => [
  494. 'en' => 'Brazil',
  495. 'zh' => '巴西'
  496. ],
  497. 'BRB' => [
  498. 'en' => 'Barbados',
  499. 'zh' => '巴巴多斯'
  500. ],
  501. 'BRN' => [
  502. 'en' => 'Brunei Darussalam',
  503. 'zh' => '文莱'
  504. ],
  505. 'BTN' => [
  506. 'en' => 'Bhutan',
  507. 'zh' => '不丹'
  508. ],
  509. 'BVT' => [
  510. 'en' => 'Bouvet Island',
  511. 'zh' => '布维岛'
  512. ],
  513. 'BWA' => [
  514. 'en' => 'Botswana',
  515. 'zh' => '博茨瓦纳'
  516. ],
  517. 'CAF' => [
  518. 'en' => 'Central African Republic',
  519. 'zh' => '中非共和国'
  520. ],
  521. 'CAN' => [
  522. 'en' => 'Canada',
  523. 'zh' => '加拿大'
  524. ],
  525. 'CCK' => [
  526. 'en' => 'Cocos(Keeling) Islands',
  527. 'zh' => '科科斯(基林)群岛'
  528. ],
  529. 'CHE' => [
  530. 'en' => 'Switzerland',
  531. 'zh' => '瑞士'
  532. ],
  533. 'CHL' => [
  534. 'en' => 'Chile',
  535. 'zh' => '智利'
  536. ],
  537. 'CHN' => [
  538. 'en' => 'China',
  539. 'zh' => '中国'
  540. ],
  541. 'CIV' => [
  542. 'en' => 'Cote d\'Ivoire',//Côte d'Ivoire
  543. 'zh' => '科特迪瓦'
  544. ],
  545. 'CMR' => [
  546. 'en' => 'Cameroon',
  547. 'zh' => '喀麦隆'
  548. ],
  549. 'COD' => [
  550. 'en' => 'Congo, Democratic Republic of the',
  551. 'zh' => '刚果,民主共和国'
  552. ],
  553. 'COG' => [
  554. 'en' => 'Congo',
  555. 'zh' => '刚果'
  556. ],
  557. 'COK' => [
  558. 'en' => 'Congo',
  559. 'zh' => '库克群岛'
  560. ],
  561. 'COL' => [
  562. 'en' => 'Colombia',
  563. 'zh' => '哥伦比亚'
  564. ],
  565. 'COM' => [
  566. 'en' => 'Comoros',
  567. 'zh' => '科摩罗'
  568. ],
  569. 'CPV' => [
  570. 'en' => 'Cabo Verde',
  571. 'zh' => '佛得角'
  572. ],
  573. 'CRI' => [
  574. 'en' => 'Costa Rica',
  575. 'zh' => '哥斯达黎加'
  576. ],
  577. 'CUB' => [
  578. 'en' => 'Cuba',
  579. 'zh' => '古巴'
  580. ],
  581. 'CUW' => [
  582. 'en' => 'Curaçao',
  583. 'zh' => 'Curaçao'
  584. ],
  585. 'CXR' => [
  586. 'en' => 'Christmas Island',
  587. 'zh' => '圣诞岛'
  588. ],
  589. 'CYM' => [
  590. 'en' => 'Cayman Islands',
  591. 'zh' => '开曼群岛'
  592. ],
  593. 'CYP' => [
  594. 'en' => 'Cyprus',
  595. 'zh' => '塞浦路斯'
  596. ],
  597. 'CZE' => [
  598. 'en' => 'Czechia',
  599. 'zh' => '捷克'
  600. ],
  601. 'DEU' => [
  602. 'en' => 'Germany',
  603. 'zh' => 'Germany'
  604. ],
  605. 'DJI' => [
  606. 'en' => 'Djibouti',
  607. 'zh' => '吉布提'
  608. ],
  609. 'DMA' => [
  610. 'en' => 'Dominica',
  611. 'zh' => '多米尼加'
  612. ],
  613. 'DNK' => [
  614. 'en' => 'Denmark',
  615. 'zh' => '丹麦'
  616. ],
  617. 'DOM' => [
  618. 'en' => 'Dominican Republic',
  619. 'zh' => '多米尼加共和国'
  620. ],
  621. 'DZA' => [
  622. 'en' => 'Algeria',
  623. 'zh' => 'Algeria'
  624. ],
  625. 'ECU' => [
  626. 'en' => 'Ecuador',
  627. 'zh' => 'Ecuador'
  628. ],
  629. 'EGY' => [
  630. 'en' => 'Egypt',
  631. 'zh' => '埃及'
  632. ],
  633. 'ERI' => [
  634. 'en' => 'Eritrea',
  635. 'zh' => '厄立特里亚'
  636. ],
  637. 'ESH' => [
  638. 'en' => 'Western Sahara',
  639. 'zh' => '西撒哈拉'
  640. ],
  641. 'ESP' => [
  642. 'en' => 'Spain',
  643. 'zh' => '西班牙'
  644. ],
  645. 'EST' => [
  646. 'en' => 'Estonia',
  647. 'zh' => '爱沙尼亚'
  648. ],
  649. 'ETH' => [
  650. 'en' => 'Ethiopia',
  651. 'zh' => '埃塞俄比亚'
  652. ],
  653. 'FIN' => [
  654. 'en' => 'Finland',
  655. 'zh' => '芬兰'
  656. ],
  657. 'FJI' => [
  658. 'en' => 'Fiji',
  659. 'zh' => '斐济'
  660. ],
  661. 'FLK' => [
  662. 'en' => 'Falkland Islands(Malvinas)',
  663. 'zh' => '福克兰群岛(马尔维纳斯群岛)'
  664. ],
  665. 'FRA' => [
  666. 'en' => 'France',
  667. 'zh' => '法国'
  668. ],
  669. 'FRO' => [
  670. 'en' => 'Faroe Islands',
  671. 'zh' => 'Faroe Islands'
  672. ],
  673. 'FSM' => [
  674. 'en' => 'Micronesia(Federated States of)',
  675. 'zh' => '密克罗尼西亚(联邦)'
  676. ],
  677. 'GAB' => [
  678. 'en' => 'Gabon',
  679. 'zh' => '加蓬'
  680. ],
  681. 'GBR' => [
  682. 'en' => 'United Kingdom of Great Britain and Northern Ireland',
  683. 'zh' => '英国'
  684. ],
  685. 'GEO' => [
  686. 'en' => 'Georgias',
  687. 'zh' => '乔治亚州'
  688. ],
  689. 'GGY' => [
  690. 'en' => 'Guernsey',
  691. 'zh' => '根西岛'
  692. ],
  693. 'GHA' => [
  694. 'en' => 'Ghana',
  695. 'zh' => '加纳'
  696. ],
  697. 'GIB' => [
  698. 'en' => 'Gibraltar',
  699. 'zh' => '直布罗陀'
  700. ],
  701. 'GIN' => [
  702. 'en' => 'Guinea',
  703. 'zh' => '几内亚'
  704. ],
  705. 'GLP' => [
  706. 'en' => 'Guadeloupe',
  707. 'zh' => '瓜德罗普岛'
  708. ],
  709. 'GMB' => [
  710. 'en' => 'Gambia',
  711. 'zh' => '冈比亚'
  712. ],
  713. 'GNB' => [
  714. 'en' => 'Guinea - Bissau',
  715. 'zh' => '几内亚-比绍'
  716. ],
  717. 'GNQ' => [
  718. 'en' => 'Equatorial Guinea',
  719. 'zh' => '赤道几内亚'
  720. ],
  721. 'GRC' => [
  722. 'en' => 'Greece',
  723. 'zh' => '希腊'
  724. ],
  725. 'GRD' => [
  726. 'en' => 'Grenada',
  727. 'zh' => '格林纳达'
  728. ],
  729. 'GRL' => [
  730. 'en' => 'Greenland',
  731. 'zh' => '格陵兰岛'
  732. ],
  733. 'GTM' => [
  734. 'en' => 'Guatemala',
  735. 'zh' => '危地马拉'
  736. ],
  737. 'GUF' => [
  738. 'en' => 'French Guiana',
  739. 'zh' => '法属圭亚那'
  740. ],
  741. 'GUM' => [
  742. 'en' => 'Guam',
  743. 'zh' => '关岛'
  744. ],
  745. 'GUY' => [
  746. 'en' => 'Guyana',
  747. 'zh' => '圭亚那'
  748. ],
  749. 'HKG' => [
  750. 'en' => 'Hong Kong',
  751. 'zh' => '中国香港'
  752. ],
  753. 'HMD' => [
  754. 'en' => 'Heard Island and McDonald Islands',
  755. 'zh' => '赫德岛和麦克唐纳岛'
  756. ],
  757. 'HND' => [
  758. 'en' => 'Honduras',
  759. 'zh' => '洪都拉斯'
  760. ],
  761. 'HRV' => [
  762. 'en' => 'Croatia',
  763. 'zh' => '克罗地亚'
  764. ],
  765. 'HTI' => [
  766. 'en' => 'Haiti',
  767. 'zh' => '海地'
  768. ],
  769. 'HUN' => [
  770. 'en' => 'Hungary',
  771. 'zh' => '匈牙利'
  772. ],
  773. 'IDN' => [
  774. 'en' => 'Indonesia',
  775. 'zh' => '印度尼西亚'
  776. ],
  777. 'IMN' => [
  778. 'en' => 'Isle of Man',
  779. 'zh' => '英国属地曼岛'
  780. ],
  781. 'IND' => [
  782. 'en' => 'India',
  783. 'zh' => '印度'
  784. ],
  785. 'IOT' => [
  786. 'en' => 'British Indian Ocean Territory',
  787. 'zh' => '英属印度洋领土'
  788. ],
  789. 'IRL' => [
  790. 'en' => 'Ireland',
  791. 'zh' => '爱尔兰'
  792. ],
  793. 'IRN' => [
  794. 'en' => 'Iran(Islamic Republic of)',
  795. 'zh' => '伊朗(伊斯兰共和国)'
  796. ],
  797. 'IRQ' => [
  798. 'en' => 'Iraq',
  799. 'zh' => '伊拉克'
  800. ],
  801. 'ISL' => [
  802. 'en' => 'Iceland',
  803. 'zh' => '冰岛'
  804. ],
  805. 'ISR' => [
  806. 'en' => 'Israel',
  807. 'zh' => '以色列'
  808. ],
  809. 'ITA' => [
  810. 'en' => 'Italy',
  811. 'zh' => '意大利'
  812. ],
  813. 'JAM' => [
  814. 'en' => 'Jamaica',
  815. 'zh' => '牙买加'
  816. ],
  817. 'JEY' => [
  818. 'en' => 'Jersey',
  819. 'zh' => '泽西岛'
  820. ],
  821. 'JOR' => [
  822. 'en' => 'Jordan',
  823. 'zh' => '约旦'
  824. ],
  825. 'JPN' => [
  826. 'en' => 'Japan',
  827. 'zh' => '日本'
  828. ],
  829. 'KAZ' => [
  830. 'en' => 'Kazakhstan',
  831. 'zh' => '哈萨克斯坦'
  832. ],
  833. 'KEN' => [
  834. 'en' => 'Kenya',
  835. 'zh' => '肯尼亚'
  836. ],
  837. 'KGZ' => [
  838. 'en' => 'Kyrgyzstan',
  839. 'zh' => '吉尔吉斯斯坦'
  840. ],
  841. 'KHM' => [
  842. 'en' => 'Cambodia',
  843. 'zh' => '柬埔寨'
  844. ],
  845. 'KIR' => [
  846. 'en' => 'Kiribati',
  847. 'zh' => 'Kiribati'
  848. ],
  849. 'KNA' => [
  850. 'en' => 'Saint Kitts and Nevis',
  851. 'zh' => '圣基茨和尼维斯'
  852. ],
  853. 'KOR' => [
  854. 'en' => 'Korea, Republic of',
  855. 'zh' => '朝鲜共和国'
  856. ],
  857. 'KWT' => [
  858. 'en' => 'Kuwait',
  859. 'zh' => '科威特'
  860. ],
  861. 'LAO' => [
  862. 'en' => 'Lao People\'s Democratic Republic',
  863. 'zh' => ''
  864. ],
  865. 'LBN' => [
  866. 'en' => 'Lebanon',
  867. 'zh' => '黎巴嫩'
  868. ],
  869. 'LBR' => [
  870. 'en' => 'Liberia',
  871. 'zh' => '利比里亚'
  872. ],
  873. 'LBY' => [
  874. 'en' => 'Libya',
  875. 'zh' => '利比亚'
  876. ],
  877. 'LCA' => [
  878. 'en' => 'Saint Lucia',
  879. 'zh' => '圣卢西亚岛'
  880. ],
  881. 'LIE' => [
  882. 'en' => 'Liechtenstein',
  883. 'zh' => '列支敦斯登'
  884. ],
  885. 'LKA' => [
  886. 'en' => 'Sri Lanka',
  887. 'zh' => '斯里兰卡'
  888. ],
  889. 'LSO' => [
  890. 'en' => 'Lesotho',
  891. 'zh' => '莱索托'
  892. ],
  893. 'LTU' => [
  894. 'en' => 'Lithuania',
  895. 'zh' => '立陶宛'
  896. ],
  897. 'LUX' => [
  898. 'en' => 'Luxembourg',
  899. 'zh' => '卢森堡'
  900. ],
  901. 'LVA' => [
  902. 'en' => 'Latvia',
  903. 'zh' => '拉脱维亚'
  904. ],
  905. 'MAC' => [
  906. 'en' => 'Macao',
  907. 'zh' => '中国澳门'
  908. ],
  909. 'MAF' => [
  910. 'en' => 'Saint Martin(French part)',
  911. 'zh' => '圣马丁(法国)'
  912. ],
  913. 'MAR' => [
  914. 'en' => 'Morocco',
  915. 'zh' => '摩洛哥'
  916. ],
  917. 'MCO' => [
  918. 'en' => 'Monaco',
  919. 'zh' => '摩纳哥'
  920. ],
  921. 'MDA' => [
  922. 'en' => 'Moldova, Republic of',
  923. 'zh' => '摩尔多瓦共和国'
  924. ],
  925. 'MDG' => [
  926. 'en' => 'Madagascar',
  927. 'zh' => 'Madagascar'
  928. ],
  929. 'MDV' => [
  930. 'en' => 'Maldives',
  931. 'zh' => '马尔代夫'
  932. ],
  933. 'MEX' => [
  934. 'en' => 'Mexico',
  935. 'zh' => '墨西哥'
  936. ],
  937. 'MHL' => [
  938. 'en' => 'Marshall Islands',
  939. 'zh' => '马绍尔群岛'
  940. ],
  941. 'MKD' => [
  942. 'en' => 'Macedonia, the former Yugoslav Republic of',
  943. 'zh' => '马其顿,前南斯拉夫共和国'
  944. ],
  945. 'MLI' => [
  946. 'en' => 'Mali',
  947. 'zh' => '马里'
  948. ],
  949. 'MLT' => [
  950. 'en' => 'Malta',
  951. 'zh' => 'Malta'
  952. ],
  953. 'MMR' => [
  954. 'en' => 'Myanmar',
  955. 'zh' => '缅甸'
  956. ],
  957. 'MNE' => [
  958. 'en' => 'Montenegro',
  959. 'zh' => '黑山共和国'
  960. ],
  961. 'MNG' => [
  962. 'en' => 'Mongolia',
  963. 'zh' => '蒙古'
  964. ],
  965. 'MNP' => [
  966. 'en' => 'Northern Mariana Islands',
  967. 'zh' => '北马里亚纳群岛'
  968. ],
  969. 'MOZ' => [
  970. 'en' => 'Mozambique',
  971. 'zh' => '莫桑比克'
  972. ],
  973. 'MRT' => [
  974. 'en' => 'Mauritania',
  975. 'zh' => '毛利塔尼亚'
  976. ],
  977. 'MSR' => [
  978. 'en' => 'Montserrat',
  979. 'zh' => '蒙特塞拉特'
  980. ],
  981. 'MTQ' => [
  982. 'en' => 'Martinique',
  983. 'zh' => '马提尼克岛'
  984. ],
  985. 'MUS' => [
  986. 'en' => 'Mauritius',
  987. 'zh' => '毛里求斯'
  988. ],
  989. 'MWI' => [
  990. 'en' => 'Malawi',
  991. 'zh' => '马拉维'
  992. ],
  993. 'MYS' => [
  994. 'en' => 'Malaysia',
  995. 'zh' => '马来西亚'
  996. ],
  997. 'MYT' => [
  998. 'en' => 'Mayotte',
  999. 'zh' => '科摩罗马约特岛'
  1000. ],
  1001. 'NAM' => [
  1002. 'en' => 'Namibia',
  1003. 'zh' => '纳米比亚'
  1004. ],
  1005. 'NCL' => [
  1006. 'en' => 'New Caledonia',
  1007. 'zh' => '新喀里多尼亚'
  1008. ],
  1009. 'NER' => [
  1010. 'en' => 'Niger',
  1011. 'zh' => '尼日尔'
  1012. ],
  1013. 'NFK' => [
  1014. 'en' => 'Norfolk Island',
  1015. 'zh' => '诺福克岛'
  1016. ],
  1017. 'NGA' => [
  1018. 'en' => 'Nigeria',
  1019. 'zh' => '尼日利亚'
  1020. ],
  1021. 'NIC' => [
  1022. 'en' => 'Nicaragua',
  1023. 'zh' => '尼加拉瓜'
  1024. ],
  1025. 'NIU' => [
  1026. 'en' => 'Niue',
  1027. 'zh' => '纽埃岛'
  1028. ],
  1029. 'NLD' => [
  1030. 'en' => 'Netherlands',
  1031. 'zh' => '荷兰'
  1032. ],
  1033. 'NOR' => [
  1034. 'en' => 'Norway',
  1035. 'zh' => '挪威'
  1036. ],
  1037. 'NPL' => [
  1038. 'en' => 'Nepal',
  1039. 'zh' => '尼泊尔'
  1040. ],
  1041. 'NRU' => [
  1042. 'en' => 'Nauru',
  1043. 'zh' => '瑙鲁'
  1044. ],
  1045. 'NZL' => [
  1046. 'en' => 'New Zealand',
  1047. 'zh' => '新西兰'
  1048. ],
  1049. 'OMN' => [
  1050. 'en' => 'Oman',
  1051. 'zh' => '阿曼'
  1052. ],
  1053. 'PAK' => [
  1054. 'en' => 'Pakistan',
  1055. 'zh' => '巴基斯坦'
  1056. ],
  1057. 'PAN' => [
  1058. 'en' => 'Panama',
  1059. 'zh' => '巴拿马'
  1060. ],
  1061. 'PCN' => [
  1062. 'en' => 'Pitcairn',
  1063. 'zh' => '皮特克恩'
  1064. ],
  1065. 'PHL' => [
  1066. 'en' => 'Philippines',
  1067. 'zh' => '菲律宾'
  1068. ],
  1069. 'PER' => [
  1070. 'en' => 'Peru',
  1071. 'zh' => '秘鲁'
  1072. ],
  1073. 'PLW' => [
  1074. 'en' => 'Palau',
  1075. 'zh' => '帕劳'
  1076. ],
  1077. 'PNG' => [
  1078. 'en' => 'Papua New Guinea',
  1079. 'zh' => '巴布新几内亚'
  1080. ],
  1081. 'POL' => [
  1082. 'en' => 'Poland',
  1083. 'zh' => '波兰'
  1084. ],
  1085. 'PRI' => [
  1086. 'en' => 'Puerto Rico',
  1087. 'zh' => '波多黎各'
  1088. ],
  1089. 'PRK' => [
  1090. 'en' => 'Korea(Democratic People\'s Republic of)',
  1091. 'zh' => '朝鲜(民主主义人民共和国)'
  1092. ],
  1093. 'PRT' => [
  1094. 'en' => 'Portugal',
  1095. 'zh' => '葡萄牙'
  1096. ],
  1097. 'PRY' => [
  1098. 'en' => 'Paraguay',
  1099. 'zh' => '巴拉圭'
  1100. ],
  1101. 'PSE' => [
  1102. 'en' => 'Palestine, State of',
  1103. 'zh' => '巴勒斯坦'
  1104. ],
  1105. 'PYF' => [
  1106. 'en' => 'French Polynesia',
  1107. 'zh' => '法属波利尼西亚'
  1108. ],
  1109. 'QAT' => [
  1110. 'en' => 'Qatar',
  1111. 'zh' => '卡塔尔'
  1112. ],
  1113. 'REU' => [
  1114. 'en' => 'Réunion',
  1115. 'zh' => '留尼汪'
  1116. ],
  1117. 'ROU' => [
  1118. 'en' => 'Romania',
  1119. 'zh' => 'Romania'
  1120. ],
  1121. 'RUS' => [
  1122. 'en' => 'Russian Federation',
  1123. 'zh' => '俄罗斯联邦'
  1124. ],
  1125. 'RWA' => [
  1126. 'en' => 'Rwanda',
  1127. 'zh' => '卢旺达'
  1128. ],
  1129. 'SAU' => [
  1130. 'en' => 'Saudi Arabia',
  1131. 'zh' => '沙特阿拉伯'
  1132. ],
  1133. 'SDN' => [
  1134. 'en' => 'Sudan',
  1135. 'zh' => '苏丹'
  1136. ],
  1137. 'SEN' => [
  1138. 'en' => 'Senegal',
  1139. 'zh' => '塞内加尔'
  1140. ],
  1141. 'SGP' => [
  1142. 'en' => 'Singapore',
  1143. 'zh' => '新加坡'
  1144. ],
  1145. 'SGS' => [
  1146. 'en' => 'South Georgia and the South Sandwich Islands',
  1147. 'zh' => '南乔治亚和南桑威奇群岛'
  1148. ],
  1149. 'SHN' => [
  1150. 'en' => 'Saint Helena, Ascension and Tristan da Cunha',
  1151. 'zh' => '圣海伦娜,阿森松和特里斯坦·达库尼亚'
  1152. ],
  1153. 'SJM' => [
  1154. 'en' => 'Svalbard and Jan Mayen',
  1155. 'zh' => '斯瓦尔巴特群岛和扬·马延'
  1156. ],
  1157. 'SLB' => [
  1158. 'en' => 'Solomon Islands',
  1159. 'zh' => '所罗门群岛'
  1160. ],
  1161. 'SLE' => [
  1162. 'en' => 'Sierra Leone',
  1163. 'zh' => '塞拉利昂'
  1164. ],
  1165. 'SLV' => [
  1166. 'en' => 'El Salvador',
  1167. 'zh' => '萨尔瓦多'
  1168. ],
  1169. 'SMR' => [
  1170. 'en' => 'San Marino',
  1171. 'zh' => '圣马力诺'
  1172. ],
  1173. 'SOM' => [
  1174. 'en' => 'Somalia',
  1175. 'zh' => '索马里'
  1176. ],
  1177. 'SPM' => [
  1178. 'en' => 'Saint Pierre and Miquelon',
  1179. 'zh' => '圣皮埃尔和密克隆'
  1180. ],
  1181. 'SRB' => [
  1182. 'en' => 'Serbia',
  1183. 'zh' => '塞尔维亚'
  1184. ],
  1185. 'SSD' => [
  1186. 'en' => 'South Sudan',
  1187. 'zh' => '南苏丹'
  1188. ],
  1189. 'STP' => [
  1190. 'en' => 'Sao Tome and Principe',
  1191. 'zh' => '圣多美和普林西比'
  1192. ],
  1193. 'SUR' => [
  1194. 'en' => 'Suriname',
  1195. 'zh' => '苏里南'
  1196. ],
  1197. 'SVK' => [
  1198. 'en' => 'Slovakia',
  1199. 'zh' => '斯洛伐克'
  1200. ],
  1201. 'SVN' => [
  1202. 'en' => 'Slovenia',
  1203. 'zh' => '斯洛文尼亚'
  1204. ],
  1205. 'SWE' => [
  1206. 'en' => 'Sweden',
  1207. 'zh' => '瑞典'
  1208. ],
  1209. 'SWZ' => [
  1210. 'en' => 'Eswatini',
  1211. 'zh' => '斯威士兰'
  1212. ],
  1213. 'SXM' => [
  1214. 'en' => 'Sint Maarten(Dutch part)',
  1215. 'zh' => '荷属圣马丁'
  1216. ],
  1217. 'SYC' => [
  1218. 'en' => 'Seychelles',
  1219. 'zh' => '塞舌尔'
  1220. ],
  1221. 'SYR' => [
  1222. 'en' => 'Syrian Arab Republic',
  1223. 'zh' => '阿拉伯叙利亚共和国'
  1224. ],
  1225. 'TCA' => [
  1226. 'en' => 'Turks and Caicos Islands',
  1227. 'zh' => '特克斯和凯科斯群岛'
  1228. ],
  1229. 'TCD' => [
  1230. 'en' => 'Chad',
  1231. 'zh' => '乍得'
  1232. ],
  1233. 'TGO' => [
  1234. 'en' => 'Togo',
  1235. 'zh' => '多哥'
  1236. ],
  1237. 'THA' => [
  1238. 'en' => 'Thailand',
  1239. 'zh' => '泰国'
  1240. ],
  1241. 'TJK' => [
  1242. 'en' => 'Tajikistan',
  1243. 'zh' => '塔吉克斯坦'
  1244. ],
  1245. 'TKL' => [
  1246. 'en' => 'Tokelau',
  1247. 'zh' => '托克劳'
  1248. ],
  1249. 'TKM' => [
  1250. 'en' => 'Turkmenistan',
  1251. 'zh' => '土库曼斯坦'
  1252. ],
  1253. 'TLS' => [
  1254. 'en' => 'Timor - Leste',
  1255. 'zh' => '东帝汶'
  1256. ],
  1257. 'TON' => [
  1258. 'en' => 'Tonga',
  1259. 'zh' => '汤加'
  1260. ],
  1261. 'TTO' => [
  1262. 'en' => 'Trinidad and Tobago',
  1263. 'zh' => '特立尼达和多巴哥'
  1264. ],
  1265. 'TUN' => [
  1266. 'en' => 'Tunisia',
  1267. 'zh' => '突尼斯'
  1268. ],
  1269. 'TUR' => [
  1270. 'en' => 'Turkey',
  1271. 'zh' => '土耳其'
  1272. ],
  1273. 'TUV' => [
  1274. 'en' => 'Tuvalu',
  1275. 'zh' => '图瓦卢'
  1276. ],
  1277. 'TWN' => [
  1278. 'en' => 'Taiwan, Province of China',
  1279. 'zh' => '中国台湾'
  1280. ],
  1281. 'TZA' => [
  1282. 'en' => 'Tanzania, United Republic of',
  1283. 'zh' => '坦桑尼亚'
  1284. ],
  1285. 'UGA' => [
  1286. 'en' => 'Uganda',
  1287. 'zh' => '乌干达'
  1288. ],
  1289. 'UKR' => [
  1290. 'en' => 'Ukraine',
  1291. 'zh' => '乌克兰'
  1292. ],
  1293. 'UMI' => [
  1294. 'en' => 'United States Minor Outlying Islands',
  1295. 'zh' => '美国本土外小岛屿'
  1296. ],
  1297. 'URY' => [
  1298. 'en' => 'Uruguay',
  1299. 'zh' => '乌拉圭'
  1300. ],
  1301. 'USA' => [
  1302. 'en' => 'United States of America',
  1303. 'zh' => '美国'
  1304. ],
  1305. 'UZB' => [
  1306. 'en' => 'Uzbekistan',
  1307. 'zh' => '乌兹别克斯坦'
  1308. ],
  1309. 'VAT' => [
  1310. 'en' => 'Holy See',
  1311. 'zh' => '圣座'
  1312. ],
  1313. 'VCT' => [
  1314. 'en' => 'Saint Vincent and the Grenadines',
  1315. 'zh' => '圣文森特和格林纳丁斯'
  1316. ],
  1317. 'VEN' => [
  1318. 'en' => 'Venezuela(Bolivarian Republic of)',
  1319. 'zh' => '委内瑞拉(玻利瓦尔共和国)'
  1320. ],
  1321. 'VGB' => [
  1322. 'en' => 'Virgin Islands(British)',
  1323. 'zh' => '维尔京群岛(英国)'
  1324. ],
  1325. 'VIR' => [
  1326. 'en' => 'Virgin Islands(U . S .)',
  1327. 'zh' => '维尔京群岛'
  1328. ],
  1329. 'VNM' => [
  1330. 'en' => 'Viet Nam',
  1331. 'zh' => 'Viet Nam'
  1332. ],
  1333. 'VUT' => [
  1334. 'en' => 'Vanuatu',
  1335. 'zh' => '瓦努阿图'
  1336. ],
  1337. 'WLF' => [
  1338. 'en' => 'Wallis and Futuna',
  1339. 'zh' => '瓦利斯群岛和富图纳群岛'
  1340. ],
  1341. 'WSM' => [
  1342. 'en' => 'Samoa',
  1343. 'zh' => '萨摩亚'
  1344. ],
  1345. 'YEM' => [
  1346. 'en' => 'Yemen',
  1347. 'zh' => '也门'
  1348. ],
  1349. 'ZAF' => [
  1350. 'en' => 'South Africa',
  1351. 'zh' => '南非'
  1352. ],
  1353. 'ZMB' => [
  1354. 'en' => 'Zambia',
  1355. 'zh' => '赞比亚'
  1356. ],
  1357. 'ZWE' => [
  1358. 'en' => 'Zimbabwe',
  1359. 'zh' => '津巴布韦'
  1360. ]
  1361. ];
  1362. }
  1363. }