Created
March 1, 2019 22:03
-
-
Save hishma/cc8f54fad90a9e1f5fc06d616eb8076b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension Locale { | |
/// The calling code or "country dial in code" of the locale. | |
/// See https://en.wikipedia.org/wiki/List_of_country_calling_codes#Alphabetical_listing_by_country_or_region | |
var countryCallingCode: String? { | |
return isdCode | |
} | |
/// The international subscriber dialling (ISD) code of the locale. | |
var isdCode: String? { | |
guard let regionCode = self.regionCode else { return nil } | |
return Locale.isdCodeRegionCodeMap[regionCode] | |
} | |
/// Known IDS codes for locale region idenitifiers. | |
static let isdCodeRegionCodeMap: [String: String] = [ | |
"AD" : "376", | |
"AE" : "971", | |
"AF" : "93", | |
"AG" : "1", | |
"AI" : "1", | |
"AL" : "355", | |
"AM" : "374", | |
"AN" : "599", | |
"AO" : "244", | |
"AR" : "54", | |
"AS" : "1", | |
"AT" : "43", | |
"AU" : "61", | |
"AW" : "297", | |
"AX" : "35818", | |
"AZ" : "994", | |
"BA" : "387", | |
"BB" : "1", | |
"BBQ" : "599", | |
"BCW" : "599", | |
"BD" : "880", | |
"BE" : "32", | |
"BF" : "226", | |
"BG" : "359", | |
"BH" : "973", | |
"BI" : "257", | |
"BJ" : "229", | |
"BL" : "590", | |
"BM" : "1", | |
"BN" : "673", | |
"BO" : "591", | |
"BQ" : "599", | |
"BR" : "55", | |
"BS" : "1", | |
"BT" : "975", | |
"BW" : "267", | |
"BY" : "375", | |
"BZ" : "501", | |
"CA" : "1", | |
"CC" : "61", | |
"CD" : "243", | |
"CF" : "236", | |
"CG" : "242", | |
"CH" : "41", | |
"CI" : "225", | |
"CK" : "682", | |
"CL" : "56", | |
"CM" : "237", | |
"CN" : "86", | |
"CO" : "57", | |
"CR" : "506", | |
"CU" : "53", | |
"CV" : "238", | |
"CW" : "599", | |
"CX" : "61", | |
"CY" : "537", | |
"CZ" : "420", | |
"DE" : "49", | |
"DG" : "246", | |
"DJ" : "253", | |
"DK" : "45", | |
"DM" : "1", | |
"DO" : "1", | |
"DZ" : "213", | |
"EC" : "593", | |
"EE" : "372", | |
"EG" : "20", | |
"ER" : "291", | |
"ES" : "34", | |
"ET" : "251", | |
"FI" : "358", | |
"FJ" : "679", | |
"FK" : "500", | |
"FM" : "691", | |
"FO" : "298", | |
"FR" : "33", | |
"GA" : "241", | |
"GB" : "44", | |
"GD" : "1", | |
"GE" : "995", | |
"GF" : "594", | |
"GG" : "44", | |
"GH" : "233", | |
"GI" : "350", | |
"GL" : "299", | |
"GM" : "220", | |
"GN" : "224", | |
"GP" : "590", | |
"GQ" : "240", | |
"GR" : "30", | |
"GS" : "500", | |
"GT" : "502", | |
"GU" : "1", | |
"GW" : "245", | |
"GY" : "595", | |
"HK" : "852", | |
"HN" : "504", | |
"HR" : "385", | |
"HT" : "509", | |
"HU" : "36", | |
"ID" : "62", | |
"IE" : "353", | |
"IL" : "972", | |
"IM" : "44", | |
"IN" : "91", | |
"IO" : "246", | |
"IQ" : "964", | |
"IR" : "98", | |
"IS" : "354", | |
"IT" : "39", | |
"JE" : "44", | |
"JM" : "1", | |
"JO" : "962", | |
"JP" : "81", | |
"KE" : "254", | |
"KG" : "996", | |
"KH" : "855", | |
"KI" : "686", | |
"KM" : "269", | |
"KN" : "1", | |
"KP" : "850", | |
"KR" : "82", | |
"KW" : "965", | |
"KY" : "345", | |
"KZ" : "77", | |
"LA" : "856", | |
"LB" : "961", | |
"LC" : "1", | |
"LI" : "423", | |
"LK" : "94", | |
"LR" : "231", | |
"LS" : "266", | |
"LT" : "370", | |
"LU" : "352", | |
"LV" : "371", | |
"LY" : "218", | |
"MA" : "212", | |
"MC" : "377", | |
"MD" : "373", | |
"ME" : "382", | |
"MF" : "590", | |
"MG" : "261", | |
"MH" : "692", | |
"MK" : "389", | |
"ML" : "223", | |
"MM" : "95", | |
"MN" : "976", | |
"MO" : "853", | |
"MP" : "1", | |
"MQ" : "596", | |
"MR" : "222", | |
"MS" : "1", | |
"MT" : "356", | |
"MU" : "230", | |
"MV" : "960", | |
"MW" : "265", | |
"MX" : "52", | |
"MY" : "60", | |
"MZ" : "258", | |
"NA" : "264", | |
"NC" : "687", | |
"NE" : "227", | |
"NF" : "672", | |
"NG" : "234", | |
"NI" : "505", | |
"NL" : "31", | |
"NO" : "47", | |
"NP" : "977", | |
"NR" : "674", | |
"NU" : "683", | |
"NZ" : "64", | |
"OM" : "968", | |
"PA" : "507", | |
"PE" : "51", | |
"PF" : "689", | |
"PG" : "675", | |
"PH" : "63", | |
"PK" : "92", | |
"PL" : "48", | |
"PM" : "508", | |
"PN" : "872", | |
"PR" : "1", | |
"PS" : "970", | |
"PT" : "351", | |
"PW" : "680", | |
"PY" : "595", | |
"QA" : "974", | |
"RE" : "262", | |
"RO" : "40", | |
"RS" : "381", | |
"RU" : "7", | |
"RW" : "250", | |
"SA" : "966", | |
"SB" : "677", | |
"SC" : "248", | |
"SD" : "249", | |
"SE" : "46", | |
"SG" : "65", | |
"SH" : "290", | |
"SI" : "386", | |
"SJ" : "47", | |
"SK" : "421", | |
"SL" : "232", | |
"SM" : "378", | |
"SN" : "221", | |
"SO" : "252", | |
"SR" : "597", | |
"SS" : "211", | |
"ST" : "239", | |
"SV" : "503", | |
"SX" : "1", | |
"SY" : "963", | |
"SZ" : "268", | |
"TC" : "1", | |
"TD" : "235", | |
"TG" : "228", | |
"TH" : "66", | |
"TJ" : "992", | |
"TK" : "690", | |
"TL" : "670", | |
"TM" : "993", | |
"TN" : "216", | |
"TO" : "676", | |
"TR" : "90", | |
"TT" : "1", | |
"TV" : "688", | |
"TW" : "886", | |
"TZ" : "255", | |
"UA" : "380", | |
"UG" : "256", | |
"US" : "1", | |
"UY" : "598", | |
"UZ" : "998", | |
"VA" : "379", | |
"VC" : "1", | |
"VE" : "58", | |
"VG" : "1", | |
"VI" : "1", | |
"VN" : "84", | |
"VU" : "678", | |
"WF" : "681", | |
"WS" : "685", | |
"XK" : "383", | |
"YE" : "967", | |
"YT" : "262", | |
"ZA" : "27" , | |
"ZM" : "260", | |
"ZW" : "263" | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment