├── .eslintrc ├── .github └── FUNDING.yml ├── .gitignore ├── .npmrc ├── LICENSE ├── README.md ├── data ├── country │ ├── AD.json │ ├── AE.json │ ├── AF.json │ ├── AG.json │ ├── AI.json │ ├── AL.json │ ├── AM.json │ ├── AO.json │ ├── AQ.json │ ├── AR.json │ ├── AS.json │ ├── AT.json │ ├── AU.json │ ├── AW.json │ ├── AX.json │ ├── AZ.json │ ├── BA.json │ ├── BB.json │ ├── BD.json │ ├── BE.json │ ├── BF.json │ ├── BG.json │ ├── BH.json │ ├── BI.json │ ├── BJ.json │ ├── BL.json │ ├── BM.json │ ├── BN.json │ ├── BO.json │ ├── BQ.json │ ├── BR.json │ ├── BS.json │ ├── BT.json │ ├── BV.json │ ├── BW.json │ ├── BY.json │ ├── BZ.json │ ├── CA.json │ ├── CC.json │ ├── CD.json │ ├── CF.json │ ├── CG.json │ ├── CH.json │ ├── CI.json │ ├── CK.json │ ├── CL.json │ ├── CM.json │ ├── CN.json │ ├── CO.json │ ├── CR.json │ ├── CU.json │ ├── CV.json │ ├── CW.json │ ├── CX.json │ ├── CY.json │ ├── CZ.json │ ├── DE.json │ ├── DJ.json │ ├── DK.json │ ├── DM.json │ ├── DO.json │ ├── DZ.json │ ├── EC.json │ ├── EE.json │ ├── EG.json │ ├── EH.json │ ├── ER.json │ ├── ES.json │ ├── ET.json │ ├── FI.json │ ├── FJ.json │ ├── FK.json │ ├── FM.json │ ├── FO.json │ ├── FR.json │ ├── GA.json │ ├── GB.json │ ├── GD.json │ ├── GE.json │ ├── GF.json │ ├── GG.json │ ├── GH.json │ ├── GI.json │ ├── GL.json │ ├── GM.json │ ├── GN.json │ ├── GP.json │ ├── GQ.json │ ├── GR.json │ ├── GS.json │ ├── GT.json │ ├── GU.json │ ├── GW.json │ ├── GY.json │ ├── HK.json │ ├── HM.json │ ├── HN.json │ ├── HR.json │ ├── HT.json │ ├── HU.json │ ├── ID.json │ ├── IE.json │ ├── IL.json │ ├── IM.json │ ├── IN.json │ ├── IO.json │ ├── IQ.json │ ├── IR.json │ ├── IS.json │ ├── IT.json │ ├── JE.json │ ├── JM.json │ ├── JO.json │ ├── JP.json │ ├── KE.json │ ├── KG.json │ ├── KH.json │ ├── KI.json │ ├── KM.json │ ├── KN.json │ ├── KP.json │ ├── KR.json │ ├── KW.json │ ├── KY.json │ ├── KZ.json │ ├── LA.json │ ├── LB.json │ ├── LC.json │ ├── LI.json │ ├── LK.json │ ├── LR.json │ ├── LS.json │ ├── LT.json │ ├── LU.json │ ├── LV.json │ ├── LY.json │ ├── MA.json │ ├── MC.json │ ├── MD.json │ ├── ME.json │ ├── MF.json │ ├── MG.json │ ├── MH.json │ ├── MK.json │ ├── ML.json │ ├── MM.json │ ├── MN.json │ ├── MO.json │ ├── MP.json │ ├── MQ.json │ ├── MR.json │ ├── MS.json │ ├── MT.json │ ├── MU.json │ ├── MV.json │ ├── MW.json │ ├── MX.json │ ├── MY.json │ ├── MZ.json │ ├── NA.json │ ├── NC.json │ ├── NE.json │ ├── NF.json │ ├── NG.json │ ├── NI.json │ ├── NL.json │ ├── NO.json │ ├── NP.json │ ├── NR.json │ ├── NU.json │ ├── NZ.json │ ├── OM.json │ ├── PA.json │ ├── PE.json │ ├── PF.json │ ├── PG.json │ ├── PH.json │ ├── PK.json │ ├── PL.json │ ├── PM.json │ ├── PN.json │ ├── PR.json │ ├── PS.json │ ├── PT.json │ ├── PW.json │ ├── PY.json │ ├── QA.json │ ├── RE.json │ ├── RO.json │ ├── RS.json │ ├── RU.json │ ├── RW.json │ ├── SA.json │ ├── SB.json │ ├── SC.json │ ├── SD.json │ ├── SE.json │ ├── SG.json │ ├── SH.json │ ├── SI.json │ ├── SJ.json │ ├── SK.json │ ├── SL.json │ ├── SM.json │ ├── SN.json │ ├── SO.json │ ├── SR.json │ ├── SS.json │ ├── ST.json │ ├── SV.json │ ├── SX.json │ ├── SY.json │ ├── SZ.json │ ├── TC.json │ ├── TD.json │ ├── TF.json │ ├── TG.json │ ├── TH.json │ ├── TJ.json │ ├── TK.json │ ├── TL.json │ ├── TM.json │ ├── TN.json │ ├── TO.json │ ├── TR.json │ ├── TT.json │ ├── TV.json │ ├── TW.json │ ├── TZ.json │ ├── UA.json │ ├── UG.json │ ├── UM.json │ ├── US.json │ ├── UY.json │ ├── UZ.json │ ├── VA.json │ ├── VC.json │ ├── VE.json │ ├── VG.json │ ├── VI.json │ ├── VN.json │ ├── VU.json │ ├── WF.json │ ├── WS.json │ ├── XK.json │ ├── YE.json │ ├── YT.json │ ├── ZA.json │ ├── ZM.json │ └── ZW.json ├── iso-alpha-2-to-3.json ├── iso-alpha-2.json ├── iso-alpha-3.json └── names.json ├── jest.config.js ├── lib ├── cjs │ ├── country-to-code.js │ ├── index.js │ ├── scripts │ │ ├── generate.js │ │ └── seed.js │ └── utils │ │ ├── latinize.js │ │ ├── normalize.js │ │ └── strings.js └── esm │ ├── country-to-code.js │ ├── index.js │ ├── scripts │ ├── generate.js │ └── seed.js │ └── utils │ ├── latinize.js │ ├── normalize.js │ └── strings.js ├── package-lock.json ├── package.json ├── replace-in-file.config.js ├── src ├── country-to-code.d.ts ├── country-to-code.ts ├── index.ts ├── scripts │ ├── generate.ts │ └── seed.ts ├── types │ └── countryjs │ │ └── index.d.ts └── utils │ ├── latinize.d.ts │ ├── latinize.ts │ ├── strings.d.ts │ └── strings.ts ├── test ├── country-to-code.test.ts ├── index.test.ts └── utils │ ├── latinize.test.ts │ └── strings.test.ts ├── tsconfig-cjs.json ├── tsconfig.json └── tslint.json /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "@typescript-eslint/parser", 3 | "extends": ["plugin:@typescript-eslint/recommended"], 4 | "parserOptions": { 5 | "ecmaVersion": 2020, 6 | "sourceType": "module" 7 | }, 8 | "rules": { 9 | "semi": ["error", "always"], 10 | "quotes": ["error", "double"], 11 | "@typescript-eslint/explicit-function-return-type": "off", 12 | "@typescript-eslint/no-explicit-any": 1, 13 | "@typescript-eslint/no-inferrable-types": [ 14 | "warn", { 15 | "ignoreParameters": true 16 | } 17 | ], 18 | "@typescript-eslint/no-unused-vars": "warn" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 12 | polar: # Replace with a single Polar username 13 | buy_me_a_coffee: nojacko 14 | thanks_dev: # Replace with a single thanks.dev username 15 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | tag-version-prefix="" -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 James Jackson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Country to ISO 3166-1 alpha-2/alpha-3 2 | 3 | Convert inconsistent country names and codes into ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3. 4 | 5 | The aim is support English only but some native languages are included. 6 | 7 | [!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://buymeacoffee.com/nojacko) 8 | 9 | ## Usage 10 | 11 | ```bash 12 | npm i country-to-iso 13 | ``` 14 | 15 | ```node 16 | import { countryToAlpha2, countryToAlpha3 } from "country-to-iso"; 17 | // const { countryToAlpha2, countryToAlpha3 } = require("country-to-iso"); 18 | 19 | // countryToAlpha2 20 | countryToAlpha2("US"); // returns "US" 21 | countryToAlpha2("USA"); // returns "US" 22 | countryToAlpha2("U S A"); // returns "US" 23 | countryToAlpha2("U.S.A"); // returns "US" 24 | countryToAlpha2("US of A"); // returns "US" 25 | countryToAlpha2("US and A"); // returns "US" 26 | countryToAlpha2("United States"); // returns "US" 27 | countryToAlpha2("United States of America"); // returns "US" 28 | countryToAlpha2("America"); // returns "US" 29 | 30 | // countryToAlpha3 31 | countryToAlpha3("US"); // returns "USA" 32 | // etc... 33 | ``` 34 | 35 | ## Commands 36 | 37 | | Script | Description | 38 | | -----------------------|-------------| 39 | | `npm run build` | Builds project to `lib/`. | 40 | | `npm run seed` | Takes data from the libraries [countryjs](https://www.npmjs.com/package/countryjs) and [country-list](https://www.npmjs.com/package/country-list) and updates `data/iso-alpha-*.json` and `data/country/*.json` files. | 41 | | `npm run generate` | Takes seeded data, makes variants of names, checks for clashes (there's no mechanism to handle clashes as it's not come up) and dumps the data to `data/names.json`. | 42 | | `npm test` | Runs tests. | 43 | 44 | ## Contributing 45 | 46 | ### Adding a New Country or Variant 47 | 48 | Always run the following. It'll update everything from `countryjs` and `country-list` packages. It might include what you're looking for. 49 | 50 | ```zsh 51 | npm update --save-dev countryjs country-list 52 | npm run seed 53 | npm run generate 54 | npm test 55 | ``` 56 | 57 | #### Add a New Country 58 | 59 | * Add the ISO 3166-1 alpha-2 code to `data/iso-alpha-2.json` 60 | * Add the ISO 3166-1 alpha-3 code to `data/iso-alpha-3.json` 61 | * Create a file for your new country `data/country/.json` following the format of the other countries. 62 | * Add some tests 63 | * Run the following: 64 | 65 | ```zsh 66 | npm run generate 67 | npm run test 68 | ``` 69 | 70 | #### Add a New Variant 71 | 72 | * Manually it to the `names` array in the correct `data/country/*.json` file 73 | * Add some tests 74 | * Run the following: 75 | 76 | ```zsh 77 | npm run generate 78 | npm test 79 | ``` 80 | -------------------------------------------------------------------------------- /data/country/AD.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AD", 3 | "alpha3": "AND", 4 | "names": [ 5 | "AD", 6 | "AND", 7 | "Andorra" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/AE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AE", 3 | "alpha3": "ARE", 4 | "names": [ 5 | "United Arab Emirates", 6 | "دولة الإمارات العربية المتحدة", 7 | "UAE", 8 | "AE", 9 | "ARE" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/AF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AF", 3 | "alpha3": "AFG", 4 | "names": [ 5 | "Afghanistan", 6 | "افغانستان", 7 | "Afġānistān", 8 | "AF", 9 | "AFG" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/AG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AG", 3 | "alpha3": "ATG", 4 | "names": [ 5 | "Antigua and Barbuda", 6 | "AG", 7 | "ATG" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/AI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AI", 3 | "alpha3": "AIA", 4 | "names": [ 5 | "Anguilla", 6 | "AI", 7 | "AIA" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/AL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AL", 3 | "alpha3": "ALB", 4 | "names": [ 5 | "Albania", 6 | "Shqipëria", 7 | "Shqipëri", 8 | "Shqipnia", 9 | "AL", 10 | "ALB" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/AM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AM", 3 | "alpha3": "ARM", 4 | "names": [ 5 | "Armenia", 6 | "Հայաստան", 7 | "Hayastan", 8 | "Republic of Armenia", 9 | "Հայաստանի Հանրապետություն", 10 | "AM", 11 | "ARM" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/AO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AO", 3 | "alpha3": "AGO", 4 | "names": [ 5 | "Angola", 6 | "República de Angola", 7 | "ʁɛpublika de an'ɡɔla", 8 | "AO", 9 | "AGO" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/AQ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AQ", 3 | "alpha3": "ATA", 4 | "names": [ 5 | "AQ", 6 | "ATA", 7 | "Antarctica" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/AR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AR", 3 | "alpha3": "ARG", 4 | "names": [ 5 | "Argentina", 6 | "Argentine Republic", 7 | "República Argentina", 8 | "AR", 9 | "ARG" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/AS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AS", 3 | "alpha3": "ASM", 4 | "names": [ 5 | "American Samoa", 6 | "Amerika Sāmoa", 7 | "Amelika Sāmoa", 8 | "Sāmoa Amelika", 9 | "AS", 10 | "ASM" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/AT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AT", 3 | "alpha3": "AUT", 4 | "names": [ 5 | "Austria", 6 | "Österreich", 7 | "Osterreich", 8 | "Oesterreich", 9 | "AT", 10 | "AUT" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/AU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AU", 3 | "alpha3": "AUS", 4 | "names": [ 5 | "Australia", 6 | "AU", 7 | "AUS" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/AW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AW", 3 | "alpha3": "ABW", 4 | "names": [ 5 | "Aruba", 6 | "AW", 7 | "ABW" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/AX.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AX", 3 | "alpha3": "ALA", 4 | "names": [ 5 | "AX", 6 | "ALA", 7 | "Åland Islands" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/AZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "AZ", 3 | "alpha3": "AZE", 4 | "names": [ 5 | "Azerbaijan", 6 | "Azərbaycan", 7 | "Republic of Azerbaijan", 8 | "Azərbaycan Respublikası", 9 | "AZ", 10 | "AZE", 11 | "Azerbaijan, Republic of" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/BA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BA", 3 | "alpha3": "BIH", 4 | "names": [ 5 | "Bosnia and Herzegovina", 6 | "Bosna i Hercegovina", 7 | "Bosnia-Herzegovina", 8 | "Босна и Херцеговина", 9 | "BA", 10 | "BIH" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/BB.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BB", 3 | "alpha3": "BRB", 4 | "names": [ 5 | "Barbados", 6 | "BB", 7 | "BRB" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/BD.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BD", 3 | "alpha3": "BGD", 4 | "names": [ 5 | "Bangladesh", 6 | "বাংলাদেশ", 7 | "People's Republic of Bangladesh", 8 | "Gônôprôjatôntri Bangladesh", 9 | "BD", 10 | "BGD" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/BE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BE", 3 | "alpha3": "BEL", 4 | "names": [ 5 | "Belgium", 6 | "België", 7 | "Belgie", 8 | "Belgien", 9 | "Belgique", 10 | "Kingdom of Belgium", 11 | "Koninkrijk België", 12 | "Royaume de Belgique", 13 | "Königreich Belgien", 14 | "BE", 15 | "BEL" 16 | ] 17 | } -------------------------------------------------------------------------------- /data/country/BF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BF", 3 | "alpha3": "BFA", 4 | "names": [ 5 | "Burkina Faso", 6 | "BF", 7 | "BFA" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/BG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BG", 3 | "alpha3": "BGR", 4 | "names": [ 5 | "Bulgaria", 6 | "България", 7 | "Republic of Bulgaria", 8 | "Република България", 9 | "BG", 10 | "BGR" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/BH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BH", 3 | "alpha3": "BHR", 4 | "names": [ 5 | "Bahrain", 6 | "‏البحرين", 7 | "Kingdom of Bahrain", 8 | "Mamlakat al-Baḥrayn", 9 | "BH", 10 | "BHR" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/BI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BI", 3 | "alpha3": "BDI", 4 | "names": [ 5 | "Burundi", 6 | "Republic of Burundi", 7 | "Republika y'Uburundi", 8 | "République du Burundi", 9 | "BI", 10 | "BDI" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/BJ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BJ", 3 | "alpha3": "BEN", 4 | "names": [ 5 | "Benin", 6 | "Bénin", 7 | "Republic of Benin", 8 | "République du Bénin", 9 | "BJ", 10 | "BEN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/BL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BL", 3 | "alpha3": "BLM", 4 | "names": [ 5 | "BL", 6 | "BLM", 7 | "Saint Barthélemy" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/BM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BM", 3 | "alpha3": "BMU", 4 | "names": [ 5 | "Bermuda", 6 | "The Islands of Bermuda", 7 | "The Bermudas", 8 | "Somers Isles", 9 | "BM", 10 | "BMU" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/BN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BN", 3 | "alpha3": "BRN", 4 | "names": [ 5 | "Brunei Darussalam", 6 | "Brunei", 7 | "Negara Brunei Darussalam", 8 | "Nation of Brunei", 9 | " the Abode of Peace", 10 | "BN", 11 | "BRN" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/BO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BO", 3 | "alpha3": "BOL", 4 | "names": [ 5 | "Bolivia, Plurinational State of", 6 | "Bolivia", 7 | "Buliwya", 8 | "Wuliwya", 9 | "Plurinational State of Bolivia", 10 | "Estado Plurinacional de Bolivia", 11 | "Buliwya Mamallaqta", 12 | "Wuliwya Suyu", 13 | "Tetã Volívia", 14 | "BO", 15 | "BOL" 16 | ] 17 | } -------------------------------------------------------------------------------- /data/country/BQ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BQ", 3 | "alpha3": "BES", 4 | "names": [ 5 | "BQ", 6 | "BES", 7 | "Bonaire, Sint Eustatius and Saba", 8 | "Bonaire, Saint Eustatius and Saba" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/BR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BR", 3 | "alpha3": "BRA", 4 | "names": [ 5 | "Brazil", 6 | "Brasil", 7 | "Federative Republic of Brazil", 8 | "República Federativa do Brasil", 9 | "BR", 10 | "BRA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/BS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BS", 3 | "alpha3": "BHS", 4 | "names": [ 5 | "Bahamas", 6 | "The Bahamas", 7 | "Commonwealth of the Bahamas", 8 | "BS", 9 | "BHS" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/BT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BT", 3 | "alpha3": "BTN", 4 | "names": [ 5 | "Bhutan", 6 | "ʼbrug-yul", 7 | "Kingdom of Bhutan", 8 | "BT", 9 | "BTN" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/BV.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BV", 3 | "alpha3": "BVT", 4 | "names": [ 5 | "BV", 6 | "BVT", 7 | "Bouvet Island" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/BW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BW", 3 | "alpha3": "BWA", 4 | "names": [ 5 | "Botswana", 6 | "Republic of Botswana", 7 | "Lefatshe la Botswana", 8 | "BW", 9 | "BWA" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/BY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BY", 3 | "alpha3": "BLR", 4 | "names": [ 5 | "Belarus", 6 | "Белару́сь", 7 | "Bielaruś", 8 | "Republic of Belarus", 9 | "Белоруссия", 10 | "Республика Беларусь", 11 | "Belorussiya", 12 | "Respublika Belarus’", 13 | "BY", 14 | "BLR" 15 | ] 16 | } -------------------------------------------------------------------------------- /data/country/BZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "BZ", 3 | "alpha3": "BLZ", 4 | "names": [ 5 | "Belize", 6 | "BZ", 7 | "BLZ" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CA", 3 | "alpha3": "CAN", 4 | "names": [ 5 | "Canada", 6 | "CA", 7 | "CAN" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/CC.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CC", 3 | "alpha3": "CCK", 4 | "names": [ 5 | "CC", 6 | "CCK", 7 | "Cocos (Keeling) Islands", 8 | "Cocos Islands", 9 | "Keeling Islands", 10 | "Territory of the Cocos (Keeling) Islands" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/CD.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CD", 3 | "alpha3": "COD", 4 | "names": [ 5 | "Congo, Democratic Republic of the", 6 | "Democratic Republic of the Congo", 7 | "République démocratique du Congo", 8 | "DR Congo", 9 | "Congo-Kinshasa", 10 | "DRC", 11 | "CD", 12 | "COD", 13 | "Congo, the Democratic Republic of the" 14 | ] 15 | } -------------------------------------------------------------------------------- /data/country/CF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CF", 3 | "alpha3": "CAF", 4 | "names": [ 5 | "Central African Republic", 6 | "Ködörösêse tî Bêafrîka", 7 | "République centrafricaine", 8 | "CF", 9 | "CAF" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/CG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CG", 3 | "alpha3": "COG", 4 | "names": [ 5 | "Congo", 6 | "Republic of the Congo", 7 | "République du Congo", 8 | "Congo-Brazzaville", 9 | "CG", 10 | "COG" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/CH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CH", 3 | "alpha3": "CHE", 4 | "names": [ 5 | "Switzerland", 6 | "Schweiz", 7 | "Swiss Confederation", 8 | "Suisse", 9 | "Svizzera", 10 | "Svizra", 11 | "CH", 12 | "CHE" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/CI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CI", 3 | "alpha3": "CIV", 4 | "names": [ 5 | "Côte d'Ivoire", 6 | "Ivory Coast", 7 | "Republic of Côte d'Ivoire", 8 | "République de Côte d'Ivoire", 9 | "CI", 10 | "CIV", 11 | "Cote D'Ivoire", 12 | "Cote D'Ivoire (Ivory Coast)" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/CK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CK", 3 | "alpha3": "COK", 4 | "names": [ 5 | "Cook Islands", 6 | "Kūki 'Āirani", 7 | "CK", 8 | "COK" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/CL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CL", 3 | "alpha3": "CHL", 4 | "names": [ 5 | "Chile", 6 | "Republic of Chile", 7 | "República de Chile", 8 | "CL", 9 | "CHL" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/CM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CM", 3 | "alpha3": "CMR", 4 | "names": [ 5 | "Cameroon", 6 | "Republic of Cameroon", 7 | "République du Cameroun", 8 | "CM", 9 | "CMR" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CN", 3 | "alpha3": "CHN", 4 | "names": [ 5 | "China", 6 | "中国", 7 | "Zhōngguó", 8 | "Zhongguo", 9 | "Zhonghua", 10 | "People's Republic of China", 11 | "中华人民共和国", 12 | "Zhōnghuá Rénmín Gònghéguó", 13 | "CN", 14 | "CHN", 15 | "China, People's Republic of" 16 | ] 17 | } -------------------------------------------------------------------------------- /data/country/CO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CO", 3 | "alpha3": "COL", 4 | "names": [ 5 | "Colombia", 6 | "Republic of Colombia", 7 | "República de Colombia", 8 | "CO", 9 | "COL" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/CR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CR", 3 | "alpha3": "CRI", 4 | "names": [ 5 | "Costa Rica", 6 | "Republic of Costa Rica", 7 | "República de Costa Rica", 8 | "CR", 9 | "CRI" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/CU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CU", 3 | "alpha3": "CUB", 4 | "names": [ 5 | "Cuba", 6 | "Republic of Cuba", 7 | "República de Cuba", 8 | "CU", 9 | "CUB" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/CV.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CV", 3 | "alpha3": "CPV", 4 | "names": [ 5 | "Cabo Verde", 6 | "Cape Verde", 7 | "Republic of Cabo Verde", 8 | "República de Cabo Verde", 9 | "CV", 10 | "CPV" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/CW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CW", 3 | "alpha3": "CUW", 4 | "names": [ 5 | "CW", 6 | "CUW", 7 | "Curaçao" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/CX.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CX", 3 | "alpha3": "CXR", 4 | "names": [ 5 | "Christmas Island", 6 | "Territory of Christmas Island", 7 | "CX", 8 | "CXR" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/CY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CY", 3 | "alpha3": "CYP", 4 | "names": [ 5 | "Cyprus", 6 | "Κύπρος", 7 | "Kýpros", 8 | "Kıbrıs", 9 | "Republic of Cyprus", 10 | "Κυπριακή Δημοκρατία", 11 | "Kıbrıs Cumhuriyeti", 12 | "CY", 13 | "CYP" 14 | ] 15 | } -------------------------------------------------------------------------------- /data/country/CZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "CZ", 3 | "alpha3": "CZE", 4 | "names": [ 5 | "Czechia", 6 | "Czech Republic", 7 | "Česká republika", 8 | "Česko", 9 | "CZ", 10 | "CZE" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/DE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "DE", 3 | "alpha3": "DEU", 4 | "names": [ 5 | "Germany", 6 | "Deutschland", 7 | "Federal Republic of Germany", 8 | "Bundesrepublik Deutschland", 9 | "DE", 10 | "DEU" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/DJ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "DJ", 3 | "alpha3": "DJI", 4 | "names": [ 5 | "Djibouti", 6 | "Jabuuti", 7 | "Gabuuti", 8 | "Republic of Djibouti", 9 | "République de Djibouti", 10 | "Gabuutih Ummuuno", 11 | "Jamhuuriyadda Jabuuti", 12 | "DJ", 13 | "DJI" 14 | ] 15 | } -------------------------------------------------------------------------------- /data/country/DK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "DK", 3 | "alpha3": "DNK", 4 | "names": [ 5 | "Denmark", 6 | "Danmark", 7 | "Kingdom of Denmark", 8 | "Kongeriget Danmark", 9 | "DK", 10 | "DNK" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/DM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "DM", 3 | "alpha3": "DMA", 4 | "names": [ 5 | "Dominica", 6 | "Dominique", 7 | "Wai‘tu kubuli", 8 | "Commonwealth of Dominica", 9 | "DM", 10 | "DMA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/DO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "DO", 3 | "alpha3": "DOM", 4 | "names": [ 5 | "Dominican Republic", 6 | "República Dominicana", 7 | "DO", 8 | "DOM" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/DZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "DZ", 3 | "alpha3": "DZA", 4 | "names": [ 5 | "Algeria", 6 | "الجزائر", 7 | "Dzayer", 8 | "Algérie", 9 | "DZ", 10 | "DZA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/EC.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "EC", 3 | "alpha3": "ECU", 4 | "names": [ 5 | "Ecuador", 6 | "Republic of Ecuador", 7 | "República del Ecuador", 8 | "EC", 9 | "ECU" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/EE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "EE", 3 | "alpha3": "EST", 4 | "names": [ 5 | "Estonia", 6 | "Eesti", 7 | "Republic of Estonia", 8 | "Eesti Vabariik", 9 | "EE", 10 | "EST" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/EG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "EG", 3 | "alpha3": "EGY", 4 | "names": [ 5 | "Egypt", 6 | "مصر‎", 7 | "Arab Republic of Egypt", 8 | "EG", 9 | "EGY" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/EH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "EH", 3 | "alpha3": "ESH", 4 | "names": [ 5 | "Western Sahara", 6 | "الصحراء الغربية", 7 | "Taneẓroft Tutrimt", 8 | "EH", 9 | "ESH" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/ER.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ER", 3 | "alpha3": "ERI", 4 | "names": [ 5 | "Eritrea", 6 | "ኤርትራ", 7 | "State of Eritrea", 8 | "ሃገረ ኤርትራ", 9 | "Dawlat Iritriyá", 10 | "ʾErtrā", 11 | "Iritriyā", 12 | "ER", 13 | "ERI" 14 | ] 15 | } -------------------------------------------------------------------------------- /data/country/ES.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ES", 3 | "alpha3": "ESP", 4 | "names": [ 5 | "Spain", 6 | "España", 7 | "Kingdom of Spain", 8 | "Reino de España", 9 | "ES", 10 | "ESP" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/ET.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ET", 3 | "alpha3": "ETH", 4 | "names": [ 5 | "Ethiopia", 6 | "ኢትዮጵያ", 7 | "ʾĪtyōṗṗyā", 8 | "Federal Democratic Republic of Ethiopia", 9 | "የኢትዮጵያ ፌዴራላዊ ዲሞክራሲያዊ ሪፐብሊክ", 10 | "ET", 11 | "ETH" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/FI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "FI", 3 | "alpha3": "FIN", 4 | "names": [ 5 | "Finland", 6 | "Suomi", 7 | "Republic of Finland", 8 | "Suomen tasavalta", 9 | "Republiken Finland", 10 | "FI", 11 | "FIN" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/FJ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "FJ", 3 | "alpha3": "FJI", 4 | "names": [ 5 | "Fiji", 6 | "Viti", 7 | "Republic of Fiji", 8 | "Matanitu ko Viti", 9 | "Fijī Gaṇarājya", 10 | "FJ", 11 | "FJI", 12 | "Fiji Islands" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/FK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "FK", 3 | "alpha3": "FLK", 4 | "names": [ 5 | "Falkland Islands (Malvinas)", 6 | "Falkland Islands", 7 | "Islas Malvinas", 8 | "FK", 9 | "FLK" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/FM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "FM", 3 | "alpha3": "FSM", 4 | "names": [ 5 | "Micronesia, Federated States of", 6 | "Federated States of Micronesia", 7 | "Micronesia", 8 | "FM", 9 | "FSM" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/FO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "FO", 3 | "alpha3": "FRO", 4 | "names": [ 5 | "Faroe Islands", 6 | "Føroyar", 7 | "Færøerne", 8 | "FO", 9 | "FRO" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/FR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "FR", 3 | "alpha3": "FRA", 4 | "names": [ 5 | "France", 6 | "French Republic", 7 | "République française", 8 | "FR", 9 | "FRA" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/GA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GA", 3 | "alpha3": "GAB", 4 | "names": [ 5 | "Gabon", 6 | "Gabonese Republic", 7 | "République Gabonaise", 8 | "GA", 9 | "GAB" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/GB.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GB", 3 | "alpha3": "GBR", 4 | "names": [ 5 | "England", 6 | "GB", 7 | "GBR", 8 | "Great Britain", 9 | "N Ireland", 10 | "Northern Ireland", 11 | "Scotland", 12 | "UK", 13 | "United Kingdom of GB and NI", 14 | "United Kingdom of GB and Northern Ireland", 15 | "United Kingdom of Great Britain and N. Ireland", 16 | "United Kingdom of Great Britain and NI", 17 | "United Kingdom of Great Britain and Northern Ireland", 18 | "United Kingdom of Great Britain", 19 | "United Kingdom", 20 | "Wales" 21 | ] 22 | } -------------------------------------------------------------------------------- /data/country/GD.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GD", 3 | "alpha3": "GRD", 4 | "names": [ 5 | "Grenada", 6 | "GD", 7 | "GRD" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/GE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GE", 3 | "alpha3": "GEO", 4 | "names": [ 5 | "Georgia", 6 | "საქართველო", 7 | "Sakartvelo", 8 | "GE", 9 | "GEO" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/GF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GF", 3 | "alpha3": "GUF", 4 | "names": [ 5 | "French Guiana", 6 | "Guyane française", 7 | "Guiana", 8 | "Guyane", 9 | "GF", 10 | "GUF" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/GG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GG", 3 | "alpha3": "GGY", 4 | "names": [ 5 | "Guernsey", 6 | "Bailiwick of Guernsey", 7 | "Bailliage de Guernesey", 8 | "GG", 9 | "GGY", 10 | "Guernsey and Alderney" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/GH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GH", 3 | "alpha3": "GHA", 4 | "names": [ 5 | "Ghana", 6 | "GH", 7 | "GHA" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/GI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GI", 3 | "alpha3": "GIB", 4 | "names": [ 5 | "Gibraltar", 6 | "GI", 7 | "GIB" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/GL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GL", 3 | "alpha3": "GRL", 4 | "names": [ 5 | "Greenland", 6 | "Kalaallit Nunaat", 7 | "Grønland", 8 | "GL", 9 | "GRL" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/GM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GM", 3 | "alpha3": "GMB", 4 | "names": [ 5 | "Gambia", 6 | "The Gambia", 7 | "Republic of the Gambia", 8 | "GM", 9 | "GMB" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/GN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GN", 3 | "alpha3": "GIN", 4 | "names": [ 5 | "Guinea", 6 | "Guinée", 7 | "Republic of Guinea", 8 | "République de Guinée", 9 | "GN", 10 | "GIN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/GP.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GP", 3 | "alpha3": "GLP", 4 | "names": [ 5 | "Guadeloupe", 6 | "Gwadloup", 7 | "GP", 8 | "GLP" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/GQ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GQ", 3 | "alpha3": "GNQ", 4 | "names": [ 5 | "Equatorial Guinea", 6 | "Guinea Ecuatorial", 7 | "Republic of Equatorial Guinea", 8 | "República de Guinea Ecuatorial", 9 | "République de Guinée équatoriale", 10 | "República da Guiné Equatorial", 11 | "GQ", 12 | "GNQ" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/GR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GR", 3 | "alpha3": "GRC", 4 | "names": [ 5 | "Greece", 6 | "Ελλάδα", 7 | "Elláda", 8 | "Hellenic Republic", 9 | "Ελληνική Δημοκρατία", 10 | "GR", 11 | "GRC" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/GS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GS", 3 | "alpha3": "SGS", 4 | "names": [ 5 | "South Georgia and the South Sandwich Islands", 6 | "South Georgia", 7 | "GS", 8 | "SGS" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/GT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GT", 3 | "alpha3": "GTM", 4 | "names": [ 5 | "Guatemala", 6 | "GT", 7 | "GTM" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/GU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GU", 3 | "alpha3": "GUM", 4 | "names": [ 5 | "Guam", 6 | "Guåhån", 7 | "GU", 8 | "GUM" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/GW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GW", 3 | "alpha3": "GNB", 4 | "names": [ 5 | "Guinea-Bissau", 6 | "Guiné-Bissau", 7 | "Republic of Guinea-Bissau", 8 | "República da Guiné-Bissau", 9 | "GW", 10 | "GNB" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/GY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "GY", 3 | "alpha3": "GUY", 4 | "names": [ 5 | "Guyana", 6 | "Co-operative Republic of Guyana", 7 | "GY", 8 | "GUY" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/HK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "HK", 3 | "alpha3": "HKG", 4 | "names": [ 5 | "Hong Kong", 6 | "香港", 7 | "HK", 8 | "HKG", 9 | "HKSAR", 10 | "Hong Kong Special Administrative Region of the People's Republic of China", 11 | "Hong Kong SAR China", 12 | "Hong Kong S.A.R." 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/HM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "HM", 3 | "alpha3": "HMD", 4 | "names": [ 5 | "Heard Island and McDonald Islands", 6 | "HM", 7 | "HMD" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/HN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "HN", 3 | "alpha3": "HND", 4 | "names": [ 5 | "Honduras", 6 | "Republic of Honduras", 7 | "República de Honduras", 8 | "HN", 9 | "HND" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/HR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "HR", 3 | "alpha3": "HRV", 4 | "names": [ 5 | "Croatia", 6 | "Hrvatska", 7 | "Republic of Croatia", 8 | "Republika Hrvatska", 9 | "HR", 10 | "HRV" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/HT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "HT", 3 | "alpha3": "HTI", 4 | "names": [ 5 | "Haiti", 6 | "Haïti", 7 | "Republic of Haiti", 8 | "République d'Haïti", 9 | "Repiblik Ayiti", 10 | "HT", 11 | "HTI" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/HU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "HU", 3 | "alpha3": "HUN", 4 | "names": [ 5 | "Hungary", 6 | "Magyarország", 7 | "HU", 8 | "HUN" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/ID.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ID", 3 | "alpha3": "IDN", 4 | "names": [ 5 | "Indonesia", 6 | "Republic of Indonesia", 7 | "Republik Indonesia", 8 | "ID", 9 | "IDN" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/IE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IE", 3 | "alpha3": "IRL", 4 | "names": [ 5 | "Ireland", 6 | "Éire", 7 | "Republic of Ireland", 8 | "Poblacht na hÉireann", 9 | "IE", 10 | "IRL" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/IL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IL", 3 | "alpha3": "ISR", 4 | "names": [ 5 | "Israel", 6 | "יִשְׂרָאֵל", 7 | "State of Israel", 8 | "Medīnat Yisrā'el", 9 | "IL", 10 | "ISR" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/IM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IM", 3 | "alpha3": "IMN", 4 | "names": [ 5 | "Isle of Man", 6 | "Ellan Vannin", 7 | "Mann", 8 | "Mannin", 9 | "IM", 10 | "IMN", 11 | "Man (Isle of)" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/IN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IN", 3 | "alpha3": "IND", 4 | "names": [ 5 | "India", 6 | "भारत", 7 | "Bhārat", 8 | "Republic of India", 9 | "Bharat Ganrajya", 10 | "IN", 11 | "IND" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/IO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IO", 3 | "alpha3": "IOT", 4 | "names": [ 5 | "British Indian Ocean Territory", 6 | "IO", 7 | "IOT" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/IQ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IQ", 3 | "alpha3": "IRQ", 4 | "names": [ 5 | "Iraq", 6 | "العراق", 7 | "Republic of Iraq", 8 | "Jumhūriyyat al-‘Irāq", 9 | "IQ", 10 | "IRQ" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/IR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IR", 3 | "alpha3": "IRN", 4 | "names": [ 5 | "Iran, Islamic Republic of", 6 | "Iran", 7 | "Irān", 8 | "Islamic Republic of Iran", 9 | "Jomhuri-ye Eslāmi-ye Irān", 10 | "IR", 11 | "IRN" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/IS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IS", 3 | "alpha3": "ISL", 4 | "names": [ 5 | "Iceland", 6 | "Ísland", 7 | "Island", 8 | "Republic of Iceland", 9 | "Lýðveldið Ísland", 10 | "IS", 11 | "ISL" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/IT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "IT", 3 | "alpha3": "ITA", 4 | "names": [ 5 | "Italy", 6 | "Italia", 7 | "Italian Republic", 8 | "Repubblica italiana", 9 | "IT", 10 | "ITA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/JE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "JE", 3 | "alpha3": "JEY", 4 | "names": [ 5 | "Jersey", 6 | "Bailiwick of Jersey", 7 | "Bailliage de Jersey", 8 | "Bailliage dé Jèrri", 9 | "JE", 10 | "JEY" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/JM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "JM", 3 | "alpha3": "JAM", 4 | "names": [ 5 | "Jamaica", 6 | "JM", 7 | "JAM" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/JO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "JO", 3 | "alpha3": "JOR", 4 | "names": [ 5 | "Jordan", 6 | "الأردن", 7 | "Hashemite Kingdom of Jordan", 8 | "al-Mamlakah al-Urdunīyah al-Hāshimīyah", 9 | "JO", 10 | "JOR" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/JP.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "JP", 3 | "alpha3": "JPN", 4 | "names": [ 5 | "Japan", 6 | "日本", 7 | "Nippon", 8 | "Nihon", 9 | "JP", 10 | "JPN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/KE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KE", 3 | "alpha3": "KEN", 4 | "names": [ 5 | "Kenya", 6 | "Republic of Kenya", 7 | "Jamhuri ya Kenya", 8 | "KE", 9 | "KEN" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/KG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KG", 3 | "alpha3": "KGZ", 4 | "names": [ 5 | "Kyrgyzstan", 6 | "Кыргызстан", 7 | "Киргизия", 8 | "Kyrgyz Republic", 9 | "Кыргыз Республикасы", 10 | "Kyrgyz Respublikasy", 11 | "KG", 12 | "KGZ" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/KH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KH", 3 | "alpha3": "KHM", 4 | "names": [ 5 | "Cambodia", 6 | "Kâmpŭchéa", 7 | "Kingdom of Cambodia", 8 | "KH", 9 | "KHM" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/KI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KI", 3 | "alpha3": "KIR", 4 | "names": [ 5 | "Kiribati", 6 | "Republic of Kiribati", 7 | "Ribaberiki Kiribati", 8 | "KI", 9 | "KIR" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/KM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KM", 3 | "alpha3": "COM", 4 | "names": [ 5 | "Comoros", 6 | "Komori", 7 | "Union of the Comoros", 8 | "Union des Comores", 9 | "Udzima wa Komori", 10 | "al-Ittiḥād al-Qumurī", 11 | "KM", 12 | "COM" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/KN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KN", 3 | "alpha3": "KNA", 4 | "names": [ 5 | "Saint Kitts and Nevis", 6 | "Federation of Saint Christopher and Nevis", 7 | "KN", 8 | "KNA" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/KP.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KP", 3 | "alpha3": "PRK", 4 | "names": [ 5 | "Korea, Democratic People's Republic of", 6 | "North Korea", 7 | "북한", 8 | "Democratic People's Republic of Korea", 9 | "조선민주주의인민공화국", 10 | "Chosŏn Minjujuŭi Inmin Konghwaguk", 11 | "KP", 12 | "PRK" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/KR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KR", 3 | "alpha3": "KOR", 4 | "names": [ 5 | "Korea, Republic of", 6 | "South Korea", 7 | "대한민국", 8 | "Republic of Korea", 9 | "KR", 10 | "KOR" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/KW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KW", 3 | "alpha3": "KWT", 4 | "names": [ 5 | "Kuwait", 6 | "الكويت", 7 | "State of Kuwait", 8 | "Dawlat al-Kuwait", 9 | "KW", 10 | "KWT" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/KY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KY", 3 | "alpha3": "CYM", 4 | "names": [ 5 | "Cayman Islands", 6 | "KY", 7 | "CYM" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/KZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "KZ", 3 | "alpha3": "KAZ", 4 | "names": [ 5 | "Kazakhstan", 6 | "Қазақстан", 7 | "Qazaqstan", 8 | "Казахстан", 9 | "Republic of Kazakhstan", 10 | "Қазақстан Республикасы", 11 | "Qazaqstan Respublïkası", 12 | "Республика Казахстан", 13 | "Respublika Kazakhstan", 14 | "KZ", 15 | "KAZ" 16 | ] 17 | } -------------------------------------------------------------------------------- /data/country/LA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LA", 3 | "alpha3": "LAO", 4 | "names": [ 5 | "Lao People's Democratic Republic", 6 | "Laos", 7 | "ສປປລາວ", 8 | "Lao", 9 | "Sathalanalat Paxathipatai Paxaxon Lao", 10 | "LA", 11 | "LAO" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/LB.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LB", 3 | "alpha3": "LBN", 4 | "names": [ 5 | "Lebanon", 6 | "لبنان", 7 | "Lebanese Republic", 8 | "Al-Jumhūrīyah Al-Libnānīyah", 9 | "LB", 10 | "LBN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/LC.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LC", 3 | "alpha3": "LCA", 4 | "names": [ 5 | "Saint Lucia", 6 | "LC", 7 | "LCA" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/LI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LI", 3 | "alpha3": "LIE", 4 | "names": [ 5 | "Liechtenstein", 6 | "Principality of Liechtenstein", 7 | "Fürstentum Liechtenstein", 8 | "LI", 9 | "LIE" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/LK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LK", 3 | "alpha3": "LKA", 4 | "names": [ 5 | "Sri Lanka", 6 | "śrī laṃkāva", 7 | "ilaṅkai", 8 | "Democratic Socialist Republic of Sri Lanka", 9 | "LK", 10 | "LKA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/LR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LR", 3 | "alpha3": "LBR", 4 | "names": [ 5 | "Liberia", 6 | "Republic of Liberia", 7 | "LR", 8 | "LBR" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/LS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LS", 3 | "alpha3": "LSO", 4 | "names": [ 5 | "Lesotho", 6 | "Kingdom of Lesotho", 7 | "Muso oa Lesotho", 8 | "LS", 9 | "LSO" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/LT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LT", 3 | "alpha3": "LTU", 4 | "names": [ 5 | "Lithuania", 6 | "Lietuva", 7 | "Republic of Lithuania", 8 | "Lietuvos Respublika", 9 | "LT", 10 | "LTU" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/LU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LU", 3 | "alpha3": "LUX", 4 | "names": [ 5 | "Luxembourg", 6 | "Grand Duchy of Luxembourg", 7 | "Grand-Duché de Luxembourg", 8 | "Großherzogtum Luxemburg", 9 | "Groussherzogtum Lëtzebuerg", 10 | "LU", 11 | "LUX" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/LV.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LV", 3 | "alpha3": "LVA", 4 | "names": [ 5 | "Latvia", 6 | "Latvija", 7 | "Republic of Latvia", 8 | "Latvijas Republika", 9 | "LV", 10 | "LVA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/LY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "LY", 3 | "alpha3": "LBY", 4 | "names": [ 5 | "Libya", 6 | "‏ليبيا", 7 | "State of Libya", 8 | "Dawlat Libya", 9 | "LY", 10 | "LBY" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/MA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MA", 3 | "alpha3": "MAR", 4 | "names": [ 5 | "Morocco", 6 | "المغرب", 7 | "Kingdom of Morocco", 8 | "Al-Mamlakah al-Maġribiyah", 9 | "MA", 10 | "MAR" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/MC.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MC", 3 | "alpha3": "MCO", 4 | "names": [ 5 | "Monaco", 6 | "Principality of Monaco", 7 | "Principauté de Monaco", 8 | "MC", 9 | "MCO" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/MD.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MD", 3 | "alpha3": "MDA", 4 | "names": [ 5 | "Moldova, Republic of", 6 | "Moldova", 7 | "Republic of Moldova", 8 | "Republica Moldova", 9 | "MD", 10 | "MDA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/ME.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ME", 3 | "alpha3": "MNE", 4 | "names": [ 5 | "ME", 6 | "MNE", 7 | "Montenegro" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/MF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MF", 3 | "alpha3": "MAF", 4 | "names": [ 5 | "MF", 6 | "MAF", 7 | "Saint Martin, (French part)", 8 | "Saint Martin (French part)", 9 | "Saint Martin" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/MG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MG", 3 | "alpha3": "MDG", 4 | "names": [ 5 | "Madagascar", 6 | "Madagasikara", 7 | "Republic of Madagascar", 8 | "Repoblikan'i Madagasikara", 9 | "République de Madagascar", 10 | "MG", 11 | "MDG" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/MH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MH", 3 | "alpha3": "MHL", 4 | "names": [ 5 | "Marshall Islands", 6 | "M̧ajeļ", 7 | "Republic of the Marshall Islands", 8 | "Aolepān Aorōkin M̧ajeļ", 9 | "MH", 10 | "MHL" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/MK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MK", 3 | "alpha3": "MKD", 4 | "names": [ 5 | "North Macedonia", 6 | "Republic of Macedonia", 7 | "Македонија", 8 | "Република Македонија", 9 | "MK", 10 | "MKD", 11 | "Macedonia, The Former Yugoslav Republic Of", 12 | "North Macedonia, Republic of", 13 | "Macedonia" 14 | ] 15 | } -------------------------------------------------------------------------------- /data/country/ML.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ML", 3 | "alpha3": "MLI", 4 | "names": [ 5 | "Mali", 6 | "Republic of Mali", 7 | "République du Mali", 8 | "ML", 9 | "MLI" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/MM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MM", 3 | "alpha3": "MMR", 4 | "names": [ 5 | "MM", 6 | "MMR", 7 | "Myanmar" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/MN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MN", 3 | "alpha3": "MNG", 4 | "names": [ 5 | "Mongolia", 6 | "Монгол улс", 7 | "MN", 8 | "MNG" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/MO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MO", 3 | "alpha3": "MAC", 4 | "names": [ 5 | "Macao", 6 | "Macau", 7 | "澳門", 8 | "澳门", 9 | "Macao Special Administrative Region of the People's Republic of China", 10 | "中華人民共和國澳門特別行政區", 11 | "Região Administrativa Especial de Macau da República Popular da China", 12 | "MO", 13 | "MAC", 14 | "Macau S.A.R." 15 | ] 16 | } -------------------------------------------------------------------------------- /data/country/MP.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MP", 3 | "alpha3": "MNP", 4 | "names": [ 5 | "Northern Mariana Islands", 6 | "Commonwealth of the Northern Mariana Islands", 7 | "Sankattan Siha Na Islas Mariånas", 8 | "MP", 9 | "MNP" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/MQ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MQ", 3 | "alpha3": "MTQ", 4 | "names": [ 5 | "Martinique", 6 | "MQ", 7 | "MTQ" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/MR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MR", 3 | "alpha3": "MRT", 4 | "names": [ 5 | "Mauritania", 6 | "موريتانيا", 7 | "Islamic Republic of Mauritania", 8 | "al-Jumhūriyyah al-ʾIslāmiyyah al-Mūrītāniyyah", 9 | "MR", 10 | "MRT" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/MS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MS", 3 | "alpha3": "MSR", 4 | "names": [ 5 | "Montserrat", 6 | "MS", 7 | "MSR" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/MT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MT", 3 | "alpha3": "MLT", 4 | "names": [ 5 | "Malta", 6 | "Republic of Malta", 7 | "Repubblika ta' Malta", 8 | "MT", 9 | "MLT" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/MU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MU", 3 | "alpha3": "MUS", 4 | "names": [ 5 | "Mauritius", 6 | "Maurice", 7 | "Republic of Mauritius", 8 | "République de Maurice", 9 | "MU", 10 | "MUS" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/MV.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MV", 3 | "alpha3": "MDV", 4 | "names": [ 5 | "Maldives", 6 | "Maldive Islands", 7 | "Republic of the Maldives", 8 | "Dhivehi Raajjeyge Jumhooriyya", 9 | "MV", 10 | "MDV" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/MW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MW", 3 | "alpha3": "MWI", 4 | "names": [ 5 | "Malawi", 6 | "Republic of Malawi", 7 | "MW", 8 | "MWI" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/MX.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MX", 3 | "alpha3": "MEX", 4 | "names": [ 5 | "Mexico", 6 | "México", 7 | "Mexicanos", 8 | "United Mexican States", 9 | "Estados Unidos Mexicanos", 10 | "MX", 11 | "MEX" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/MY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MY", 3 | "alpha3": "MYS", 4 | "names": [ 5 | "Malaysia", 6 | "MY", 7 | "MYS" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/MZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "MZ", 3 | "alpha3": "MOZ", 4 | "names": [ 5 | "Mozambique", 6 | "Moçambique", 7 | "Republic of Mozambique", 8 | "República de Moçambique", 9 | "MZ", 10 | "MOZ" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/NA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NA", 3 | "alpha3": "NAM", 4 | "names": [ 5 | "Namibia", 6 | "Namibië", 7 | "Republic of Namibia", 8 | "NA", 9 | "NAM" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/NC.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NC", 3 | "alpha3": "NCL", 4 | "names": [ 5 | "New Caledonia", 6 | "Nouvelle-Calédonie", 7 | "NC", 8 | "NCL" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/NE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NE", 3 | "alpha3": "NER", 4 | "names": [ 5 | "Niger", 6 | "Nijar", 7 | "Republic of Niger", 8 | "République du Niger", 9 | "NE", 10 | "NER" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/NF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NF", 3 | "alpha3": "NFK", 4 | "names": [ 5 | "Norfolk Island", 6 | "Territory of Norfolk Island", 7 | "Teratri of Norf'k Ailen", 8 | "NF", 9 | "NFK" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/NG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NG", 3 | "alpha3": "NGA", 4 | "names": [ 5 | "Nigeria", 6 | "Nijeriya", 7 | "Naíjíríà", 8 | "Federal Republic of Nigeria", 9 | "NG", 10 | "NGA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/NI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NI", 3 | "alpha3": "NIC", 4 | "names": [ 5 | "Nicaragua", 6 | "Republic of Nicaragua", 7 | "República de Nicaragua", 8 | "NI", 9 | "NIC" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/NL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NL", 3 | "alpha3": "NLD", 4 | "names": [ 5 | "Netherlands", 6 | "Nederland", 7 | "Holland", 8 | "NL", 9 | "NLD" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/NO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NO", 3 | "alpha3": "NOR", 4 | "names": [ 5 | "Norway", 6 | "Norge", 7 | "Noreg", 8 | "Kingdom of Norway", 9 | "Kongeriket Norge", 10 | "Kongeriket Noreg", 11 | "NO", 12 | "NOR" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/NP.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NP", 3 | "alpha3": "NPL", 4 | "names": [ 5 | "Nepal", 6 | "नेपाल", 7 | "Federal Democratic Republic of Nepal", 8 | "Loktāntrik Ganatantra Nepāl", 9 | "NP", 10 | "NPL" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/NR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NR", 3 | "alpha3": "NRU", 4 | "names": [ 5 | "Nauru", 6 | "Naoero", 7 | "Pleasant Island", 8 | "Republic of Nauru", 9 | "Ripublik Naoero", 10 | "NR", 11 | "NRU" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/NU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NU", 3 | "alpha3": "NIU", 4 | "names": [ 5 | "Niue", 6 | "Niuē", 7 | "NU", 8 | "NIU" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/NZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "NZ", 3 | "alpha3": "NZL", 4 | "names": [ 5 | "New Zealand", 6 | "Aotearoa", 7 | "NZ", 8 | "NZL" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/OM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "OM", 3 | "alpha3": "OMN", 4 | "names": [ 5 | "Oman", 6 | "عمان", 7 | "Sultanate of Oman", 8 | "Salṭanat ʻUmān", 9 | "OM", 10 | "OMN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PA", 3 | "alpha3": "PAN", 4 | "names": [ 5 | "Panama", 6 | "Panamá", 7 | "Republic of Panama", 8 | "República de Panamá", 9 | "PA", 10 | "PAN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PE", 3 | "alpha3": "PER", 4 | "names": [ 5 | "Peru", 6 | "Perú", 7 | "Republic of Peru", 8 | " República del Perú", 9 | "PE", 10 | "PER" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PF", 3 | "alpha3": "PYF", 4 | "names": [ 5 | "French Polynesia", 6 | "Polynésie française", 7 | "Pōrīnetia Farāni", 8 | "PF", 9 | "PYF" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/PG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PG", 3 | "alpha3": "PNG", 4 | "names": [ 5 | "Papua New Guinea", 6 | "Papua Niugini", 7 | "Independent State of Papua New Guinea", 8 | "Independen Stet bilong Papua Niugini", 9 | "PG", 10 | "PNG" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PH", 3 | "alpha3": "PHL", 4 | "names": [ 5 | "Philippines", 6 | "Pilipinas", 7 | "Republic of the Philippines", 8 | "Repúblika ng Pilipinas", 9 | "PH", 10 | "PHL" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PK", 3 | "alpha3": "PAK", 4 | "names": [ 5 | "Pakistan", 6 | "Pākistān", 7 | "Islamic Republic of Pakistan", 8 | "Islāmī Jumhūriya'eh Pākistān", 9 | "PK", 10 | "PAK" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PL", 3 | "alpha3": "POL", 4 | "names": [ 5 | "Poland", 6 | "Polska", 7 | "Republic of Poland", 8 | "Rzeczpospolita Polska", 9 | "PL", 10 | "POL" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PM", 3 | "alpha3": "SPM", 4 | "names": [ 5 | "Saint Pierre and Miquelon", 6 | "Saint-Pierre-et-Miquelon", 7 | "Collectivité territoriale de Saint-Pierre-et-Miquelon", 8 | "PM", 9 | "SPM" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/PN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PN", 3 | "alpha3": "PCN", 4 | "names": [ 5 | "Pitcairn", 6 | "Pitcairn Islands", 7 | "Pitcairn Henderson Ducie and Oeno Islands", 8 | "PN", 9 | "PCN" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/PR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PR", 3 | "alpha3": "PRI", 4 | "names": [ 5 | "Puerto Rico", 6 | "Commonwealth of Puerto Rico", 7 | "Estado Libre Asociado de Puerto Rico", 8 | "PR", 9 | "PRI" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/PS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PS", 3 | "alpha3": "PSE", 4 | "names": [ 5 | "PS", 6 | "PSE", 7 | "Palestine, State of", 8 | "Palestinian Territory, Occupied", 9 | "State of Palestine", 10 | "Palestine" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PT", 3 | "alpha3": "PRT", 4 | "names": [ 5 | "Portugal", 6 | "Portuguesa", 7 | "Portuguese Republic", 8 | "República Portuguesa", 9 | "PT", 10 | "PRT" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/PW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PW", 3 | "alpha3": "PLW", 4 | "names": [ 5 | "Palau", 6 | "Republic of Palau", 7 | "Beluu er a Belau", 8 | "PW", 9 | "PLW" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/PY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "PY", 3 | "alpha3": "PRY", 4 | "names": [ 5 | "Paraguay", 6 | "Republic of Paraguay", 7 | "República del Paraguay", 8 | "Tetã Paraguái", 9 | "PY", 10 | "PRY" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/QA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "QA", 3 | "alpha3": "QAT", 4 | "names": [ 5 | "Qatar", 6 | "قطر", 7 | "State of Qatar", 8 | "Dawlat Qaṭar", 9 | "QA", 10 | "QAT" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/RE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "RE", 3 | "alpha3": "REU", 4 | "names": [ 5 | "Réunion", 6 | "La Réunion", 7 | "Reunion", 8 | "RE", 9 | "REU" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/RO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "RO", 3 | "alpha3": "ROU", 4 | "names": [ 5 | "Romania", 6 | "România", 7 | "Rumania", 8 | "Roumania", 9 | "RO", 10 | "ROU" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/RS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "RS", 3 | "alpha3": "SRB", 4 | "names": [ 5 | "RS", 6 | "SRB", 7 | "Serbia" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/RU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "RU", 3 | "alpha3": "RUS", 4 | "names": [ 5 | "Russian Federation", 6 | "Russia", 7 | "Россия", 8 | "Rossiya", 9 | "Российская Федерация", 10 | "Rossiyskaya Federatsiya", 11 | "RU", 12 | "RUS" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/RW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "RW", 3 | "alpha3": "RWA", 4 | "names": [ 5 | "Rwanda", 6 | "Republic of Rwanda", 7 | "Repubulika y'u Rwanda", 8 | "République du Rwanda", 9 | "RW", 10 | "RWA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SA", 3 | "alpha3": "SAU", 4 | "names": [ 5 | "Saudi Arabia", 6 | "العربية السعودية", 7 | "Kingdom of Saudi Arabia", 8 | "Al-Mamlakah al-‘Arabiyyah as-Su‘ūdiyyah", 9 | "SA", 10 | "SAU", 11 | "KSA" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/SB.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SB", 3 | "alpha3": "SLB", 4 | "names": [ 5 | "Solomon Islands", 6 | "SB", 7 | "SLB" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/SC.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SC", 3 | "alpha3": "SYC", 4 | "names": [ 5 | "Seychelles", 6 | "Republic of Seychelles", 7 | "Repiblik Sesel", 8 | "République des Seychelles", 9 | "SC", 10 | "SYC" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SD.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SD", 3 | "alpha3": "SDN", 4 | "names": [ 5 | "Sudan", 6 | "السودان", 7 | "Republic of the Sudan", 8 | "Jumhūrīyat as-Sūdān", 9 | "SD", 10 | "SDN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SE", 3 | "alpha3": "SWE", 4 | "names": [ 5 | "Sweden", 6 | "Sverige", 7 | "Kingdom of Sweden", 8 | "Konungariket Sverige", 9 | "SE", 10 | "SWE" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SG", 3 | "alpha3": "SGP", 4 | "names": [ 5 | "Singapore", 6 | "Singapura", 7 | "Republik Singapura", 8 | "新加坡共和国", 9 | "SG", 10 | "SGP" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SH", 3 | "alpha3": "SHN", 4 | "names": [ 5 | "Saint Helena, Ascension and Tristan da Cunha", 6 | "Saint Helena", 7 | "SH", 8 | "SHN" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/SI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SI", 3 | "alpha3": "SVN", 4 | "names": [ 5 | "Slovenia", 6 | "Slovenija", 7 | "Republic of Slovenia", 8 | "Republika Slovenija", 9 | "SI", 10 | "SVN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SJ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SJ", 3 | "alpha3": "SJM", 4 | "names": [ 5 | "Svalbard and Jan Mayen", 6 | "Svalbard og Jan Mayen", 7 | "Svalbard and Jan Mayen Islands", 8 | "SJ", 9 | "SJM" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/SK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SK", 3 | "alpha3": "SVK", 4 | "names": [ 5 | "Slovakia", 6 | "Slovensko", 7 | "Slovak Republic", 8 | "Slovenská republika", 9 | "SK", 10 | "SVK" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SL", 3 | "alpha3": "SLE", 4 | "names": [ 5 | "Sierra Leone", 6 | "Republic of Sierra Leone", 7 | "SL", 8 | "SLE" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/SM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SM", 3 | "alpha3": "SMR", 4 | "names": [ 5 | "San Marino", 6 | "Republic of San Marino", 7 | "Repubblica di San Marino", 8 | "SM", 9 | "SMR" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/SN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SN", 3 | "alpha3": "SEN", 4 | "names": [ 5 | "Senegal", 6 | "Sénégal", 7 | "Republic of Senegal", 8 | "République du Sénégal", 9 | "SN", 10 | "SEN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SO", 3 | "alpha3": "SOM", 4 | "names": [ 5 | "Somalia", 6 | "Soomaaliya", 7 | "aṣ-Ṣūmāl", 8 | "Federal Republic of Somalia", 9 | "Jamhuuriyadda Federaalka Soomaaliya", 10 | "Jumhūriyyat aṣ-Ṣūmāl al-Fiderāliyya", 11 | "SO", 12 | "SOM" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/SR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SR", 3 | "alpha3": "SUR", 4 | "names": [ 5 | "Suriname", 6 | "Sarnam", 7 | "Sranangron", 8 | "Republic of Suriname", 9 | "Republiek Suriname", 10 | "SR", 11 | "SUR" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/SS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SS", 3 | "alpha3": "SSD", 4 | "names": [ 5 | "South Sudan", 6 | "SS", 7 | "SSD" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/ST.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ST", 3 | "alpha3": "STP", 4 | "names": [ 5 | "Sao Tome and Principe", 6 | "São Tomé and Príncipe", 7 | "São Tomé e Príncipe", 8 | "Democratic Republic of São Tomé and Príncipe", 9 | "República Democrática de São Tomé e Príncipe", 10 | "ST", 11 | "STP" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/SV.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SV", 3 | "alpha3": "SLV", 4 | "names": [ 5 | "El Salvador", 6 | "Republic of El Salvador", 7 | "República de El Salvador", 8 | "SV", 9 | "SLV" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/SX.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SX", 3 | "alpha3": "SXM", 4 | "names": [ 5 | "SX", 6 | "SXM", 7 | "Sint Maarten, (Dutch part)", 8 | "Sint Maarten (Dutch part)", 9 | "Sint Maarten" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/SY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SY", 3 | "alpha3": "SYR", 4 | "names": [ 5 | "Syrian Arab Republic", 6 | "Syria", 7 | "سوريا", 8 | "Al-Jumhūrīyah Al-ʻArabīyah As-Sūrīyah", 9 | "SY", 10 | "SYR" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/SZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "SZ", 3 | "alpha3": "SWZ", 4 | "names": [ 5 | "Eswatini", 6 | "Swaziland", 7 | "weSwatini", 8 | "Swatini", 9 | "Ngwane", 10 | "Kingdom of Swaziland", 11 | "Umbuso waseSwatini", 12 | "SZ", 13 | "SWZ" 14 | ] 15 | } -------------------------------------------------------------------------------- /data/country/TC.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TC", 3 | "alpha3": "TCA", 4 | "names": [ 5 | "TC", 6 | "TCA", 7 | "Turks and Caicos Islands" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/TD.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TD", 3 | "alpha3": "TCD", 4 | "names": [ 5 | "Chad", 6 | "Tchad", 7 | "Republic of Chad", 8 | "République du Tchad", 9 | "TD", 10 | "TCD" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/TF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TF", 3 | "alpha3": "ATF", 4 | "names": [ 5 | "French Southern Territories", 6 | "French Southern and Antarctic Lands", 7 | "Territoire des Terres australes et antarctiques françaises", 8 | "TF", 9 | "ATF" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/TG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TG", 3 | "alpha3": "TGO", 4 | "names": [ 5 | "Togo", 6 | "Togolese", 7 | "Togolese Republic", 8 | "République Togolaise", 9 | "TG", 10 | "TGO" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/TH.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TH", 3 | "alpha3": "THA", 4 | "names": [ 5 | "Thailand", 6 | "ประเทศไทย", 7 | "Prathet", 8 | "Thai", 9 | "Kingdom of Thailand", 10 | "ราชอาณาจักรไทย", 11 | "Ratcha Anachak Thai", 12 | "TH", 13 | "THA" 14 | ] 15 | } -------------------------------------------------------------------------------- /data/country/TJ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TJ", 3 | "alpha3": "TJK", 4 | "names": [ 5 | "Tajikistan", 6 | "Тоҷикистон", 7 | "Toçikiston", 8 | "Republic of Tajikistan", 9 | "Ҷумҳурии Тоҷикистон", 10 | "Çumhuriyi Toçikiston", 11 | "TJ", 12 | "TJK" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/TK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TK", 3 | "alpha3": "TKL", 4 | "names": [ 5 | "Tokelau", 6 | "TK", 7 | "TKL" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/TL.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TL", 3 | "alpha3": "TLS", 4 | "names": [ 5 | "Timor-Leste", 6 | "East Timor", 7 | "Democratic Republic of Timor-Leste", 8 | "República Democrática de Timor-Leste", 9 | "Repúblika Demokrátika Timór-Leste", 10 | "TL", 11 | "TLS" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/TM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TM", 3 | "alpha3": "TKM", 4 | "names": [ 5 | "Turkmenistan", 6 | "Türkmenistan", 7 | "TM", 8 | "TKM" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/TN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TN", 3 | "alpha3": "TUN", 4 | "names": [ 5 | "Tunisia", 6 | "تونس", 7 | "Republic of Tunisia", 8 | "al-Jumhūriyyah at-Tūnisiyyah", 9 | "TN", 10 | "TUN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/TO.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TO", 3 | "alpha3": "TON", 4 | "names": [ 5 | "Tonga", 6 | "TO", 7 | "TON" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/TR.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TR", 3 | "alpha3": "TUR", 4 | "names": [ 5 | "Republic of Turkey", 6 | "Republic of Türkiye", 7 | "TR", 8 | "TUR", 9 | "Turkey", 10 | "Türkiye Cumhuriyeti", 11 | "Turkiye", 12 | "Türkiye" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/TT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TT", 3 | "alpha3": "TTO", 4 | "names": [ 5 | "Trinidad and Tobago", 6 | "Republic of Trinidad and Tobago", 7 | "TT", 8 | "TTO" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/TV.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TV", 3 | "alpha3": "TUV", 4 | "names": [ 5 | "Tuvalu", 6 | "TV", 7 | "TUV" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/TW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TW", 3 | "alpha3": "TWN", 4 | "names": [ 5 | "Taiwan, Province of China", 6 | "Taiwan", 7 | "臺灣", 8 | "Táiwān", 9 | "Republic of China", 10 | "中華民國", 11 | "Zhōnghuá Mínguó", 12 | "TW", 13 | "TWN" 14 | ] 15 | } -------------------------------------------------------------------------------- /data/country/TZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "TZ", 3 | "alpha3": "TZA", 4 | "names": [ 5 | "Tanzania, United Republic of", 6 | "Tanzania", 7 | "United Republic of Tanzania", 8 | "Jamhuri ya Muungano wa Tanzania", 9 | "TZ", 10 | "TZA" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/UA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "UA", 3 | "alpha3": "UKR", 4 | "names": [ 5 | "Ukraine", 6 | "Україна", 7 | "Ukrayina", 8 | "UA", 9 | "UKR" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/UG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "UG", 3 | "alpha3": "UGA", 4 | "names": [ 5 | "Uganda", 6 | "Republic of Uganda", 7 | "Jamhuri ya Uganda", 8 | "UG", 9 | "UGA" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/UM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "UM", 3 | "alpha3": "UMI", 4 | "names": [ 5 | "UM", 6 | "UMI", 7 | "United States Minor Outlying Islands" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/US.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "US", 3 | "alpha3": "USA", 4 | "names": [ 5 | "America", 6 | "United States of America", 7 | "United States", 8 | "US of A", 9 | "US and A", 10 | "US", 11 | "USA" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/UY.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "UY", 3 | "alpha3": "URY", 4 | "names": [ 5 | "Uruguay", 6 | "Oriental Republic of Uruguay", 7 | "República Oriental del Uruguay", 8 | "UY", 9 | "URY" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/UZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "UZ", 3 | "alpha3": "UZB", 4 | "names": [ 5 | "Uzbekistan", 6 | "O‘zbekiston", 7 | "Republic of Uzbekistan", 8 | "O‘zbekiston Respublikasi", 9 | "Ўзбекистон Республикаси", 10 | "UZ", 11 | "UZB" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/VA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "VA", 3 | "alpha3": "VAT", 4 | "names": [ 5 | "VA", 6 | "VAT", 7 | "Holy See", 8 | "Holy See (Vatican City State)", 9 | "Vatican", 10 | "Vatican City", 11 | "Vatican City State", 12 | "Vatican City State (Holy See)" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/country/VC.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "VC", 3 | "alpha3": "VCT", 4 | "names": [ 5 | "Saint Vincent and the Grenadines", 6 | "VC", 7 | "VCT" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/country/VE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "VE", 3 | "alpha3": "VEN", 4 | "names": [ 5 | "Venezuela, Bolivarian Republic of", 6 | "Venezuela", 7 | "Bolivarian Republic of Venezuela", 8 | "República Bolivariana de Venezuela", 9 | "VE", 10 | "VEN" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/VG.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "VG", 3 | "alpha3": "VGB", 4 | "names": [ 5 | "VG", 6 | "VGB", 7 | "Virgin Islands, British", 8 | "British Virgin Islands" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/VI.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "VI", 3 | "alpha3": "VIR", 4 | "names": [ 5 | "VI", 6 | "VIR", 7 | "Virgin Islands, U.S.", 8 | "US Virgin Islands", 9 | "American Virgin Islands" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/VN.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "VN", 3 | "alpha3": "VNM", 4 | "names": [ 5 | "Viet Nam", 6 | "Vietnam", 7 | "Việt Nam", 8 | "Socialist Republic of Vietnam", 9 | "Cộng hòa Xã hội chủ nghĩa Việt Nam", 10 | "VN", 11 | "VNM" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/VU.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "VU", 3 | "alpha3": "VUT", 4 | "names": [ 5 | "Vanuatu", 6 | "Republic of Vanuatu", 7 | "Ripablik blong Vanuatu", 8 | "République de Vanuatu", 9 | "VU", 10 | "VUT" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/WF.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "WF", 3 | "alpha3": "WLF", 4 | "names": [ 5 | "Wallis and Futuna", 6 | "Wallis et Futuna", 7 | "Territory of the Wallis and Futuna Islands", 8 | "Territoire des îles Wallis et Futuna", 9 | "WF", 10 | "WLF", 11 | "Wallis and Futuna Islands" 12 | ] 13 | } -------------------------------------------------------------------------------- /data/country/WS.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "WS", 3 | "alpha3": "WSM", 4 | "names": [ 5 | "Samoa", 6 | "Independent State of Samoa", 7 | "Malo Saʻoloto Tutoʻatasi o Sāmoa", 8 | "WS", 9 | "WSM" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/XK.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "XK", 3 | "alpha3": "XKX", 4 | "names": [ 5 | "Kosovo", 6 | "Republic of Kosovo", 7 | "XK", 8 | "XKX" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/YE.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "YE", 3 | "alpha3": "YEM", 4 | "names": [ 5 | "Yemen", 6 | "اليَمَن", 7 | "Yemeni Republic", 8 | "al-Jumhūriyyah al-Yamaniyyah", 9 | "YE", 10 | "YEM" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/YT.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "YT", 3 | "alpha3": "MYT", 4 | "names": [ 5 | "Mayotte", 6 | "Department of Mayotte", 7 | "Département de Mayotte", 8 | "YT", 9 | "MYT" 10 | ] 11 | } -------------------------------------------------------------------------------- /data/country/ZA.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ZA", 3 | "alpha3": "ZAF", 4 | "names": [ 5 | "South Africa", 6 | "RSA", 7 | "Suid-Afrika", 8 | "Republic of South Africa", 9 | "ZA", 10 | "ZAF" 11 | ] 12 | } -------------------------------------------------------------------------------- /data/country/ZM.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ZM", 3 | "alpha3": "ZMB", 4 | "names": [ 5 | "Zambia", 6 | "Republic of Zambia", 7 | "ZM", 8 | "ZMB" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/country/ZW.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha2": "ZW", 3 | "alpha3": "ZWE", 4 | "names": [ 5 | "Zimbabwe", 6 | "Republic of Zimbabwe", 7 | "ZW", 8 | "ZWE" 9 | ] 10 | } -------------------------------------------------------------------------------- /data/iso-alpha-2-to-3.json: -------------------------------------------------------------------------------- 1 | { 2 | "AD": "AND", 3 | "AE": "ARE", 4 | "AF": "AFG", 5 | "AG": "ATG", 6 | "AI": "AIA", 7 | "AL": "ALB", 8 | "AM": "ARM", 9 | "AO": "AGO", 10 | "AQ": "ATA", 11 | "AR": "ARG", 12 | "AS": "ASM", 13 | "AT": "AUT", 14 | "AU": "AUS", 15 | "AW": "ABW", 16 | "AX": "ALA", 17 | "AZ": "AZE", 18 | "BA": "BIH", 19 | "BB": "BRB", 20 | "BD": "BGD", 21 | "BE": "BEL", 22 | "BF": "BFA", 23 | "BG": "BGR", 24 | "BH": "BHR", 25 | "BI": "BDI", 26 | "BJ": "BEN", 27 | "BL": "BLM", 28 | "BM": "BMU", 29 | "BN": "BRN", 30 | "BO": "BOL", 31 | "BQ": "BES", 32 | "BR": "BRA", 33 | "BS": "BHS", 34 | "BT": "BTN", 35 | "BV": "BVT", 36 | "BW": "BWA", 37 | "BY": "BLR", 38 | "BZ": "BLZ", 39 | "CA": "CAN", 40 | "CC": "CCK", 41 | "CD": "COD", 42 | "CF": "CAF", 43 | "CG": "COG", 44 | "CH": "CHE", 45 | "CI": "CIV", 46 | "CK": "COK", 47 | "CL": "CHL", 48 | "CM": "CMR", 49 | "CN": "CHN", 50 | "CO": "COL", 51 | "CR": "CRI", 52 | "CU": "CUB", 53 | "CV": "CPV", 54 | "CW": "CUW", 55 | "CX": "CXR", 56 | "CY": "CYP", 57 | "CZ": "CZE", 58 | "DE": "DEU", 59 | "DJ": "DJI", 60 | "DK": "DNK", 61 | "DM": "DMA", 62 | "DO": "DOM", 63 | "DZ": "DZA", 64 | "EC": "ECU", 65 | "EE": "EST", 66 | "EG": "EGY", 67 | "EH": "ESH", 68 | "ER": "ERI", 69 | "ES": "ESP", 70 | "ET": "ETH", 71 | "FI": "FIN", 72 | "FJ": "FJI", 73 | "FK": "FLK", 74 | "FM": "FSM", 75 | "FO": "FRO", 76 | "FR": "FRA", 77 | "GA": "GAB", 78 | "GB": "GBR", 79 | "GD": "GRD", 80 | "GE": "GEO", 81 | "GF": "GUF", 82 | "GG": "GGY", 83 | "GH": "GHA", 84 | "GI": "GIB", 85 | "GL": "GRL", 86 | "GM": "GMB", 87 | "GN": "GIN", 88 | "GP": "GLP", 89 | "GQ": "GNQ", 90 | "GR": "GRC", 91 | "GS": "SGS", 92 | "GT": "GTM", 93 | "GU": "GUM", 94 | "GW": "GNB", 95 | "GY": "GUY", 96 | "HK": "HKG", 97 | "HM": "HMD", 98 | "HN": "HND", 99 | "HR": "HRV", 100 | "HT": "HTI", 101 | "HU": "HUN", 102 | "ID": "IDN", 103 | "IE": "IRL", 104 | "IL": "ISR", 105 | "IM": "IMN", 106 | "IN": "IND", 107 | "IO": "IOT", 108 | "IQ": "IRQ", 109 | "IR": "IRN", 110 | "IS": "ISL", 111 | "IT": "ITA", 112 | "JE": "JEY", 113 | "JM": "JAM", 114 | "JO": "JOR", 115 | "JP": "JPN", 116 | "KE": "KEN", 117 | "KG": "KGZ", 118 | "KH": "KHM", 119 | "KI": "KIR", 120 | "KM": "COM", 121 | "KN": "KNA", 122 | "KP": "PRK", 123 | "KR": "KOR", 124 | "KW": "KWT", 125 | "KY": "CYM", 126 | "KZ": "KAZ", 127 | "LA": "LAO", 128 | "LB": "LBN", 129 | "LC": "LCA", 130 | "LI": "LIE", 131 | "LK": "LKA", 132 | "LR": "LBR", 133 | "LS": "LSO", 134 | "LT": "LTU", 135 | "LU": "LUX", 136 | "LV": "LVA", 137 | "LY": "LBY", 138 | "MA": "MAR", 139 | "MC": "MCO", 140 | "MD": "MDA", 141 | "ME": "MNE", 142 | "MF": "MAF", 143 | "MG": "MDG", 144 | "MH": "MHL", 145 | "MK": "MKD", 146 | "ML": "MLI", 147 | "MM": "MMR", 148 | "MN": "MNG", 149 | "MO": "MAC", 150 | "MP": "MNP", 151 | "MQ": "MTQ", 152 | "MR": "MRT", 153 | "MS": "MSR", 154 | "MT": "MLT", 155 | "MU": "MUS", 156 | "MV": "MDV", 157 | "MW": "MWI", 158 | "MX": "MEX", 159 | "MY": "MYS", 160 | "MZ": "MOZ", 161 | "NA": "NAM", 162 | "NC": "NCL", 163 | "NE": "NER", 164 | "NF": "NFK", 165 | "NG": "NGA", 166 | "NI": "NIC", 167 | "NL": "NLD", 168 | "NO": "NOR", 169 | "NP": "NPL", 170 | "NR": "NRU", 171 | "NU": "NIU", 172 | "NZ": "NZL", 173 | "OM": "OMN", 174 | "PA": "PAN", 175 | "PE": "PER", 176 | "PF": "PYF", 177 | "PG": "PNG", 178 | "PH": "PHL", 179 | "PK": "PAK", 180 | "PL": "POL", 181 | "PM": "SPM", 182 | "PN": "PCN", 183 | "PR": "PRI", 184 | "PS": "PSE", 185 | "PT": "PRT", 186 | "PW": "PLW", 187 | "PY": "PRY", 188 | "QA": "QAT", 189 | "RE": "REU", 190 | "RO": "ROU", 191 | "RS": "SRB", 192 | "RU": "RUS", 193 | "RW": "RWA", 194 | "SA": "SAU", 195 | "SB": "SLB", 196 | "SC": "SYC", 197 | "SD": "SDN", 198 | "SE": "SWE", 199 | "SG": "SGP", 200 | "SH": "SHN", 201 | "SI": "SVN", 202 | "SJ": "SJM", 203 | "SK": "SVK", 204 | "SL": "SLE", 205 | "SM": "SMR", 206 | "SN": "SEN", 207 | "SO": "SOM", 208 | "SR": "SUR", 209 | "SS": "SSD", 210 | "ST": "STP", 211 | "SV": "SLV", 212 | "SX": "SXM", 213 | "SY": "SYR", 214 | "SZ": "SWZ", 215 | "TC": "TCA", 216 | "TD": "TCD", 217 | "TF": "ATF", 218 | "TG": "TGO", 219 | "TH": "THA", 220 | "TJ": "TJK", 221 | "TK": "TKL", 222 | "TL": "TLS", 223 | "TM": "TKM", 224 | "TN": "TUN", 225 | "TO": "TON", 226 | "TR": "TUR", 227 | "TT": "TTO", 228 | "TV": "TUV", 229 | "TW": "TWN", 230 | "TZ": "TZA", 231 | "UA": "UKR", 232 | "UG": "UGA", 233 | "UM": "UMI", 234 | "US": "USA", 235 | "UY": "URY", 236 | "UZ": "UZB", 237 | "VA": "VAT", 238 | "VC": "VCT", 239 | "VE": "VEN", 240 | "VG": "VGB", 241 | "VI": "VIR", 242 | "VN": "VNM", 243 | "VU": "VUT", 244 | "WF": "WLF", 245 | "WS": "WSM", 246 | "XK": "XKX", 247 | "YE": "YEM", 248 | "YT": "MYT", 249 | "ZA": "ZAF", 250 | "ZM": "ZMB", 251 | "ZW": "ZWE" 252 | } -------------------------------------------------------------------------------- /data/iso-alpha-2.json: -------------------------------------------------------------------------------- 1 | [ 2 | "AD", 3 | "AE", 4 | "AF", 5 | "AG", 6 | "AI", 7 | "AL", 8 | "AM", 9 | "AO", 10 | "AQ", 11 | "AR", 12 | "AS", 13 | "AT", 14 | "AU", 15 | "AW", 16 | "AX", 17 | "AZ", 18 | "BA", 19 | "BB", 20 | "BD", 21 | "BE", 22 | "BF", 23 | "BG", 24 | "BH", 25 | "BI", 26 | "BJ", 27 | "BL", 28 | "BM", 29 | "BN", 30 | "BO", 31 | "BQ", 32 | "BR", 33 | "BS", 34 | "BT", 35 | "BV", 36 | "BW", 37 | "BY", 38 | "BZ", 39 | "CA", 40 | "CC", 41 | "CD", 42 | "CF", 43 | "CG", 44 | "CH", 45 | "CI", 46 | "CK", 47 | "CL", 48 | "CM", 49 | "CN", 50 | "CO", 51 | "CR", 52 | "CU", 53 | "CV", 54 | "CW", 55 | "CX", 56 | "CY", 57 | "CZ", 58 | "DE", 59 | "DJ", 60 | "DK", 61 | "DM", 62 | "DO", 63 | "DZ", 64 | "EC", 65 | "EE", 66 | "EG", 67 | "EH", 68 | "ER", 69 | "ES", 70 | "ET", 71 | "FI", 72 | "FJ", 73 | "FK", 74 | "FM", 75 | "FO", 76 | "FR", 77 | "GA", 78 | "GB", 79 | "GD", 80 | "GE", 81 | "GF", 82 | "GG", 83 | "GH", 84 | "GI", 85 | "GL", 86 | "GM", 87 | "GN", 88 | "GP", 89 | "GQ", 90 | "GR", 91 | "GS", 92 | "GT", 93 | "GU", 94 | "GW", 95 | "GY", 96 | "HK", 97 | "HM", 98 | "HN", 99 | "HR", 100 | "HT", 101 | "HU", 102 | "ID", 103 | "IE", 104 | "IL", 105 | "IM", 106 | "IN", 107 | "IO", 108 | "IQ", 109 | "IR", 110 | "IS", 111 | "IT", 112 | "JE", 113 | "JM", 114 | "JO", 115 | "JP", 116 | "KE", 117 | "KG", 118 | "KH", 119 | "KI", 120 | "KM", 121 | "KN", 122 | "KP", 123 | "KR", 124 | "KW", 125 | "KY", 126 | "KZ", 127 | "LA", 128 | "LB", 129 | "LC", 130 | "LI", 131 | "LK", 132 | "LR", 133 | "LS", 134 | "LT", 135 | "LU", 136 | "LV", 137 | "LY", 138 | "MA", 139 | "MC", 140 | "MD", 141 | "ME", 142 | "MF", 143 | "MG", 144 | "MH", 145 | "MK", 146 | "ML", 147 | "MM", 148 | "MN", 149 | "MO", 150 | "MP", 151 | "MQ", 152 | "MR", 153 | "MS", 154 | "MT", 155 | "MU", 156 | "MV", 157 | "MW", 158 | "MX", 159 | "MY", 160 | "MZ", 161 | "NA", 162 | "NC", 163 | "NE", 164 | "NF", 165 | "NG", 166 | "NI", 167 | "NL", 168 | "NO", 169 | "NP", 170 | "NR", 171 | "NU", 172 | "NZ", 173 | "OM", 174 | "PA", 175 | "PE", 176 | "PF", 177 | "PG", 178 | "PH", 179 | "PK", 180 | "PL", 181 | "PM", 182 | "PN", 183 | "PR", 184 | "PS", 185 | "PT", 186 | "PW", 187 | "PY", 188 | "QA", 189 | "RE", 190 | "RO", 191 | "RS", 192 | "RU", 193 | "RW", 194 | "SA", 195 | "SB", 196 | "SC", 197 | "SD", 198 | "SE", 199 | "SG", 200 | "SH", 201 | "SI", 202 | "SJ", 203 | "SK", 204 | "SL", 205 | "SM", 206 | "SN", 207 | "SO", 208 | "SR", 209 | "SS", 210 | "ST", 211 | "SV", 212 | "SX", 213 | "SY", 214 | "SZ", 215 | "TC", 216 | "TD", 217 | "TF", 218 | "TG", 219 | "TH", 220 | "TJ", 221 | "TK", 222 | "TL", 223 | "TM", 224 | "TN", 225 | "TO", 226 | "TR", 227 | "TT", 228 | "TV", 229 | "TW", 230 | "TZ", 231 | "UA", 232 | "UG", 233 | "UM", 234 | "US", 235 | "UY", 236 | "UZ", 237 | "VA", 238 | "VC", 239 | "VE", 240 | "VG", 241 | "VI", 242 | "VN", 243 | "VU", 244 | "WF", 245 | "WS", 246 | "XK", 247 | "YE", 248 | "YT", 249 | "ZA", 250 | "ZM", 251 | "ZW" 252 | ] -------------------------------------------------------------------------------- /data/iso-alpha-3.json: -------------------------------------------------------------------------------- 1 | { 2 | "AND": "AD", 3 | "ARE": "AE", 4 | "AFG": "AF", 5 | "ATG": "AG", 6 | "AIA": "AI", 7 | "ALB": "AL", 8 | "ARM": "AM", 9 | "AGO": "AO", 10 | "ATA": "AQ", 11 | "ARG": "AR", 12 | "ASM": "AS", 13 | "AUT": "AT", 14 | "AUS": "AU", 15 | "ABW": "AW", 16 | "ALA": "AX", 17 | "AZE": "AZ", 18 | "BIH": "BA", 19 | "BRB": "BB", 20 | "BGD": "BD", 21 | "BEL": "BE", 22 | "BFA": "BF", 23 | "BGR": "BG", 24 | "BHR": "BH", 25 | "BDI": "BI", 26 | "BEN": "BJ", 27 | "BLM": "BL", 28 | "BMU": "BM", 29 | "BRN": "BN", 30 | "BOL": "BO", 31 | "BES": "BQ", 32 | "BRA": "BR", 33 | "BHS": "BS", 34 | "BTN": "BT", 35 | "BVT": "BV", 36 | "BWA": "BW", 37 | "BLR": "BY", 38 | "BLZ": "BZ", 39 | "CAN": "CA", 40 | "CCK": "CC", 41 | "COD": "CD", 42 | "CAF": "CF", 43 | "COG": "CG", 44 | "CHE": "CH", 45 | "CIV": "CI", 46 | "COK": "CK", 47 | "CHL": "CL", 48 | "CMR": "CM", 49 | "CHN": "CN", 50 | "COL": "CO", 51 | "CRI": "CR", 52 | "CUB": "CU", 53 | "CPV": "CV", 54 | "CUW": "CW", 55 | "CXR": "CX", 56 | "CYP": "CY", 57 | "CZE": "CZ", 58 | "DEU": "DE", 59 | "DJI": "DJ", 60 | "DNK": "DK", 61 | "DMA": "DM", 62 | "DOM": "DO", 63 | "DZA": "DZ", 64 | "ECU": "EC", 65 | "EST": "EE", 66 | "EGY": "EG", 67 | "ESH": "EH", 68 | "ERI": "ER", 69 | "ESP": "ES", 70 | "ETH": "ET", 71 | "FIN": "FI", 72 | "FJI": "FJ", 73 | "FLK": "FK", 74 | "FSM": "FM", 75 | "FRO": "FO", 76 | "FRA": "FR", 77 | "GAB": "GA", 78 | "GBR": "GB", 79 | "GRD": "GD", 80 | "GEO": "GE", 81 | "GUF": "GF", 82 | "GGY": "GG", 83 | "GHA": "GH", 84 | "GIB": "GI", 85 | "GRL": "GL", 86 | "GMB": "GM", 87 | "GIN": "GN", 88 | "GLP": "GP", 89 | "GNQ": "GQ", 90 | "GRC": "GR", 91 | "SGS": "GS", 92 | "GTM": "GT", 93 | "GUM": "GU", 94 | "GNB": "GW", 95 | "GUY": "GY", 96 | "HKG": "HK", 97 | "HMD": "HM", 98 | "HND": "HN", 99 | "HRV": "HR", 100 | "HTI": "HT", 101 | "HUN": "HU", 102 | "IDN": "ID", 103 | "IRL": "IE", 104 | "ISR": "IL", 105 | "IMN": "IM", 106 | "IND": "IN", 107 | "IOT": "IO", 108 | "IRQ": "IQ", 109 | "IRN": "IR", 110 | "ISL": "IS", 111 | "ITA": "IT", 112 | "JEY": "JE", 113 | "JAM": "JM", 114 | "JOR": "JO", 115 | "JPN": "JP", 116 | "KEN": "KE", 117 | "KGZ": "KG", 118 | "KHM": "KH", 119 | "KIR": "KI", 120 | "COM": "KM", 121 | "KNA": "KN", 122 | "PRK": "KP", 123 | "KOR": "KR", 124 | "KWT": "KW", 125 | "CYM": "KY", 126 | "KAZ": "KZ", 127 | "LAO": "LA", 128 | "LBN": "LB", 129 | "LCA": "LC", 130 | "LIE": "LI", 131 | "LKA": "LK", 132 | "LBR": "LR", 133 | "LSO": "LS", 134 | "LTU": "LT", 135 | "LUX": "LU", 136 | "LVA": "LV", 137 | "LBY": "LY", 138 | "MAR": "MA", 139 | "MCO": "MC", 140 | "MDA": "MD", 141 | "MNE": "ME", 142 | "MAF": "MF", 143 | "MDG": "MG", 144 | "MHL": "MH", 145 | "MKD": "MK", 146 | "MLI": "ML", 147 | "MMR": "MM", 148 | "MNG": "MN", 149 | "MAC": "MO", 150 | "MNP": "MP", 151 | "MTQ": "MQ", 152 | "MRT": "MR", 153 | "MSR": "MS", 154 | "MLT": "MT", 155 | "MUS": "MU", 156 | "MDV": "MV", 157 | "MWI": "MW", 158 | "MEX": "MX", 159 | "MYS": "MY", 160 | "MOZ": "MZ", 161 | "NAM": "NA", 162 | "NCL": "NC", 163 | "NER": "NE", 164 | "NFK": "NF", 165 | "NGA": "NG", 166 | "NIC": "NI", 167 | "NLD": "NL", 168 | "NOR": "NO", 169 | "NPL": "NP", 170 | "NRU": "NR", 171 | "NIU": "NU", 172 | "NZL": "NZ", 173 | "OMN": "OM", 174 | "PAN": "PA", 175 | "PER": "PE", 176 | "PYF": "PF", 177 | "PNG": "PG", 178 | "PHL": "PH", 179 | "PAK": "PK", 180 | "POL": "PL", 181 | "SPM": "PM", 182 | "PCN": "PN", 183 | "PRI": "PR", 184 | "PSE": "PS", 185 | "PRT": "PT", 186 | "PLW": "PW", 187 | "PRY": "PY", 188 | "QAT": "QA", 189 | "REU": "RE", 190 | "ROU": "RO", 191 | "SRB": "RS", 192 | "RUS": "RU", 193 | "RWA": "RW", 194 | "SAU": "SA", 195 | "SLB": "SB", 196 | "SYC": "SC", 197 | "SDN": "SD", 198 | "SWE": "SE", 199 | "SGP": "SG", 200 | "SHN": "SH", 201 | "SVN": "SI", 202 | "SJM": "SJ", 203 | "SVK": "SK", 204 | "SLE": "SL", 205 | "SMR": "SM", 206 | "SEN": "SN", 207 | "SOM": "SO", 208 | "SUR": "SR", 209 | "SSD": "SS", 210 | "STP": "ST", 211 | "SLV": "SV", 212 | "SXM": "SX", 213 | "SYR": "SY", 214 | "SWZ": "SZ", 215 | "TCA": "TC", 216 | "TCD": "TD", 217 | "ATF": "TF", 218 | "TGO": "TG", 219 | "THA": "TH", 220 | "TJK": "TJ", 221 | "TKL": "TK", 222 | "TLS": "TL", 223 | "TKM": "TM", 224 | "TUN": "TN", 225 | "TON": "TO", 226 | "TUR": "TR", 227 | "TTO": "TT", 228 | "TUV": "TV", 229 | "TWN": "TW", 230 | "TZA": "TZ", 231 | "UKR": "UA", 232 | "UGA": "UG", 233 | "UMI": "UM", 234 | "USA": "US", 235 | "URY": "UY", 236 | "UZB": "UZ", 237 | "VAT": "VA", 238 | "VCT": "VC", 239 | "VEN": "VE", 240 | "VGB": "VG", 241 | "VIR": "VI", 242 | "VNM": "VN", 243 | "VUT": "VU", 244 | "WLF": "WF", 245 | "WSM": "WS", 246 | "XKX": "XK", 247 | "YEM": "YE", 248 | "MYT": "YT", 249 | "ZAF": "ZA", 250 | "ZMB": "ZM", 251 | "ZWE": "ZW" 252 | } -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'ts-jest', 3 | testEnvironment: 'node', 4 | }; -------------------------------------------------------------------------------- /lib/cjs/country-to-code.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.countryToAlpha3 = exports.countryToAlpha2 = void 0; 4 | const latinize_1 = require("./utils/latinize"); 5 | const strings_1 = require("./utils/strings"); 6 | const alpha2s = require("../../data/iso-alpha-2.json"); 7 | const alpha3s = require("../../data/iso-alpha-3.json"); 8 | const alpha23s = require("../../data/iso-alpha-2-to-3.json"); 9 | const names = require("../../data/names.json"); 10 | /** 11 | * Convert almost anything to an ISO 3166-1 alpha-2 code. 12 | * @param str String to convert. Note: any is used so we can test non-string values returning null for CommonJS version. 13 | */ 14 | const countryToAlpha2 = (str) => { 15 | // Check it's a string at least 2 chars long 16 | if (typeof str !== "string" || str.length < 2) { 17 | return null; 18 | } 19 | const country = (0, strings_1.removeSpaces)((0, strings_1.normalize)((0, latinize_1.latinize)(str))); 20 | // Too short 21 | if (country.length < 2) { 22 | return null; 23 | } 24 | // Already ISO 3166 alpha 2 25 | if (country.length === 2 && alpha2s.includes(country)) { 26 | return country; 27 | } 28 | // Is ISO 3166 alpha 3 29 | if (country.length === 3 && alpha3s[country]) { 30 | return alpha3s[country]; 31 | } 32 | // Exact match 33 | if (names[country]) { 34 | return names[country]; 35 | } 36 | return null; 37 | }; 38 | exports.countryToAlpha2 = countryToAlpha2; 39 | /** 40 | * Convert almost anything to an ISO 3166-1 alpha-3 code. 41 | * @param str String to convert. Note: any is used so we can test non-string values returning null for CommonJS version. 42 | */ 43 | const countryToAlpha3 = (str) => { 44 | const alpha2 = (0, exports.countryToAlpha2)(str); 45 | if (alpha2) { 46 | return alpha23s[alpha2]; 47 | } 48 | return null; 49 | }; 50 | exports.countryToAlpha3 = countryToAlpha3; 51 | -------------------------------------------------------------------------------- /lib/cjs/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.countryToAlpha3 = exports.countryToAlpha2 = void 0; 4 | const country_to_code_1 = require("./country-to-code"); 5 | Object.defineProperty(exports, "countryToAlpha2", { enumerable: true, get: function () { return country_to_code_1.countryToAlpha2; } }); 6 | Object.defineProperty(exports, "countryToAlpha3", { enumerable: true, get: function () { return country_to_code_1.countryToAlpha3; } }); 7 | -------------------------------------------------------------------------------- /lib/cjs/scripts/generate.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 3 | if (k2 === undefined) k2 = k; 4 | var desc = Object.getOwnPropertyDescriptor(m, k); 5 | if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { 6 | desc = { enumerable: true, get: function() { return m[k]; } }; 7 | } 8 | Object.defineProperty(o, k2, desc); 9 | }) : (function(o, m, k, k2) { 10 | if (k2 === undefined) k2 = k; 11 | o[k2] = m[k]; 12 | })); 13 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 14 | Object.defineProperty(o, "default", { enumerable: true, value: v }); 15 | }) : function(o, v) { 16 | o["default"] = v; 17 | }); 18 | var __importStar = (this && this.__importStar) || function (mod) { 19 | if (mod && mod.__esModule) return mod; 20 | var result = {}; 21 | if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 22 | __setModuleDefault(result, mod); 23 | return result; 24 | }; 25 | Object.defineProperty(exports, "__esModule", { value: true }); 26 | const fs = __importStar(require("fs")); 27 | const path = __importStar(require("path")); 28 | const latinize_1 = require("../utils/latinize"); 29 | const strings_1 = require("../utils/strings"); 30 | const rootDir = __dirname.replace(/(src|lib)([\/\\a-z])*$/, ""); 31 | const dataDir = path.join(rootDir, "data"); 32 | const alpha2sFiles = path.join(dataDir, "iso-alpha-2.json"); 33 | const alpha2s = JSON.parse(fs.readFileSync(alpha2sFiles).toString()); 34 | const namesFile = path.join(dataDir, "names.json"); 35 | const names = {}; 36 | for (const alpha2 of alpha2s) { 37 | const countryFile = path.join(dataDir, "country", `${alpha2}.json`); 38 | const countryData = JSON.parse(fs.readFileSync(countryFile).toString()); 39 | // Create new set to avoid duplicates 40 | const set = new Set(countryData.names); 41 | for (const name of Array.from(set)) { 42 | if (typeof name === 'string') { 43 | set.delete(name); 44 | const latinized = (0, latinize_1.latinize)(name); 45 | set.add((0, strings_1.removeSpaces)((0, strings_1.normalize)(latinized))); 46 | set.add((0, strings_1.removeSpaces)((0, strings_1.normalize)((0, strings_1.removeSpaces)(latinized)))); 47 | } 48 | } 49 | // Populate names 50 | set.forEach((name) => { 51 | if (typeof name === 'string' && name.length) { 52 | if (names[name]) { 53 | console.log(`CLASH! "${name}" [${alpha2}] has been seen for ${names[name]}`); 54 | } 55 | else { 56 | names[name] = alpha2; 57 | } 58 | } 59 | }); 60 | } 61 | fs.writeFileSync(namesFile, JSON.stringify(names, null, 2)); 62 | console.log("Generate complete..."); 63 | console.log(`* Countries: ${alpha2s.length};`); 64 | console.log(`* Names: ${Object.keys(names).length}`); 65 | -------------------------------------------------------------------------------- /lib/cjs/scripts/seed.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 3 | if (k2 === undefined) k2 = k; 4 | var desc = Object.getOwnPropertyDescriptor(m, k); 5 | if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { 6 | desc = { enumerable: true, get: function() { return m[k]; } }; 7 | } 8 | Object.defineProperty(o, k2, desc); 9 | }) : (function(o, m, k, k2) { 10 | if (k2 === undefined) k2 = k; 11 | o[k2] = m[k]; 12 | })); 13 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 14 | Object.defineProperty(o, "default", { enumerable: true, value: v }); 15 | }) : function(o, v) { 16 | o["default"] = v; 17 | }); 18 | var __importStar = (this && this.__importStar) || function (mod) { 19 | if (mod && mod.__esModule) return mod; 20 | var result = {}; 21 | if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 22 | __setModuleDefault(result, mod); 23 | return result; 24 | }; 25 | Object.defineProperty(exports, "__esModule", { value: true }); 26 | const fs = __importStar(require("fs")); 27 | const path = __importStar(require("path")); 28 | const countryJs = __importStar(require("countryjs")); 29 | const countryList = __importStar(require("country-list")); 30 | const isoCountries = __importStar(require("i18n-iso-countries")); 31 | const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); 32 | const dataDir = path.join(__dirname, "..", "..", "..", "data"); 33 | const countryDir = path.join(dataDir, "country"); 34 | const alpha2File = path.join(dataDir, "iso-alpha-2.json"); 35 | const alpha3File = path.join(dataDir, "iso-alpha-3.json"); 36 | const alpha23File = path.join(dataDir, "iso-alpha-2-to-3.json"); 37 | const namesSeen = {}; 38 | const alpha2s = []; 39 | const alpha3s = {}; 40 | const alpha23s = {}; 41 | const loadCountryFile = function (file, alpha2, alpha3) { 42 | let data = { 43 | alpha2, 44 | alpha3, 45 | names: [] 46 | }; 47 | try { 48 | const stat = fs.lstatSync(file); 49 | if (stat.isFile()) { 50 | data = JSON.parse(fs.readFileSync(file).toString()); 51 | } 52 | } 53 | catch (err) { 54 | // Ignore file doesn't exist error as we'll create it 55 | if (err.code !== "ENOENT") { 56 | console.log(file); 57 | throw err; 58 | } 59 | } 60 | return data; 61 | }; 62 | const getCountryInfo = function (code) { 63 | let alpha2 = null; 64 | let alpha3 = null; 65 | const names = []; 66 | // Source from "countryjs" 67 | const info = countryJs.info(code); 68 | if (info) { 69 | alpha2 = info.ISO.alpha2; 70 | alpha3 = info.ISO.alpha3; 71 | names.push(info.name); 72 | names.push(info.nativeName); 73 | for (const alt of info.altSpellings) { 74 | names.push(alt); 75 | } 76 | } 77 | // Source from "country-list" 78 | const countryListName = countryList.getName(code); 79 | if (countryListName) { 80 | alpha2 = code; 81 | names.push(countryListName); 82 | } 83 | // Source from "i18n-iso-countries" 84 | const isoNames = isoCountries.getName(code, "en", { select: "all" }); 85 | if (Array.isArray(isoNames)) { 86 | isoNames.forEach(name => names.push(name)); 87 | } 88 | // Populate alpha 3 if not found yet 89 | if (alpha2 && !alpha3) { 90 | alpha3 = isoCountries.alpha2ToAlpha3(code); 91 | } 92 | return { alpha2, alpha3, names }; 93 | }; 94 | const processCountryCode = function (code) { 95 | const countryFile = path.join(countryDir, `${code}.json`); 96 | let data = getCountryInfo(code); 97 | // Attempt to load country data from this library 98 | if (!data.alpha2) { 99 | data = loadCountryFile(countryFile, data.alpha2, data.alpha3); 100 | } 101 | if (data.alpha2) { 102 | // ISO 3166 103 | alpha2s.push(data.alpha2); 104 | alpha3s[data.alpha3] = data.alpha2; 105 | alpha23s[data.alpha2] = data.alpha3; 106 | // Load existing data 107 | data = loadCountryFile(countryFile, data.alpha2, data.alpha3); 108 | // Populate a set so we don't duplicate 109 | const namesSet = new Set(data.names); 110 | namesSet.add(data.alpha2); 111 | namesSet.add(data.alpha3); 112 | data.names.forEach((name) => namesSet.add(name)); 113 | // Empty names array so we don't duplicate 114 | data.names = []; 115 | // Put names back into names array 116 | for (const name of namesSet) { 117 | if (typeof name === 'string' && name.length > 1) { 118 | if (namesSeen[name]) { 119 | console.log(`CLASH! "${name}" [${data.alpha2}] has been seen for ${namesSeen[name]}`); 120 | } 121 | else { 122 | data.names.push(name); 123 | namesSeen[name] = data.alpha2; 124 | } 125 | } 126 | } 127 | fs.writeFileSync(countryFile, JSON.stringify(data, null, 2)); 128 | } 129 | }; 130 | const seed = function () { 131 | for (const letter1 of alphabet) { 132 | for (const letter2 of alphabet) { 133 | processCountryCode(`${letter1}${letter2}`); 134 | } 135 | } 136 | fs.writeFileSync(alpha2File, JSON.stringify(alpha2s, null, 2)); 137 | fs.writeFileSync(alpha3File, JSON.stringify(alpha3s, null, 2)); 138 | fs.writeFileSync(alpha23File, JSON.stringify(alpha23s, null, 2)); 139 | console.log("Seed complete..."); 140 | console.log(`* Countries: ${alpha2s.length};`); 141 | console.log(`* Names: ${Object.keys(namesSeen).length}`); 142 | }; 143 | seed(); 144 | -------------------------------------------------------------------------------- /lib/cjs/utils/latinize.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.latinize = void 0; 4 | const charMap = { 5 | 'Á': 'A', 6 | 'Ă': 'A', 7 | 'Ắ': 'A', 8 | 'Ặ': 'A', 9 | 'Ằ': 'A', 10 | 'Ẳ': 'A', 11 | 'Ẵ': 'A', 12 | 'Ǎ': 'A', 13 | 'Â': 'A', 14 | 'Ấ': 'A', 15 | 'Ậ': 'A', 16 | 'Ầ': 'A', 17 | 'Ẩ': 'A', 18 | 'Ẫ': 'A', 19 | 'Ä': 'A', 20 | 'Ǟ': 'A', 21 | 'Ȧ': 'A', 22 | 'Ǡ': 'A', 23 | 'Ạ': 'A', 24 | 'Ȁ': 'A', 25 | 'À': 'A', 26 | 'Ả': 'A', 27 | 'Ȃ': 'A', 28 | 'Ā': 'A', 29 | 'Ą': 'A', 30 | 'Å': 'A', 31 | 'Ǻ': 'A', 32 | 'Ḁ': 'A', 33 | 'Ⱥ': 'A', 34 | 'Ã': 'A', 35 | 'Ꜳ': 'AA', 36 | 'Æ': 'AE', 37 | 'Ǽ': 'AE', 38 | 'Ǣ': 'AE', 39 | 'Ꜵ': 'AO', 40 | 'Ꜷ': 'AU', 41 | 'Ꜹ': 'AV', 42 | 'Ꜻ': 'AV', 43 | 'Ꜽ': 'AY', 44 | 'Ḃ': 'B', 45 | 'Ḅ': 'B', 46 | 'Ɓ': 'B', 47 | 'Ḇ': 'B', 48 | 'Ƀ': 'B', 49 | 'Ƃ': 'B', 50 | 'Ć': 'C', 51 | 'Č': 'C', 52 | 'Ç': 'C', 53 | 'Ḉ': 'C', 54 | 'Ĉ': 'C', 55 | 'Ċ': 'C', 56 | 'Ƈ': 'C', 57 | 'Ȼ': 'C', 58 | 'Ď': 'D', 59 | 'Ḑ': 'D', 60 | 'Ḓ': 'D', 61 | 'Ḋ': 'D', 62 | 'Ḍ': 'D', 63 | 'Ɗ': 'D', 64 | 'Ḏ': 'D', 65 | 'Dz': 'D', 66 | 'Dž': 'D', 67 | 'Đ': 'D', 68 | 'Ð': 'D', 69 | 'Ƌ': 'D', 70 | 'DZ': 'DZ', 71 | 'DŽ': 'DZ', 72 | 'É': 'E', 73 | 'Ĕ': 'E', 74 | 'Ě': 'E', 75 | 'Ȩ': 'E', 76 | 'Ḝ': 'E', 77 | 'Ê': 'E', 78 | 'Ế': 'E', 79 | 'Ệ': 'E', 80 | 'Ề': 'E', 81 | 'Ể': 'E', 82 | 'Ễ': 'E', 83 | 'Ḙ': 'E', 84 | 'Ë': 'E', 85 | 'Ė': 'E', 86 | 'Ẹ': 'E', 87 | 'Ȅ': 'E', 88 | 'È': 'E', 89 | 'Ẻ': 'E', 90 | 'Ȇ': 'E', 91 | 'Ē': 'E', 92 | 'Ḗ': 'E', 93 | 'Ḕ': 'E', 94 | 'Ę': 'E', 95 | 'Ɇ': 'E', 96 | 'Ẽ': 'E', 97 | 'Ḛ': 'E', 98 | 'Ꝫ': 'ET', 99 | 'Ḟ': 'F', 100 | 'Ƒ': 'F', 101 | 'Ǵ': 'G', 102 | 'Ğ': 'G', 103 | 'Ǧ': 'G', 104 | 'Ģ': 'G', 105 | 'Ĝ': 'G', 106 | 'Ġ': 'G', 107 | 'Ɠ': 'G', 108 | 'Ḡ': 'G', 109 | 'Ǥ': 'G', 110 | 'Ḫ': 'H', 111 | 'Ȟ': 'H', 112 | 'Ḩ': 'H', 113 | 'Ĥ': 'H', 114 | 'Ⱨ': 'H', 115 | 'Ḧ': 'H', 116 | 'Ḣ': 'H', 117 | 'Ḥ': 'H', 118 | 'Ħ': 'H', 119 | 'Í': 'I', 120 | 'Ĭ': 'I', 121 | 'Ǐ': 'I', 122 | 'Î': 'I', 123 | 'Ï': 'I', 124 | 'Ḯ': 'I', 125 | 'İ': 'I', 126 | 'Ị': 'I', 127 | 'Ȉ': 'I', 128 | 'Ì': 'I', 129 | 'Ỉ': 'I', 130 | 'Ȋ': 'I', 131 | 'Ī': 'I', 132 | 'Į': 'I', 133 | 'Ɨ': 'I', 134 | 'Ĩ': 'I', 135 | 'Ḭ': 'I', 136 | 'І': 'I', 137 | 'Ꝺ': 'D', 138 | 'Ꝼ': 'F', 139 | 'Ᵹ': 'G', 140 | 'Ꞃ': 'R', 141 | 'Ꞅ': 'S', 142 | 'Ꞇ': 'T', 143 | 'Ꝭ': 'IS', 144 | 'Ĵ': 'J', 145 | 'Ɉ': 'J', 146 | 'Ḱ': 'K', 147 | 'Ǩ': 'K', 148 | 'Ķ': 'K', 149 | 'Ⱪ': 'K', 150 | 'Ꝃ': 'K', 151 | 'Ḳ': 'K', 152 | 'Ƙ': 'K', 153 | 'Ḵ': 'K', 154 | 'Ꝁ': 'K', 155 | 'Ꝅ': 'K', 156 | 'Ĺ': 'L', 157 | 'Ƚ': 'L', 158 | 'Ľ': 'L', 159 | 'Ļ': 'L', 160 | 'Ḽ': 'L', 161 | 'Ḷ': 'L', 162 | 'Ḹ': 'L', 163 | 'Ⱡ': 'L', 164 | 'Ꝉ': 'L', 165 | 'Ḻ': 'L', 166 | 'Ŀ': 'L', 167 | 'Ɫ': 'L', 168 | 'Lj': 'L', 169 | 'Ł': 'L', 170 | 'LJ': 'LJ', 171 | 'Ḿ': 'M', 172 | 'Ṁ': 'M', 173 | 'Ṃ': 'M', 174 | 'Ɱ': 'M', 175 | 'Ń': 'N', 176 | 'Ň': 'N', 177 | 'Ņ': 'N', 178 | 'Ṋ': 'N', 179 | 'Ṅ': 'N', 180 | 'Ṇ': 'N', 181 | 'Ǹ': 'N', 182 | 'Ɲ': 'N', 183 | 'Ṉ': 'N', 184 | 'Ƞ': 'N', 185 | 'Nj': 'N', 186 | 'Ñ': 'N', 187 | 'NJ': 'NJ', 188 | 'Ó': 'O', 189 | 'Ŏ': 'O', 190 | 'Ǒ': 'O', 191 | 'Ô': 'O', 192 | 'Ố': 'O', 193 | 'Ộ': 'O', 194 | 'Ồ': 'O', 195 | 'Ổ': 'O', 196 | 'Ỗ': 'O', 197 | 'Ö': 'O', 198 | 'Ȫ': 'O', 199 | 'Ȯ': 'O', 200 | 'Ȱ': 'O', 201 | 'Ọ': 'O', 202 | 'Ő': 'O', 203 | 'Ȍ': 'O', 204 | 'Ò': 'O', 205 | 'Ỏ': 'O', 206 | 'Ơ': 'O', 207 | 'Ớ': 'O', 208 | 'Ợ': 'O', 209 | 'Ờ': 'O', 210 | 'Ở': 'O', 211 | 'Ỡ': 'O', 212 | 'Ȏ': 'O', 213 | 'Ꝋ': 'O', 214 | 'Ꝍ': 'O', 215 | 'Ō': 'O', 216 | 'Ṓ': 'O', 217 | 'Ṑ': 'O', 218 | 'Ɵ': 'O', 219 | 'Ǫ': 'O', 220 | 'Ǭ': 'O', 221 | 'Ø': 'O', 222 | 'Ǿ': 'O', 223 | 'Õ': 'O', 224 | 'Ṍ': 'O', 225 | 'Ṏ': 'O', 226 | 'Ȭ': 'O', 227 | 'Ƣ': 'OI', 228 | 'Ꝏ': 'OO', 229 | 'Ɛ': 'E', 230 | 'Ɔ': 'O', 231 | 'Ȣ': 'OU', 232 | 'Ṕ': 'P', 233 | 'Ṗ': 'P', 234 | 'Ꝓ': 'P', 235 | 'Ƥ': 'P', 236 | 'Ꝕ': 'P', 237 | 'Ᵽ': 'P', 238 | 'Ꝑ': 'P', 239 | 'Ꝙ': 'Q', 240 | 'Ꝗ': 'Q', 241 | 'Ŕ': 'R', 242 | 'Ř': 'R', 243 | 'Ŗ': 'R', 244 | 'Ṙ': 'R', 245 | 'Ṛ': 'R', 246 | 'Ṝ': 'R', 247 | 'Ȑ': 'R', 248 | 'Ȓ': 'R', 249 | 'Ṟ': 'R', 250 | 'Ɍ': 'R', 251 | 'Ɽ': 'R', 252 | 'Ꜿ': 'C', 253 | 'Ǝ': 'E', 254 | 'Ś': 'S', 255 | 'Ṥ': 'S', 256 | 'Š': 'S', 257 | 'Ṧ': 'S', 258 | 'Ş': 'S', 259 | 'Ŝ': 'S', 260 | 'Ș': 'S', 261 | 'Ṡ': 'S', 262 | 'Ṣ': 'S', 263 | 'Ṩ': 'S', 264 | 'ß': 'ss', 265 | 'Ť': 'T', 266 | 'Ţ': 'T', 267 | 'Ṱ': 'T', 268 | 'Ț': 'T', 269 | 'Ⱦ': 'T', 270 | 'Ṫ': 'T', 271 | 'Ṭ': 'T', 272 | 'Ƭ': 'T', 273 | 'Ṯ': 'T', 274 | 'Ʈ': 'T', 275 | 'Ŧ': 'T', 276 | 'Ɐ': 'A', 277 | 'Ꞁ': 'L', 278 | 'Ɯ': 'M', 279 | 'Ʌ': 'V', 280 | 'Ꜩ': 'TZ', 281 | 'Ú': 'U', 282 | 'Ŭ': 'U', 283 | 'Ǔ': 'U', 284 | 'Û': 'U', 285 | 'Ṷ': 'U', 286 | 'Ü': 'U', 287 | 'Ǘ': 'U', 288 | 'Ǚ': 'U', 289 | 'Ǜ': 'U', 290 | 'Ǖ': 'U', 291 | 'Ṳ': 'U', 292 | 'Ụ': 'U', 293 | 'Ű': 'U', 294 | 'Ȕ': 'U', 295 | 'Ù': 'U', 296 | 'Ủ': 'U', 297 | 'Ư': 'U', 298 | 'Ứ': 'U', 299 | 'Ự': 'U', 300 | 'Ừ': 'U', 301 | 'Ử': 'U', 302 | 'Ữ': 'U', 303 | 'Ȗ': 'U', 304 | 'Ū': 'U', 305 | 'Ṻ': 'U', 306 | 'Ų': 'U', 307 | 'Ů': 'U', 308 | 'Ũ': 'U', 309 | 'Ṹ': 'U', 310 | 'Ṵ': 'U', 311 | 'Ꝟ': 'V', 312 | 'Ṿ': 'V', 313 | 'Ʋ': 'V', 314 | 'Ṽ': 'V', 315 | 'Ꝡ': 'VY', 316 | 'Ẃ': 'W', 317 | 'Ŵ': 'W', 318 | 'Ẅ': 'W', 319 | 'Ẇ': 'W', 320 | 'Ẉ': 'W', 321 | 'Ẁ': 'W', 322 | 'Ⱳ': 'W', 323 | 'Ẍ': 'X', 324 | 'Ẋ': 'X', 325 | 'Ý': 'Y', 326 | 'Ŷ': 'Y', 327 | 'Ÿ': 'Y', 328 | 'Ẏ': 'Y', 329 | 'Ỵ': 'Y', 330 | 'Ỳ': 'Y', 331 | 'Ƴ': 'Y', 332 | 'Ỷ': 'Y', 333 | 'Ỿ': 'Y', 334 | 'Ȳ': 'Y', 335 | 'Ɏ': 'Y', 336 | 'Ỹ': 'Y', 337 | 'Ї': 'YI', 338 | 'Ź': 'Z', 339 | 'Ž': 'Z', 340 | 'Ẑ': 'Z', 341 | 'Ⱬ': 'Z', 342 | 'Ż': 'Z', 343 | 'Ẓ': 'Z', 344 | 'Ȥ': 'Z', 345 | 'Ẕ': 'Z', 346 | 'Ƶ': 'Z', 347 | 'Þ': 'TH', 348 | 'IJ': 'IJ', 349 | 'Œ': 'OE', 350 | 'ᴀ': 'A', 351 | 'ᴁ': 'AE', 352 | 'ʙ': 'B', 353 | 'ᴃ': 'B', 354 | 'ᴄ': 'C', 355 | 'ᴅ': 'D', 356 | 'ᴇ': 'E', 357 | 'ꜰ': 'F', 358 | 'ɢ': 'G', 359 | 'ʛ': 'G', 360 | 'ʜ': 'H', 361 | 'ɪ': 'I', 362 | 'ʁ': 'R', 363 | 'ᴊ': 'J', 364 | 'ᴋ': 'K', 365 | 'ʟ': 'L', 366 | 'ᴌ': 'L', 367 | 'ᴍ': 'M', 368 | 'ɴ': 'N', 369 | 'ᴏ': 'O', 370 | 'ɶ': 'OE', 371 | 'ᴐ': 'O', 372 | 'ᴕ': 'OU', 373 | 'ᴘ': 'P', 374 | 'ʀ': 'R', 375 | 'ᴎ': 'N', 376 | 'ᴙ': 'R', 377 | 'ꜱ': 'S', 378 | 'ᴛ': 'T', 379 | 'ⱻ': 'E', 380 | 'ᴚ': 'R', 381 | 'ᴜ': 'U', 382 | 'ᴠ': 'V', 383 | 'ᴡ': 'W', 384 | 'ʏ': 'Y', 385 | 'ᴢ': 'Z', 386 | 'á': 'a', 387 | 'ă': 'a', 388 | 'ắ': 'a', 389 | 'ặ': 'a', 390 | 'ằ': 'a', 391 | 'ẳ': 'a', 392 | 'ẵ': 'a', 393 | 'ǎ': 'a', 394 | 'â': 'a', 395 | 'ấ': 'a', 396 | 'ậ': 'a', 397 | 'ầ': 'a', 398 | 'ẩ': 'a', 399 | 'ẫ': 'a', 400 | 'ä': 'a', 401 | 'ǟ': 'a', 402 | 'ȧ': 'a', 403 | 'ǡ': 'a', 404 | 'ạ': 'a', 405 | 'ȁ': 'a', 406 | 'à': 'a', 407 | 'ả': 'a', 408 | 'ȃ': 'a', 409 | 'ā': 'a', 410 | 'ą': 'a', 411 | 'ᶏ': 'a', 412 | 'ẚ': 'a', 413 | 'å': 'a', 414 | 'ǻ': 'a', 415 | 'ḁ': 'a', 416 | 'ⱥ': 'a', 417 | 'ã': 'a', 418 | 'ꜳ': 'aa', 419 | 'æ': 'ae', 420 | 'ǽ': 'ae', 421 | 'ǣ': 'ae', 422 | 'ꜵ': 'ao', 423 | 'ꜷ': 'au', 424 | 'ꜹ': 'av', 425 | 'ꜻ': 'av', 426 | 'ꜽ': 'ay', 427 | 'ḃ': 'b', 428 | 'ḅ': 'b', 429 | 'ɓ': 'b', 430 | 'ḇ': 'b', 431 | 'ᵬ': 'b', 432 | 'ᶀ': 'b', 433 | 'ƀ': 'b', 434 | 'ƃ': 'b', 435 | 'ɵ': 'o', 436 | 'ć': 'c', 437 | 'č': 'c', 438 | 'ç': 'c', 439 | 'ḉ': 'c', 440 | 'ĉ': 'c', 441 | 'ɕ': 'c', 442 | 'ċ': 'c', 443 | 'ƈ': 'c', 444 | 'ȼ': 'c', 445 | 'ď': 'd', 446 | 'ḑ': 'd', 447 | 'ḓ': 'd', 448 | 'ȡ': 'd', 449 | 'ḋ': 'd', 450 | 'ḍ': 'd', 451 | 'ɗ': 'd', 452 | 'ᶑ': 'd', 453 | 'ḏ': 'd', 454 | 'ᵭ': 'd', 455 | 'ᶁ': 'd', 456 | 'đ': 'd', 457 | 'ɖ': 'd', 458 | 'ƌ': 'd', 459 | 'ð': 'd', 460 | 'ı': 'i', 461 | 'ȷ': 'j', 462 | 'ɟ': 'j', 463 | 'ʄ': 'j', 464 | 'dz': 'dz', 465 | 'dž': 'dz', 466 | 'é': 'e', 467 | 'ĕ': 'e', 468 | 'ě': 'e', 469 | 'ȩ': 'e', 470 | 'ḝ': 'e', 471 | 'ê': 'e', 472 | 'ế': 'e', 473 | 'ệ': 'e', 474 | 'ề': 'e', 475 | 'ể': 'e', 476 | 'ễ': 'e', 477 | 'ḙ': 'e', 478 | 'ë': 'e', 479 | 'ė': 'e', 480 | 'ẹ': 'e', 481 | 'ȅ': 'e', 482 | 'è': 'e', 483 | 'ẻ': 'e', 484 | 'ȇ': 'e', 485 | 'ē': 'e', 486 | 'ḗ': 'e', 487 | 'ḕ': 'e', 488 | 'ⱸ': 'e', 489 | 'ę': 'e', 490 | 'ᶒ': 'e', 491 | 'ɇ': 'e', 492 | 'ẽ': 'e', 493 | 'ḛ': 'e', 494 | 'ꝫ': 'et', 495 | 'ḟ': 'f', 496 | 'ƒ': 'f', 497 | 'ᵮ': 'f', 498 | 'ᶂ': 'f', 499 | 'ǵ': 'g', 500 | 'ğ': 'g', 501 | 'ǧ': 'g', 502 | 'ģ': 'g', 503 | 'ĝ': 'g', 504 | 'ġ': 'g', 505 | 'ɠ': 'g', 506 | 'ḡ': 'g', 507 | 'ᶃ': 'g', 508 | 'ǥ': 'g', 509 | 'ḫ': 'h', 510 | 'ȟ': 'h', 511 | 'ḩ': 'h', 512 | 'ĥ': 'h', 513 | 'ⱨ': 'h', 514 | 'ḧ': 'h', 515 | 'ḣ': 'h', 516 | 'ḥ': 'h', 517 | 'ɦ': 'h', 518 | 'ẖ': 'h', 519 | 'ħ': 'h', 520 | 'ƕ': 'hv', 521 | 'í': 'i', 522 | 'ĭ': 'i', 523 | 'ǐ': 'i', 524 | 'î': 'i', 525 | 'ï': 'i', 526 | 'ḯ': 'i', 527 | 'ị': 'i', 528 | 'ȉ': 'i', 529 | 'ì': 'i', 530 | 'ỉ': 'i', 531 | 'ȋ': 'i', 532 | 'ī': 'i', 533 | 'į': 'i', 534 | 'ᶖ': 'i', 535 | 'ɨ': 'i', 536 | 'ĩ': 'i', 537 | 'ḭ': 'i', 538 | 'і': 'i', 539 | 'ꝺ': 'd', 540 | 'ꝼ': 'f', 541 | 'ᵹ': 'g', 542 | 'ꞃ': 'r', 543 | 'ꞅ': 's', 544 | 'ꞇ': 't', 545 | 'ꝭ': 'is', 546 | 'ǰ': 'j', 547 | 'ĵ': 'j', 548 | 'ʝ': 'j', 549 | 'ɉ': 'j', 550 | 'ḱ': 'k', 551 | 'ǩ': 'k', 552 | 'ķ': 'k', 553 | 'ⱪ': 'k', 554 | 'ꝃ': 'k', 555 | 'ḳ': 'k', 556 | 'ƙ': 'k', 557 | 'ḵ': 'k', 558 | 'ᶄ': 'k', 559 | 'ꝁ': 'k', 560 | 'ꝅ': 'k', 561 | 'ĺ': 'l', 562 | 'ƚ': 'l', 563 | 'ɬ': 'l', 564 | 'ľ': 'l', 565 | 'ļ': 'l', 566 | 'ḽ': 'l', 567 | 'ȴ': 'l', 568 | 'ḷ': 'l', 569 | 'ḹ': 'l', 570 | 'ⱡ': 'l', 571 | 'ꝉ': 'l', 572 | 'ḻ': 'l', 573 | 'ŀ': 'l', 574 | 'ɫ': 'l', 575 | 'ᶅ': 'l', 576 | 'ɭ': 'l', 577 | 'ł': 'l', 578 | 'lj': 'lj', 579 | 'ſ': 's', 580 | 'ẜ': 's', 581 | 'ẛ': 's', 582 | 'ẝ': 's', 583 | 'ḿ': 'm', 584 | 'ṁ': 'm', 585 | 'ṃ': 'm', 586 | 'ɱ': 'm', 587 | 'ᵯ': 'm', 588 | 'ᶆ': 'm', 589 | 'ń': 'n', 590 | 'ň': 'n', 591 | 'ņ': 'n', 592 | 'ṋ': 'n', 593 | 'ȵ': 'n', 594 | 'ṅ': 'n', 595 | 'ṇ': 'n', 596 | 'ǹ': 'n', 597 | 'ɲ': 'n', 598 | 'ṉ': 'n', 599 | 'ƞ': 'n', 600 | 'ᵰ': 'n', 601 | 'ᶇ': 'n', 602 | 'ɳ': 'n', 603 | 'ñ': 'n', 604 | 'nj': 'nj', 605 | 'ó': 'o', 606 | 'ŏ': 'o', 607 | 'ǒ': 'o', 608 | 'ô': 'o', 609 | 'ố': 'o', 610 | 'ộ': 'o', 611 | 'ồ': 'o', 612 | 'ổ': 'o', 613 | 'ỗ': 'o', 614 | 'ö': 'o', 615 | 'ȫ': 'o', 616 | 'ȯ': 'o', 617 | 'ȱ': 'o', 618 | 'ọ': 'o', 619 | 'ő': 'o', 620 | 'ȍ': 'o', 621 | 'ò': 'o', 622 | 'ỏ': 'o', 623 | 'ơ': 'o', 624 | 'ớ': 'o', 625 | 'ợ': 'o', 626 | 'ờ': 'o', 627 | 'ở': 'o', 628 | 'ỡ': 'o', 629 | 'ȏ': 'o', 630 | 'ꝋ': 'o', 631 | 'ꝍ': 'o', 632 | 'ⱺ': 'o', 633 | 'ō': 'o', 634 | 'ṓ': 'o', 635 | 'ṑ': 'o', 636 | 'ǫ': 'o', 637 | 'ǭ': 'o', 638 | 'ø': 'o', 639 | 'ǿ': 'o', 640 | 'õ': 'o', 641 | 'ṍ': 'o', 642 | 'ṏ': 'o', 643 | 'ȭ': 'o', 644 | 'ƣ': 'oi', 645 | 'ꝏ': 'oo', 646 | 'ɛ': 'e', 647 | 'ᶓ': 'e', 648 | 'ɔ': 'o', 649 | 'ᶗ': 'o', 650 | 'ȣ': 'ou', 651 | 'ṕ': 'p', 652 | 'ṗ': 'p', 653 | 'ꝓ': 'p', 654 | 'ƥ': 'p', 655 | 'ᵱ': 'p', 656 | 'ᶈ': 'p', 657 | 'ꝕ': 'p', 658 | 'ᵽ': 'p', 659 | 'ꝑ': 'p', 660 | 'ꝙ': 'q', 661 | 'ʠ': 'q', 662 | 'ɋ': 'q', 663 | 'ꝗ': 'q', 664 | 'ŕ': 'r', 665 | 'ř': 'r', 666 | 'ŗ': 'r', 667 | 'ṙ': 'r', 668 | 'ṛ': 'r', 669 | 'ṝ': 'r', 670 | 'ȑ': 'r', 671 | 'ɾ': 'r', 672 | 'ᵳ': 'r', 673 | 'ȓ': 'r', 674 | 'ṟ': 'r', 675 | 'ɼ': 'r', 676 | 'ᵲ': 'r', 677 | 'ᶉ': 'r', 678 | 'ɍ': 'r', 679 | 'ɽ': 'r', 680 | 'ↄ': 'c', 681 | 'ꜿ': 'c', 682 | 'ɘ': 'e', 683 | 'ɿ': 'r', 684 | 'ś': 's', 685 | 'ṥ': 's', 686 | 'š': 's', 687 | 'ṧ': 's', 688 | 'ş': 's', 689 | 'ŝ': 's', 690 | 'ș': 's', 691 | 'ṡ': 's', 692 | 'ṣ': 's', 693 | 'ṩ': 's', 694 | 'ʂ': 's', 695 | 'ᵴ': 's', 696 | 'ᶊ': 's', 697 | 'ȿ': 's', 698 | 'ɡ': 'g', 699 | 'ᴑ': 'o', 700 | 'ᴓ': 'o', 701 | 'ᴝ': 'u', 702 | 'ť': 't', 703 | 'ţ': 't', 704 | 'ṱ': 't', 705 | 'ț': 't', 706 | 'ȶ': 't', 707 | 'ẗ': 't', 708 | 'ⱦ': 't', 709 | 'ṫ': 't', 710 | 'ṭ': 't', 711 | 'ƭ': 't', 712 | 'ṯ': 't', 713 | 'ᵵ': 't', 714 | 'ƫ': 't', 715 | 'ʈ': 't', 716 | 'ŧ': 't', 717 | 'ᵺ': 'th', 718 | 'ɐ': 'a', 719 | 'ᴂ': 'ae', 720 | 'ǝ': 'e', 721 | 'ᵷ': 'g', 722 | 'ɥ': 'h', 723 | 'ʮ': 'h', 724 | 'ʯ': 'h', 725 | 'ᴉ': 'i', 726 | 'ʞ': 'k', 727 | 'ꞁ': 'l', 728 | 'ɯ': 'm', 729 | 'ɰ': 'm', 730 | 'ᴔ': 'oe', 731 | 'ɹ': 'r', 732 | 'ɻ': 'r', 733 | 'ɺ': 'r', 734 | 'ⱹ': 'r', 735 | 'ʇ': 't', 736 | 'ʌ': 'v', 737 | 'ʍ': 'w', 738 | 'ʎ': 'y', 739 | 'ꜩ': 'tz', 740 | 'ú': 'u', 741 | 'ŭ': 'u', 742 | 'ǔ': 'u', 743 | 'û': 'u', 744 | 'ṷ': 'u', 745 | 'ü': 'u', 746 | 'ǘ': 'u', 747 | 'ǚ': 'u', 748 | 'ǜ': 'u', 749 | 'ǖ': 'u', 750 | 'ṳ': 'u', 751 | 'ụ': 'u', 752 | 'ű': 'u', 753 | 'ȕ': 'u', 754 | 'ù': 'u', 755 | 'ủ': 'u', 756 | 'ư': 'u', 757 | 'ứ': 'u', 758 | 'ự': 'u', 759 | 'ừ': 'u', 760 | 'ử': 'u', 761 | 'ữ': 'u', 762 | 'ȗ': 'u', 763 | 'ū': 'u', 764 | 'ṻ': 'u', 765 | 'ų': 'u', 766 | 'ᶙ': 'u', 767 | 'ů': 'u', 768 | 'ũ': 'u', 769 | 'ṹ': 'u', 770 | 'ṵ': 'u', 771 | 'ᵫ': 'ue', 772 | 'ꝸ': 'um', 773 | 'ⱴ': 'v', 774 | 'ꝟ': 'v', 775 | 'ṿ': 'v', 776 | 'ʋ': 'v', 777 | 'ᶌ': 'v', 778 | 'ⱱ': 'v', 779 | 'ṽ': 'v', 780 | 'ꝡ': 'vy', 781 | 'ẃ': 'w', 782 | 'ŵ': 'w', 783 | 'ẅ': 'w', 784 | 'ẇ': 'w', 785 | 'ẉ': 'w', 786 | 'ẁ': 'w', 787 | 'ⱳ': 'w', 788 | 'ẘ': 'w', 789 | 'ẍ': 'x', 790 | 'ẋ': 'x', 791 | 'ᶍ': 'x', 792 | 'ý': 'y', 793 | 'ŷ': 'y', 794 | 'ÿ': 'y', 795 | 'ẏ': 'y', 796 | 'ỵ': 'y', 797 | 'ỳ': 'y', 798 | 'ƴ': 'y', 799 | 'ỷ': 'y', 800 | 'ỿ': 'y', 801 | 'ȳ': 'y', 802 | 'ẙ': 'y', 803 | 'ɏ': 'y', 804 | 'ỹ': 'y', 805 | 'ї': 'yi', 806 | 'ź': 'z', 807 | 'ž': 'z', 808 | 'ẑ': 'z', 809 | 'ʑ': 'z', 810 | 'ⱬ': 'z', 811 | 'ż': 'z', 812 | 'ẓ': 'z', 813 | 'ȥ': 'z', 814 | 'ẕ': 'z', 815 | 'ᵶ': 'z', 816 | 'ᶎ': 'z', 817 | 'ʐ': 'z', 818 | 'ƶ': 'z', 819 | 'ɀ': 'z', 820 | 'þ': 'th', 821 | 'ff': 'ff', 822 | 'ffi': 'ffi', 823 | 'ffl': 'ffl', 824 | 'fi': 'fi', 825 | 'fl': 'fl', 826 | 'ij': 'ij', 827 | 'œ': 'oe', 828 | 'st': 'st', 829 | 'ₐ': 'a', 830 | 'ₑ': 'e', 831 | 'ᵢ': 'i', 832 | 'ⱼ': 'j', 833 | 'ₒ': 'o', 834 | 'ᵣ': 'r', 835 | 'ᵤ': 'u', 836 | 'ᵥ': 'v', 837 | 'ₓ': 'x', 838 | 'Ё': 'YO', 839 | 'Й': 'I', 840 | 'Ц': 'TS', 841 | 'У': 'U', 842 | 'К': 'K', 843 | 'Е': 'E', 844 | 'Н': 'N', 845 | 'Г': 'G', 846 | 'Ґ': 'G', 847 | 'Ш': 'SH', 848 | 'Щ': 'SCH', 849 | 'З': 'Z', 850 | 'Х': 'H', 851 | 'Ъ': "'", 852 | 'ё': 'yo', 853 | 'й': 'i', 854 | 'ц': 'ts', 855 | 'у': 'u', 856 | 'к': 'k', 857 | 'е': 'e', 858 | 'н': 'n', 859 | 'г': 'g', 860 | 'ґ': 'g', 861 | 'ш': 'sh', 862 | 'щ': 'sch', 863 | 'з': 'z', 864 | 'х': 'h', 865 | 'ъ': "'", 866 | 'Ф': 'F', 867 | 'Ы': 'I', 868 | 'В': 'V', 869 | 'А': 'a', 870 | 'П': 'P', 871 | 'Р': 'R', 872 | 'О': 'O', 873 | 'Л': 'L', 874 | 'Д': 'D', 875 | 'Ж': 'ZH', 876 | 'Э': 'E', 877 | 'ф': 'f', 878 | 'ы': 'i', 879 | 'в': 'v', 880 | 'а': 'a', 881 | 'п': 'p', 882 | 'р': 'r', 883 | 'о': 'o', 884 | 'л': 'l', 885 | 'д': 'd', 886 | 'ж': 'zh', 887 | 'э': 'e', 888 | 'Я': 'Ya', 889 | 'Ч': 'CH', 890 | 'С': 'S', 891 | 'М': 'M', 892 | 'И': 'I', 893 | 'Т': 'T', 894 | 'Ь': "'", 895 | 'Б': 'B', 896 | 'Ю': 'YU', 897 | 'я': 'ya', 898 | 'ч': 'ch', 899 | 'с': 's', 900 | 'м': 'm', 901 | 'и': 'i', 902 | 'т': 't', 903 | 'ь': "'", 904 | 'б': 'b', 905 | 'ю': 'yu' 906 | }; 907 | const latinize = function (str) { 908 | if (typeof str === 'string') { 909 | return str.replace(/[^A-Za-z0-9]/g, (x) => charMap[x] || x); 910 | } 911 | return str; 912 | }; 913 | exports.latinize = latinize; 914 | -------------------------------------------------------------------------------- /lib/cjs/utils/normalize.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.removeSpaces = exports.normalize = void 0; 4 | const normalize = function (str) { 5 | return str.toLocaleUpperCase() 6 | .replace(/[,\.\(\)]/g, " ") 7 | // Remove punctuation 8 | .replace(/['\-]/g, "") 9 | // Remove unimportant words 10 | .replace(/(^|\s)OF(\s|$)/gi, " ") 11 | .replace(/(^|\s)AND(\s|$)/gi, " ") 12 | .replace(/(^|\s)THE(\s|$)/gi, " ") 13 | .replace(/(^|\s)&(\s|$)/gi, " ") 14 | .replace(/(^|\s)&(\s|$)/gi, " ") 15 | // Remove excess 16 | .replace(/\s+/g, " ") 17 | .trim(); 18 | }; 19 | exports.normalize = normalize; 20 | const removeSpaces = function (str) { 21 | return str.replace(/\s/g, ""); 22 | }; 23 | exports.removeSpaces = removeSpaces; 24 | -------------------------------------------------------------------------------- /lib/cjs/utils/strings.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.removeSpaces = exports.normalize = void 0; 4 | const normalize = function (str) { 5 | return str.toLocaleUpperCase() 6 | .replace(/[,\.\(\)]/g, " ") 7 | // Remove punctuation 8 | .replace(/["'`‘’“”]/g, "") 9 | // Remove dashes and hyphens 10 | .replace(/[-‐‑‒–—―]/g, "") 11 | // Remove braces, brackets, and parentheses 12 | .replace(/[{}\[\]()]/g, "") 13 | // Remove unimportant words 14 | .replace(/(^|\s)OF(\s|$)/gi, " ") 15 | .replace(/(^|\s)AND(\s|$)/gi, " ") 16 | .replace(/(^|\s)THE(\s|$)/gi, " ") 17 | .replace(/(^|\s)&(\s|$)/gi, " ") 18 | .replace(/(^|\s)&(\s|$)/gi, " ") 19 | // Remove excess 20 | .replace(/\s+/g, " ") 21 | .trim(); 22 | }; 23 | exports.normalize = normalize; 24 | const removeSpaces = function (str) { 25 | return str.replace(/\s/g, ""); 26 | }; 27 | exports.removeSpaces = removeSpaces; 28 | -------------------------------------------------------------------------------- /lib/esm/country-to-code.js: -------------------------------------------------------------------------------- 1 | import { latinize } from "./utils/latinize"; 2 | import { normalize, removeSpaces } from "./utils/strings"; 3 | const alpha2s = require("../../data/iso-alpha-2.json"); 4 | const alpha3s = require("../../data/iso-alpha-3.json"); 5 | const alpha23s = require("../../data/iso-alpha-2-to-3.json"); 6 | const names = require("../../data/names.json"); 7 | /** 8 | * Convert almost anything to an ISO 3166-1 alpha-2 code. 9 | * @param str String to convert. Note: any is used so we can test non-string values returning null for CommonJS version. 10 | */ 11 | export const countryToAlpha2 = (str) => { 12 | // Check it's a string at least 2 chars long 13 | if (typeof str !== "string" || str.length < 2) { 14 | return null; 15 | } 16 | const country = removeSpaces(normalize(latinize(str))); 17 | // Too short 18 | if (country.length < 2) { 19 | return null; 20 | } 21 | // Already ISO 3166 alpha 2 22 | if (country.length === 2 && alpha2s.includes(country)) { 23 | return country; 24 | } 25 | // Is ISO 3166 alpha 3 26 | if (country.length === 3 && alpha3s[country]) { 27 | return alpha3s[country]; 28 | } 29 | // Exact match 30 | if (names[country]) { 31 | return names[country]; 32 | } 33 | return null; 34 | }; 35 | /** 36 | * Convert almost anything to an ISO 3166-1 alpha-3 code. 37 | * @param str String to convert. Note: any is used so we can test non-string values returning null for CommonJS version. 38 | */ 39 | export const countryToAlpha3 = (str) => { 40 | const alpha2 = countryToAlpha2(str); 41 | if (alpha2) { 42 | return alpha23s[alpha2]; 43 | } 44 | return null; 45 | }; 46 | -------------------------------------------------------------------------------- /lib/esm/index.js: -------------------------------------------------------------------------------- 1 | import { countryToAlpha2, countryToAlpha3 } from "./country-to-code"; 2 | export { countryToAlpha2, countryToAlpha3 }; 3 | -------------------------------------------------------------------------------- /lib/esm/scripts/generate.js: -------------------------------------------------------------------------------- 1 | import * as fs from "fs"; 2 | import * as path from "path"; 3 | import { latinize } from "../utils/latinize"; 4 | import { normalize, removeSpaces } from "../utils/strings"; 5 | const rootDir = __dirname.replace(/(src|lib)([\/\\a-z])*$/, ""); 6 | const dataDir = path.join(rootDir, "data"); 7 | const alpha2sFiles = path.join(dataDir, "iso-alpha-2.json"); 8 | const alpha2s = JSON.parse(fs.readFileSync(alpha2sFiles).toString()); 9 | const namesFile = path.join(dataDir, "names.json"); 10 | const names = {}; 11 | for (const alpha2 of alpha2s) { 12 | const countryFile = path.join(dataDir, "country", `${alpha2}.json`); 13 | const countryData = JSON.parse(fs.readFileSync(countryFile).toString()); 14 | // Create new set to avoid duplicates 15 | const set = new Set(countryData.names); 16 | for (const name of Array.from(set)) { 17 | if (typeof name === 'string') { 18 | set.delete(name); 19 | const latinized = latinize(name); 20 | set.add(removeSpaces(normalize(latinized))); 21 | set.add(removeSpaces(normalize(removeSpaces(latinized)))); 22 | } 23 | } 24 | // Populate names 25 | set.forEach((name) => { 26 | if (typeof name === 'string' && name.length) { 27 | if (names[name]) { 28 | console.log(`CLASH! "${name}" [${alpha2}] has been seen for ${names[name]}`); 29 | } 30 | else { 31 | names[name] = alpha2; 32 | } 33 | } 34 | }); 35 | } 36 | fs.writeFileSync(namesFile, JSON.stringify(names, null, 2)); 37 | console.log("Generate complete..."); 38 | console.log(`* Countries: ${alpha2s.length};`); 39 | console.log(`* Names: ${Object.keys(names).length}`); 40 | -------------------------------------------------------------------------------- /lib/esm/scripts/seed.js: -------------------------------------------------------------------------------- 1 | import * as fs from "fs"; 2 | import * as path from "path"; 3 | import * as countryJs from "countryjs"; 4 | import * as countryList from "country-list"; 5 | import * as isoCountries from "i18n-iso-countries"; 6 | const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); 7 | const dataDir = path.join(__dirname, "..", "..", "..", "data"); 8 | const countryDir = path.join(dataDir, "country"); 9 | const alpha2File = path.join(dataDir, "iso-alpha-2.json"); 10 | const alpha3File = path.join(dataDir, "iso-alpha-3.json"); 11 | const alpha23File = path.join(dataDir, "iso-alpha-2-to-3.json"); 12 | const namesSeen = {}; 13 | const alpha2s = []; 14 | const alpha3s = {}; 15 | const alpha23s = {}; 16 | const loadCountryFile = function (file, alpha2, alpha3) { 17 | let data = { 18 | alpha2, 19 | alpha3, 20 | names: [] 21 | }; 22 | try { 23 | const stat = fs.lstatSync(file); 24 | if (stat.isFile()) { 25 | data = JSON.parse(fs.readFileSync(file).toString()); 26 | } 27 | } 28 | catch (err) { 29 | // Ignore file doesn't exist error as we'll create it 30 | if (err.code !== "ENOENT") { 31 | console.log(file); 32 | throw err; 33 | } 34 | } 35 | return data; 36 | }; 37 | const getCountryInfo = function (code) { 38 | let alpha2 = null; 39 | let alpha3 = null; 40 | const names = []; 41 | // Source from "countryjs" 42 | const info = countryJs.info(code); 43 | if (info) { 44 | alpha2 = info.ISO.alpha2; 45 | alpha3 = info.ISO.alpha3; 46 | names.push(info.name); 47 | names.push(info.nativeName); 48 | for (const alt of info.altSpellings) { 49 | names.push(alt); 50 | } 51 | } 52 | // Source from "country-list" 53 | const countryListName = countryList.getName(code); 54 | if (countryListName) { 55 | alpha2 = code; 56 | names.push(countryListName); 57 | } 58 | // Source from "i18n-iso-countries" 59 | const isoNames = isoCountries.getName(code, "en", { select: "all" }); 60 | if (Array.isArray(isoNames)) { 61 | isoNames.forEach(name => names.push(name)); 62 | } 63 | // Populate alpha 3 if not found yet 64 | if (alpha2 && !alpha3) { 65 | alpha3 = isoCountries.alpha2ToAlpha3(code); 66 | } 67 | return { alpha2, alpha3, names }; 68 | }; 69 | const processCountryCode = function (code) { 70 | const countryFile = path.join(countryDir, `${code}.json`); 71 | let data = getCountryInfo(code); 72 | // Attempt to load country data from this library 73 | if (!data.alpha2) { 74 | data = loadCountryFile(countryFile, data.alpha2, data.alpha3); 75 | } 76 | if (data.alpha2) { 77 | // ISO 3166 78 | alpha2s.push(data.alpha2); 79 | alpha3s[data.alpha3] = data.alpha2; 80 | alpha23s[data.alpha2] = data.alpha3; 81 | // Load existing data 82 | data = loadCountryFile(countryFile, data.alpha2, data.alpha3); 83 | // Populate a set so we don't duplicate 84 | const namesSet = new Set(data.names); 85 | namesSet.add(data.alpha2); 86 | namesSet.add(data.alpha3); 87 | data.names.forEach((name) => namesSet.add(name)); 88 | // Empty names array so we don't duplicate 89 | data.names = []; 90 | // Put names back into names array 91 | for (const name of namesSet) { 92 | if (typeof name === 'string' && name.length > 1) { 93 | if (namesSeen[name]) { 94 | console.log(`CLASH! "${name}" [${data.alpha2}] has been seen for ${namesSeen[name]}`); 95 | } 96 | else { 97 | data.names.push(name); 98 | namesSeen[name] = data.alpha2; 99 | } 100 | } 101 | } 102 | fs.writeFileSync(countryFile, JSON.stringify(data, null, 2)); 103 | } 104 | }; 105 | const seed = function () { 106 | for (const letter1 of alphabet) { 107 | for (const letter2 of alphabet) { 108 | processCountryCode(`${letter1}${letter2}`); 109 | } 110 | } 111 | fs.writeFileSync(alpha2File, JSON.stringify(alpha2s, null, 2)); 112 | fs.writeFileSync(alpha3File, JSON.stringify(alpha3s, null, 2)); 113 | fs.writeFileSync(alpha23File, JSON.stringify(alpha23s, null, 2)); 114 | console.log("Seed complete..."); 115 | console.log(`* Countries: ${alpha2s.length};`); 116 | console.log(`* Names: ${Object.keys(namesSeen).length}`); 117 | }; 118 | seed(); 119 | -------------------------------------------------------------------------------- /lib/esm/utils/latinize.js: -------------------------------------------------------------------------------- 1 | const charMap = { 2 | 'Á': 'A', 3 | 'Ă': 'A', 4 | 'Ắ': 'A', 5 | 'Ặ': 'A', 6 | 'Ằ': 'A', 7 | 'Ẳ': 'A', 8 | 'Ẵ': 'A', 9 | 'Ǎ': 'A', 10 | 'Â': 'A', 11 | 'Ấ': 'A', 12 | 'Ậ': 'A', 13 | 'Ầ': 'A', 14 | 'Ẩ': 'A', 15 | 'Ẫ': 'A', 16 | 'Ä': 'A', 17 | 'Ǟ': 'A', 18 | 'Ȧ': 'A', 19 | 'Ǡ': 'A', 20 | 'Ạ': 'A', 21 | 'Ȁ': 'A', 22 | 'À': 'A', 23 | 'Ả': 'A', 24 | 'Ȃ': 'A', 25 | 'Ā': 'A', 26 | 'Ą': 'A', 27 | 'Å': 'A', 28 | 'Ǻ': 'A', 29 | 'Ḁ': 'A', 30 | 'Ⱥ': 'A', 31 | 'Ã': 'A', 32 | 'Ꜳ': 'AA', 33 | 'Æ': 'AE', 34 | 'Ǽ': 'AE', 35 | 'Ǣ': 'AE', 36 | 'Ꜵ': 'AO', 37 | 'Ꜷ': 'AU', 38 | 'Ꜹ': 'AV', 39 | 'Ꜻ': 'AV', 40 | 'Ꜽ': 'AY', 41 | 'Ḃ': 'B', 42 | 'Ḅ': 'B', 43 | 'Ɓ': 'B', 44 | 'Ḇ': 'B', 45 | 'Ƀ': 'B', 46 | 'Ƃ': 'B', 47 | 'Ć': 'C', 48 | 'Č': 'C', 49 | 'Ç': 'C', 50 | 'Ḉ': 'C', 51 | 'Ĉ': 'C', 52 | 'Ċ': 'C', 53 | 'Ƈ': 'C', 54 | 'Ȼ': 'C', 55 | 'Ď': 'D', 56 | 'Ḑ': 'D', 57 | 'Ḓ': 'D', 58 | 'Ḋ': 'D', 59 | 'Ḍ': 'D', 60 | 'Ɗ': 'D', 61 | 'Ḏ': 'D', 62 | 'Dz': 'D', 63 | 'Dž': 'D', 64 | 'Đ': 'D', 65 | 'Ð': 'D', 66 | 'Ƌ': 'D', 67 | 'DZ': 'DZ', 68 | 'DŽ': 'DZ', 69 | 'É': 'E', 70 | 'Ĕ': 'E', 71 | 'Ě': 'E', 72 | 'Ȩ': 'E', 73 | 'Ḝ': 'E', 74 | 'Ê': 'E', 75 | 'Ế': 'E', 76 | 'Ệ': 'E', 77 | 'Ề': 'E', 78 | 'Ể': 'E', 79 | 'Ễ': 'E', 80 | 'Ḙ': 'E', 81 | 'Ë': 'E', 82 | 'Ė': 'E', 83 | 'Ẹ': 'E', 84 | 'Ȅ': 'E', 85 | 'È': 'E', 86 | 'Ẻ': 'E', 87 | 'Ȇ': 'E', 88 | 'Ē': 'E', 89 | 'Ḗ': 'E', 90 | 'Ḕ': 'E', 91 | 'Ę': 'E', 92 | 'Ɇ': 'E', 93 | 'Ẽ': 'E', 94 | 'Ḛ': 'E', 95 | 'Ꝫ': 'ET', 96 | 'Ḟ': 'F', 97 | 'Ƒ': 'F', 98 | 'Ǵ': 'G', 99 | 'Ğ': 'G', 100 | 'Ǧ': 'G', 101 | 'Ģ': 'G', 102 | 'Ĝ': 'G', 103 | 'Ġ': 'G', 104 | 'Ɠ': 'G', 105 | 'Ḡ': 'G', 106 | 'Ǥ': 'G', 107 | 'Ḫ': 'H', 108 | 'Ȟ': 'H', 109 | 'Ḩ': 'H', 110 | 'Ĥ': 'H', 111 | 'Ⱨ': 'H', 112 | 'Ḧ': 'H', 113 | 'Ḣ': 'H', 114 | 'Ḥ': 'H', 115 | 'Ħ': 'H', 116 | 'Í': 'I', 117 | 'Ĭ': 'I', 118 | 'Ǐ': 'I', 119 | 'Î': 'I', 120 | 'Ï': 'I', 121 | 'Ḯ': 'I', 122 | 'İ': 'I', 123 | 'Ị': 'I', 124 | 'Ȉ': 'I', 125 | 'Ì': 'I', 126 | 'Ỉ': 'I', 127 | 'Ȋ': 'I', 128 | 'Ī': 'I', 129 | 'Į': 'I', 130 | 'Ɨ': 'I', 131 | 'Ĩ': 'I', 132 | 'Ḭ': 'I', 133 | 'І': 'I', 134 | 'Ꝺ': 'D', 135 | 'Ꝼ': 'F', 136 | 'Ᵹ': 'G', 137 | 'Ꞃ': 'R', 138 | 'Ꞅ': 'S', 139 | 'Ꞇ': 'T', 140 | 'Ꝭ': 'IS', 141 | 'Ĵ': 'J', 142 | 'Ɉ': 'J', 143 | 'Ḱ': 'K', 144 | 'Ǩ': 'K', 145 | 'Ķ': 'K', 146 | 'Ⱪ': 'K', 147 | 'Ꝃ': 'K', 148 | 'Ḳ': 'K', 149 | 'Ƙ': 'K', 150 | 'Ḵ': 'K', 151 | 'Ꝁ': 'K', 152 | 'Ꝅ': 'K', 153 | 'Ĺ': 'L', 154 | 'Ƚ': 'L', 155 | 'Ľ': 'L', 156 | 'Ļ': 'L', 157 | 'Ḽ': 'L', 158 | 'Ḷ': 'L', 159 | 'Ḹ': 'L', 160 | 'Ⱡ': 'L', 161 | 'Ꝉ': 'L', 162 | 'Ḻ': 'L', 163 | 'Ŀ': 'L', 164 | 'Ɫ': 'L', 165 | 'Lj': 'L', 166 | 'Ł': 'L', 167 | 'LJ': 'LJ', 168 | 'Ḿ': 'M', 169 | 'Ṁ': 'M', 170 | 'Ṃ': 'M', 171 | 'Ɱ': 'M', 172 | 'Ń': 'N', 173 | 'Ň': 'N', 174 | 'Ņ': 'N', 175 | 'Ṋ': 'N', 176 | 'Ṅ': 'N', 177 | 'Ṇ': 'N', 178 | 'Ǹ': 'N', 179 | 'Ɲ': 'N', 180 | 'Ṉ': 'N', 181 | 'Ƞ': 'N', 182 | 'Nj': 'N', 183 | 'Ñ': 'N', 184 | 'NJ': 'NJ', 185 | 'Ó': 'O', 186 | 'Ŏ': 'O', 187 | 'Ǒ': 'O', 188 | 'Ô': 'O', 189 | 'Ố': 'O', 190 | 'Ộ': 'O', 191 | 'Ồ': 'O', 192 | 'Ổ': 'O', 193 | 'Ỗ': 'O', 194 | 'Ö': 'O', 195 | 'Ȫ': 'O', 196 | 'Ȯ': 'O', 197 | 'Ȱ': 'O', 198 | 'Ọ': 'O', 199 | 'Ő': 'O', 200 | 'Ȍ': 'O', 201 | 'Ò': 'O', 202 | 'Ỏ': 'O', 203 | 'Ơ': 'O', 204 | 'Ớ': 'O', 205 | 'Ợ': 'O', 206 | 'Ờ': 'O', 207 | 'Ở': 'O', 208 | 'Ỡ': 'O', 209 | 'Ȏ': 'O', 210 | 'Ꝋ': 'O', 211 | 'Ꝍ': 'O', 212 | 'Ō': 'O', 213 | 'Ṓ': 'O', 214 | 'Ṑ': 'O', 215 | 'Ɵ': 'O', 216 | 'Ǫ': 'O', 217 | 'Ǭ': 'O', 218 | 'Ø': 'O', 219 | 'Ǿ': 'O', 220 | 'Õ': 'O', 221 | 'Ṍ': 'O', 222 | 'Ṏ': 'O', 223 | 'Ȭ': 'O', 224 | 'Ƣ': 'OI', 225 | 'Ꝏ': 'OO', 226 | 'Ɛ': 'E', 227 | 'Ɔ': 'O', 228 | 'Ȣ': 'OU', 229 | 'Ṕ': 'P', 230 | 'Ṗ': 'P', 231 | 'Ꝓ': 'P', 232 | 'Ƥ': 'P', 233 | 'Ꝕ': 'P', 234 | 'Ᵽ': 'P', 235 | 'Ꝑ': 'P', 236 | 'Ꝙ': 'Q', 237 | 'Ꝗ': 'Q', 238 | 'Ŕ': 'R', 239 | 'Ř': 'R', 240 | 'Ŗ': 'R', 241 | 'Ṙ': 'R', 242 | 'Ṛ': 'R', 243 | 'Ṝ': 'R', 244 | 'Ȑ': 'R', 245 | 'Ȓ': 'R', 246 | 'Ṟ': 'R', 247 | 'Ɍ': 'R', 248 | 'Ɽ': 'R', 249 | 'Ꜿ': 'C', 250 | 'Ǝ': 'E', 251 | 'Ś': 'S', 252 | 'Ṥ': 'S', 253 | 'Š': 'S', 254 | 'Ṧ': 'S', 255 | 'Ş': 'S', 256 | 'Ŝ': 'S', 257 | 'Ș': 'S', 258 | 'Ṡ': 'S', 259 | 'Ṣ': 'S', 260 | 'Ṩ': 'S', 261 | 'ß': 'ss', 262 | 'Ť': 'T', 263 | 'Ţ': 'T', 264 | 'Ṱ': 'T', 265 | 'Ț': 'T', 266 | 'Ⱦ': 'T', 267 | 'Ṫ': 'T', 268 | 'Ṭ': 'T', 269 | 'Ƭ': 'T', 270 | 'Ṯ': 'T', 271 | 'Ʈ': 'T', 272 | 'Ŧ': 'T', 273 | 'Ɐ': 'A', 274 | 'Ꞁ': 'L', 275 | 'Ɯ': 'M', 276 | 'Ʌ': 'V', 277 | 'Ꜩ': 'TZ', 278 | 'Ú': 'U', 279 | 'Ŭ': 'U', 280 | 'Ǔ': 'U', 281 | 'Û': 'U', 282 | 'Ṷ': 'U', 283 | 'Ü': 'U', 284 | 'Ǘ': 'U', 285 | 'Ǚ': 'U', 286 | 'Ǜ': 'U', 287 | 'Ǖ': 'U', 288 | 'Ṳ': 'U', 289 | 'Ụ': 'U', 290 | 'Ű': 'U', 291 | 'Ȕ': 'U', 292 | 'Ù': 'U', 293 | 'Ủ': 'U', 294 | 'Ư': 'U', 295 | 'Ứ': 'U', 296 | 'Ự': 'U', 297 | 'Ừ': 'U', 298 | 'Ử': 'U', 299 | 'Ữ': 'U', 300 | 'Ȗ': 'U', 301 | 'Ū': 'U', 302 | 'Ṻ': 'U', 303 | 'Ų': 'U', 304 | 'Ů': 'U', 305 | 'Ũ': 'U', 306 | 'Ṹ': 'U', 307 | 'Ṵ': 'U', 308 | 'Ꝟ': 'V', 309 | 'Ṿ': 'V', 310 | 'Ʋ': 'V', 311 | 'Ṽ': 'V', 312 | 'Ꝡ': 'VY', 313 | 'Ẃ': 'W', 314 | 'Ŵ': 'W', 315 | 'Ẅ': 'W', 316 | 'Ẇ': 'W', 317 | 'Ẉ': 'W', 318 | 'Ẁ': 'W', 319 | 'Ⱳ': 'W', 320 | 'Ẍ': 'X', 321 | 'Ẋ': 'X', 322 | 'Ý': 'Y', 323 | 'Ŷ': 'Y', 324 | 'Ÿ': 'Y', 325 | 'Ẏ': 'Y', 326 | 'Ỵ': 'Y', 327 | 'Ỳ': 'Y', 328 | 'Ƴ': 'Y', 329 | 'Ỷ': 'Y', 330 | 'Ỿ': 'Y', 331 | 'Ȳ': 'Y', 332 | 'Ɏ': 'Y', 333 | 'Ỹ': 'Y', 334 | 'Ї': 'YI', 335 | 'Ź': 'Z', 336 | 'Ž': 'Z', 337 | 'Ẑ': 'Z', 338 | 'Ⱬ': 'Z', 339 | 'Ż': 'Z', 340 | 'Ẓ': 'Z', 341 | 'Ȥ': 'Z', 342 | 'Ẕ': 'Z', 343 | 'Ƶ': 'Z', 344 | 'Þ': 'TH', 345 | 'IJ': 'IJ', 346 | 'Œ': 'OE', 347 | 'ᴀ': 'A', 348 | 'ᴁ': 'AE', 349 | 'ʙ': 'B', 350 | 'ᴃ': 'B', 351 | 'ᴄ': 'C', 352 | 'ᴅ': 'D', 353 | 'ᴇ': 'E', 354 | 'ꜰ': 'F', 355 | 'ɢ': 'G', 356 | 'ʛ': 'G', 357 | 'ʜ': 'H', 358 | 'ɪ': 'I', 359 | 'ʁ': 'R', 360 | 'ᴊ': 'J', 361 | 'ᴋ': 'K', 362 | 'ʟ': 'L', 363 | 'ᴌ': 'L', 364 | 'ᴍ': 'M', 365 | 'ɴ': 'N', 366 | 'ᴏ': 'O', 367 | 'ɶ': 'OE', 368 | 'ᴐ': 'O', 369 | 'ᴕ': 'OU', 370 | 'ᴘ': 'P', 371 | 'ʀ': 'R', 372 | 'ᴎ': 'N', 373 | 'ᴙ': 'R', 374 | 'ꜱ': 'S', 375 | 'ᴛ': 'T', 376 | 'ⱻ': 'E', 377 | 'ᴚ': 'R', 378 | 'ᴜ': 'U', 379 | 'ᴠ': 'V', 380 | 'ᴡ': 'W', 381 | 'ʏ': 'Y', 382 | 'ᴢ': 'Z', 383 | 'á': 'a', 384 | 'ă': 'a', 385 | 'ắ': 'a', 386 | 'ặ': 'a', 387 | 'ằ': 'a', 388 | 'ẳ': 'a', 389 | 'ẵ': 'a', 390 | 'ǎ': 'a', 391 | 'â': 'a', 392 | 'ấ': 'a', 393 | 'ậ': 'a', 394 | 'ầ': 'a', 395 | 'ẩ': 'a', 396 | 'ẫ': 'a', 397 | 'ä': 'a', 398 | 'ǟ': 'a', 399 | 'ȧ': 'a', 400 | 'ǡ': 'a', 401 | 'ạ': 'a', 402 | 'ȁ': 'a', 403 | 'à': 'a', 404 | 'ả': 'a', 405 | 'ȃ': 'a', 406 | 'ā': 'a', 407 | 'ą': 'a', 408 | 'ᶏ': 'a', 409 | 'ẚ': 'a', 410 | 'å': 'a', 411 | 'ǻ': 'a', 412 | 'ḁ': 'a', 413 | 'ⱥ': 'a', 414 | 'ã': 'a', 415 | 'ꜳ': 'aa', 416 | 'æ': 'ae', 417 | 'ǽ': 'ae', 418 | 'ǣ': 'ae', 419 | 'ꜵ': 'ao', 420 | 'ꜷ': 'au', 421 | 'ꜹ': 'av', 422 | 'ꜻ': 'av', 423 | 'ꜽ': 'ay', 424 | 'ḃ': 'b', 425 | 'ḅ': 'b', 426 | 'ɓ': 'b', 427 | 'ḇ': 'b', 428 | 'ᵬ': 'b', 429 | 'ᶀ': 'b', 430 | 'ƀ': 'b', 431 | 'ƃ': 'b', 432 | 'ɵ': 'o', 433 | 'ć': 'c', 434 | 'č': 'c', 435 | 'ç': 'c', 436 | 'ḉ': 'c', 437 | 'ĉ': 'c', 438 | 'ɕ': 'c', 439 | 'ċ': 'c', 440 | 'ƈ': 'c', 441 | 'ȼ': 'c', 442 | 'ď': 'd', 443 | 'ḑ': 'd', 444 | 'ḓ': 'd', 445 | 'ȡ': 'd', 446 | 'ḋ': 'd', 447 | 'ḍ': 'd', 448 | 'ɗ': 'd', 449 | 'ᶑ': 'd', 450 | 'ḏ': 'd', 451 | 'ᵭ': 'd', 452 | 'ᶁ': 'd', 453 | 'đ': 'd', 454 | 'ɖ': 'd', 455 | 'ƌ': 'd', 456 | 'ð': 'd', 457 | 'ı': 'i', 458 | 'ȷ': 'j', 459 | 'ɟ': 'j', 460 | 'ʄ': 'j', 461 | 'dz': 'dz', 462 | 'dž': 'dz', 463 | 'é': 'e', 464 | 'ĕ': 'e', 465 | 'ě': 'e', 466 | 'ȩ': 'e', 467 | 'ḝ': 'e', 468 | 'ê': 'e', 469 | 'ế': 'e', 470 | 'ệ': 'e', 471 | 'ề': 'e', 472 | 'ể': 'e', 473 | 'ễ': 'e', 474 | 'ḙ': 'e', 475 | 'ë': 'e', 476 | 'ė': 'e', 477 | 'ẹ': 'e', 478 | 'ȅ': 'e', 479 | 'è': 'e', 480 | 'ẻ': 'e', 481 | 'ȇ': 'e', 482 | 'ē': 'e', 483 | 'ḗ': 'e', 484 | 'ḕ': 'e', 485 | 'ⱸ': 'e', 486 | 'ę': 'e', 487 | 'ᶒ': 'e', 488 | 'ɇ': 'e', 489 | 'ẽ': 'e', 490 | 'ḛ': 'e', 491 | 'ꝫ': 'et', 492 | 'ḟ': 'f', 493 | 'ƒ': 'f', 494 | 'ᵮ': 'f', 495 | 'ᶂ': 'f', 496 | 'ǵ': 'g', 497 | 'ğ': 'g', 498 | 'ǧ': 'g', 499 | 'ģ': 'g', 500 | 'ĝ': 'g', 501 | 'ġ': 'g', 502 | 'ɠ': 'g', 503 | 'ḡ': 'g', 504 | 'ᶃ': 'g', 505 | 'ǥ': 'g', 506 | 'ḫ': 'h', 507 | 'ȟ': 'h', 508 | 'ḩ': 'h', 509 | 'ĥ': 'h', 510 | 'ⱨ': 'h', 511 | 'ḧ': 'h', 512 | 'ḣ': 'h', 513 | 'ḥ': 'h', 514 | 'ɦ': 'h', 515 | 'ẖ': 'h', 516 | 'ħ': 'h', 517 | 'ƕ': 'hv', 518 | 'í': 'i', 519 | 'ĭ': 'i', 520 | 'ǐ': 'i', 521 | 'î': 'i', 522 | 'ï': 'i', 523 | 'ḯ': 'i', 524 | 'ị': 'i', 525 | 'ȉ': 'i', 526 | 'ì': 'i', 527 | 'ỉ': 'i', 528 | 'ȋ': 'i', 529 | 'ī': 'i', 530 | 'į': 'i', 531 | 'ᶖ': 'i', 532 | 'ɨ': 'i', 533 | 'ĩ': 'i', 534 | 'ḭ': 'i', 535 | 'і': 'i', 536 | 'ꝺ': 'd', 537 | 'ꝼ': 'f', 538 | 'ᵹ': 'g', 539 | 'ꞃ': 'r', 540 | 'ꞅ': 's', 541 | 'ꞇ': 't', 542 | 'ꝭ': 'is', 543 | 'ǰ': 'j', 544 | 'ĵ': 'j', 545 | 'ʝ': 'j', 546 | 'ɉ': 'j', 547 | 'ḱ': 'k', 548 | 'ǩ': 'k', 549 | 'ķ': 'k', 550 | 'ⱪ': 'k', 551 | 'ꝃ': 'k', 552 | 'ḳ': 'k', 553 | 'ƙ': 'k', 554 | 'ḵ': 'k', 555 | 'ᶄ': 'k', 556 | 'ꝁ': 'k', 557 | 'ꝅ': 'k', 558 | 'ĺ': 'l', 559 | 'ƚ': 'l', 560 | 'ɬ': 'l', 561 | 'ľ': 'l', 562 | 'ļ': 'l', 563 | 'ḽ': 'l', 564 | 'ȴ': 'l', 565 | 'ḷ': 'l', 566 | 'ḹ': 'l', 567 | 'ⱡ': 'l', 568 | 'ꝉ': 'l', 569 | 'ḻ': 'l', 570 | 'ŀ': 'l', 571 | 'ɫ': 'l', 572 | 'ᶅ': 'l', 573 | 'ɭ': 'l', 574 | 'ł': 'l', 575 | 'lj': 'lj', 576 | 'ſ': 's', 577 | 'ẜ': 's', 578 | 'ẛ': 's', 579 | 'ẝ': 's', 580 | 'ḿ': 'm', 581 | 'ṁ': 'm', 582 | 'ṃ': 'm', 583 | 'ɱ': 'm', 584 | 'ᵯ': 'm', 585 | 'ᶆ': 'm', 586 | 'ń': 'n', 587 | 'ň': 'n', 588 | 'ņ': 'n', 589 | 'ṋ': 'n', 590 | 'ȵ': 'n', 591 | 'ṅ': 'n', 592 | 'ṇ': 'n', 593 | 'ǹ': 'n', 594 | 'ɲ': 'n', 595 | 'ṉ': 'n', 596 | 'ƞ': 'n', 597 | 'ᵰ': 'n', 598 | 'ᶇ': 'n', 599 | 'ɳ': 'n', 600 | 'ñ': 'n', 601 | 'nj': 'nj', 602 | 'ó': 'o', 603 | 'ŏ': 'o', 604 | 'ǒ': 'o', 605 | 'ô': 'o', 606 | 'ố': 'o', 607 | 'ộ': 'o', 608 | 'ồ': 'o', 609 | 'ổ': 'o', 610 | 'ỗ': 'o', 611 | 'ö': 'o', 612 | 'ȫ': 'o', 613 | 'ȯ': 'o', 614 | 'ȱ': 'o', 615 | 'ọ': 'o', 616 | 'ő': 'o', 617 | 'ȍ': 'o', 618 | 'ò': 'o', 619 | 'ỏ': 'o', 620 | 'ơ': 'o', 621 | 'ớ': 'o', 622 | 'ợ': 'o', 623 | 'ờ': 'o', 624 | 'ở': 'o', 625 | 'ỡ': 'o', 626 | 'ȏ': 'o', 627 | 'ꝋ': 'o', 628 | 'ꝍ': 'o', 629 | 'ⱺ': 'o', 630 | 'ō': 'o', 631 | 'ṓ': 'o', 632 | 'ṑ': 'o', 633 | 'ǫ': 'o', 634 | 'ǭ': 'o', 635 | 'ø': 'o', 636 | 'ǿ': 'o', 637 | 'õ': 'o', 638 | 'ṍ': 'o', 639 | 'ṏ': 'o', 640 | 'ȭ': 'o', 641 | 'ƣ': 'oi', 642 | 'ꝏ': 'oo', 643 | 'ɛ': 'e', 644 | 'ᶓ': 'e', 645 | 'ɔ': 'o', 646 | 'ᶗ': 'o', 647 | 'ȣ': 'ou', 648 | 'ṕ': 'p', 649 | 'ṗ': 'p', 650 | 'ꝓ': 'p', 651 | 'ƥ': 'p', 652 | 'ᵱ': 'p', 653 | 'ᶈ': 'p', 654 | 'ꝕ': 'p', 655 | 'ᵽ': 'p', 656 | 'ꝑ': 'p', 657 | 'ꝙ': 'q', 658 | 'ʠ': 'q', 659 | 'ɋ': 'q', 660 | 'ꝗ': 'q', 661 | 'ŕ': 'r', 662 | 'ř': 'r', 663 | 'ŗ': 'r', 664 | 'ṙ': 'r', 665 | 'ṛ': 'r', 666 | 'ṝ': 'r', 667 | 'ȑ': 'r', 668 | 'ɾ': 'r', 669 | 'ᵳ': 'r', 670 | 'ȓ': 'r', 671 | 'ṟ': 'r', 672 | 'ɼ': 'r', 673 | 'ᵲ': 'r', 674 | 'ᶉ': 'r', 675 | 'ɍ': 'r', 676 | 'ɽ': 'r', 677 | 'ↄ': 'c', 678 | 'ꜿ': 'c', 679 | 'ɘ': 'e', 680 | 'ɿ': 'r', 681 | 'ś': 's', 682 | 'ṥ': 's', 683 | 'š': 's', 684 | 'ṧ': 's', 685 | 'ş': 's', 686 | 'ŝ': 's', 687 | 'ș': 's', 688 | 'ṡ': 's', 689 | 'ṣ': 's', 690 | 'ṩ': 's', 691 | 'ʂ': 's', 692 | 'ᵴ': 's', 693 | 'ᶊ': 's', 694 | 'ȿ': 's', 695 | 'ɡ': 'g', 696 | 'ᴑ': 'o', 697 | 'ᴓ': 'o', 698 | 'ᴝ': 'u', 699 | 'ť': 't', 700 | 'ţ': 't', 701 | 'ṱ': 't', 702 | 'ț': 't', 703 | 'ȶ': 't', 704 | 'ẗ': 't', 705 | 'ⱦ': 't', 706 | 'ṫ': 't', 707 | 'ṭ': 't', 708 | 'ƭ': 't', 709 | 'ṯ': 't', 710 | 'ᵵ': 't', 711 | 'ƫ': 't', 712 | 'ʈ': 't', 713 | 'ŧ': 't', 714 | 'ᵺ': 'th', 715 | 'ɐ': 'a', 716 | 'ᴂ': 'ae', 717 | 'ǝ': 'e', 718 | 'ᵷ': 'g', 719 | 'ɥ': 'h', 720 | 'ʮ': 'h', 721 | 'ʯ': 'h', 722 | 'ᴉ': 'i', 723 | 'ʞ': 'k', 724 | 'ꞁ': 'l', 725 | 'ɯ': 'm', 726 | 'ɰ': 'm', 727 | 'ᴔ': 'oe', 728 | 'ɹ': 'r', 729 | 'ɻ': 'r', 730 | 'ɺ': 'r', 731 | 'ⱹ': 'r', 732 | 'ʇ': 't', 733 | 'ʌ': 'v', 734 | 'ʍ': 'w', 735 | 'ʎ': 'y', 736 | 'ꜩ': 'tz', 737 | 'ú': 'u', 738 | 'ŭ': 'u', 739 | 'ǔ': 'u', 740 | 'û': 'u', 741 | 'ṷ': 'u', 742 | 'ü': 'u', 743 | 'ǘ': 'u', 744 | 'ǚ': 'u', 745 | 'ǜ': 'u', 746 | 'ǖ': 'u', 747 | 'ṳ': 'u', 748 | 'ụ': 'u', 749 | 'ű': 'u', 750 | 'ȕ': 'u', 751 | 'ù': 'u', 752 | 'ủ': 'u', 753 | 'ư': 'u', 754 | 'ứ': 'u', 755 | 'ự': 'u', 756 | 'ừ': 'u', 757 | 'ử': 'u', 758 | 'ữ': 'u', 759 | 'ȗ': 'u', 760 | 'ū': 'u', 761 | 'ṻ': 'u', 762 | 'ų': 'u', 763 | 'ᶙ': 'u', 764 | 'ů': 'u', 765 | 'ũ': 'u', 766 | 'ṹ': 'u', 767 | 'ṵ': 'u', 768 | 'ᵫ': 'ue', 769 | 'ꝸ': 'um', 770 | 'ⱴ': 'v', 771 | 'ꝟ': 'v', 772 | 'ṿ': 'v', 773 | 'ʋ': 'v', 774 | 'ᶌ': 'v', 775 | 'ⱱ': 'v', 776 | 'ṽ': 'v', 777 | 'ꝡ': 'vy', 778 | 'ẃ': 'w', 779 | 'ŵ': 'w', 780 | 'ẅ': 'w', 781 | 'ẇ': 'w', 782 | 'ẉ': 'w', 783 | 'ẁ': 'w', 784 | 'ⱳ': 'w', 785 | 'ẘ': 'w', 786 | 'ẍ': 'x', 787 | 'ẋ': 'x', 788 | 'ᶍ': 'x', 789 | 'ý': 'y', 790 | 'ŷ': 'y', 791 | 'ÿ': 'y', 792 | 'ẏ': 'y', 793 | 'ỵ': 'y', 794 | 'ỳ': 'y', 795 | 'ƴ': 'y', 796 | 'ỷ': 'y', 797 | 'ỿ': 'y', 798 | 'ȳ': 'y', 799 | 'ẙ': 'y', 800 | 'ɏ': 'y', 801 | 'ỹ': 'y', 802 | 'ї': 'yi', 803 | 'ź': 'z', 804 | 'ž': 'z', 805 | 'ẑ': 'z', 806 | 'ʑ': 'z', 807 | 'ⱬ': 'z', 808 | 'ż': 'z', 809 | 'ẓ': 'z', 810 | 'ȥ': 'z', 811 | 'ẕ': 'z', 812 | 'ᵶ': 'z', 813 | 'ᶎ': 'z', 814 | 'ʐ': 'z', 815 | 'ƶ': 'z', 816 | 'ɀ': 'z', 817 | 'þ': 'th', 818 | 'ff': 'ff', 819 | 'ffi': 'ffi', 820 | 'ffl': 'ffl', 821 | 'fi': 'fi', 822 | 'fl': 'fl', 823 | 'ij': 'ij', 824 | 'œ': 'oe', 825 | 'st': 'st', 826 | 'ₐ': 'a', 827 | 'ₑ': 'e', 828 | 'ᵢ': 'i', 829 | 'ⱼ': 'j', 830 | 'ₒ': 'o', 831 | 'ᵣ': 'r', 832 | 'ᵤ': 'u', 833 | 'ᵥ': 'v', 834 | 'ₓ': 'x', 835 | 'Ё': 'YO', 836 | 'Й': 'I', 837 | 'Ц': 'TS', 838 | 'У': 'U', 839 | 'К': 'K', 840 | 'Е': 'E', 841 | 'Н': 'N', 842 | 'Г': 'G', 843 | 'Ґ': 'G', 844 | 'Ш': 'SH', 845 | 'Щ': 'SCH', 846 | 'З': 'Z', 847 | 'Х': 'H', 848 | 'Ъ': "'", 849 | 'ё': 'yo', 850 | 'й': 'i', 851 | 'ц': 'ts', 852 | 'у': 'u', 853 | 'к': 'k', 854 | 'е': 'e', 855 | 'н': 'n', 856 | 'г': 'g', 857 | 'ґ': 'g', 858 | 'ш': 'sh', 859 | 'щ': 'sch', 860 | 'з': 'z', 861 | 'х': 'h', 862 | 'ъ': "'", 863 | 'Ф': 'F', 864 | 'Ы': 'I', 865 | 'В': 'V', 866 | 'А': 'a', 867 | 'П': 'P', 868 | 'Р': 'R', 869 | 'О': 'O', 870 | 'Л': 'L', 871 | 'Д': 'D', 872 | 'Ж': 'ZH', 873 | 'Э': 'E', 874 | 'ф': 'f', 875 | 'ы': 'i', 876 | 'в': 'v', 877 | 'а': 'a', 878 | 'п': 'p', 879 | 'р': 'r', 880 | 'о': 'o', 881 | 'л': 'l', 882 | 'д': 'd', 883 | 'ж': 'zh', 884 | 'э': 'e', 885 | 'Я': 'Ya', 886 | 'Ч': 'CH', 887 | 'С': 'S', 888 | 'М': 'M', 889 | 'И': 'I', 890 | 'Т': 'T', 891 | 'Ь': "'", 892 | 'Б': 'B', 893 | 'Ю': 'YU', 894 | 'я': 'ya', 895 | 'ч': 'ch', 896 | 'с': 's', 897 | 'м': 'm', 898 | 'и': 'i', 899 | 'т': 't', 900 | 'ь': "'", 901 | 'б': 'b', 902 | 'ю': 'yu' 903 | }; 904 | export const latinize = function (str) { 905 | if (typeof str === 'string') { 906 | return str.replace(/[^A-Za-z0-9]/g, (x) => charMap[x] || x); 907 | } 908 | return str; 909 | }; 910 | -------------------------------------------------------------------------------- /lib/esm/utils/normalize.js: -------------------------------------------------------------------------------- 1 | export const normalize = function (str) { 2 | return str.toLocaleUpperCase() 3 | .replace(/[,\.\(\)]/g, " ") 4 | // Remove punctuation 5 | .replace(/['\-]/g, "") 6 | // Remove unimportant words 7 | .replace(/(^|\s)OF(\s|$)/gi, " ") 8 | .replace(/(^|\s)AND(\s|$)/gi, " ") 9 | .replace(/(^|\s)THE(\s|$)/gi, " ") 10 | .replace(/(^|\s)&(\s|$)/gi, " ") 11 | .replace(/(^|\s)&(\s|$)/gi, " ") 12 | // Remove excess 13 | .replace(/\s+/g, " ") 14 | .trim(); 15 | }; 16 | export const removeSpaces = function (str) { 17 | return str.replace(/\s/g, ""); 18 | }; 19 | -------------------------------------------------------------------------------- /lib/esm/utils/strings.js: -------------------------------------------------------------------------------- 1 | export const normalize = function (str) { 2 | return str.toLocaleUpperCase() 3 | .replace(/[,\.\(\)]/g, " ") 4 | // Remove quotes 5 | .replace(/["'`‘’“”]/g, "") 6 | // Remove dashes and hyphens 7 | .replace(/[-‐‑‒–—―]/g, "") 8 | // Remove braces, brackets, and parentheses 9 | .replace(/[{}\[\]()]/g, "") 10 | // Remove unimportant words 11 | .replace(/(^|\s)OF(\s|$)/gi, " ") 12 | .replace(/(^|\s)AND(\s|$)/gi, " ") 13 | .replace(/(^|\s)THE(\s|$)/gi, " ") 14 | .replace(/(^|\s)&(\s|$)/gi, " ") 15 | .replace(/(^|\s)&(\s|$)/gi, " ") 16 | // Remove excess 17 | .replace(/\s+/g, " ") 18 | .trim(); 19 | }; 20 | export const removeSpaces = function (str) { 21 | return str.replace(/\s/g, ""); 22 | }; 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "country-to-iso", 3 | "version": "1.6.0", 4 | "description": "Convert inconsistent country names and codes into ISO 3166-1 alpha-2.", 5 | "main": "./lib/cjs/index.js", 6 | "module": "./lib/esm/index.js", 7 | "types": "./src/country-to-code.d.ts", 8 | "directories": { 9 | "lib": "lib" 10 | }, 11 | "devDependencies": { 12 | "@types/country-list": "^2.1.0", 13 | "@types/jest": "^26.0.24", 14 | "@typescript-eslint/parser": "^4.33.0", 15 | "country-list": "^2.3.0", 16 | "countryjs": "^1.8.0", 17 | "i18n-iso-countries": "^6.8.0", 18 | "jest": "^26.6.3", 19 | "replace-in-file": "^6.3.5", 20 | "ts-jest": "^26.5.6", 21 | "tslint": "^6.1.3", 22 | "typescript": "^4.7.3" 23 | }, 24 | "scripts": { 25 | "build": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && replace-in-file --configFile=replace-in-file.config.js", 26 | "seed": "node lib/cjs/scripts/seed", 27 | "generate": "node lib/cjs/scripts/generate", 28 | "test": "jest", 29 | "test-coverage": "jest --coverage", 30 | "preversion": "npm test" 31 | }, 32 | "repository": { 33 | "type": "git", 34 | "url": "git+https://github.com/nojacko/node-country-to-iso.git" 35 | }, 36 | "author": "James Jackson", 37 | "license": "MIT", 38 | "bugs": { 39 | "url": "https://github.com/nojacko/node-country-to-iso/issues" 40 | }, 41 | "homepage": "https://github.com/nojacko/node-country-to-iso#readme", 42 | "keywords": [ 43 | "iso", 44 | "3166", 45 | "iso 3166", 46 | "iso 3166-1", 47 | "iso 3166-1 alpha-2", 48 | "iso 3166-1 alpha-3", 49 | "alpha", 50 | "alpha-2", 51 | "alpha-3", 52 | "numeric", 53 | "country", 54 | "countries" 55 | ] 56 | } 57 | -------------------------------------------------------------------------------- /replace-in-file.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | from: /..\/data\//g, 3 | to: '../../data/', 4 | files: 'lib/**/country-to-code.js' 5 | } -------------------------------------------------------------------------------- /src/country-to-code.d.ts: -------------------------------------------------------------------------------- 1 | export declare const countryToAlpha2: (str: string) => string | null; 2 | export declare const countryToAlpha3: (str: string) => string | null; 3 | -------------------------------------------------------------------------------- /src/country-to-code.ts: -------------------------------------------------------------------------------- 1 | import { latinize } from "./utils/latinize"; 2 | import { normalize, removeSpaces } from "./utils/strings"; 3 | 4 | const alpha2s = require("../data/iso-alpha-2.json"); 5 | const alpha3s = require("../data/iso-alpha-3.json"); 6 | const alpha23s = require("../data/iso-alpha-2-to-3.json"); 7 | const names = require("../data/names.json"); 8 | 9 | /** 10 | * Convert almost anything to an ISO 3166-1 alpha-2 code. 11 | * @param str String to convert. Note: any is used so we can test non-string values returning null for CommonJS version. 12 | */ 13 | export const countryToAlpha2 = (str: any) : string|null => { 14 | // Check it's a string at least 2 chars long 15 | if (typeof str !== "string" || str.length < 2) { 16 | return null; 17 | } 18 | 19 | const country = removeSpaces(normalize(latinize(str))); 20 | 21 | // Too short 22 | if (country.length < 2) { 23 | return null; 24 | } 25 | 26 | // Already ISO 3166 alpha 2 27 | if (country.length === 2 && alpha2s.includes(country)) { 28 | return country; 29 | } 30 | 31 | // Is ISO 3166 alpha 3 32 | if (country.length === 3 && alpha3s[country]) { 33 | return alpha3s[country]; 34 | } 35 | 36 | // Exact match 37 | if (names[country]) { 38 | return names[country]; 39 | } 40 | 41 | return null; 42 | } 43 | 44 | /** 45 | * Convert almost anything to an ISO 3166-1 alpha-3 code. 46 | * @param str String to convert. Note: any is used so we can test non-string values returning null for CommonJS version. 47 | */ 48 | export const countryToAlpha3 = (str: any) : string|null => { 49 | 50 | const alpha2 = countryToAlpha2(str); 51 | 52 | if (alpha2) { 53 | return alpha23s[alpha2]; 54 | } 55 | 56 | return null; 57 | } 58 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { countryToAlpha2, countryToAlpha3 } from "./country-to-code" 2 | 3 | export { 4 | countryToAlpha2, 5 | countryToAlpha3 6 | } 7 | -------------------------------------------------------------------------------- /src/scripts/generate.ts: -------------------------------------------------------------------------------- 1 | import * as fs from "fs"; 2 | import * as path from "path"; 3 | 4 | import { latinize } from "../utils/latinize"; 5 | import { normalize, removeSpaces } from "../utils/strings"; 6 | 7 | const rootDir = __dirname.replace(/(src|lib)([\/\\a-z])*$/, ""); 8 | const dataDir = path.join(rootDir, "data"); 9 | const alpha2sFiles = path.join(dataDir, "iso-alpha-2.json"); 10 | const alpha2s = JSON.parse(fs.readFileSync(alpha2sFiles).toString()); 11 | const namesFile = path.join(dataDir, "names.json"); 12 | 13 | const names: {[key: string] : string } = {}; 14 | 15 | for (const alpha2 of alpha2s) { 16 | const countryFile = path.join(dataDir, "country", `${alpha2}.json`); 17 | const countryData = JSON.parse(fs.readFileSync(countryFile).toString()); 18 | 19 | // Create new set to avoid duplicates 20 | const set = new Set(countryData.names); 21 | 22 | for (const name of Array.from(set)) { 23 | if (typeof name === 'string') { 24 | set.delete(name); 25 | const latinized = latinize(name); 26 | set.add(removeSpaces(normalize(latinized))); 27 | set.add(removeSpaces(normalize(removeSpaces(latinized)))); 28 | } 29 | } 30 | 31 | // Populate names 32 | set.forEach((name) => { 33 | if (typeof name === 'string' && name.length) { 34 | if (names[name]) { 35 | console.log(`CLASH! "${name}" [${alpha2}] has been seen for ${names[name]}`); 36 | } else { 37 | names[name] = alpha2; 38 | } 39 | } 40 | }); 41 | } 42 | 43 | fs.writeFileSync(namesFile, JSON.stringify(names, null, 2)); 44 | 45 | console.log("Generate complete..."); 46 | console.log(`* Countries: ${alpha2s.length};`); 47 | console.log(`* Names: ${Object.keys(names).length}`); 48 | -------------------------------------------------------------------------------- /src/scripts/seed.ts: -------------------------------------------------------------------------------- 1 | import * as fs from "fs"; 2 | import * as path from "path"; 3 | import * as countryJs from "countryjs"; 4 | import * as countryList from "country-list"; 5 | import * as isoCountries from "i18n-iso-countries"; 6 | 7 | interface CountryData { 8 | alpha2: string; 9 | alpha3: string; 10 | names: Array 11 | } 12 | 13 | const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); 14 | const dataDir = path.join(__dirname, "..", "..", "..", "data"); 15 | const countryDir = path.join(dataDir, "country"); 16 | const alpha2File = path.join(dataDir, "iso-alpha-2.json"); 17 | const alpha3File = path.join(dataDir, "iso-alpha-3.json"); 18 | const alpha23File = path.join(dataDir, "iso-alpha-2-to-3.json"); 19 | 20 | const namesSeen : { [key: string]: string } = {}; 21 | const alpha2s: Array = [] 22 | const alpha3s: {[key: string]: string} = {} 23 | const alpha23s: {[key: string]: string} = {} 24 | 25 | const loadCountryFile = function(file: string, alpha2: string, alpha3: string): CountryData { 26 | let data : CountryData = { 27 | alpha2, 28 | alpha3, 29 | names: [] 30 | }; 31 | 32 | try { 33 | const stat = fs.lstatSync(file); 34 | if (stat.isFile()) { 35 | data = JSON.parse(fs.readFileSync(file).toString()); 36 | } 37 | } catch (err: any) { 38 | // Ignore file doesn't exist error as we'll create it 39 | if (err.code !== "ENOENT") { 40 | console.log(file); 41 | throw err; 42 | } 43 | } 44 | 45 | return data; 46 | } 47 | 48 | const getCountryInfo = function(code: string) { 49 | let alpha2 = null; 50 | let alpha3 = null; 51 | const names = []; 52 | 53 | // Source from "countryjs" 54 | const info = countryJs.info(code); 55 | if (info) { 56 | alpha2 = info.ISO.alpha2; 57 | alpha3 = info.ISO.alpha3; 58 | names.push(info.name); 59 | names.push(info.nativeName); 60 | for (const alt of info.altSpellings) { 61 | names.push(alt); 62 | } 63 | } 64 | 65 | // Source from "country-list" 66 | const countryListName = countryList.getName(code); 67 | if (countryListName) { 68 | alpha2 = code; 69 | names.push(countryListName); 70 | } 71 | 72 | // Source from "i18n-iso-countries" 73 | const isoNames = isoCountries.getName(code, "en", { select: "all" }); 74 | if (Array.isArray(isoNames)) { 75 | isoNames.forEach(name => names.push(name)); 76 | } 77 | 78 | // Populate alpha 3 if not found yet 79 | if (alpha2 && !alpha3) { 80 | alpha3 = isoCountries.alpha2ToAlpha3(code); 81 | } 82 | 83 | return { alpha2, alpha3, names }; 84 | } 85 | 86 | const processCountryCode = function(code: string) { 87 | const countryFile = path.join(countryDir, `${code}.json`); 88 | let data : CountryData = getCountryInfo(code); 89 | 90 | // Attempt to load country data from this library 91 | if (!data.alpha2) { 92 | data = loadCountryFile(countryFile, data.alpha2, data.alpha3); 93 | } 94 | 95 | if (data.alpha2) { 96 | // ISO 3166 97 | alpha2s.push(data.alpha2); 98 | alpha3s[data.alpha3] = data.alpha2; 99 | alpha23s[data.alpha2] = data.alpha3; 100 | 101 | // Load existing data 102 | data = loadCountryFile(countryFile, data.alpha2, data.alpha3); 103 | 104 | // Populate a set so we don't duplicate 105 | const namesSet = new Set(data.names); 106 | namesSet.add(data.alpha2); 107 | namesSet.add(data.alpha3); 108 | data.names.forEach((name) => namesSet.add(name)); 109 | 110 | // Empty names array so we don't duplicate 111 | data.names = []; 112 | 113 | // Put names back into names array 114 | for (const name of namesSet) { 115 | if (typeof name === 'string' && name.length > 1) { 116 | if (namesSeen[name]) { 117 | console.log(`CLASH! "${name}" [${data.alpha2}] has been seen for ${namesSeen[name]}`); 118 | } else { 119 | data.names.push(name); 120 | namesSeen[name] = data.alpha2; 121 | } 122 | } 123 | } 124 | 125 | fs.writeFileSync(countryFile, JSON.stringify(data, null, 2)); 126 | } 127 | } 128 | 129 | const seed = function() { 130 | for (const letter1 of alphabet) { 131 | for (const letter2 of alphabet) { 132 | processCountryCode(`${letter1}${letter2}`); 133 | } 134 | } 135 | 136 | fs.writeFileSync(alpha2File, JSON.stringify(alpha2s, null, 2)); 137 | fs.writeFileSync(alpha3File, JSON.stringify(alpha3s, null, 2)); 138 | fs.writeFileSync(alpha23File, JSON.stringify(alpha23s, null, 2)); 139 | 140 | console.log("Seed complete..."); 141 | console.log(`* Countries: ${alpha2s.length};`); 142 | console.log(`* Names: ${Object.keys(namesSeen).length}`); 143 | } 144 | 145 | seed(); 146 | -------------------------------------------------------------------------------- /src/types/countryjs/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'countryjs'; 2 | -------------------------------------------------------------------------------- /src/utils/latinize.d.ts: -------------------------------------------------------------------------------- 1 | export declare const latinize: (str: string) => string; 2 | -------------------------------------------------------------------------------- /src/utils/latinize.ts: -------------------------------------------------------------------------------- 1 | const charMap : {[key: string]: string } = { 2 | 'Á': 'A', 3 | 'Ă': 'A', 4 | 'Ắ': 'A', 5 | 'Ặ': 'A', 6 | 'Ằ': 'A', 7 | 'Ẳ': 'A', 8 | 'Ẵ': 'A', 9 | 'Ǎ': 'A', 10 | 'Â': 'A', 11 | 'Ấ': 'A', 12 | 'Ậ': 'A', 13 | 'Ầ': 'A', 14 | 'Ẩ': 'A', 15 | 'Ẫ': 'A', 16 | 'Ä': 'A', 17 | 'Ǟ': 'A', 18 | 'Ȧ': 'A', 19 | 'Ǡ': 'A', 20 | 'Ạ': 'A', 21 | 'Ȁ': 'A', 22 | 'À': 'A', 23 | 'Ả': 'A', 24 | 'Ȃ': 'A', 25 | 'Ā': 'A', 26 | 'Ą': 'A', 27 | 'Å': 'A', 28 | 'Ǻ': 'A', 29 | 'Ḁ': 'A', 30 | 'Ⱥ': 'A', 31 | 'Ã': 'A', 32 | 'Ꜳ': 'AA', 33 | 'Æ': 'AE', 34 | 'Ǽ': 'AE', 35 | 'Ǣ': 'AE', 36 | 'Ꜵ': 'AO', 37 | 'Ꜷ': 'AU', 38 | 'Ꜹ': 'AV', 39 | 'Ꜻ': 'AV', 40 | 'Ꜽ': 'AY', 41 | 'Ḃ': 'B', 42 | 'Ḅ': 'B', 43 | 'Ɓ': 'B', 44 | 'Ḇ': 'B', 45 | 'Ƀ': 'B', 46 | 'Ƃ': 'B', 47 | 'Ć': 'C', 48 | 'Č': 'C', 49 | 'Ç': 'C', 50 | 'Ḉ': 'C', 51 | 'Ĉ': 'C', 52 | 'Ċ': 'C', 53 | 'Ƈ': 'C', 54 | 'Ȼ': 'C', 55 | 'Ď': 'D', 56 | 'Ḑ': 'D', 57 | 'Ḓ': 'D', 58 | 'Ḋ': 'D', 59 | 'Ḍ': 'D', 60 | 'Ɗ': 'D', 61 | 'Ḏ': 'D', 62 | 'Dz': 'D', 63 | 'Dž': 'D', 64 | 'Đ': 'D', 65 | 'Ð': 'D', 66 | 'Ƌ': 'D', 67 | 'DZ': 'DZ', 68 | 'DŽ': 'DZ', 69 | 'É': 'E', 70 | 'Ĕ': 'E', 71 | 'Ě': 'E', 72 | 'Ȩ': 'E', 73 | 'Ḝ': 'E', 74 | 'Ê': 'E', 75 | 'Ế': 'E', 76 | 'Ệ': 'E', 77 | 'Ề': 'E', 78 | 'Ể': 'E', 79 | 'Ễ': 'E', 80 | 'Ḙ': 'E', 81 | 'Ë': 'E', 82 | 'Ė': 'E', 83 | 'Ẹ': 'E', 84 | 'Ȅ': 'E', 85 | 'È': 'E', 86 | 'Ẻ': 'E', 87 | 'Ȇ': 'E', 88 | 'Ē': 'E', 89 | 'Ḗ': 'E', 90 | 'Ḕ': 'E', 91 | 'Ę': 'E', 92 | 'Ɇ': 'E', 93 | 'Ẽ': 'E', 94 | 'Ḛ': 'E', 95 | 'Ꝫ': 'ET', 96 | 'Ḟ': 'F', 97 | 'Ƒ': 'F', 98 | 'Ǵ': 'G', 99 | 'Ğ': 'G', 100 | 'Ǧ': 'G', 101 | 'Ģ': 'G', 102 | 'Ĝ': 'G', 103 | 'Ġ': 'G', 104 | 'Ɠ': 'G', 105 | 'Ḡ': 'G', 106 | 'Ǥ': 'G', 107 | 'Ḫ': 'H', 108 | 'Ȟ': 'H', 109 | 'Ḩ': 'H', 110 | 'Ĥ': 'H', 111 | 'Ⱨ': 'H', 112 | 'Ḧ': 'H', 113 | 'Ḣ': 'H', 114 | 'Ḥ': 'H', 115 | 'Ħ': 'H', 116 | 'Í': 'I', 117 | 'Ĭ': 'I', 118 | 'Ǐ': 'I', 119 | 'Î': 'I', 120 | 'Ï': 'I', 121 | 'Ḯ': 'I', 122 | 'İ': 'I', 123 | 'Ị': 'I', 124 | 'Ȉ': 'I', 125 | 'Ì': 'I', 126 | 'Ỉ': 'I', 127 | 'Ȋ': 'I', 128 | 'Ī': 'I', 129 | 'Į': 'I', 130 | 'Ɨ': 'I', 131 | 'Ĩ': 'I', 132 | 'Ḭ': 'I', 133 | 'І': 'I', 134 | 'Ꝺ': 'D', 135 | 'Ꝼ': 'F', 136 | 'Ᵹ': 'G', 137 | 'Ꞃ': 'R', 138 | 'Ꞅ': 'S', 139 | 'Ꞇ': 'T', 140 | 'Ꝭ': 'IS', 141 | 'Ĵ': 'J', 142 | 'Ɉ': 'J', 143 | 'Ḱ': 'K', 144 | 'Ǩ': 'K', 145 | 'Ķ': 'K', 146 | 'Ⱪ': 'K', 147 | 'Ꝃ': 'K', 148 | 'Ḳ': 'K', 149 | 'Ƙ': 'K', 150 | 'Ḵ': 'K', 151 | 'Ꝁ': 'K', 152 | 'Ꝅ': 'K', 153 | 'Ĺ': 'L', 154 | 'Ƚ': 'L', 155 | 'Ľ': 'L', 156 | 'Ļ': 'L', 157 | 'Ḽ': 'L', 158 | 'Ḷ': 'L', 159 | 'Ḹ': 'L', 160 | 'Ⱡ': 'L', 161 | 'Ꝉ': 'L', 162 | 'Ḻ': 'L', 163 | 'Ŀ': 'L', 164 | 'Ɫ': 'L', 165 | 'Lj': 'L', 166 | 'Ł': 'L', 167 | 'LJ': 'LJ', 168 | 'Ḿ': 'M', 169 | 'Ṁ': 'M', 170 | 'Ṃ': 'M', 171 | 'Ɱ': 'M', 172 | 'Ń': 'N', 173 | 'Ň': 'N', 174 | 'Ņ': 'N', 175 | 'Ṋ': 'N', 176 | 'Ṅ': 'N', 177 | 'Ṇ': 'N', 178 | 'Ǹ': 'N', 179 | 'Ɲ': 'N', 180 | 'Ṉ': 'N', 181 | 'Ƞ': 'N', 182 | 'Nj': 'N', 183 | 'Ñ': 'N', 184 | 'NJ': 'NJ', 185 | 'Ó': 'O', 186 | 'Ŏ': 'O', 187 | 'Ǒ': 'O', 188 | 'Ô': 'O', 189 | 'Ố': 'O', 190 | 'Ộ': 'O', 191 | 'Ồ': 'O', 192 | 'Ổ': 'O', 193 | 'Ỗ': 'O', 194 | 'Ö': 'O', 195 | 'Ȫ': 'O', 196 | 'Ȯ': 'O', 197 | 'Ȱ': 'O', 198 | 'Ọ': 'O', 199 | 'Ő': 'O', 200 | 'Ȍ': 'O', 201 | 'Ò': 'O', 202 | 'Ỏ': 'O', 203 | 'Ơ': 'O', 204 | 'Ớ': 'O', 205 | 'Ợ': 'O', 206 | 'Ờ': 'O', 207 | 'Ở': 'O', 208 | 'Ỡ': 'O', 209 | 'Ȏ': 'O', 210 | 'Ꝋ': 'O', 211 | 'Ꝍ': 'O', 212 | 'Ō': 'O', 213 | 'Ṓ': 'O', 214 | 'Ṑ': 'O', 215 | 'Ɵ': 'O', 216 | 'Ǫ': 'O', 217 | 'Ǭ': 'O', 218 | 'Ø': 'O', 219 | 'Ǿ': 'O', 220 | 'Õ': 'O', 221 | 'Ṍ': 'O', 222 | 'Ṏ': 'O', 223 | 'Ȭ': 'O', 224 | 'Ƣ': 'OI', 225 | 'Ꝏ': 'OO', 226 | 'Ɛ': 'E', 227 | 'Ɔ': 'O', 228 | 'Ȣ': 'OU', 229 | 'Ṕ': 'P', 230 | 'Ṗ': 'P', 231 | 'Ꝓ': 'P', 232 | 'Ƥ': 'P', 233 | 'Ꝕ': 'P', 234 | 'Ᵽ': 'P', 235 | 'Ꝑ': 'P', 236 | 'Ꝙ': 'Q', 237 | 'Ꝗ': 'Q', 238 | 'Ŕ': 'R', 239 | 'Ř': 'R', 240 | 'Ŗ': 'R', 241 | 'Ṙ': 'R', 242 | 'Ṛ': 'R', 243 | 'Ṝ': 'R', 244 | 'Ȑ': 'R', 245 | 'Ȓ': 'R', 246 | 'Ṟ': 'R', 247 | 'Ɍ': 'R', 248 | 'Ɽ': 'R', 249 | 'Ꜿ': 'C', 250 | 'Ǝ': 'E', 251 | 'Ś': 'S', 252 | 'Ṥ': 'S', 253 | 'Š': 'S', 254 | 'Ṧ': 'S', 255 | 'Ş': 'S', 256 | 'Ŝ': 'S', 257 | 'Ș': 'S', 258 | 'Ṡ': 'S', 259 | 'Ṣ': 'S', 260 | 'Ṩ': 'S', 261 | 'ß': 'ss', 262 | 'Ť': 'T', 263 | 'Ţ': 'T', 264 | 'Ṱ': 'T', 265 | 'Ț': 'T', 266 | 'Ⱦ': 'T', 267 | 'Ṫ': 'T', 268 | 'Ṭ': 'T', 269 | 'Ƭ': 'T', 270 | 'Ṯ': 'T', 271 | 'Ʈ': 'T', 272 | 'Ŧ': 'T', 273 | 'Ɐ': 'A', 274 | 'Ꞁ': 'L', 275 | 'Ɯ': 'M', 276 | 'Ʌ': 'V', 277 | 'Ꜩ': 'TZ', 278 | 'Ú': 'U', 279 | 'Ŭ': 'U', 280 | 'Ǔ': 'U', 281 | 'Û': 'U', 282 | 'Ṷ': 'U', 283 | 'Ü': 'U', 284 | 'Ǘ': 'U', 285 | 'Ǚ': 'U', 286 | 'Ǜ': 'U', 287 | 'Ǖ': 'U', 288 | 'Ṳ': 'U', 289 | 'Ụ': 'U', 290 | 'Ű': 'U', 291 | 'Ȕ': 'U', 292 | 'Ù': 'U', 293 | 'Ủ': 'U', 294 | 'Ư': 'U', 295 | 'Ứ': 'U', 296 | 'Ự': 'U', 297 | 'Ừ': 'U', 298 | 'Ử': 'U', 299 | 'Ữ': 'U', 300 | 'Ȗ': 'U', 301 | 'Ū': 'U', 302 | 'Ṻ': 'U', 303 | 'Ų': 'U', 304 | 'Ů': 'U', 305 | 'Ũ': 'U', 306 | 'Ṹ': 'U', 307 | 'Ṵ': 'U', 308 | 'Ꝟ': 'V', 309 | 'Ṿ': 'V', 310 | 'Ʋ': 'V', 311 | 'Ṽ': 'V', 312 | 'Ꝡ': 'VY', 313 | 'Ẃ': 'W', 314 | 'Ŵ': 'W', 315 | 'Ẅ': 'W', 316 | 'Ẇ': 'W', 317 | 'Ẉ': 'W', 318 | 'Ẁ': 'W', 319 | 'Ⱳ': 'W', 320 | 'Ẍ': 'X', 321 | 'Ẋ': 'X', 322 | 'Ý': 'Y', 323 | 'Ŷ': 'Y', 324 | 'Ÿ': 'Y', 325 | 'Ẏ': 'Y', 326 | 'Ỵ': 'Y', 327 | 'Ỳ': 'Y', 328 | 'Ƴ': 'Y', 329 | 'Ỷ': 'Y', 330 | 'Ỿ': 'Y', 331 | 'Ȳ': 'Y', 332 | 'Ɏ': 'Y', 333 | 'Ỹ': 'Y', 334 | 'Ї': 'YI', 335 | 'Ź': 'Z', 336 | 'Ž': 'Z', 337 | 'Ẑ': 'Z', 338 | 'Ⱬ': 'Z', 339 | 'Ż': 'Z', 340 | 'Ẓ': 'Z', 341 | 'Ȥ': 'Z', 342 | 'Ẕ': 'Z', 343 | 'Ƶ': 'Z', 344 | 'Þ': 'TH', 345 | 'IJ': 'IJ', 346 | 'Œ': 'OE', 347 | 'ᴀ': 'A', 348 | 'ᴁ': 'AE', 349 | 'ʙ': 'B', 350 | 'ᴃ': 'B', 351 | 'ᴄ': 'C', 352 | 'ᴅ': 'D', 353 | 'ᴇ': 'E', 354 | 'ꜰ': 'F', 355 | 'ɢ': 'G', 356 | 'ʛ': 'G', 357 | 'ʜ': 'H', 358 | 'ɪ': 'I', 359 | 'ʁ': 'R', 360 | 'ᴊ': 'J', 361 | 'ᴋ': 'K', 362 | 'ʟ': 'L', 363 | 'ᴌ': 'L', 364 | 'ᴍ': 'M', 365 | 'ɴ': 'N', 366 | 'ᴏ': 'O', 367 | 'ɶ': 'OE', 368 | 'ᴐ': 'O', 369 | 'ᴕ': 'OU', 370 | 'ᴘ': 'P', 371 | 'ʀ': 'R', 372 | 'ᴎ': 'N', 373 | 'ᴙ': 'R', 374 | 'ꜱ': 'S', 375 | 'ᴛ': 'T', 376 | 'ⱻ': 'E', 377 | 'ᴚ': 'R', 378 | 'ᴜ': 'U', 379 | 'ᴠ': 'V', 380 | 'ᴡ': 'W', 381 | 'ʏ': 'Y', 382 | 'ᴢ': 'Z', 383 | 'á': 'a', 384 | 'ă': 'a', 385 | 'ắ': 'a', 386 | 'ặ': 'a', 387 | 'ằ': 'a', 388 | 'ẳ': 'a', 389 | 'ẵ': 'a', 390 | 'ǎ': 'a', 391 | 'â': 'a', 392 | 'ấ': 'a', 393 | 'ậ': 'a', 394 | 'ầ': 'a', 395 | 'ẩ': 'a', 396 | 'ẫ': 'a', 397 | 'ä': 'a', 398 | 'ǟ': 'a', 399 | 'ȧ': 'a', 400 | 'ǡ': 'a', 401 | 'ạ': 'a', 402 | 'ȁ': 'a', 403 | 'à': 'a', 404 | 'ả': 'a', 405 | 'ȃ': 'a', 406 | 'ā': 'a', 407 | 'ą': 'a', 408 | 'ᶏ': 'a', 409 | 'ẚ': 'a', 410 | 'å': 'a', 411 | 'ǻ': 'a', 412 | 'ḁ': 'a', 413 | 'ⱥ': 'a', 414 | 'ã': 'a', 415 | 'ꜳ': 'aa', 416 | 'æ': 'ae', 417 | 'ǽ': 'ae', 418 | 'ǣ': 'ae', 419 | 'ꜵ': 'ao', 420 | 'ꜷ': 'au', 421 | 'ꜹ': 'av', 422 | 'ꜻ': 'av', 423 | 'ꜽ': 'ay', 424 | 'ḃ': 'b', 425 | 'ḅ': 'b', 426 | 'ɓ': 'b', 427 | 'ḇ': 'b', 428 | 'ᵬ': 'b', 429 | 'ᶀ': 'b', 430 | 'ƀ': 'b', 431 | 'ƃ': 'b', 432 | 'ɵ': 'o', 433 | 'ć': 'c', 434 | 'č': 'c', 435 | 'ç': 'c', 436 | 'ḉ': 'c', 437 | 'ĉ': 'c', 438 | 'ɕ': 'c', 439 | 'ċ': 'c', 440 | 'ƈ': 'c', 441 | 'ȼ': 'c', 442 | 'ď': 'd', 443 | 'ḑ': 'd', 444 | 'ḓ': 'd', 445 | 'ȡ': 'd', 446 | 'ḋ': 'd', 447 | 'ḍ': 'd', 448 | 'ɗ': 'd', 449 | 'ᶑ': 'd', 450 | 'ḏ': 'd', 451 | 'ᵭ': 'd', 452 | 'ᶁ': 'd', 453 | 'đ': 'd', 454 | 'ɖ': 'd', 455 | 'ƌ': 'd', 456 | 'ð': 'd', 457 | 'ı': 'i', 458 | 'ȷ': 'j', 459 | 'ɟ': 'j', 460 | 'ʄ': 'j', 461 | 'dz': 'dz', 462 | 'dž': 'dz', 463 | 'é': 'e', 464 | 'ĕ': 'e', 465 | 'ě': 'e', 466 | 'ȩ': 'e', 467 | 'ḝ': 'e', 468 | 'ê': 'e', 469 | 'ế': 'e', 470 | 'ệ': 'e', 471 | 'ề': 'e', 472 | 'ể': 'e', 473 | 'ễ': 'e', 474 | 'ḙ': 'e', 475 | 'ë': 'e', 476 | 'ė': 'e', 477 | 'ẹ': 'e', 478 | 'ȅ': 'e', 479 | 'è': 'e', 480 | 'ẻ': 'e', 481 | 'ȇ': 'e', 482 | 'ē': 'e', 483 | 'ḗ': 'e', 484 | 'ḕ': 'e', 485 | 'ⱸ': 'e', 486 | 'ę': 'e', 487 | 'ᶒ': 'e', 488 | 'ɇ': 'e', 489 | 'ẽ': 'e', 490 | 'ḛ': 'e', 491 | 'ꝫ': 'et', 492 | 'ḟ': 'f', 493 | 'ƒ': 'f', 494 | 'ᵮ': 'f', 495 | 'ᶂ': 'f', 496 | 'ǵ': 'g', 497 | 'ğ': 'g', 498 | 'ǧ': 'g', 499 | 'ģ': 'g', 500 | 'ĝ': 'g', 501 | 'ġ': 'g', 502 | 'ɠ': 'g', 503 | 'ḡ': 'g', 504 | 'ᶃ': 'g', 505 | 'ǥ': 'g', 506 | 'ḫ': 'h', 507 | 'ȟ': 'h', 508 | 'ḩ': 'h', 509 | 'ĥ': 'h', 510 | 'ⱨ': 'h', 511 | 'ḧ': 'h', 512 | 'ḣ': 'h', 513 | 'ḥ': 'h', 514 | 'ɦ': 'h', 515 | 'ẖ': 'h', 516 | 'ħ': 'h', 517 | 'ƕ': 'hv', 518 | 'í': 'i', 519 | 'ĭ': 'i', 520 | 'ǐ': 'i', 521 | 'î': 'i', 522 | 'ï': 'i', 523 | 'ḯ': 'i', 524 | 'ị': 'i', 525 | 'ȉ': 'i', 526 | 'ì': 'i', 527 | 'ỉ': 'i', 528 | 'ȋ': 'i', 529 | 'ī': 'i', 530 | 'į': 'i', 531 | 'ᶖ': 'i', 532 | 'ɨ': 'i', 533 | 'ĩ': 'i', 534 | 'ḭ': 'i', 535 | 'і': 'i', 536 | 'ꝺ': 'd', 537 | 'ꝼ': 'f', 538 | 'ᵹ': 'g', 539 | 'ꞃ': 'r', 540 | 'ꞅ': 's', 541 | 'ꞇ': 't', 542 | 'ꝭ': 'is', 543 | 'ǰ': 'j', 544 | 'ĵ': 'j', 545 | 'ʝ': 'j', 546 | 'ɉ': 'j', 547 | 'ḱ': 'k', 548 | 'ǩ': 'k', 549 | 'ķ': 'k', 550 | 'ⱪ': 'k', 551 | 'ꝃ': 'k', 552 | 'ḳ': 'k', 553 | 'ƙ': 'k', 554 | 'ḵ': 'k', 555 | 'ᶄ': 'k', 556 | 'ꝁ': 'k', 557 | 'ꝅ': 'k', 558 | 'ĺ': 'l', 559 | 'ƚ': 'l', 560 | 'ɬ': 'l', 561 | 'ľ': 'l', 562 | 'ļ': 'l', 563 | 'ḽ': 'l', 564 | 'ȴ': 'l', 565 | 'ḷ': 'l', 566 | 'ḹ': 'l', 567 | 'ⱡ': 'l', 568 | 'ꝉ': 'l', 569 | 'ḻ': 'l', 570 | 'ŀ': 'l', 571 | 'ɫ': 'l', 572 | 'ᶅ': 'l', 573 | 'ɭ': 'l', 574 | 'ł': 'l', 575 | 'lj': 'lj', 576 | 'ſ': 's', 577 | 'ẜ': 's', 578 | 'ẛ': 's', 579 | 'ẝ': 's', 580 | 'ḿ': 'm', 581 | 'ṁ': 'm', 582 | 'ṃ': 'm', 583 | 'ɱ': 'm', 584 | 'ᵯ': 'm', 585 | 'ᶆ': 'm', 586 | 'ń': 'n', 587 | 'ň': 'n', 588 | 'ņ': 'n', 589 | 'ṋ': 'n', 590 | 'ȵ': 'n', 591 | 'ṅ': 'n', 592 | 'ṇ': 'n', 593 | 'ǹ': 'n', 594 | 'ɲ': 'n', 595 | 'ṉ': 'n', 596 | 'ƞ': 'n', 597 | 'ᵰ': 'n', 598 | 'ᶇ': 'n', 599 | 'ɳ': 'n', 600 | 'ñ': 'n', 601 | 'nj': 'nj', 602 | 'ó': 'o', 603 | 'ŏ': 'o', 604 | 'ǒ': 'o', 605 | 'ô': 'o', 606 | 'ố': 'o', 607 | 'ộ': 'o', 608 | 'ồ': 'o', 609 | 'ổ': 'o', 610 | 'ỗ': 'o', 611 | 'ö': 'o', 612 | 'ȫ': 'o', 613 | 'ȯ': 'o', 614 | 'ȱ': 'o', 615 | 'ọ': 'o', 616 | 'ő': 'o', 617 | 'ȍ': 'o', 618 | 'ò': 'o', 619 | 'ỏ': 'o', 620 | 'ơ': 'o', 621 | 'ớ': 'o', 622 | 'ợ': 'o', 623 | 'ờ': 'o', 624 | 'ở': 'o', 625 | 'ỡ': 'o', 626 | 'ȏ': 'o', 627 | 'ꝋ': 'o', 628 | 'ꝍ': 'o', 629 | 'ⱺ': 'o', 630 | 'ō': 'o', 631 | 'ṓ': 'o', 632 | 'ṑ': 'o', 633 | 'ǫ': 'o', 634 | 'ǭ': 'o', 635 | 'ø': 'o', 636 | 'ǿ': 'o', 637 | 'õ': 'o', 638 | 'ṍ': 'o', 639 | 'ṏ': 'o', 640 | 'ȭ': 'o', 641 | 'ƣ': 'oi', 642 | 'ꝏ': 'oo', 643 | 'ɛ': 'e', 644 | 'ᶓ': 'e', 645 | 'ɔ': 'o', 646 | 'ᶗ': 'o', 647 | 'ȣ': 'ou', 648 | 'ṕ': 'p', 649 | 'ṗ': 'p', 650 | 'ꝓ': 'p', 651 | 'ƥ': 'p', 652 | 'ᵱ': 'p', 653 | 'ᶈ': 'p', 654 | 'ꝕ': 'p', 655 | 'ᵽ': 'p', 656 | 'ꝑ': 'p', 657 | 'ꝙ': 'q', 658 | 'ʠ': 'q', 659 | 'ɋ': 'q', 660 | 'ꝗ': 'q', 661 | 'ŕ': 'r', 662 | 'ř': 'r', 663 | 'ŗ': 'r', 664 | 'ṙ': 'r', 665 | 'ṛ': 'r', 666 | 'ṝ': 'r', 667 | 'ȑ': 'r', 668 | 'ɾ': 'r', 669 | 'ᵳ': 'r', 670 | 'ȓ': 'r', 671 | 'ṟ': 'r', 672 | 'ɼ': 'r', 673 | 'ᵲ': 'r', 674 | 'ᶉ': 'r', 675 | 'ɍ': 'r', 676 | 'ɽ': 'r', 677 | 'ↄ': 'c', 678 | 'ꜿ': 'c', 679 | 'ɘ': 'e', 680 | 'ɿ': 'r', 681 | 'ś': 's', 682 | 'ṥ': 's', 683 | 'š': 's', 684 | 'ṧ': 's', 685 | 'ş': 's', 686 | 'ŝ': 's', 687 | 'ș': 's', 688 | 'ṡ': 's', 689 | 'ṣ': 's', 690 | 'ṩ': 's', 691 | 'ʂ': 's', 692 | 'ᵴ': 's', 693 | 'ᶊ': 's', 694 | 'ȿ': 's', 695 | 'ɡ': 'g', 696 | 'ᴑ': 'o', 697 | 'ᴓ': 'o', 698 | 'ᴝ': 'u', 699 | 'ť': 't', 700 | 'ţ': 't', 701 | 'ṱ': 't', 702 | 'ț': 't', 703 | 'ȶ': 't', 704 | 'ẗ': 't', 705 | 'ⱦ': 't', 706 | 'ṫ': 't', 707 | 'ṭ': 't', 708 | 'ƭ': 't', 709 | 'ṯ': 't', 710 | 'ᵵ': 't', 711 | 'ƫ': 't', 712 | 'ʈ': 't', 713 | 'ŧ': 't', 714 | 'ᵺ': 'th', 715 | 'ɐ': 'a', 716 | 'ᴂ': 'ae', 717 | 'ǝ': 'e', 718 | 'ᵷ': 'g', 719 | 'ɥ': 'h', 720 | 'ʮ': 'h', 721 | 'ʯ': 'h', 722 | 'ᴉ': 'i', 723 | 'ʞ': 'k', 724 | 'ꞁ': 'l', 725 | 'ɯ': 'm', 726 | 'ɰ': 'm', 727 | 'ᴔ': 'oe', 728 | 'ɹ': 'r', 729 | 'ɻ': 'r', 730 | 'ɺ': 'r', 731 | 'ⱹ': 'r', 732 | 'ʇ': 't', 733 | 'ʌ': 'v', 734 | 'ʍ': 'w', 735 | 'ʎ': 'y', 736 | 'ꜩ': 'tz', 737 | 'ú': 'u', 738 | 'ŭ': 'u', 739 | 'ǔ': 'u', 740 | 'û': 'u', 741 | 'ṷ': 'u', 742 | 'ü': 'u', 743 | 'ǘ': 'u', 744 | 'ǚ': 'u', 745 | 'ǜ': 'u', 746 | 'ǖ': 'u', 747 | 'ṳ': 'u', 748 | 'ụ': 'u', 749 | 'ű': 'u', 750 | 'ȕ': 'u', 751 | 'ù': 'u', 752 | 'ủ': 'u', 753 | 'ư': 'u', 754 | 'ứ': 'u', 755 | 'ự': 'u', 756 | 'ừ': 'u', 757 | 'ử': 'u', 758 | 'ữ': 'u', 759 | 'ȗ': 'u', 760 | 'ū': 'u', 761 | 'ṻ': 'u', 762 | 'ų': 'u', 763 | 'ᶙ': 'u', 764 | 'ů': 'u', 765 | 'ũ': 'u', 766 | 'ṹ': 'u', 767 | 'ṵ': 'u', 768 | 'ᵫ': 'ue', 769 | 'ꝸ': 'um', 770 | 'ⱴ': 'v', 771 | 'ꝟ': 'v', 772 | 'ṿ': 'v', 773 | 'ʋ': 'v', 774 | 'ᶌ': 'v', 775 | 'ⱱ': 'v', 776 | 'ṽ': 'v', 777 | 'ꝡ': 'vy', 778 | 'ẃ': 'w', 779 | 'ŵ': 'w', 780 | 'ẅ': 'w', 781 | 'ẇ': 'w', 782 | 'ẉ': 'w', 783 | 'ẁ': 'w', 784 | 'ⱳ': 'w', 785 | 'ẘ': 'w', 786 | 'ẍ': 'x', 787 | 'ẋ': 'x', 788 | 'ᶍ': 'x', 789 | 'ý': 'y', 790 | 'ŷ': 'y', 791 | 'ÿ': 'y', 792 | 'ẏ': 'y', 793 | 'ỵ': 'y', 794 | 'ỳ': 'y', 795 | 'ƴ': 'y', 796 | 'ỷ': 'y', 797 | 'ỿ': 'y', 798 | 'ȳ': 'y', 799 | 'ẙ': 'y', 800 | 'ɏ': 'y', 801 | 'ỹ': 'y', 802 | 'ї': 'yi', 803 | 'ź': 'z', 804 | 'ž': 'z', 805 | 'ẑ': 'z', 806 | 'ʑ': 'z', 807 | 'ⱬ': 'z', 808 | 'ż': 'z', 809 | 'ẓ': 'z', 810 | 'ȥ': 'z', 811 | 'ẕ': 'z', 812 | 'ᵶ': 'z', 813 | 'ᶎ': 'z', 814 | 'ʐ': 'z', 815 | 'ƶ': 'z', 816 | 'ɀ': 'z', 817 | 'þ': 'th', 818 | 'ff': 'ff', 819 | 'ffi': 'ffi', 820 | 'ffl': 'ffl', 821 | 'fi': 'fi', 822 | 'fl': 'fl', 823 | 'ij': 'ij', 824 | 'œ': 'oe', 825 | 'st': 'st', 826 | 'ₐ': 'a', 827 | 'ₑ': 'e', 828 | 'ᵢ': 'i', 829 | 'ⱼ': 'j', 830 | 'ₒ': 'o', 831 | 'ᵣ': 'r', 832 | 'ᵤ': 'u', 833 | 'ᵥ': 'v', 834 | 'ₓ': 'x', 835 | 'Ё': 'YO', 836 | 'Й': 'I', 837 | 'Ц': 'TS', 838 | 'У': 'U', 839 | 'К': 'K', 840 | 'Е': 'E', 841 | 'Н': 'N', 842 | 'Г': 'G', 843 | 'Ґ': 'G', 844 | 'Ш': 'SH', 845 | 'Щ': 'SCH', 846 | 'З': 'Z', 847 | 'Х': 'H', 848 | 'Ъ': "'", 849 | 'ё': 'yo', 850 | 'й': 'i', 851 | 'ц': 'ts', 852 | 'у': 'u', 853 | 'к': 'k', 854 | 'е': 'e', 855 | 'н': 'n', 856 | 'г': 'g', 857 | 'ґ': 'g', 858 | 'ш': 'sh', 859 | 'щ': 'sch', 860 | 'з': 'z', 861 | 'х': 'h', 862 | 'ъ': "'", 863 | 'Ф': 'F', 864 | 'Ы': 'I', 865 | 'В': 'V', 866 | 'А': 'a', 867 | 'П': 'P', 868 | 'Р': 'R', 869 | 'О': 'O', 870 | 'Л': 'L', 871 | 'Д': 'D', 872 | 'Ж': 'ZH', 873 | 'Э': 'E', 874 | 'ф': 'f', 875 | 'ы': 'i', 876 | 'в': 'v', 877 | 'а': 'a', 878 | 'п': 'p', 879 | 'р': 'r', 880 | 'о': 'o', 881 | 'л': 'l', 882 | 'д': 'd', 883 | 'ж': 'zh', 884 | 'э': 'e', 885 | 'Я': 'Ya', 886 | 'Ч': 'CH', 887 | 'С': 'S', 888 | 'М': 'M', 889 | 'И': 'I', 890 | 'Т': 'T', 891 | 'Ь': "'", 892 | 'Б': 'B', 893 | 'Ю': 'YU', 894 | 'я': 'ya', 895 | 'ч': 'ch', 896 | 'с': 's', 897 | 'м': 'm', 898 | 'и': 'i', 899 | 'т': 't', 900 | 'ь': "'", 901 | 'б': 'b', 902 | 'ю': 'yu' 903 | }; 904 | 905 | export const latinize = function(str: any): string { 906 | if (typeof str === 'string') { 907 | return str.replace(/[^A-Za-z0-9]/g, (x) => charMap[x] || x); 908 | } 909 | 910 | return str; 911 | } 912 | -------------------------------------------------------------------------------- /src/utils/strings.d.ts: -------------------------------------------------------------------------------- 1 | export declare const normalize: (str: string) => string; 2 | export declare const removeSpaces: (str: any) => string; 3 | -------------------------------------------------------------------------------- /src/utils/strings.ts: -------------------------------------------------------------------------------- 1 | export const normalize = function(str: string): string { 2 | return str.toLocaleUpperCase() 3 | .replace(/[,\.\(\)]/g, " ") 4 | // Remove punctuation 5 | .replace(/["'`‘’“”]/g, "") 6 | // Remove dashes and hyphens 7 | .replace(/[-‐‑‒–—―]/g, "") 8 | // Remove braces, brackets, and parentheses 9 | .replace(/[{}\[\]()]/g, "") 10 | // Remove unimportant words 11 | .replace(/(^|\s)OF(\s|$)/gi, " ") 12 | .replace(/(^|\s)AND(\s|$)/gi, " ") 13 | .replace(/(^|\s)THE(\s|$)/gi, " ") 14 | .replace(/(^|\s)&(\s|$)/gi, " ") 15 | .replace(/(^|\s)&(\s|$)/gi, " ") 16 | // Remove excess 17 | .replace(/\s+/g, " ") 18 | .trim(); 19 | } 20 | 21 | export const removeSpaces = function(str: string): string { 22 | return str.replace(/\s/g, ""); 23 | } 24 | -------------------------------------------------------------------------------- /test/country-to-code.test.ts: -------------------------------------------------------------------------------- 1 | import { countryToAlpha2, countryToAlpha3 } from "../src/country-to-code"; 2 | 3 | describe("Providing non-strings/short strings", () => { 4 | it("empty string", () => { 5 | expect(countryToAlpha2("")).toBe(null); 6 | }); 7 | 8 | it("X", () => { 9 | expect(countryToAlpha2("X")).toBe(null); 10 | }); 11 | 12 | it(" X ", () => { 13 | expect(countryToAlpha2(" X ")).toBe(null); 14 | }); 15 | 16 | it("null", () => { 17 | expect(countryToAlpha2(null)).toBe(null); 18 | }); 19 | 20 | it("undefined", () => { 21 | expect(countryToAlpha2(undefined)).toBe(null); 22 | }); 23 | 24 | it("123", () => { 25 | expect(countryToAlpha2(123)).toBe(null); 26 | }); 27 | }); 28 | 29 | describe("Variants with different punctuation", () => { 30 | it("Character: ‘", () => { 31 | expect(countryToAlpha2("WAI‘TUKUBULI")).toBe("DM") 32 | }); 33 | it("Character: '", () => { 34 | expect(countryToAlpha2("People’s Republic of China")).toBe("CN") 35 | }); 36 | it("Character: ’", () => { 37 | expect(countryToAlpha2("People’s Republic of China")).toBe("CN") 38 | }); 39 | }); 40 | 41 | describe("Providing ISO 3166-1 alpha-2", () => { 42 | it("GB = GB", () => expect(countryToAlpha2("GB")).toBe("GB")); 43 | it("US = US", () => expect(countryToAlpha2("US")).toBe("US")); 44 | it("XX = null", () => expect(countryToAlpha2("XX")).toBe(null)); 45 | }); 46 | 47 | describe("Providing ISO 3166-1 alpha-3", () => { 48 | it("GBR = GB", () => expect(countryToAlpha2("GBR")).toBe("GB")); 49 | it("USA = US", () => expect(countryToAlpha2("USA")).toBe("US")); 50 | it("XXX = null", () => expect(countryToAlpha2("XXX")).toBe(null)); 51 | }); 52 | 53 | 54 | describe("Providing ISO 3166-1 alpha-3", () => { 55 | it("GB = GB", () => expect(countryToAlpha3("GB")).toBe("GBR")); 56 | it("US = US", () => expect(countryToAlpha3("US")).toBe("USA")); 57 | it("XX = null", () => expect(countryToAlpha3("XX")).toBe(null)); 58 | }); 59 | 60 | describe("Providing ISO 3166-1 alpha-3", () => { 61 | it("GBR = GB", () => expect(countryToAlpha3("GBR")).toBe("GBR")); 62 | it("USA = US", () => expect(countryToAlpha3("USA")).toBe("USA")); 63 | it("XXX = null", () => expect(countryToAlpha3("XXX")).toBe(null)); 64 | }); 65 | 66 | describe("GB variants", () => { 67 | it("Great Britain", () => { 68 | expect(countryToAlpha2("Great Britain")).toBe("GB") 69 | }); 70 | 71 | it("UK", () => { 72 | expect(countryToAlpha2("UK")).toBe("GB") 73 | }); 74 | 75 | it("United Kingdom", () => { 76 | expect(countryToAlpha2("United Kingdom")).toBe("GB") 77 | }); 78 | 79 | it("England", () => { 80 | expect(countryToAlpha2("England")).toBe("GB") 81 | }); 82 | 83 | it("United Kingdom of Great Britain", () => { 84 | expect(countryToAlpha2("United Kingdom of Great Britain")).toBe("GB") 85 | }); 86 | 87 | it("United Kingdom of Great Britain & Northern Ireland", () => { 88 | expect(countryToAlpha2("United Kingdom of Great Britain & Northern Ireland")).toBe("GB") 89 | }); 90 | 91 | it("United Kingdom of Great Britain and Northern Ireland", () => { 92 | expect(countryToAlpha2("United Kingdom of Great Britain and Northern Ireland")).toBe("GB") 93 | }); 94 | }); 95 | 96 | describe("GB variants alpha 3", () => { 97 | it("Great Britain", () => { 98 | expect(countryToAlpha3("Great Britain")).toBe("GBR") 99 | }); 100 | 101 | it("UK", () => { 102 | expect(countryToAlpha3("UK")).toBe("GBR") 103 | }); 104 | 105 | it("United Kingdom", () => { 106 | expect(countryToAlpha3("United Kingdom")).toBe("GBR") 107 | }); 108 | 109 | it("England", () => { 110 | expect(countryToAlpha3("England")).toBe("GBR") 111 | }); 112 | 113 | it("United Kingdom of Great Britain", () => { 114 | expect(countryToAlpha3("United Kingdom of Great Britain")).toBe("GBR") 115 | }); 116 | 117 | it("United Kingdom of Great Britain & Northern Ireland", () => { 118 | expect(countryToAlpha3("United Kingdom of Great Britain & Northern Ireland")).toBe("GBR") 119 | }); 120 | 121 | it("United Kingdom of Great Britain and Northern Ireland", () => { 122 | expect(countryToAlpha3("United Kingdom of Great Britain and Northern Ireland")).toBe("GBR") 123 | }); 124 | }); 125 | 126 | describe("US variants", () => { 127 | it("US", () => { 128 | expect(countryToAlpha2("US")).toBe("US") 129 | }); 130 | 131 | it("USA", () => { 132 | expect(countryToAlpha2("USA")).toBe("US") 133 | }); 134 | 135 | it("U S A", () => { 136 | expect(countryToAlpha2("U S A")).toBe("US") 137 | }); 138 | 139 | it("U.S.A", () => { 140 | expect(countryToAlpha2("U.S.A")).toBe("US") 141 | }); 142 | 143 | it("USofA", () => { 144 | expect(countryToAlpha2("USofA")).toBe("US") 145 | }); 146 | 147 | it("US and A", () => { 148 | expect(countryToAlpha2("US and A")).toBe("US") 149 | }); 150 | it("United States", () => { 151 | expect(countryToAlpha2("United States")).toBe("US") 152 | }); 153 | 154 | it("UnitedStatesofAmerica", () => { 155 | expect(countryToAlpha2("UnitedStatesofAmerica")).toBe("US") 156 | }); 157 | 158 | it("United States of America", () => { 159 | expect(countryToAlpha2("United States of America")).toBe("US") 160 | }); 161 | 162 | it("America", () => { 163 | expect(countryToAlpha2("America")).toBe("US") 164 | }); 165 | }); 166 | 167 | describe("South Korea variants", () => { 168 | it("Korea, Republic of", () => { 169 | expect(countryToAlpha2("Korea, Republic of")).toBe("KR") 170 | }); 171 | 172 | it("Korea (Republic of)", () => { 173 | expect(countryToAlpha2("Korea (Republic of)")).toBe("KR") 174 | }); 175 | 176 | it("Republic of Korea", () => { 177 | expect(countryToAlpha2("Republic of Korea")).toBe("KR") 178 | }); 179 | 180 | it("South Korea", () => { 181 | expect(countryToAlpha2("South Korea")).toBe("KR") 182 | }); 183 | }); 184 | 185 | describe("Hong Kong variants", () => { 186 | it("HKSAR", () => { 187 | expect(countryToAlpha2("HKSAR")).toBe("HK") 188 | }); 189 | 190 | it("Hong Kong", () => { 191 | expect(countryToAlpha2("Hong Kong")).toBe("HK") 192 | }); 193 | 194 | it("Hong Kong SAR China", () => { 195 | expect(countryToAlpha2("Hong Kong SAR China")).toBe("HK") 196 | }); 197 | }); 198 | 199 | describe("Kosovo variants", () => { 200 | it("XKX", () => { 201 | expect(countryToAlpha2("XKX")).toBe("XK") 202 | }); 203 | 204 | it("KOSOVO", () => { 205 | expect(countryToAlpha2("KOSOVO")).toBe("XK") 206 | }); 207 | }); 208 | 209 | describe("Falkland Islands variants", () => { 210 | it("FALKLAND ISLANDS (THE) [MALVINAS]", () => { 211 | expect(countryToAlpha2("FALKLAND ISLANDS (THE) [MALVINAS]")).toBe("FK"); 212 | }); 213 | }); 214 | -------------------------------------------------------------------------------- /test/index.test.ts: -------------------------------------------------------------------------------- 1 | import { countryToAlpha2, countryToAlpha3 } from "../src"; 2 | 3 | describe("Test the public API", () => { 4 | it("countryToAlpha2 is a function", () => { 5 | expect(countryToAlpha2).toBeInstanceOf(Function); 6 | }); 7 | it("countryToAlpha3 is a function", () => { 8 | expect(countryToAlpha3).toBeInstanceOf(Function); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /test/utils/latinize.test.ts: -------------------------------------------------------------------------------- 1 | import { latinize} from "../../src/utils/latinize"; 2 | 3 | describe("latinize", () => { 4 | it("Ấ", () => { 5 | expect(latinize("Ấ")).toBe("A"); 6 | }); 7 | 8 | it("null", () => { 9 | expect(latinize(null)).toBe(null); 10 | }); 11 | 12 | it("123", () => { 13 | expect(latinize(123)).toBe(123); 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /test/utils/strings.test.ts: -------------------------------------------------------------------------------- 1 | import { normalize, removeSpaces } from "../../src/utils/strings"; 2 | 3 | describe("normalize", () => { 4 | it("Removes commas", () => { 5 | expect(normalize("test,test")).toBe("TEST TEST"); 6 | }); 7 | 8 | it("Removes fullstops", () => { 9 | expect(normalize("test.test")).toBe("TEST TEST"); 10 | }); 11 | 12 | it("Removes apostrophes", () => { 13 | expect(normalize("test's test's")).toBe("TESTS TESTS"); 14 | }); 15 | 16 | it("Removes parentheses", () => { 17 | expect(normalize("test (test)")).toBe("TEST TEST"); 18 | }); 19 | 20 | it("Removes all white space", () => { 21 | expect(normalize("test test")).toBe("TEST TEST"); 22 | }); 23 | 24 | it("Trims", () => { 25 | expect(normalize(" test ")).toBe("TEST"); 26 | }); 27 | 28 | it("The Gambia => GAMBIA", () => { 29 | expect(normalize("The Gambia")).toBe("GAMBIA"); 30 | }); 31 | 32 | it("Territory of the Wallis and Futuna Island => TERRITORY WALLIS FUTUNA ISLAND", () => { 33 | expect(normalize("Territory of the Wallis and Futuna Island")).toBe("TERRITORY WALLIS FUTUNA ISLAND"); 34 | }); 35 | 36 | it("Congo, Democratic Republic of the => CONGO DEMOCRATIC REPUBLIC", () => { 37 | expect(normalize("Congo, Democratic Republic of the")).toBe("CONGO DEMOCRATIC REPUBLIC"); 38 | }); 39 | }); 40 | 41 | describe("removeSpaces", () => { 42 | it("test test => testest", () => { 43 | expect(removeSpaces("test test")).toBe("testtest"); 44 | }); 45 | 46 | it("test test => testest", () => { 47 | expect(removeSpaces("test test")).toBe("testtest"); 48 | }); 49 | 50 | it(" test test => testest", () => { 51 | expect(removeSpaces(" test test ")).toBe("testtest"); 52 | }); 53 | }); 54 | -------------------------------------------------------------------------------- /tsconfig-cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "module": "CommonJS", 5 | "outDir": "./lib/cjs" 6 | }, 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2015", 4 | "module": "ES2020", 5 | "strict": true, 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "outDir": "./lib/esm", 9 | "moduleResolution": "node", 10 | "baseUrl": ".", 11 | "newLine": "LF", 12 | "paths": { 13 | "*": [ 14 | "node_modules/*" 15 | ] 16 | }, 17 | "typeRoots": [ 18 | "src/types", 19 | "node_modules/@types" 20 | ], 21 | }, 22 | "include": [ 23 | "./src" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "indent": [ 3 | true, 4 | "spaces", 5 | 4 6 | ] 7 | } 8 | --------------------------------------------------------------------------------