CountryModel::getCurrentUserCountry()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Yeelight\Models\Basic;
4
5
use Countries;
6
7
/**
8
 * Class CountryModel
9
 *
10
 * @category Yeelight
11
 *
12
 * @package Yeelight\Models\Basic
13
 *
14
 * @author Sheldon Lee <[email protected]>
15
 *
16
 * @license https://opensource.org/licenses/MIT MIT
17
 *
18
 * @link https://www.yeelight.com
19
 */
20
class CountryModel
21
{
22
    const COUNTRY_CHINA = 'CN';
23
    const COUNTRY_SINGAPORE = 'SG';
24
    const COUNTRY_UNITED_STATES = 'US';
25
    const CURRENT_USER_COUNTRY_KEY = 'Country.CurrentUser';
26
27
    public static $fallback_country = self::COUNTRY_UNITED_STATES;
28
29
    public static $all_available_countries = [
30
        self::COUNTRY_SINGAPORE,
31
        self::COUNTRY_CHINA,
32
        self::COUNTRY_UNITED_STATES,
33
    ];
34
35
    public static $nexmo_supported_country_calling_codes = [
36
        'AD' => '+376',
37
        'AE' => '+971',
38
        'AF' => '+93',
39
        'AG' => '+1268',
40
        'AI' => '+1264',
41
        'AL' => '+355',
42
        'AM' => '+374',
43
        'AO' => '+244',
44
        'AR' => '+54',
45
        'AT' => '+43',
46
        'AU' => '+61',
47
        'AW' => '+297',
48
        'AZ' => '+994',
49
        'BA' => '+387',
50
        'BB' => '+1246',
51
        'BD' => '+880',
52
        'BE' => '+32',
53
        'BF' => '+226',
54
        'BG' => '+359',
55
        'BH' => '+973',
56
        'BI' => '+257',
57
        'BJ' => '+229',
58
        'BM' => '+1441',
59
        'BN' => '+673',
60
        'BO' => '+591',
61
        'BQ' => '+599',
62
        'BR' => '+55',
63
        'BS' => '+1242',
64
        'BT' => '+975',
65
        'BW' => '+267',
66
        'BY' => '+375',
67
        'BZ' => '+501',
68
        'CA' => '+1',
69
        'CD' => '+243',
70
        'CF' => '+236',
71
        'CG' => '+242',
72
        'CH' => '+41',
73
        'CI' => '+225',
74
        'CK' => '+682',
75
        'CL' => '+56',
76
        'CM' => '+237',
77
        'CN' => '+86',
78
        'CO' => '+57',
79
        'CR' => '+506',
80
        'CU' => '+53',
81
        'CV' => '+238',
82
        'CW' => '+599',
83
        'CY' => '+357',
84
        'CZ' => '+420',
85
        'DE' => '+49',
86
        'DJ' => '+253',
87
        'DK' => '+45',
88
        'DM' => '+1767',
89
        'DO' => '+1809',
90
        'DZ' => '+213',
91
        'EC' => '+593',
92
        'EE' => '+372',
93
        'EG' => '+20',
94
        'ES' => '+34',
95
        'ET' => '+251',
96
        'FI' => '+358',
97
        'FJ' => '+679',
98
        'FO' => '+298',
99
        'FR' => '+33',
100
        'GA' => '+241',
101
        'GB' => '+44',
102
        'GD' => '+1473',
103
        'GE' => '+995',
104
        'GF' => '+594',
105
        'GH' => '+233',
106
        'GI' => '+350',
107
        'GL' => '+299',
108
        'GM' => '+220',
109
        'GN' => '+224',
110
        'GP' => '+590',
111
        'GQ' => '+240',
112
        'GR' => '+30',
113
        'GT' => '+502',
114
        'GU' => '+1671',
115
        'GW' => '+245',
116
        'GY' => '+592',
117
        'HK' => '+852',
118
        'HN' => '+504',
119
        'HR' => '+385',
120
        'HT' => '+509',
121
        'HU' => '+36',
122
        'ID' => '+62',
123
        'IE' => '+353',
124
        'IL' => '+972',
125
        'IN' => '+91',
126
        'IQ' => '+964',
127
        'IR' => '+98',
128
        'IS' => '+354',
129
        'IT' => '+39',
130
        'JM' => '+1876',
131
        'JO' => '+962',
132
        'JP' => '+81',
133
        'KE' => '+254',
134
        'KG' => '+996',
135
        'KH' => '+855',
136
        'KI' => '+686',
137
        'KM' => '+269',
138
        'KN' => '+1869',
139
        'KR' => '+82',
140
        'KW' => '+965',
141
        'KY' => '+1345',
142
        'KZ' => '+7',
143
        'LA' => '+856',
144
        'LB' => '+961',
145
        'LC' => '+1758',
146
        'LI' => '+423',
147
        'LK' => '+94',
148
        'LR' => '+231',
149
        'LS' => '+266',
150
        'LT' => '+370',
151
        'LU' => '+352',
152
        'LV' => '+371',
153
        'LY' => '+218',
154
        'MA' => '+212',
155
        'MC' => '+377',
156
        'MD' => '+373',
157
        'ME' => '+382',
158
        'MG' => '+261',
159
        'MK' => '+389',
160
        'ML' => '+223',
161
        'MM' => '+95',
162
        'MN' => '+976',
163
        'MO' => '+853',
164
        'MQ' => '+596',
165
        'MR' => '+222',
166
        'MS' => '+1664',
167
        'MT' => '+356',
168
        'MU' => '+230',
169
        'MV' => '+960',
170
        'MW' => '+265',
171
        'MX' => '+52',
172
        'MY' => '+60',
173
        'MZ' => '+258',
174
        'NA' => '+264',
175
        'NC' => '+687',
176
        'NE' => '+227',
177
        'NG' => '+234',
178
        'NI' => '+505',
179
        'NL' => '+31',
180
        'NO' => '+47',
181
        'NP' => '+977',
182
        'NZ' => '+64',
183
        'OM' => '+968',
184
        'PA' => '+507',
185
        'PE' => '+51',
186
        'PF' => '+689',
187
        'PG' => '+675',
188
        'PH' => '+63',
189
        'PK' => '+92',
190
        'PL' => '+48',
191
        'PM' => '+508',
192
        'PR' => '+1787',
193
        'PS' => '+970',
194
        'PT' => '+351',
195
        'PW' => '+680',
196
        'PY' => '+595',
197
        'QA' => '+974',
198
        'RE' => '+262',
199
        'RO' => '+40',
200
        'RS' => '+381',
201
        'RU' => '+7',
202
        'RW' => '+250',
203
        'SA' => '+966',
204
        'SB' => '+677',
205
        'SC' => '+248',
206
        'SD' => '+249',
207
        'SE' => '+46',
208
        'SG' => '+65',
209
        'SI' => '+386',
210
        'SK' => '+421',
211
        'SL' => '+232',
212
        'SM' => '+378',
213
        'SN' => '+221',
214
        'SO' => '+252',
215
        'SR' => '+597',
216
        'SS' => '+211',
217
        'ST' => '+239',
218
        'SV' => '+503',
219
        'SX' => '+1721',
220
        'SY' => '+963',
221
        'SZ' => '+268',
222
        'TC' => '+1649',
223
        'TD' => '+235',
224
        'TG' => '+228',
225
        'TH' => '+66',
226
        'TJ' => '+992',
227
        'TL' => '+670',
228
        'TM' => '+993',
229
        'TN' => '+216',
230
        'TO' => '+676',
231
        'TR' => '+90',
232
        'TT' => '+1868',
233
        'TW' => '+886',
234
        'TZ' => '+255',
235
        'UA' => '+380',
236
        'UG' => '+256',
237
        'US' => '+1',
238
        'UY' => '+598',
239
        'UZ' => '+998',
240
        'VC' => '+1784',
241
        'VE' => '+58',
242
        'VG' => '+1284',
243
        'VI' => '+1340',
244
        'VN' => '+84',
245
        'VU' => '+678',
246
        'WS' => '+685',
247
        'YE' => '+967',
248
        'YT' => '+269',
249
        'ZA' => '+27',
250
        'ZM' => '+260',
251
        'ZW' => '+263',
252
    ];
253
254
    public static $country_calling_codes = [
255
        'AF'   => '+93',
256
        'AX'   => '+358',
257
        'AL'   => '+355',
258
        'DZ'   => '+213',
259
        'AS'   => '+1',
260
        'AD'   => '+376',
261
        'AO'   => '+244',
262
        'AI'   => '+1',
263
        'AQ'   => '+672',
264
        'AG'   => '+1',
265
        'AR'   => '+54',
266
        'AM'   => '+374',
267
        'AW'   => '+297',
268
        'SH'   => '+247',
269
        'AU'   => '+61',
270
        'AT'   => '+43',
271
        'AZ'   => '+994',
272
        'BS'   => '+1',
273
        'BH'   => '+973',
274
        'BD'   => '+880',
275
        'BB'   => '+1',
276
        'BY'   => '+375',
277
        'BE'   => '+32',
278
        'BZ'   => '+501',
279
        'BJ'   => '+229',
280
        'BM'   => '+1',
281
        'BT'   => '+975',
282
        'BO'   => '+591',
283
        'BQ'   => '+599',
284
        'BA'   => '+387',
285
        'BW'   => '+267',
286
        'BV'   => '+47',
287
        'BR'   => '+55',
288
        'IO'   => '+246',
289
        'BN'   => '+673',
290
        'BG'   => '+359',
291
        'BF'   => '+226',
292
        'BI'   => '+257',
293
        'KH'   => '+855',
294
        'CM'   => '+237',
295
        'CA'   => '+1',
296
        'CV'   => '+238',
297
        'KY'   => '+1',
298
        'CF'   => '+236',
299
        'TD'   => '+235',
300
        'CL'   => '+56',
301
        'CN'   => '+86',
302
        'CX'   => '+61',
303
        'CC'   => '+891',
304
        'CO'   => '+57',
305
        'KM'   => '+269',
306
        'CD'   => '+243',
307
        'CG'   => '+242',
308
        'CK'   => '+682',
309
        'CR'   => '+506',
310
        'CI'   => '+225',
311
        'HR'   => '+385',
312
        'CU'   => '+53',
313
        'CW'   => '+599',
314
        'CY'   => '+357',
315
        'CZ'   => '+420',
316
        'DK'   => '+45',
317
        'DJ'   => '+253',
318
        'DM'   => '+1',
319
        'DO'   => '+1',
320
        'TL'   => '+670',
321
        'EC'   => '+593',
322
        'EG'   => '+20',
323
        'SV'   => '+503',
324
        'GQ'   => '+240',
325
        'ER'   => '+291',
326
        'EE'   => '+372',
327
        'ET'   => '+251',
328
        'FK'   => '+500',
329
        'FO'   => '+298',
330
        'FJ'   => '+679',
331
        'FI'   => '+358',
332
        'FR'   => '+33',
333
        'GF'   => '+594',
334
        'PF'   => '+689',
335
        'TF'   => '+262',
336
        'GA'   => '+241',
337
        'GM'   => '+220',
338
        'GE'   => '+995',
339
        'DE'   => '+49',
340
        'GH'   => '+233',
341
        'GI'   => '+350',
342
        'GR'   => '+30',
343
        'GL'   => '+299',
344
        'GD'   => '+1',
345
        'GP'   => '+590',
346
        'GU'   => '+1',
347
        'GT'   => '+502',
348
        'GG'   => '+44',
349
        'GN'   => '+224',
350
        'GW'   => '+245',
351
        'GY'   => '+592',
352
        'HT'   => '+509',
353
        'HM'   => '+61',
354
        'VA'   => '+379',
355
        'HN'   => '+504',
356
        'HK'   => '+852',
357
        'HU'   => '+36',
358
        'IS'   => '+354',
359
        'IN'   => '+91',
360
        'ID'   => '+62',
361
        'IQ'   => '+964',
362
        'IR'   => '+98',
363
        'IE'   => '+353',
364
        'IM'   => '+44',
365
        'IL'   => '+972',
366
        'IT'   => '+39',
367
        'JM'   => '+1',
368
        'JP'   => '+81',
369
        'JE'   => '+44',
370
        'JO'   => '+962',
371
        'KZ'   => '+7',
372
        'KE'   => '+254',
373
        'KI'   => '+686',
374
        'KP'   => '+850',
375
        'KR'   => '+82',
376
        'XK'   => '+377',
377
        'XK_2' => '381',
378
        'XK_3' => '386',
379
        'KW'   => '+965',
380
        'KG'   => '+996',
381
        'LA'   => '+856',
382
        'LV'   => '+371',
383
        'LB'   => '+961',
384
        'LS'   => '+266',
385
        'LR'   => '+231',
386
        'LY'   => '+218',
387
        'LI'   => '+423',
388
        'LT'   => '+370',
389
        'LU'   => '+352',
390
        'MO'   => '+853',
391
        'MK'   => '+389',
392
        'MG'   => '+261',
393
        'MW'   => '+265',
394
        'MY'   => '+60',
395
        'MV'   => '+960',
396
        'ML'   => '+223',
397
        'MT'   => '+356',
398
        'MH'   => '+692',
399
        'MQ'   => '+596',
400
        'MR'   => '+222',
401
        'MU'   => '+230',
402
        'YT'   => '+262',
403
        'MX'   => '+52',
404
        'FM'   => '+691',
405
        'MD'   => '+373',
406
        'MC'   => '+377',
407
        'MN'   => '+976',
408
        'ME'   => '+382',
409
        'MS'   => '+1',
410
        'MA'   => '+212',
411
        'MZ'   => '+258',
412
        'MM'   => '+95',
413
        'NA'   => '+264',
414
        'NR'   => '+674',
415
        'NL'   => '+31',
416
        'BQ'   => '+599',
417
        'NP'   => '+977',
418
        'NC'   => '+687',
419
        'NZ'   => '+64',
420
        'NI'   => '+505',
421
        'NE'   => '+227',
422
        'NG'   => '+234',
423
        'NU'   => '+683',
424
        'NF'   => '+672',
425
        'GB'   => '+44',
426
        'GB_2' => '+28',
427
        'MP'   => '+1',
428
        'NO'   => '+47',
429
        'OM'   => '+968',
430
        'PK'   => '+92',
431
        'PW'   => '+680',
432
        'PS'   => '+970',
433
        'PA'   => '+507',
434
        'PG'   => '+675',
435
        'PY'   => '+595',
436
        'PE'   => '+51',
437
        'PH'   => '+63',
438
        'PN'   => '+64',
439
        'PL'   => '+48',
440
        'PT'   => '+351',
441
        'PR'   => '+1',
442
        'QA'   => '+974',
443
        'RE'   => '+262',
444
        'RO'   => '+40',
445
        'RU'   => '+7',
446
        'RW'   => '+250',
447
        'BL'   => '+590',
448
        'SH'   => '+290',
449
        'KN'   => '+1',
450
        'LC'   => '+1',
451
        'MF'   => '+590',
452
        'PM'   => '+508',
453
        'VC'   => '+1',
454
        'WS'   => '+685',
455
        'SM'   => '+378',
456
        'ST'   => '+239',
457
        'SA'   => '+966',
458
        'SN'   => '+221',
459
        'RS'   => '+381',
460
        'SC'   => '+248',
461
        'SL'   => '+232',
462
        'SX'   => '+1',
463
        'SG'   => '+65',
464
        'SK'   => '+421',
465
        'SI'   => '+386',
466
        'SB'   => '+677',
467
        'SO'   => '+252',
468
        'ZA'   => '+27',
469
        'GS'   => '+500',
470
        'SS'   => '+211',
471
        'ES'   => '+34',
472
        'LK'   => '+94',
473
        'SD'   => '+249',
474
        'SR'   => '+597',
475
        'SJ'   => '+47',
476
        'SZ'   => '+268',
477
        'SE'   => '+46',
478
        'CH'   => '+41',
479
        'SY'   => '+963',
480
        'TW'   => '+886',
481
        'TJ'   => '+992',
482
        'TZ'   => '+255',
483
        'TH'   => '+66',
484
        'TL'   => '+670',
485
        'TG'   => '+228',
486
        'TK'   => '+690',
487
        'TO'   => '+676',
488
        'TT'   => '+1',
489
        'TN'   => '+216',
490
        'TR'   => '+90',
491
        'TM'   => '+993',
492
        'TC'   => '+1',
493
        'TV'   => '+688',
494
        'UG'   => '+256',
495
        'UA'   => '+380',
496
        'AE'   => '+971',
497
        'GB'   => '+44',
498
        'US'   => '+1',
499
        'UM'   => '+1',
500
        'UY'   => '+598',
501
        'UZ'   => '+998',
502
        'VU'   => '+678',
503
        'VE'   => '+58',
504
        'VN'   => '+84',
505
        'VG'   => '+1',
506
        'VI'   => '+1',
507
        'WF'   => '+681',
508
        'EH'   => '+212',
509
        'YE'   => '+967',
510
        'ZM'   => '+260',
511
        'ZW'   => '+263',
512
    ];
513
514
    public static $locale_calling_codes = [
515
        'sq'         => '阿尔巴尼亚文',
516
        'sq_AL'      => '阿尔巴尼亚文 (阿尔巴尼亚)',
517
        'sq_XK'      => '阿尔巴尼亚文 (科索沃)',
518
        'sq_MK'      => '阿尔巴尼亚文 (马其顿)',
519
        'ak'         => '阿肯文',
520
        'ak_GH'      => '阿肯文 (加纳)',
521
        'ar'         => '阿拉伯文',
522
        'ar_DZ'      => '阿拉伯文 (阿尔及利亚)',
523
        'ar_AE'      => '阿拉伯文 (阿拉伯联合酋长国)',
524
        'ar_OM'      => '阿拉伯文 (阿曼)',
525
        'ar_EG'      => '阿拉伯文 (埃及)',
526
        'ar_PS'      => '阿拉伯文 (巴勒斯坦领土)',
527
        'ar_BH'      => '阿拉伯文 (巴林)',
528
        'ar_ER'      => '阿拉伯文 (厄立特里亚)',
529
        'ar_DJ'      => '阿拉伯文 (吉布提)',
530
        'ar_QA'      => '阿拉伯文 (卡塔尔)',
531
        'ar_KM'      => '阿拉伯文 (科摩罗)',
532
        'ar_KW'      => '阿拉伯文 (科威特)',
533
        'ar_LB'      => '阿拉伯文 (黎巴嫩)',
534
        'ar_LY'      => '阿拉伯文 (利比亚)',
535
        'ar_MR'      => '阿拉伯文 (毛里塔尼亚)',
536
        'ar_MA'      => '阿拉伯文 (摩洛哥)',
537
        'ar_SS'      => '阿拉伯文 (南苏丹)',
538
        'ar_SA'      => '阿拉伯文 (沙特阿拉伯)',
539
        'ar_SD'      => '阿拉伯文 (苏丹)',
540
        'ar_SO'      => '阿拉伯文 (索马里)',
541
        'ar_TN'      => '阿拉伯文 (突尼斯)',
542
        'ar_EH'      => '阿拉伯文 (西撒哈拉)',
543
        'ar_SY'      => '阿拉伯文 (叙利亚)',
544
        'ar_YE'      => '阿拉伯文 (也门)',
545
        'ar_IQ'      => '阿拉伯文 (伊拉克)',
546
        'ar_IL'      => '阿拉伯文 (以色列)',
547
        'ar_JO'      => '阿拉伯文 (约旦)',
548
        'ar_TD'      => '阿拉伯文 (乍得)',
549
        'am'         => '阿姆哈拉文',
550
        'am_ET'      => '阿姆哈拉文 (埃塞俄比亚)',
551
        'as'         => '阿萨姆文',
552
        'as_IN'      => '阿萨姆文 (印度)',
553
        'az'         => '阿塞拜疆文',
554
        'az_AZ'      => '阿塞拜疆文 (阿塞拜疆)',
555
        'az_Latn_AZ' => '阿塞拜疆文 (拉丁文, 阿塞拜疆)',
556
        'az_Latn'    => '阿塞拜疆文 (拉丁文)',
557
        'az_Cyrl_AZ' => '阿塞拜疆文 (西里尔文, 阿塞拜疆)',
558
        'az_Cyrl'    => '阿塞拜疆文 (西里尔文)',
559
        'ee'         => '埃维文',
560
        'ee_TG'      => '埃维文 (多哥)',
561
        'ee_GH'      => '埃维文 (加纳)',
562
        'ga'         => '爱尔兰文',
563
        'ga_IE'      => '爱尔兰文 (爱尔兰)',
564
        'et'         => '爱沙尼亚文',
565
        'et_EE'      => '爱沙尼亚文 (爱沙尼亚)',
566
        'or'         => '奥里亚文',
567
        'or_IN'      => '奥里亚文 (印度)',
568
        'om'         => '奥洛莫文',
569
        'om_ET'      => '奥洛莫文 (埃塞俄比亚)',
570
        'om_KE'      => '奥洛莫文 (肯尼亚)',
571
        'os'         => '奥塞梯文',
572
        'os_RU'      => '奥塞梯文 (俄罗斯)',
573
        'os_GE'      => '奥塞梯文 (格鲁吉亚)',
574
        'eu'         => '巴斯克文',
575
        'eu_ES'      => '巴斯克文 (西班牙)',
576
        'be'         => '白俄罗斯文',
577
        'be_BY'      => '白俄罗斯文 (白俄罗斯)',
578
        'bm'         => '班巴拉文',
579
        'bm_Latn_ML' => '班巴拉文 (拉丁文, 马里)',
580
        'bm_Latn'    => '班巴拉文 (拉丁文)',
581
        'bg'         => '保加利亚文',
582
        'bg_BG'      => '保加利亚文 (保加利亚)',
583
        'nd'         => '北恩德贝勒文',
584
        'nd_ZW'      => '北恩德贝勒文 (津巴布韦)',
585
        'se'         => '北萨米文',
586
        'se_FI'      => '北萨米文 (芬兰)',
587
        'se_NO'      => '北萨米文 (挪威)',
588
        'se_SE'      => '北萨米文 (瑞典)',
589
        'is'         => '冰岛文',
590
        'is_IS'      => '冰岛文 (冰岛)',
591
        'pl'         => '波兰文',
592
        'pl_PL'      => '波兰文 (波兰)',
593
        'bs'         => '波斯尼亚文',
594
        'bs_BA'      => '波斯尼亚文 (波斯尼亚和黑塞哥维那)',
595
        'bs_Latn_BA' => '波斯尼亚文 (拉丁文, 波斯尼亚和黑塞哥维那)',
596
        'bs_Latn'    => '波斯尼亚文 (拉丁文)',
597
        'bs_Cyrl_BA' => '波斯尼亚文 (西里尔文, 波斯尼亚和黑塞哥维那)',
598
        'bs_Cyrl'    => '波斯尼亚文 (西里尔文)',
599
        'fa'         => '波斯文',
600
        'fa_AF'      => '波斯文 (阿富汗)',
601
        'fa_IR'      => '波斯文 (伊朗)',
602
        'dz'         => '不丹文',
603
        'dz_BT'      => '不丹文 (不丹)',
604
        'br'         => '布里多尼文',
605
        'br_FR'      => '布里多尼文 (法国)',
606
        'da'         => '丹麦文',
607
        'da_DK'      => '丹麦文 (丹麦)',
608
        'da_GL'      => '丹麦文 (格陵兰)',
609
        'de'         => '德文',
610
        'de_AT'      => '德文 (奥地利)',
611
        'de_BE'      => '德文 (比利时)',
612
        'de_DE'      => '德文 (德国)',
613
        'de_LI'      => '德文 (列支敦士登)',
614
        'de_LU'      => '德文 (卢森堡)',
615
        'de_CH'      => '德文 (瑞士)',
616
        'ru'         => '俄文',
617
        'ru_BY'      => '俄文 (白俄罗斯)',
618
        'ru_RU'      => '俄文 (俄罗斯)',
619
        'ru_KZ'      => '俄文 (哈萨克斯坦)',
620
        'ru_KG'      => '俄文 (吉尔吉斯斯坦)',
621
        'ru_MD'      => '俄文 (摩尔多瓦)',
622
        'ru_UA'      => '俄文 (乌克兰)',
623
        'fo'         => '法罗文',
624
        'fo_FO'      => '法罗文 (法罗群岛)',
625
        'fr'         => '法文',
626
        'fr_DZ'      => '法文 (阿尔及利亚)',
627
        'fr_BJ'      => '法文 (贝宁)',
628
        'fr_BE'      => '法文 (比利时)',
629
        'fr_BF'      => '法文 (布基纳法索)',
630
        'fr_BI'      => '法文 (布隆迪)',
631
        'fr_GQ'      => '法文 (赤道几内亚)',
632
        'fr_TG'      => '法文 (多哥)',
633
        'fr_FR'      => '法文 (法国)',
634
        'fr_PF'      => '法文 (法属波利尼西亚)',
635
        'fr_GF'      => '法文 (法属圭亚那)',
636
        'fr_MF'      => '法文 (法属圣马丁)',
637
        'fr_CG'      => '法文 (刚果(布))',
638
        'fr_CD'      => '法文 (刚果(金))',
639
        'fr_GP'      => '法文 (瓜德罗普)',
640
        'fr_HT'      => '法文 (海地)',
641
        'fr_DJ'      => '法文 (吉布提)',
642
        'fr_GN'      => '法文 (几内亚)',
643
        'fr_CA'      => '法文 (加拿大)',
644
        'fr_GA'      => '法文 (加蓬)',
645
        'fr_CM'      => '法文 (喀麦隆)',
646
        'fr_KM'      => '法文 (科摩罗)',
647
        'fr_CI'      => '法文 (科特迪瓦)',
648
        'fr_RE'      => '法文 (留尼汪)',
649
        'fr_LU'      => '法文 (卢森堡)',
650
        'fr_RW'      => '法文 (卢旺达)',
651
        'fr_MG'      => '法文 (马达加斯加)',
652
        'fr_ML'      => '法文 (马里)',
653
        'fr_MQ'      => '法文 (马提尼克)',
654
        'fr_YT'      => '法文 (马约特)',
655
        'fr_MU'      => '法文 (毛里求斯)',
656
        'fr_MR'      => '法文 (毛里塔尼亚)',
657
        'fr_MA'      => '法文 (摩洛哥)',
658
        'fr_MC'      => '法文 (摩纳哥)',
659
        'fr_NE'      => '法文 (尼日尔)',
660
        'fr_CH'      => '法文 (瑞士)',
661
        'fr_SN'      => '法文 (塞内加尔)',
662
        'fr_SC'      => '法文 (塞舌尔)',
663
        'fr_BL'      => '法文 (圣巴泰勒米)',
664
        'fr_PM'      => '法文 (圣皮埃尔和密克隆群岛)',
665
        'fr_TN'      => '法文 (突尼斯)',
666
        'fr_WF'      => '法文 (瓦利斯和富图纳)',
667
        'fr_VU'      => '法文 (瓦努阿图)',
668
        'fr_NC'      => '法文 (新喀里多尼亚)',
669
        'fr_SY'      => '法文 (叙利亚)',
670
        'fr_TD'      => '法文 (乍得)',
671
        'fr_CF'      => '法文 (中非共和国)',
672
        'fi'         => '芬兰文',
673
        'fi_FI'      => '芬兰文 (芬兰)',
674
        'ff'         => '夫拉文',
675
        'ff_GN'      => '夫拉文 (几内亚)',
676
        'ff_CM'      => '夫拉文 (喀麦隆)',
677
        'ff_MR'      => '夫拉文 (毛里塔尼亚)',
678
        'ff_SN'      => '夫拉文 (塞内加尔)',
679
        'qu'         => '盖丘亚文',
680
        'qu_BO'      => '盖丘亚文 (玻利维亚)',
681
        'qu_EC'      => '盖丘亚文 (厄瓜多尔)',
682
        'qu_PE'      => '盖丘亚文 (秘鲁)',
683
        'km'         => '高棉文',
684
        'km_KH'      => '高棉文 (柬埔寨)',
685
        'kl'         => '格陵兰文',
686
        'kl_GL'      => '格陵兰文 (格陵兰)',
687
        'ka'         => '格鲁吉亚文',
688
        'ka_GE'      => '格鲁吉亚文 (格鲁吉亚)',
689
        'gu'         => '古吉拉特文',
690
        'gu_IN'      => '古吉拉特文 (印度)',
691
        'kk'         => '哈萨克文',
692
        'kk_KZ'      => '哈萨克文 (哈萨克斯坦)',
693
        'kk_Cyrl_KZ' => '哈萨克文 (西里尔文, 哈萨克斯坦)',
694
        'kk_Cyrl'    => '哈萨克文 (西里尔文)',
695
        'ko'         => '韩文',
696
        'ko_KP'      => '韩文 (朝鲜)',
697
        'ko_KR'      => '韩文 (韩国)',
698
        'ha'         => '豪萨文',
699
        'ha_GH'      => '豪萨文 (加纳)',
700
        'ha_Latn_GH' => '豪萨文 (拉丁文, 加纳)',
701
        'ha_Latn_NE' => '豪萨文 (拉丁文, 尼日尔)',
702
        'ha_Latn_NG' => '豪萨文 (拉丁文, 尼日利亚)',
703
        'ha_Latn'    => '豪萨文 (拉丁文)',
704
        'ha_NE'      => '豪萨文 (尼日尔)',
705
        'ha_NG'      => '豪萨文 (尼日利亚)',
706
        'nl'         => '荷兰文',
707
        'nl_AW'      => '荷兰文 (阿鲁巴)',
708
        'nl_BE'      => '荷兰文 (比利时)',
709
        'nl_NL'      => '荷兰文 (荷兰)',
710
        'nl_BQ'      => '荷兰文 (荷兰加勒比区)',
711
        'nl_SX'      => '荷兰文 (荷属圣马丁)',
712
        'nl_CW'      => '荷兰文 (库拉索)',
713
        'nl_SR'      => '荷兰文 (苏里南)',
714
        'rn'         => '基隆迪文',
715
        'rn_BI'      => '基隆迪文 (布隆迪)',
716
        'ky'         => '吉尔吉斯文',
717
        'ky_KG'      => '吉尔吉斯文 (吉尔吉斯斯坦)',
718
        'ky_Cyrl_KG' => '吉尔吉斯文 (西里尔文, 吉尔吉斯斯坦)',
719
        'ky_Cyrl'    => '吉尔吉斯文 (西里尔文)',
720
        'ki'         => '吉库尤文',
721
        'ki_KE'      => '吉库尤文 (肯尼亚)',
722
        'gl'         => '加利西亚文',
723
        'gl_ES'      => '加利西亚文 (西班牙)',
724
        'ca'         => '加泰罗尼亚文',
725
        'ca_AD'      => '加泰罗尼亚文 (安道尔)',
726
        'ca_FR'      => '加泰罗尼亚文 (法国)',
727
        'ca_ES'      => '加泰罗尼亚文 (西班牙)',
728
        'ca_IT'      => '加泰罗尼亚文 (意大利)',
729
        'cs'         => '捷克文',
730
        'cs_CZ'      => '捷克文 (捷克共和国)',
731
        'kn'         => '卡纳达文',
732
        'kn_IN'      => '卡纳达文 (印度)',
733
        'kw'         => '凯尔特文',
734
        'kw_GB'      => '凯尔特文 (英国)',
735
        'hr'         => '克罗地亚文',
736
        'hr_BA'      => '克罗地亚文 (波斯尼亚和黑塞哥维那)',
737
        'hr_HR'      => '克罗地亚文 (克罗地亚)',
738
        'ks'         => '克什米尔文',
739
        'ks_Arab_IN' => '克什米尔文 (阿拉伯文, 印度)',
740
        'ks_Arab'    => '克什米尔文 (阿拉伯文)',
741
        'ks_IN'      => '克什米尔文 (印度)',
742
        'lv'         => '拉脱维亚文',
743
        'lv_LV'      => '拉脱维亚文 (拉脱维亚)',
744
        'lo'         => '老挝文',
745
        'lo_LA'      => '老挝文 (老挝)',
746
        'lt'         => '立陶宛文',
747
        'lt_LT'      => '立陶宛文 (立陶宛)',
748
        'ln'         => '林加拉文',
749
        'ln_AO'      => '林加拉文 (安哥拉)',
750
        'ln_CG'      => '林加拉文 (刚果(布))',
751
        'ln_CD'      => '林加拉文 (刚果(金))',
752
        'ln_CF'      => '林加拉文 (中非共和国)',
753
        'lg'         => '卢干达文',
754
        'lg_UG'      => '卢干达文 (乌干达)',
755
        'lb'         => '卢森堡文',
756
        'lb_LU'      => '卢森堡文 (卢森堡)',
757
        'rw'         => '卢旺达文',
758
        'rw_RW'      => '卢旺达文 (卢旺达)',
759
        'lu'         => '鲁巴加丹加文',
760
        'lu_CD'      => '鲁巴加丹加文 (刚果(金))',
761
        'ro'         => '罗马尼亚文',
762
        'ro_RO'      => '罗马尼亚文 (罗马尼亚)',
763
        'ro_MD'      => '罗马尼亚文 (摩尔多瓦)',
764
        'rm'         => '罗曼什文',
765
        'rm_CH'      => '罗曼什文 (瑞士)',
766
        'gv'         => '马恩岛文',
767
        'gv_IM'      => '马恩岛文 (曼岛)',
768
        'mg'         => '马尔加什文',
769
        'mg_MG'      => '马尔加什文 (马达加斯加)',
770
        'mt'         => '马耳他文',
771
        'mt_MT'      => '马耳他文 (马耳他)',
772
        'mr'         => '马拉地文',
773
        'mr_IN'      => '马拉地文 (印度)',
774
        'ml'         => '马拉雅拉姆文',
775
        'ml_IN'      => '马拉雅拉姆文 (印度)',
776
        'ms'         => '马来文',
777
        'ms_Latn_MY' => '马来文 (拉丁文, 马来西亚)',
778
        'ms_Latn_BN' => '马来文 (拉丁文, 文莱)',
779
        'ms_Latn_SG' => '马来文 (拉丁文, 新加坡)',
780
        'ms_Latn'    => '马来文 (拉丁文)',
781
        'ms_MY'      => '马来文 (马来西亚)',
782
        'ms_BN'      => '马来文 (文莱)',
783
        'ms_SG'      => '马来文 (新加坡)',
784
        'mk'         => '马其顿文',
785
        'mk_MK'      => '马其顿文 (马其顿)',
786
        'mn'         => '蒙古文',
787
        'mn_MN'      => '蒙古文 (蒙古)',
788
        'mn_Cyrl_MN' => '蒙古文 (西里尔文, 蒙古)',
789
        'mn_Cyrl'    => '蒙古文 (西里尔文)',
790
        'bn'         => '孟加拉文',
791
        'bn_BD'      => '孟加拉文 (孟加拉国)',
792
        'bn_IN'      => '孟加拉文 (印度)',
793
        'my'         => '缅甸文',
794
        'my_MM'      => '缅甸文 (缅甸)',
795
        'af'         => '南非荷兰文',
796
        'af_NA'      => '南非荷兰文 (纳米比亚)',
797
        'af_ZA'      => '南非荷兰文 (南非)',
798
        'ne'         => '尼泊尔文',
799
        'ne_NP'      => '尼泊尔文 (尼泊尔)',
800
        'ne_IN'      => '尼泊尔文 (印度)',
801
        'nb'         => '挪威博克马尔文',
802
        'nb_NO'      => '挪威博克马尔文 (挪威)',
803
        'nb_SJ'      => '挪威博克马尔文 (斯瓦尔巴特和扬马延)',
804
        'nn'         => '挪威尼诺斯克文',
805
        'nn_NO'      => '挪威尼诺斯克文 (挪威)',
806
        'no'         => '挪威文',
807
        'no_NO'      => '挪威文 (挪威)',
808
        'pa'         => '旁遮普文',
809
        'pa_Arab_PK' => '旁遮普文 (阿拉伯文, 巴基斯坦)',
810
        'pa_Arab'    => '旁遮普文 (阿拉伯文)',
811
        'pa_PK'      => '旁遮普文 (巴基斯坦)',
812
        'pa_Guru_IN' => '旁遮普文 (果鲁穆奇文, 印度)',
813
        'pa_Guru'    => '旁遮普文 (果鲁穆奇文)',
814
        'pa_IN'      => '旁遮普文 (印度)',
815
        'pt'         => '葡萄牙文',
816
        'pt_AO'      => '葡萄牙文 (安哥拉)',
817
        'pt_BR'      => '葡萄牙文 (巴西)',
818
        'pt_TL'      => '葡萄牙文 (东帝汶)',
819
        'pt_CV'      => '葡萄牙文 (佛得角)',
820
        'pt_GW'      => '葡萄牙文 (几内亚比绍)',
821
        'pt_MZ'      => '葡萄牙文 (莫桑比克)',
822
        'pt_PT'      => '葡萄牙文 (葡萄牙)',
823
        'pt_ST'      => '葡萄牙文 (圣多美和普林西比)',
824
        'pt_MO'      => '葡萄牙文 (中国澳门特别行政区)',
825
        'ps'         => '普什图文',
826
        'ps_AF'      => '普什图文 (阿富汗)',
827
        'ja'         => '日文',
828
        'ja_JP'      => '日文 (日本)',
829
        'sv'         => '瑞典文',
830
        'sv_AX'      => '瑞典文 (奥兰群岛)',
831
        'sv_FI'      => '瑞典文 (芬兰)',
832
        'sv_SE'      => '瑞典文 (瑞典)',
833
        'sh'         => '塞尔维亚-克罗地亚文',
834
        'sh_BA'      => '塞尔维亚-克罗地亚文 (波斯尼亚和黑塞哥维那)',
835
        'sr'         => '塞尔维亚文',
836
        'sr_BA'      => '塞尔维亚文 (波斯尼亚和黑塞哥维那)',
837
        'sr_ME'      => '塞尔维亚文 (黑山共和国)',
838
        'sr_XK'      => '塞尔维亚文 (科索沃)',
839
        'sr_Latn_BA' => '塞尔维亚文 (拉丁文, 波斯尼亚和黑塞哥维那)',
840
        'sr_Latn_ME' => '塞尔维亚文 (拉丁文, 黑山共和国)',
841
        'sr_Latn_XK' => '塞尔维亚文 (拉丁文, 科索沃)',
842
        'sr_Latn_RS' => '塞尔维亚文 (拉丁文, 塞尔维亚)',
843
        'sr_Latn'    => '塞尔维亚文 (拉丁文)',
844
        'sr_RS'      => '塞尔维亚文 (塞尔维亚)',
845
        'sr_Cyrl_BA' => '塞尔维亚文 (西里尔文, 波斯尼亚和黑塞哥维那)',
846
        'sr_Cyrl_ME' => '塞尔维亚文 (西里尔文, 黑山共和国)',
847
        'sr_Cyrl_XK' => '塞尔维亚文 (西里尔文, 科索沃)',
848
        'sr_Cyrl_RS' => '塞尔维亚文 (西里尔文, 塞尔维亚)',
849
        'sr_Cyrl'    => '塞尔维亚文 (西里尔文)',
850
        'sg'         => '桑戈文',
851
        'sg_CF'      => '桑戈文 (中非共和国)',
852
        'si'         => '僧伽罗文',
853
        'si_LK'      => '僧伽罗文 (斯里兰卡)',
854
        'sn'         => '绍纳文',
855
        'sn_ZW'      => '绍纳文 (津巴布韦)',
856
        'eo'         => '世界文',
857
        'sk'         => '斯洛伐克文',
858
        'sk_SK'      => '斯洛伐克文 (斯洛伐克)',
859
        'sl'         => '斯洛文尼亚文',
860
        'sl_SI'      => '斯洛文尼亚文 (斯洛文尼亚)',
861
        'sw'         => '斯瓦希里文',
862
        'sw_KE'      => '斯瓦希里文 (肯尼亚)',
863
        'sw_TZ'      => '斯瓦希里文 (坦桑尼亚)',
864
        'sw_UG'      => '斯瓦希里文 (乌干达)',
865
        'ii'         => '四川彝文',
866
        'ii_CN'      => '四川彝文 (中国)',
867
        'gd'         => '苏格兰盖尔文',
868
        'gd_GB'      => '苏格兰盖尔文 (英国)',
869
        'so'         => '索马里文',
870
        'so_ET'      => '索马里文 (埃塞俄比亚)',
871
        'so_DJ'      => '索马里文 (吉布提)',
872
        'so_KE'      => '索马里文 (肯尼亚)',
873
        'so_SO'      => '索马里文 (索马里)',
874
        'tl'         => '塔加洛文',
875
        'tl_PH'      => '塔加洛文 (菲律宾)',
876
        'te'         => '泰卢固文',
877
        'te_IN'      => '泰卢固文 (印度)',
878
        'ta'         => '泰米尔文',
879
        'ta_MY'      => '泰米尔文 (马来西亚)',
880
        'ta_LK'      => '泰米尔文 (斯里兰卡)',
881
        'ta_SG'      => '泰米尔文 (新加坡)',
882
        'ta_IN'      => '泰米尔文 (印度)',
883
        'th'         => '泰文',
884
        'th_TH'      => '泰文 (泰国)',
885
        'to'         => '汤加文',
886
        'to_TO'      => '汤加文 (汤加)',
887
        'ti'         => '提格里尼亚文',
888
        'ti_ET'      => '提格里尼亚文 (埃塞俄比亚)',
889
        'ti_ER'      => '提格里尼亚文 (厄立特里亚)',
890
        'tr'         => '土耳其文',
891
        'tr_CY'      => '土耳其文 (塞浦路斯)',
892
        'tr_TR'      => '土耳其文 (土耳其)',
893
        'cy'         => '威尔士文',
894
        'cy_GB'      => '威尔士文 (英国)',
895
        'ug'         => '维吾尔文',
896
        'ug_Arab_CN' => '维吾尔文 (阿拉伯文, 中国)',
897
        'ug_Arab'    => '维吾尔文 (阿拉伯文)',
898
        'ug_CN'      => '维吾尔文 (中国)',
899
        'ur'         => '乌尔都文',
900
        'ur_PK'      => '乌尔都文 (巴基斯坦)',
901
        'ur_IN'      => '乌尔都文 (印度)',
902
        'uk'         => '乌克兰文',
903
        'uk_UA'      => '乌克兰文 (乌克兰)',
904
        'uz'         => '乌兹别克文',
905
        'uz_AF'      => '乌兹别克文 (阿富汗)',
906
        'uz_Arab_AF' => '乌兹别克文 (阿拉伯文, 阿富汗)',
907
        'uz_Arab'    => '乌兹别克文 (阿拉伯文)',
908
        'uz_Latn_UZ' => '乌兹别克文 (拉丁文, 乌兹别克斯坦)',
909
        'uz_Latn'    => '乌兹别克文 (拉丁文)',
910
        'uz_UZ'      => '乌兹别克文 (乌兹别克斯坦)',
911
        'uz_Cyrl_UZ' => '乌兹别克文 (西里尔文, 乌兹别克斯坦)',
912
        'uz_Cyrl'    => '乌兹别克文 (西里尔文)',
913
        'he'         => '希伯来文',
914
        'he_IL'      => '希伯来文 (以色列)',
915
        'el'         => '希腊文',
916
        'el_CY'      => '希腊文 (塞浦路斯)',
917
        'el_GR'      => '希腊文 (希腊)',
918
        'es'         => '西班牙文',
919
        'es_AR'      => '西班牙文 (阿根廷)',
920
        'es_PY'      => '西班牙文 (巴拉圭)',
921
        'es_PA'      => '西班牙文 (巴拿马)',
922
        'es_PR'      => '西班牙文 (波多黎各)',
923
        'es_BO'      => '西班牙文 (玻利维亚)',
924
        'es_GQ'      => '西班牙文 (赤道几内亚)',
925
        'es_DO'      => '西班牙文 (多米尼加共和国)',
926
        'es_EC'      => '西班牙文 (厄瓜多尔)',
927
        'es_PH'      => '西班牙文 (菲律宾)',
928
        'es_CO'      => '西班牙文 (哥伦比亚)',
929
        'es_CR'      => '西班牙文 (哥斯达黎加)',
930
        'es_CU'      => '西班牙文 (古巴)',
931
        'es_HN'      => '西班牙文 (洪都拉斯)',
932
        'es_IC'      => '西班牙文 (加纳利群岛)',
933
        'es_US'      => '西班牙文 (美国)',
934
        'es_PE'      => '西班牙文 (秘鲁)',
935
        'es_MX'      => '西班牙文 (墨西哥)',
936
        'es_NI'      => '西班牙文 (尼加拉瓜)',
937
        'es_SV'      => '西班牙文 (萨尔瓦多)',
938
        'es_GT'      => '西班牙文 (危地马拉)',
939
        'es_VE'      => '西班牙文 (委内瑞拉)',
940
        'es_UY'      => '西班牙文 (乌拉圭)',
941
        'es_ES'      => '西班牙文 (西班牙)',
942
        'es_EA'      => '西班牙文 (休达及梅利利亚)',
943
        'es_CL'      => '西班牙文 (智利)',
944
        'fy'         => '西弗里西亚文',
945
        'fy_NL'      => '西弗里西亚文 (荷兰)',
946
        'hu'         => '匈牙利文',
947
        'hu_HU'      => '匈牙利文 (匈牙利)',
948
        'hy'         => '亚美尼亚文',
949
        'hy_AM'      => '亚美尼亚文 (亚美尼亚)',
950
        'ig'         => '伊布文',
951
        'ig_NG'      => '伊布文 (尼日利亚)',
952
        'yi'         => '依地文',
953
        'it'         => '意大利文',
954
        'it_CH'      => '意大利文 (瑞士)',
955
        'it_SM'      => '意大利文 (圣马力诺)',
956
        'it_IT'      => '意大利文 (意大利)',
957
        'hi'         => '印地文',
958
        'hi_IN'      => '印地文 (印度)',
959
        'id'         => '印度尼西亚文',
960
        'id_ID'      => '印度尼西亚文 (印度尼西亚)',
961
        'en'         => '英文',
962
        'en_IE'      => '英文 (爱尔兰)',
963
        'en_AI'      => '英文 (安圭拉)',
964
        'en_AG'      => '英文 (安提瓜和巴布达)',
965
        'en_AU'      => '英文 (澳大利亚)',
966
        'en_BB'      => '英文 (巴巴多斯)',
967
        'en_PG'      => '英文 (巴布亚新几内亚)',
968
        'en_BS'      => '英文 (巴哈马)',
969
        'en_PK'      => '英文 (巴基斯坦)',
970
        'en_BM'      => '英文 (百慕大)',
971
        'en_MP'      => '英文 (北马里亚纳群岛)',
972
        'en_BE'      => '英文 (比利时)',
973
        'en_PR'      => '英文 (波多黎各)',
974
        'en_BZ'      => '英文 (伯利兹)',
975
        'en_BW'      => '英文 (博茨瓦纳)',
976
        'en_DG'      => '英文 (迪戈加西亚岛)',
977
        'en_DM'      => '英文 (多米尼克)',
978
        'en_ER'      => '英文 (厄立特里亚)',
979
        'en_PH'      => '英文 (菲律宾)',
980
        'en_FJ'      => '英文 (斐济)',
981
        'en_FK'      => '英文 (福克兰群岛)',
982
        'en_GM'      => '英文 (冈比亚)',
983
        'en_GD'      => '英文 (格林纳达)',
984
        'en_GG'      => '英文 (根西岛)',
985
        'en_GU'      => '英文 (关岛)',
986
        'en_GY'      => '英文 (圭亚那)',
987
        'en_SX'      => '英文 (荷属圣马丁)',
988
        'en_KI'      => '英文 (基里巴斯)',
989
        'en_CA'      => '英文 (加拿大)',
990
        'en_GH'      => '英文 (加纳)',
991
        'en_ZW'      => '英文 (津巴布韦)',
992
        'en_CM'      => '英文 (喀麦隆)',
993
        'en_KY'      => '英文 (开曼群岛)',
994
        'en_CC'      => '英文 (科科斯(基林)群岛)',
995
        'en_KE'      => '英文 (肯尼亚)',
996
        'en_CK'      => '英文 (库克群岛)',
997
        'en_LS'      => '英文 (莱索托)',
998
        'en_LR'      => '英文 (利比里亚)',
999
        'en_RW'      => '英文 (卢旺达)',
1000
        'en_MG'      => '英文 (马达加斯加)',
1001
        'en_MT'      => '英文 (马耳他)',
1002
        'en_MW'      => '英文 (马拉维)',
1003
        'en_MY'      => '英文 (马来西亚)',
1004
        'en_MH'      => '英文 (马绍尔群岛)',
1005
        'en_IM'      => '英文 (曼岛)',
1006
        'en_MU'      => '英文 (毛里求斯)',
1007
        'en_US'      => '英文 (美国)',
1008
        'en_UM'      => '英文 (美国本土外小岛屿)',
1009
        'en_AS'      => '英文 (美属萨摩亚)',
1010
        'en_VI'      => '英文 (美属维京群岛)',
1011
        'en_MS'      => '英文 (蒙特塞拉特)',
1012
        'en_FM'      => '英文 (密克罗尼西亚)',
1013
        'en_NA'      => '英文 (纳米比亚)',
1014
        'en_ZA'      => '英文 (南非)',
1015
        'en_SS'      => '英文 (南苏丹)',
1016
        'en_NR'      => '英文 (瑙鲁)',
1017
        'en_NG'      => '英文 (尼日利亚)',
1018
        'en_NU'      => '英文 (纽埃)',
1019
        'en_NF'      => '英文 (诺福克岛)',
1020
        'en_PW'      => '英文 (帕劳)',
1021
        'en_PN'      => '英文 (皮特凯恩群岛)',
1022
        'en_WS'      => '英文 (萨摩亚)',
1023
        'en_SL'      => '英文 (塞拉利昂)',
1024
        'en_SC'      => '英文 (塞舌尔)',
1025
        'en_CX'      => '英文 (圣诞岛)',
1026
        'en_SH'      => '英文 (圣赫勒拿)',
1027
        'en_KN'      => '英文 (圣基茨和尼维斯)',
1028
        'en_LC'      => '英文 (圣卢西亚)',
1029
        'en_VC'      => '英文 (圣文森特和格林纳丁斯)',
1030
        'en_SZ'      => '英文 (斯威士兰)',
1031
        'en_SD'      => '英文 (苏丹)',
1032
        'en_SB'      => '英文 (所罗门群岛)',
1033
        'en_TZ'      => '英文 (坦桑尼亚)',
1034
        'en_TO'      => '英文 (汤加)',
1035
        'en_TC'      => '英文 (特克斯和凯科斯群岛)',
1036
        'en_TT'      => '英文 (特立尼达和多巴哥)',
1037
        'en_TV'      => '英文 (图瓦卢)',
1038
        'en_TK'      => '英文 (托克劳)',
1039
        'en_VU'      => '英文 (瓦努阿图)',
1040
        'en_UG'      => '英文 (乌干达)',
1041
        'en_SG'      => '英文 (新加坡)',
1042
        'en_NZ'      => '英文 (新西兰)',
1043
        'en_JM'      => '英文 (牙买加)',
1044
        'en_IN'      => '英文 (印度)',
1045
        'en_GB'      => '英文 (英国)',
1046
        'en_VG'      => '英文 (英属维京群岛)',
1047
        'en_IO'      => '英文 (英属印度洋领地)',
1048
        'en_ZM'      => '英文 (赞比亚)',
1049
        'en_JE'      => '英文 (泽西岛)',
1050
        'en_GI'      => '英文 (直布罗陀)',
1051
        'en_MO'      => '英文 (中国澳门特别行政区)',
1052
        'en_HK'      => '英文 (中国香港特别行政区)',
1053
        'yo'         => '约鲁巴文',
1054
        'yo_BJ'      => '约鲁巴文 (贝宁)',
1055
        'yo_NG'      => '约鲁巴文 (尼日利亚)',
1056
        'vi'         => '越南文',
1057
        'vi_VN'      => '越南文 (越南)',
1058
        'bo'         => '藏文',
1059
        'bo_IN'      => '藏文 (印度)',
1060
        'bo_CN'      => '藏文 (中国)',
1061
        'zh'         => '中文',
1062
        'zh_Hant_TW' => '中文 (繁体中文, 台湾)',
1063
        'zh_Hant_MO' => '中文 (繁体中文, 中国澳门特别行政区)',
1064
        'zh_Hant_HK' => '中文 (繁体中文, 中国香港特别行政区)',
1065
        'zh_Hant'    => '中文 (繁体中文)',
1066
        'zh_Hans_SG' => '中文 (简体中文, 新加坡)',
1067
        'zh_Hans_CN' => '中文 (简体中文, 中国)',
1068
        'zh_Hans_MO' => '中文 (简体中文, 中国澳门特别行政区)',
1069
        'zh_Hans_HK' => '中文 (简体中文, 中国香港特别行政区)',
1070
        'zh_Hans'    => '中文 (简体中文)',
1071
        'zh_TW'      => '中文 (台湾)',
1072
        'zh_SG'      => '中文 (新加坡)',
1073
        'zh_CN'      => '中文 (中国)',
1074
        'zh_MO'      => '中文 (中国澳门特别行政区)',
1075
        'zh_HK'      => '中文 (中国香港特别行政区)',
1076
        'zu'         => '祖鲁文',
1077
        'zu_ZA'      => '祖鲁文 (南非)',
1078
    ];
1079
1080
    public static function countriesToString(array $countries)
1081
    {
1082
        if (empty($countries)) {
1083
            return '';
1084
        }
1085
1086
        return implode(',', $countries);
1087
    }
1088
1089
    public static function countriesFromString($countries_string)
1090
    {
1091
        if (empty($countries_string)) {
1092
            return [];
1093
        }
1094
1095
        return explode(',', $countries_string);
1096
    }
1097
1098
    public static function getCountryList(array $countries = null, $locale = 'en')
1099
    {
1100
        $country_list = Countries::getList($locale, 'php', 'cldr');
0 ignored issues
show
Unused Code introduced by
The call to Monarobase\CountryList\CountryList::getList() has too many arguments starting with 'cldr'. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1100
        /** @scrutinizer ignore-call */ 
1101
        $country_list = Countries::getList($locale, 'php', 'cldr');

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
1101
1102
        if (empty($countries)) {
1103
            return $country_list;
1104
        } else {
1105
            return array_intersect_key($country_list, array_flip($countries));
1106
        }
1107
    }
1108
1109
    public static function getCountryISOCodeList()
1110
    {
1111
        $country_list = self::getCountryList();
1112
        $country_iso_list = array_keys($country_list);
1113
1114
        return $country_iso_list;
1115
    }
1116
1117
    public static function getLocalizedCountryList(array $countries = null)
1118
    {
1119
        $locale = 'en';
1120
        $app_locale = app_locale();
1121
        if ($app_locale == 'cn') {
1122
            $locale = 'zh';
1123
        }
1124
1125
        return self::getCountryList($countries, $locale);
1126
    }
1127
1128
    public static function getCountryCallingCodeList(array $countries = null)
1129
    {
1130
//        $country_calling_code_list = self::$country_calling_codes;
1131
        $country_calling_code_list = self::$nexmo_supported_country_calling_codes;
1132
1133
        if (empty($countries)) {
1134
            return $country_calling_code_list;
1135
        } else {
1136
            return array_intersect_key($country_calling_code_list, array_flip($countries));
1137
        }
1138
    }
1139
1140
    public static function getCountryInfo($country_code = null)
1141
    {
1142
        if (empty($country_code)) {
1143
            $country_code = self::getCurrentUserCountry();
1144
        }
1145
1146
        $countryInfoList = self::getCountryInfoIndexedList();
1147
        if (isset($countryInfoList[$country_code])) {
1148
            return $countryInfoList[$country_code];
1149
        } else {
1150
            return;
1151
        }
1152
    }
1153
1154
    public static function getCountryInfoList()
1155
    {
1156
        $countryCallingCodeList = self::getCountryCallingCodeList();
1157
        $country_iso_codes = array_keys($countryCallingCodeList);
1158
        $country_list_en = self::getCountryList($country_iso_codes);
1159
        $country_list_locale = self::getLocalizedCountryList($country_iso_codes);
1160
        $country_info_list = [];
1161
        foreach ($country_iso_codes as $country_iso_code) {
1162
            $country_info = [];
1163
            if (empty($country_list_en[$country_iso_code])
1164
                || empty($country_list_locale[$country_iso_code])
1165
            ) {
1166
                continue;
1167
            } else {
1168
                $country_info['country_code'] = $country_iso_code;
1169
                $country_info['name'] = $country_list_en[$country_iso_code];
1170
                $country_info['locale_name'] = $country_list_locale[$country_iso_code];
1171
                $country_info['calling_code'] = $countryCallingCodeList[$country_iso_code];
1172
                $country_info_list[] = $country_info;
1173
            }
1174
        }
1175
1176
        return $country_info_list;
1177
    }
1178
1179
    public static function getCountryInfoIndexedList()
1180
    {
1181
        $countryCallingCodeList = self::getCountryCallingCodeList();
1182
        $country_iso_codes = array_keys($countryCallingCodeList);
1183
        $country_list_en = self::getCountryList($country_iso_codes);
1184
        $country_list_locale = self::getLocalizedCountryList($country_iso_codes);
1185
        $country_info_list = [];
1186
        foreach ($country_iso_codes as $country_iso_code) {
1187
            $country_info = [];
1188
            if (empty($country_list_en[$country_iso_code])
1189
                || empty($country_list_locale[$country_iso_code])
1190
            ) {
1191
                continue;
1192
            } else {
1193
                $country_info['country_code'] = $country_iso_code;
1194
                $country_info['name'] = $country_list_en[$country_iso_code];
1195
                $country_info['locale_name'] = $country_list_locale[$country_iso_code];
1196
                $country_info['calling_code'] = $countryCallingCodeList[$country_iso_code];
1197
                $country_info_list[$country_iso_code] = $country_info;
1198
            }
1199
        }
1200
1201
        return $country_info_list;
1202
    }
1203
1204
    public static function setCurrentUserCountry($country)
1205
    {
1206
        if (in_array($country, self::getCountryISOCodeList())) {
1207
            \Session::put(self::CURRENT_USER_COUNTRY_KEY, $country);
1208
        } else {
1209
            \Log::warning("Invalid country [$country]");
1210
1211
            return false;
1212
        }
1213
    }
1214
1215
    public static function getCurrentUserCountry()
1216
    {
1217
        return \Session::get(self::CURRENT_USER_COUNTRY_KEY, self::$fallback_country);
1218
    }
1219
1220
    /**
1221
     * @return array
1222
     */
1223
    public static function getLocaleCallingCodes(): array
1224
    {
1225
        return self::$locale_calling_codes;
1226
    }
1227
}
1228