├── .gitignore ├── tests ├── test │ ├── config.nims │ ├── currencies.nim │ ├── language_families.nim │ ├── scripts.nim │ ├── languages.nim │ ├── countries.nim │ ├── removed_countries.nim │ └── subdivisions.nim ├── test_noembed.nims ├── test_embed.nim ├── test_noembed.nim └── test_embed.nims ├── src ├── isocodes │ ├── resources │ │ ├── LICENSE │ │ ├── iso_3166-3.json │ │ ├── iso_639-5.json │ │ ├── iso_4217.json │ │ ├── iso_15924.json │ │ ├── iso_639-2.json │ │ └── iso_3166-1.json │ ├── scripts │ │ ├── isocodes_download.nims │ │ └── isocodes_download.nim │ ├── scripts.nim │ ├── currencies.nim │ ├── language_families.nim │ ├── languages.nim │ ├── countries.nim │ ├── private │ │ └── utils.nim │ ├── removed_countries.nim │ └── subdivisions.nim └── isocodes.nim ├── examples ├── config.nims ├── list_countries.nim └── list_subdivisions.nim ├── isocodes.nimble ├── .github └── workflows │ └── ci.yml ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /bin 2 | -------------------------------------------------------------------------------- /tests/test/config.nims: -------------------------------------------------------------------------------- 1 | switch("path", "$projectDir/../src") -------------------------------------------------------------------------------- /tests/test_noembed.nims: -------------------------------------------------------------------------------- 1 | switch("path", "$projectDir/../src") -------------------------------------------------------------------------------- /src/isocodes/resources/LICENSE: -------------------------------------------------------------------------------- 1 | The resource files LICENSE can be checked here: 2 | https://salsa.debian.org/iso-codes-team/iso-codes/-/blob/main/COPYING -------------------------------------------------------------------------------- /examples/config.nims: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | switch("path", "$projectDir/../src") -------------------------------------------------------------------------------- /src/isocodes/scripts/isocodes_download.nims: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | switch("define", "ssl") -------------------------------------------------------------------------------- /examples/list_countries.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import isocodes 7 | 8 | if isMainModule: 9 | for country in Country.allIt(): 10 | echo country -------------------------------------------------------------------------------- /examples/list_subdivisions.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import isocodes 7 | 8 | if isMainModule: 9 | for s in CountrySubdivision.allIt(): 10 | echo s -------------------------------------------------------------------------------- /tests/test_embed.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import unittest 7 | 8 | # Embed test is the same as 'noembed' but we tell the compiler 9 | # to embed all resources. Look at the test_embed.nims file 10 | # for details on what compiler flags are used 11 | include test_noembed -------------------------------------------------------------------------------- /tests/test_noembed.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import unittest 7 | 8 | include ../tests/test/countries 9 | include ../tests/test/subdivisions 10 | include ../tests/test/removed_countries 11 | include ../tests/test/scripts 12 | include ../tests/test/currencies 13 | include ../tests/test/languages 14 | include ../tests/test/language_families -------------------------------------------------------------------------------- /src/isocodes.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import isocodes/countries 7 | export countries 8 | 9 | import isocodes/subdivisions 10 | export subdivisions 11 | 12 | import isocodes/removed_countries 13 | export removed_countries 14 | 15 | import isocodes/scripts 16 | export scripts 17 | 18 | import isocodes/currencies 19 | export currencies 20 | 21 | import isocodes/languages 22 | export languages 23 | 24 | import isocodes/language_families 25 | export language_families -------------------------------------------------------------------------------- /isocodes.nimble: -------------------------------------------------------------------------------- 1 | # Package 2 | 3 | version = "1.7.3" 4 | author = "kraptor" 5 | description = "ISO codes for Nim that allows to embed the data within the executable (or load it automatically at runtime)." 6 | license = "MIT" 7 | srcDir = "src" 8 | binDir = "bin" 9 | bin = @["isocodes/scripts/isocodes_download"] 10 | installExt = @[ 11 | "nim", # add nim files to installed package 12 | "json" # add json datafiles to installed package 13 | ] 14 | skipDirs = @["isocodes/scripts"] 15 | 16 | # Dependencies 17 | 18 | requires "nim >= 1.4.0" 19 | requires "jsony >= 1.0.3" 20 | 21 | task update_codes, "Update ISO codes from source repository": 22 | exec "nim r src/isocodes/scripts/isocodes_download src/isocodes/resources/" 23 | 24 | task clean, "Clean-up build artifacts": 25 | rmDir "bin" 26 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: "Build" 2 | 3 | on: 4 | push: 5 | pull_request: 6 | 7 | jobs: 8 | test: 9 | runs-on: ${{ matrix.os }} 10 | strategy: 11 | matrix: 12 | nimversion: 13 | - 1.4.0 14 | - binary:stable 15 | os: 16 | - windows-latest 17 | # - macos-latest 18 | - ubuntu-latest 19 | name: ${{ matrix.os }} - ${{ matrix.nimversion }} 20 | env: 21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 22 | steps: 23 | - uses: actions/checkout@v2 24 | - uses: iffy/install-nim@v4 25 | with: 26 | version: ${{ matrix.nimversion }} 27 | - run: nim --version 28 | - name: Refresh packages + install dependencies 29 | run: | 30 | nimble refresh 31 | nimble install -d 32 | - name: Run all tests 33 | run: nimble --silent test -------------------------------------------------------------------------------- /tests/test_embed.nims: -------------------------------------------------------------------------------- 1 | switch("path", "$projectDir/../src") 2 | 3 | switch("define", "embedCountries=false") 4 | switch("define", "useCountriesFile=src/isocodes/resources/iso_3166-1.json") 5 | 6 | switch("define", "embedSubdivisions=false") 7 | switch("define", "useSubdivisionsFile=src/isocodes/resources/iso_3166-2.json") 8 | 9 | switch("define", "embedRemovedCountries=false") 10 | switch("define", "useRemovedCountriesFile=src/isocodes/resources/iso_3166-3.json") 11 | 12 | switch("define", "embedScripts=false") 13 | switch("define", "useScriptsFile=src/isocodes/resources/iso_15924.json") 14 | 15 | switch("define", "embedCurrencies=false") 16 | switch("define", "useCurrenciesFile=src/isocodes/resources/iso_4217.json") 17 | 18 | switch("define", "embedLanguages=false") 19 | switch("define", "useLanguagesFile=src/isocodes/resources/iso_639-2.json") 20 | 21 | switch("define", "embedLanguageFamilies=false") 22 | switch("define", "useLanguageFamiliesFile=src/isocodes/resources/iso_639-5.json") -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 kraptor 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. -------------------------------------------------------------------------------- /src/isocodes/scripts.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import jsony 7 | import options 8 | export options 9 | 10 | import private/utils 11 | 12 | 13 | type 14 | Script* = object 15 | name*: string 16 | alpha_4*: string 17 | numeric*: string 18 | 19 | Scripts* = object 20 | objects: seq[Script] 21 | 22 | FindScriptPredicateProc* = proc(c: Script): bool 23 | 24 | 25 | proc renameHook*(v: var Scripts, fieldname: var string) = 26 | if fieldname == "15924": 27 | fieldname = "objects" 28 | 29 | 30 | const 31 | embedScripts {.booldefine.} = true 32 | useScriptsFile {.strdefine.} = "resources/iso_15924.json" 33 | 34 | 35 | when embedScripts: 36 | const data = fromJson(staticRead useScriptsFile, Scripts) 37 | when not embedScripts: 38 | let data = fromJson(readFile useScriptsFile, Scripts) 39 | 40 | 41 | declareCount Script, data.objects, count 42 | declareAll Script, data.objects, all 43 | declareAllIt Script, data.objects, allIt 44 | declareOpt Script, data.objects, byName, name 45 | declareOpt Script, data.objects, byAlpha4, alpha_4 46 | declareOpt Script, data.objects, byNumeric, numeric 47 | declareFind Script, data.objects, find, FindScriptPredicateProc 48 | declareFindIt Script, data.objects, findIt, FindScriptPredicateProc 49 | declareFindFirst Script, data.objects, findFirst, FindScriptPredicateProc -------------------------------------------------------------------------------- /src/isocodes/currencies.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import jsony 7 | import options 8 | export options 9 | 10 | import private/utils 11 | 12 | 13 | type 14 | Currency* = object 15 | alpha_3*: string 16 | name*: string 17 | numeric*: string 18 | 19 | 20 | Currencies* = object 21 | objects: seq[Currency] 22 | 23 | FindCurrencyPredicateProc* = proc(c: Currency): bool 24 | 25 | 26 | proc renameHook*(v: var Currencies, fieldname: var string) = 27 | if fieldname == "4217": 28 | fieldname = "objects" 29 | 30 | 31 | const 32 | embedCurrencies {.booldefine.} = true 33 | useCurrenciesFile {.strdefine.} = "resources/iso_4217.json" 34 | 35 | 36 | when embedCurrencies: 37 | const data = fromJson(staticRead useCurrenciesFile, Currencies) 38 | when not embedCurrencies: 39 | let data = fromJson(readFile useCurrenciesFile, Currencies) 40 | 41 | 42 | declareCount Currency, data.objects, count 43 | declareAll Currency, data.objects, all 44 | declareAllIt Currency, data.objects, allIt 45 | declareOpt Currency, data.objects, byName, name 46 | declareOpt Currency, data.objects, byAlpha3, alpha_3 47 | declareOpt Currency, data.objects, byNumeric, numeric 48 | declareFind Currency, data.objects, find, FindCurrencyPredicateProc 49 | declareFindIt Currency, data.objects, findIt, FindCurrencyPredicateProc 50 | declareFindFirst Currency, data.objects, findFirst, FindCurrencyPredicateProc -------------------------------------------------------------------------------- /src/isocodes/language_families.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import jsony 7 | import options 8 | export options 9 | 10 | import private/utils 11 | 12 | 13 | type 14 | LanguageFamily* = object 15 | alpha_3*: string 16 | name*: string 17 | 18 | LanguageFamilies* = object 19 | objects: seq[LanguageFamily] 20 | 21 | FindLanguageFamilyPredicateProc* = proc(c: LanguageFamily): bool 22 | 23 | 24 | proc renameHook*(v: var LanguageFamilies, fieldname: var string) = 25 | if fieldname == "639-5": 26 | fieldname = "objects" 27 | 28 | 29 | const 30 | embedLanguageFamilies {.booldefine.} = true 31 | useLanguageFamiliesFile {.strdefine.} = "resources/iso_639-5.json" 32 | 33 | 34 | when embedLanguageFamilies: 35 | const data = fromJson(staticRead useLanguageFamiliesFile, LanguageFamilies) 36 | when not embedLanguageFamilies: 37 | let data = fromJson(readFile useLanguageFamiliesFile, LanguageFamilies) 38 | 39 | 40 | declareCount LanguageFamily, data.objects, count 41 | declareAll LanguageFamily, data.objects, all 42 | declareAllIt LanguageFamily, data.objects, allIt 43 | declareOpt LanguageFamily, data.objects, byName, name 44 | declareOpt LanguageFamily, data.objects, byAlpha3, alpha_3 45 | declareFind LanguageFamily, data.objects, find, FindLanguageFamilyPredicateProc 46 | declareFindIt LanguageFamily, data.objects, findIt, FindLanguageFamilyPredicateProc 47 | declareFindFirst LanguageFamily, data.objects, findFirst, FindLanguageFamilyPredicateProc -------------------------------------------------------------------------------- /src/isocodes/languages.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import jsony 7 | import options 8 | export options 9 | 10 | import private/utils 11 | 12 | 13 | type 14 | Language* = object 15 | alpha_3*: string 16 | name*: string 17 | alpha_2*: string 18 | bibliographic*: string 19 | common_name*: string 20 | 21 | Languages* = object 22 | objects: seq[Language] 23 | 24 | FindLanguagePredicateProc* = proc(c: Language): bool 25 | 26 | 27 | proc renameHook*(v: var Languages, fieldname: var string) = 28 | if fieldname == "639-2": 29 | fieldname = "objects" 30 | 31 | 32 | const 33 | embedLanguages {.booldefine.} = true 34 | useLanguagesFile {.strdefine.} = "resources/iso_639-2.json" 35 | 36 | 37 | when embedLanguages: 38 | const data = fromJson(staticRead useLanguagesFile, Languages) 39 | when not embedLanguages: 40 | let data = fromJson(readFile useLanguagesFile, Languages) 41 | 42 | 43 | declareCount Language, data.objects, count 44 | declareAll Language, data.objects, all 45 | declareAllIt Language, data.objects, allIt 46 | declareOpt Language, data.objects, byName, name 47 | declareOpt Language, data.objects, byAlpha2, alpha_2 48 | declareOpt Language, data.objects, byAlpha3, alpha_3 49 | declareOpt Language, data.objects, byBibliographic, bibliographic 50 | declareOpt Language, data.objects, byCommonName, common_name 51 | declareFind Language, data.objects, find, FindLanguagePredicateProc 52 | declareFindIt Language, data.objects, findIt, FindLanguagePredicateProc 53 | declareFindFirst Language, data.objects, findFirst, FindLanguagePredicateProc -------------------------------------------------------------------------------- /src/isocodes/countries.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import jsony 7 | import options 8 | export options 9 | 10 | import private/utils 11 | 12 | 13 | type 14 | Country* = object 15 | name*: string 16 | alpha_2*: string 17 | alpha_3*: string 18 | numeric*: string 19 | official_name*: string 20 | common_name*: string 21 | flag*: string 22 | 23 | Countries* = object 24 | objects: seq[Country] 25 | 26 | FindCountryPredicateProc* = proc(c: Country): bool 27 | 28 | 29 | proc renameHook*(v: var Countries, fieldname: var string) = 30 | if fieldname == "3166-1": 31 | fieldname = "objects" 32 | 33 | 34 | const 35 | embedCountries {.booldefine.} = true 36 | useCountriesFile {.strdefine.} = "resources/iso_3166-1.json" 37 | 38 | 39 | when embedCountries: 40 | const data = fromJson(staticRead useCountriesFile, Countries) 41 | when not embedCountries: 42 | let data = fromJson(readFile useCountriesFile, Countries) 43 | 44 | 45 | declareCount Country, data.objects, count 46 | declareAll Country, data.objects, all 47 | declareAllIt Country, data.objects, allIt 48 | declareOpt Country, data.objects, byName, name 49 | declareOpt Country, data.objects, byAlpha2, alpha_2 50 | declareOpt Country, data.objects, byAlpha3, alpha_3 51 | declareOpt Country, data.objects, byNumeric, numeric 52 | declareOpt Country, data.objects, byOfficialName, official_name 53 | declareOpt Country, data.objects, byCommonName, common_name 54 | declareFind Country, data.objects, find, FindCountryPredicateProc 55 | declareFindIt Country, data.objects, findIt, FindCountryPredicateProc 56 | declareFindFirst Country, data.objects, findFirst, FindCountryPredicateProc -------------------------------------------------------------------------------- /src/isocodes/scripts/isocodes_download.nim: -------------------------------------------------------------------------------- 1 | # This is just an example to get you started. A typical library package 2 | # exports the main API in this file. Note that you cannot rename this file 3 | # but you can remove it if you wish. 4 | 5 | import os 6 | import strformat 7 | import httpclient 8 | 9 | const 10 | RESOURCES = [ 11 | ("ISO 3166-1 - Countries ", "https://salsa.debian.org/iso-codes-team/iso-codes/-/raw/main/data/iso_3166-1.json"), 12 | ("ISO 3166-2 - Country Subdivisions", "https://salsa.debian.org/iso-codes-team/iso-codes/-/raw/main/data/iso_3166-2.json"), 13 | ("ISO 3166-3 - Removed Countries ", "https://salsa.debian.org/iso-codes-team/iso-codes/-/raw/main/data/iso_3166-3.json"), 14 | ("ISO 15924 - Name of Scripts ", "https://salsa.debian.org/iso-codes-team/iso-codes/-/raw/main/data/iso_15924.json"), 15 | ("ISO 4217 - Currencies ", "https://salsa.debian.org/iso-codes-team/iso-codes/-/raw/main/data/iso_4217.json"), 16 | ("ISO 639-2 - Languages ", "https://salsa.debian.org/iso-codes-team/iso-codes/-/raw/main/data/iso_639-2.json"), 17 | ("ISO 639-5 - Languages Families ", "https://salsa.debian.org/iso-codes-team/iso-codes/-/raw/main/data/iso_639-5.json"), 18 | ] 19 | 20 | 21 | if isMainModule: 22 | var 23 | targetFolder = if paramCount() > 0: paramStr(1) else: "" 24 | client = newHttpClient() 25 | 26 | createDir targetFolder 27 | 28 | for (name, url) in RESOURCES: 29 | let 30 | filename = joinPath(targetFolder, extractFilename(url)) 31 | 32 | echo fmt"Downloading '{name}' to '{filename}'..." 33 | 34 | let 35 | data = client.getContent(url) 36 | target = open(filename, FileMode.fmWrite) 37 | 38 | target.write(data) 39 | 40 | defer: 41 | target.close() 42 | -------------------------------------------------------------------------------- /tests/test/currencies.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | {.warning[UnusedImport]: off.} 7 | 8 | import unittest 9 | import strutils 10 | import options 11 | 12 | import isocodes 13 | 14 | 15 | const 16 | TOTAL_CURRENCIES = 181 17 | 18 | suiteNameCurrencies = when 19 | defined(embedCurrencies): 20 | "Currencies (embedded data)" 21 | else: 22 | "Currencies" 23 | 24 | 25 | template test_euro(c: Option[Currency]) = 26 | check c.isSome 27 | check c.get().name == "Euro" 28 | check c.get().alpha3 == "EUR" 29 | check c.get().numeric == "978" 30 | 31 | 32 | proc firstCharInNameIsE(c: Currency): bool = 33 | c.name.startsWith("E") 34 | 35 | 36 | suite suiteNameCurrencies: 37 | test "Can get count": 38 | check Currency.count() == TOTAL_CURRENCIES 39 | 40 | test "Can get items": 41 | check Currency.all().len == TOTAL_CURRENCIES 42 | 43 | test "Item not found": 44 | check Currency.byName("Narnia").isSome == false 45 | check Currency.byAlpha3("Narnia").isSome == false 46 | check Currency.byNumeric("00000000").isSome == false 47 | 48 | test "Find by name": 49 | let found = Currency.byName("Euro") 50 | test_euro(found) 51 | 52 | test "Find by alpha3": 53 | let found = Currency.byAlpha3("EUR") 54 | test_euro(found) 55 | 56 | test "Find by numeric": 57 | let found = Currency.byNumeric("978") 58 | test_euro(found) 59 | 60 | test "Find by predicate (all)": 61 | let found = Currency.find(firstCharInNameIsE) 62 | check found.len > 0 63 | for c in found: 64 | check c.name.startsWith("E") 65 | 66 | test "Find by predicate (iterator)": 67 | var found = false 68 | for c in Currency.find(firstCharInNameIsE): 69 | check c.name.startsWith("E") 70 | found = true 71 | check found == true 72 | 73 | test "Find by predicate (first)": 74 | let found = Currency.findFirst(firstCharInNameIsE) 75 | check found.isSome 76 | check found.get().name.startsWith("E") 77 | 78 | -------------------------------------------------------------------------------- /tests/test/language_families.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | # Copyright (c) 2021 kraptor 7 | # 8 | # This software is released under the MIT License. 9 | # https://opensource.org/licenses/MIT 10 | 11 | {.warning[UnusedImport]: off.} 12 | 13 | import unittest 14 | import strutils 15 | import options 16 | 17 | import isocodes 18 | 19 | 20 | const 21 | TOTAL_LANGUAGE_FAMILIES = 115 22 | 23 | suiteNameLanguageFamilies = when 24 | defined(embedLanguageFamilies): 25 | "Language Families (embedded data)" 26 | else: 27 | "Language Families" 28 | 29 | 30 | proc firstCharInNameIsE(c: LanguageFamily): bool = 31 | c.name.startsWith("E") 32 | 33 | 34 | suite suiteNameLanguages: 35 | test "Can get count": 36 | check LanguageFamily.count() == TOTAL_LANGUAGE_FAMILIES 37 | 38 | test "Can get items": 39 | check LanguageFamily.all().len == TOTAL_LANGUAGE_FAMILIES 40 | 41 | test "Item not found": 42 | check LanguageFamily.byName("Narnia").isSome == false 43 | check LanguageFamily.byAlpha3("Narnia").isSome == false 44 | 45 | test "Find by name": 46 | let found = LanguageFamily.byName("Artificial languages") 47 | check found.isSome 48 | check found.get().alpha3 == "art" 49 | 50 | test "Find by alpha3": 51 | let found = LanguageFamily.byAlpha3("art") 52 | check found.isSome 53 | check found.get().name == "Artificial languages" 54 | 55 | test "Find by predicate (all)": 56 | let found = LanguageFamily.find(firstCharInNameIsE) 57 | check found.len > 0 58 | for c in found: 59 | check c.name.startsWith("E") 60 | 61 | test "Find by predicate (iterator)": 62 | var found = false 63 | for c in LanguageFamily.find(firstCharInNameIsE): 64 | check c.name.startsWith("E") 65 | found = true 66 | check found == true 67 | 68 | test "Find by predicate (first)": 69 | let found = LanguageFamily.findFirst(firstCharInNameIsE) 70 | check found.isSome 71 | check found.get().name.startsWith("E") 72 | 73 | -------------------------------------------------------------------------------- /tests/test/scripts.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | {.warning[UnusedImport]: off.} 7 | 8 | import unittest 9 | import isocodes 10 | import strutils 11 | import options 12 | 13 | 14 | const 15 | TOTAL_SCRIPTS = 182 16 | 17 | suiteNameScripts = when 18 | defined(embedScripts): 19 | "Scripts (embedded data)" 20 | else: 21 | "Scripts" 22 | 23 | 24 | template test_adlam(c: Option[Script]) = 25 | check c.isSome 26 | check c.get().name == "Adlam" 27 | check c.get().alpha4 == "Adlm" 28 | check c.get().numeric == "166" 29 | 30 | 31 | proc firstCharInNameIsE(c: Script): bool = 32 | c.name.startsWith("E") 33 | 34 | 35 | suite suiteNameScripts: 36 | test "Can get count": 37 | check Script.count() == TOTAL_SCRIPTS 38 | 39 | test "Can get item": 40 | check Script.all().len == TOTAL_SCRIPTS 41 | 42 | test "Item not found": 43 | check Script.byName("Narnia").isSome == false 44 | check Script.byAlpha4("Narnia").isSome == false 45 | check Script.byNumeric("00000000").isSome == false 46 | 47 | test "Find by name": 48 | let found = Script.byName("Adlam") 49 | test_adlam(found) 50 | 51 | test "Find by alpha4": 52 | let found = Script.byAlpha4("Adlm") 53 | test_adlam(found) 54 | 55 | test "Find by numeric": 56 | let found = Script.byNumeric("166") 57 | test_adlam(found) 58 | 59 | test "Find by predicate (all)": 60 | let found = Script.find(firstCharInNameIsE) 61 | check found.len > 0 62 | for c in found: 63 | check c.name.startsWith("E") 64 | 65 | test "Find by predicate (all)": 66 | var found = false 67 | for c in Script.findIt(firstCharInNameIsE): 68 | check c.name.startsWith("E") 69 | found = true 70 | check found 71 | 72 | test "Find by predicate (iterator)": 73 | var found = false 74 | for c in Script.find(firstCharInNameIsE): 75 | check c.name.startsWith("E") 76 | found = true 77 | check found == true 78 | 79 | test "Find by predicate (first)": 80 | let found = Script.findFirst(firstCharInNameIsE) 81 | check found.isSome 82 | check found.get().name.startsWith("E") 83 | 84 | -------------------------------------------------------------------------------- /src/isocodes/private/utils.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import macros 7 | import options 8 | 9 | 10 | macro declareCount*(T: type, data: untyped, procname: untyped) = 11 | quote do: 12 | proc `procname`*(U: type `T`): Natural = 13 | return `data`.len() 14 | 15 | macro declareAll*(T: type, data: untyped, procname: untyped) = 16 | quote do: 17 | proc `procname`*(U: type `T`): seq[`T`] = `data` 18 | 19 | 20 | macro declareAllIt*(T: type, data: untyped, itname: untyped) = 21 | quote do: 22 | iterator `itname`*(U: type `T`): `T` = 23 | for x in `data`: 24 | yield x 25 | 26 | 27 | macro declareOpt*(T: type, data: untyped, procname: untyped, field: untyped) = 28 | quote do: 29 | proc `procname`*(U: type `T`, name: string): Option[`T`] = 30 | for c in `data`: 31 | if c.`field` == name: 32 | return some(c) 33 | 34 | 35 | macro declareSeq*(T: type, data: untyped, procname: untyped, field: untyped) = 36 | quote do: 37 | proc `procname`*(U: type `T`, value: string): seq[`T`] = 38 | for x in `data`: 39 | if x.`field` == value: 40 | result.add(x) 41 | 42 | 43 | macro declareIt*(T: type, data: untyped, procname: untyped, field: untyped) = 44 | quote do: 45 | iterator `procname`*(U: type `T`, value: string): `T` = 46 | for x in `data`: 47 | if x.`field` == value: 48 | yield x 49 | 50 | 51 | macro declareFind*(T: type, data: untyped, procname: untyped, ProcType: type) = 52 | quote do: 53 | proc `procname`*(U: type `T`, predicate: `ProcType`): seq[`T`] = 54 | for x in `data`: 55 | if predicate(x): 56 | result.add(x) 57 | 58 | macro declareFindIt*(T: type, data: untyped, procname: untyped, ProcType: type) = 59 | quote do: 60 | iterator `procname`*(U: type `T`, predicate: `ProcType`): `T` = 61 | for x in `data`: 62 | if predicate(x): 63 | yield x 64 | 65 | 66 | macro declareFindFirst*(T: type, data: untyped, procname: untyped, ProcType: type) = 67 | quote do: 68 | proc `procname`*(U: type `T`, predicate: `ProcType`): Option[`T`] = 69 | for x in `data`: 70 | if predicate(x): 71 | return some(x) -------------------------------------------------------------------------------- /src/isocodes/removed_countries.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import jsony 7 | import options 8 | export options 9 | 10 | import private/utils 11 | 12 | 13 | type 14 | RemovedCountry* = object 15 | name*: string 16 | alpha_2*: string 17 | alpha_3*: string 18 | alpha_4*: string 19 | numeric*: string 20 | comment*: string 21 | withdrawal_date*: string 22 | 23 | RemovedCountries* = object 24 | objects: seq[RemovedCountry] 25 | 26 | FindRemovedCountryPredicateProc* = proc(c: RemovedCountry): bool 27 | 28 | 29 | proc renameHook*(v: var RemovedCountries, fieldname: var string) = 30 | if fieldname == "3166-3": 31 | fieldname = "objects" 32 | 33 | 34 | const 35 | embedRemovedCountries {.booldefine.} = true 36 | useRemovedCountriesFile {.strdefine.} = "resources/iso_3166-3.json" 37 | 38 | 39 | when embedRemovedCountries: 40 | const data = fromJson(staticRead useRemovedCountriesFile, RemovedCountries) 41 | when not embedRemovedCountries: 42 | let data = fromJson(readFile useRemovedCountriesFile, RemovedCountries) 43 | 44 | 45 | declareCount RemovedCountry, data.objects, count 46 | declareAll RemovedCountry, data.objects, all 47 | declareAllIt RemovedCountry, data.objects, allIt 48 | declareOpt RemovedCountry, data.objects, byName, name 49 | declareOpt RemovedCountry, data.objects, byAlpha2, alpha_2 50 | declareOpt RemovedCountry, data.objects, byAlpha3, alpha_3 51 | declareOpt RemovedCountry, data.objects, byAlpha4, alpha_4 52 | declareOpt RemovedCountry, data.objects, byNumeric, numeric 53 | declareSeq RemovedCountry, data.objects, byWithdrawalDate, withdrawal_date 54 | declareIt RemovedCountry, data.objects, byWithdrawalDateIt, withdrawal_date 55 | declareFind RemovedCountry, data.objects, find, FindRemovedCountryPredicateProc 56 | declareFindIt RemovedCountry, data.objects, findIt, FindRemovedCountryPredicateProc 57 | declareFindFirst RemovedCountry, data.objects, findFirst, FindRemovedCountryPredicateProc 58 | 59 | 60 | proc byWithdrawalYear*(T: type RemovedCountry, year: string): seq[RemovedCountry] = 61 | for c in data.objects: 62 | let wd = c.withdrawal_date 63 | if wd.len >= 4 and wd[0 .. 3] == year: 64 | result.add(c) 65 | 66 | 67 | iterator byWithdrawalYearIt*(T: type RemovedCountry, year: string): RemovedCountry = 68 | for c in data.objects: 69 | let wd = c.withdrawal_date 70 | if wd.len >= 4 and wd[0 .. 3] == year: 71 | yield c -------------------------------------------------------------------------------- /tests/test/languages.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | # Copyright (c) 2021 kraptor 7 | # 8 | # This software is released under the MIT License. 9 | # https://opensource.org/licenses/MIT 10 | 11 | {.warning[UnusedImport]: off.} 12 | 13 | import unittest 14 | import strutils 15 | import options 16 | 17 | import isocodes 18 | 19 | 20 | const 21 | TOTAL_LANGUAGES = 487 22 | 23 | suiteNameLanguages = when 24 | defined(embedLanguages): 25 | "Languages (embedded data)" 26 | else: 27 | "Languages" 28 | 29 | 30 | template test_greek(c: Option[Language]) = 31 | check c.isSome 32 | check c.get().name == "Greek, Modern (1453-)" 33 | check c.get().alpha2 == "el" 34 | check c.get().alpha3 == "ell" 35 | check c.get().bibliographic == "gre" 36 | 37 | 38 | proc firstCharInNameIsE(c: Language): bool = 39 | c.name.startsWith("E") 40 | 41 | 42 | suite suiteNameLanguages: 43 | test "Can get count": 44 | check Language.count() == TOTAL_LANGUAGES 45 | 46 | test "Can get items": 47 | check Language.all().len == TOTAL_LANGUAGES 48 | 49 | test "Item not found": 50 | check Language.byName("Narnia").isSome == false 51 | check Language.byAlpha2("Narnia").isSome == false 52 | check Language.byAlpha3("Narnia").isSome == false 53 | check Language.byBibliographic("00000000").isSome == false 54 | check Language.byCommonName("Narnia").isSome == false 55 | 56 | test "Find by name": 57 | let found = Language.byName("Greek, Modern (1453-)") 58 | test_greek(found) 59 | 60 | test "Find by alpha2": 61 | let found = Language.byAlpha2("el") 62 | test_greek(found) 63 | 64 | test "Find by alpha3": 65 | let found = Language.byAlpha3("ell") 66 | test_greek(found) 67 | 68 | test "Find by bibliographic": 69 | let found = Language.byBibliographic("gre") 70 | test_greek(found) 71 | 72 | test "Find by common name": 73 | let found = Language.byCommonName("Bangla") 74 | check found.isSome 75 | check found.get().name == "Bengali" 76 | 77 | test "Find by predicate (all)": 78 | let found = Language.find(firstCharInNameIsE) 79 | check found.len > 0 80 | for c in found: 81 | check c.name.startsWith("E") 82 | 83 | test "Find by predicate (iterator)": 84 | var found = false 85 | for c in Language.find(firstCharInNameIsE): 86 | check c.name.startsWith("E") 87 | found = true 88 | check found == true 89 | 90 | test "Find by predicate (first)": 91 | let found = Language.findFirst(firstCharInNameIsE) 92 | check found.isSome 93 | check found.get().name.startsWith("E") 94 | 95 | -------------------------------------------------------------------------------- /src/isocodes/subdivisions.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | import jsony 7 | import options 8 | export options 9 | 10 | import private/utils 11 | 12 | type 13 | CountrySubdivision* = object 14 | code*: string 15 | name*: string 16 | `type`*: string 17 | parent*: string # optional 18 | 19 | CountrySubdivisions* = object 20 | objects: seq[CountrySubdivision] 21 | 22 | FindCountrySubdivisionPredicateProc* = proc(c: CountrySubdivision): bool 23 | 24 | 25 | proc renameHook*(v: var CountrySubdivisions, fieldname: var string) = 26 | if fieldname == "3166-2": 27 | fieldname = "objects" 28 | 29 | 30 | const 31 | embedSubdivisions {.booldefine.} = true 32 | useSubdivisionsFile {.strdefine.} = "resources/iso_3166-2.json" 33 | 34 | 35 | when embedSubdivisions: 36 | const data = fromJson(staticRead useSubdivisionsFile, CountrySubdivisions) 37 | when not embedSubdivisions: 38 | let data = fromJson(readFile useSubdivisionsFile, CountrySubdivisions) 39 | 40 | 41 | declareCount CountrySubdivision, data.objects, count 42 | declareAll CountrySubdivision, data.objects, all 43 | declareAllIt CountrySubdivision, data.objects, allIt 44 | declareOpt CountrySubdivision, data.objects, byCode, code 45 | declareSeq CountrySubdivision, data.objects, byName, name 46 | declareIt CountrySubdivision, data.objects, byNameIt, name 47 | declareSeq CountrySubdivision, data.objects, byType, `type` 48 | declareIt CountrySubdivision, data.objects, byTypeIt, `type` 49 | declareSeq CountrySubdivision, data.objects, byParent, parent 50 | declareIt CountrySubdivision, data.objects, byParentIt, parent 51 | declareFind CountrySubdivision, data.objects, find, FindCountrySubdivisionPredicateProc 52 | declareFindIt CountrySubdivision, data.objects, findIt, FindCountrySubdivisionPredicateProc 53 | declareFindFirst CountrySubdivision, data.objects, findFirst, FindCountrySubdivisionPredicateProc 54 | 55 | proc byCountryCode*(T: type CountrySubdivision, country_code: string): seq[CountrySubdivision] = 56 | for c in data.objects: 57 | if c.code.split("-")[0] == country_code: 58 | result.add(c) 59 | 60 | 61 | iterator byCountryCodeIt*(T: type CountrySubdivision, country_code: string): CountrySubdivision = 62 | for c in data.objects: 63 | if c.code.split("-")[0] == country_code: 64 | yield c 65 | 66 | 67 | proc byCodeStart*(T: type CountrySubdivision, code_start: string): seq[CountrySubdivision] = 68 | for c in data.objects: 69 | if c.code.startsWith(code_start): 70 | result.add(c) 71 | 72 | 73 | iterator byCodeStartIt*(T: type CountrySubdivision, code_start: string): CountrySubdivision = 74 | for c in data.objects: 75 | if c.code.startsWith(code_start): 76 | yield c -------------------------------------------------------------------------------- /tests/test/countries.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | {.warning[UnusedImport]: off.} 7 | 8 | import unittest 9 | import strutils 10 | import options 11 | 12 | import isocodes 13 | 14 | 15 | const 16 | TOTAL_COUNTRIES = 249 17 | 18 | suiteNameCountries = when 19 | defined(embedCountries): 20 | "Countries (embedded data)" 21 | else: 22 | "Countries" 23 | 24 | 25 | template test_aruba(c: Option[Country]) = 26 | check c.isSome 27 | check c.get().name == "Aruba" 28 | check c.get().alpha2 == "AW" 29 | check c.get().alpha3 == "ABW" 30 | check c.get().numeric == "533" 31 | echo c.get().flag 32 | 33 | 34 | proc firstCharInNameIsE(c: Country): bool = 35 | c.name.startsWith("E") 36 | 37 | 38 | suite suiteNameCountries: 39 | test "Can get count": 40 | check Country.count() == TOTAL_COUNTRIES 41 | 42 | test "Can get items": 43 | check Country.all().len == TOTAL_COUNTRIES 44 | 45 | test "Item not found": 46 | check Country.byName("Narnia").isSome == false 47 | check Country.byAlpha2("Narnia").isSome == false 48 | check Country.byAlpha3("Narnia").isSome == false 49 | check Country.byNumeric("00000000").isSome == false 50 | check Country.byOfficialName("Narnia").isSome == false 51 | check Country.byCommonName("Narnia").isSome == false 52 | 53 | test "Find by name": 54 | let found = Country.byName("Aruba") 55 | test_aruba(found) 56 | 57 | test "Find by alpha2": 58 | let found = Country.byAlpha2("AW") 59 | test_aruba(found) 60 | 61 | test "Find by alpha3": 62 | let found = Country.byAlpha3("ABW") 63 | test_aruba(found) 64 | 65 | test "Find by numeric": 66 | let found = Country.byNumeric("533") 67 | test_aruba(found) 68 | 69 | test "Find by official name": 70 | let found = Country.byOfficialName("Republic of Angola") 71 | check found.isSome 72 | check found.get().name == "Angola" 73 | 74 | test "Find by common name": 75 | let found = Country.byCommonName("Bolivia") 76 | check found.isSome 77 | check found.get().alpha_2 == "BO" 78 | 79 | test "Find by predicate (all)": 80 | let found = Country.find(firstCharInNameIsE) 81 | check found.len > 0 82 | for c in found: 83 | check c.name.startsWith("E") 84 | 85 | test "Find by predicate (iterator)": 86 | var found = false 87 | for c in Country.find(firstCharInNameIsE): 88 | check c.name.startsWith("E") 89 | found = true 90 | check found == true 91 | 92 | test "Find by predicate (first)": 93 | let found = Country.findFirst(firstCharInNameIsE) 94 | check found.isSome 95 | check found.get().name.startsWith("E") 96 | 97 | -------------------------------------------------------------------------------- /tests/test/removed_countries.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | {.warning[UnusedImport]: off.} 7 | 8 | import unittest 9 | import strutils 10 | import options 11 | 12 | import isocodes 13 | 14 | 15 | const 16 | TOTAL_REMOVED_COUNTRIES = 31 17 | 18 | suiteNameRemovedCountries = when 19 | defined(embedRemovedCountries): 20 | "Removed Countries (embedded data)" 21 | else: 22 | "Removed Countries" 23 | 24 | 25 | template test_afi(c: RemovedCountry) = 26 | check c.name == "French Afars and Issas" 27 | check c.alpha2 == "AI" 28 | check c.alpha3 == "AFI" 29 | check c.alpha4 == "AIDJ" 30 | check c.numeric == "262" 31 | check c.withdrawal_date == "1977" 32 | 33 | 34 | template test_afi_option(c: Option[RemovedCountry]) = 35 | check c.isSome 36 | test_afi(c.get()) 37 | 38 | 39 | proc firstCharInNameIsB(c: RemovedCountry): bool = 40 | c.name.startsWith("B") 41 | 42 | 43 | suite suiteNameRemovedCountries: 44 | test "Can get count": 45 | check RemovedCountry.count() == TOTAL_REMOVED_COUNTRIES 46 | 47 | test "Can get items": 48 | check RemovedCountry.all().len == TOTAL_REMOVED_COUNTRIES 49 | 50 | test "Item not found": 51 | check RemovedCountry.byName("Narnia").isSome == false 52 | check RemovedCountry.byAlpha2("Narnia").isSome == false 53 | check RemovedCountry.byAlpha3("Narnia").isSome == false 54 | check RemovedCountry.byAlpha4("Narnia").isSome == false 55 | check RemovedCountry.byNumeric("00000000").isSome == false 56 | check RemovedCountry.byWithdrawalDate("0000").len == 0 57 | 58 | test "Find by name": 59 | let found = RemovedCountry.byName("French Afars and Issas") 60 | test_afi_option(found) 61 | 62 | test "Find by alpha2": 63 | let found = RemovedCountry.byAlpha2("AI") 64 | test_afi_option(found) 65 | 66 | test "Find by alpha3": 67 | let found = RemovedCountry.byAlpha3("AFI") 68 | test_afi_option(found) 69 | 70 | test "Find by alpha4": 71 | let found = RemovedCountry.byAlpha4("AIDJ") 72 | test_afi_option(found) 73 | 74 | test "Find by numeric": 75 | let found = RemovedCountry.byNumeric("262") 76 | test_afi_option(found) 77 | 78 | test "Find by withdrawal date": 79 | let found = RemovedCountry.byWithdrawalDate("1977") 80 | test_afi(found[0]) 81 | 82 | test "Find by withdrawal date (iterator)": 83 | for c in RemovedCountry.byWithdrawalDateIt("1977"): 84 | test_afi(c) 85 | break 86 | 87 | test "Find by withdrawal year": 88 | let found = RemovedCountry.byWithdrawalYear("1993") 89 | check found.len == 2 90 | 91 | test "Find by withdrawal date (iterator)": 92 | var count = 0 93 | for c in RemovedCountry.byWithdrawalYearIt("1993"): 94 | inc count 95 | check count == 2 96 | 97 | test "Find by predicate (all)": 98 | let found = RemovedCountry.find(firstCharInNameIsB) 99 | check found.len > 0 100 | for c in found: 101 | check c.name.startsWith("B") 102 | 103 | test "Find by predicate (iterator)": 104 | var found = false 105 | for c in RemovedCountry.find(firstCharInNameIsB): 106 | check c.name.startsWith("B") 107 | found = true 108 | check found == true 109 | 110 | test "Find by predicate (first)": 111 | let found = RemovedCountry.findFirst(firstCharInNameIsB) 112 | check found.isSome 113 | check found.get().name.startsWith("B") 114 | 115 | -------------------------------------------------------------------------------- /tests/test/subdivisions.nim: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021 kraptor 2 | # 3 | # This software is released under the MIT License. 4 | # https://opensource.org/licenses/MIT 5 | 6 | # Copyright (c) 2021 kraptor 7 | # 8 | # This software is released under the MIT License. 9 | # https://opensource.org/licenses/MIT 10 | 11 | {.warning[UnusedImport]: off.} 12 | 13 | import unittest 14 | import strutils 15 | import options 16 | 17 | import isocodes 18 | 19 | 20 | const 21 | TOTAL_SUBDIVISIONS = 5046 22 | 23 | suiteNameSubdivisions = when 24 | defined(embedSubdivisions): 25 | "Country subdivisions (embedded data)" 26 | else: 27 | "Country subdivisions" 28 | 29 | 30 | proc firstCharInNameIsE(c: CountrySubdivision): bool = 31 | c.name.startsWith("E") 32 | 33 | 34 | suite suiteNameSubdivisions: 35 | test "Can get count": 36 | check CountrySubdivision.count() == TOTAL_SUBDIVISIONS 37 | 38 | test "Can get item": 39 | check CountrySubdivision.all().len == TOTAL_SUBDIVISIONS 40 | 41 | test "Item not found": 42 | check CountrySubdivision.byName("Narnia").len == 0 43 | check CountrySubdivision.byCode("Narnia").isSome == false 44 | check CountrySubdivision.byType("Narnia").len == 0 45 | check CountrySubdivision.byParent("Narnia").len == 0 46 | 47 | test "Find by code": 48 | let found = CountrySubdivision.byCode("AL-01") 49 | check found.isSome 50 | check found.get().code == "AL-01" 51 | 52 | test "Find by code (start)": 53 | let found = CountrySubdivision.byCodeStart("AL") 54 | check found.len > 0 55 | for item in found: 56 | check item.code.startsWith("AL") 57 | 58 | test "Find by code (start + iterator)": 59 | for item in CountrySubdivision.byCodeStartIt("AL"): 60 | check item.code.startsWith("AL") 61 | 62 | test "Find by country code": 63 | let found = CountrySubdivision.byCountryCode("GB") 64 | check found.len > 0 65 | for item in found: 66 | check item.code.split("-")[0] == "GB" 67 | 68 | test "Find by country code (iterator)": 69 | var found = false 70 | for item in CountrySubdivision.byCountryCodeIt("GB"): 71 | check item.code.split("-")[0] == "GB" 72 | found = true 73 | check found 74 | 75 | test "Find by name (seq)": 76 | let found = CountrySubdivision.byName("Berat") 77 | check found.len > 0 78 | for item in found: 79 | check item.name == "Berat" 80 | 81 | test "Find by name (iterator)": 82 | var found = false 83 | for item in CountrySubdivision.byNameIt("Berat"): 84 | check item.name == "Berat" 85 | found = true 86 | check found 87 | 88 | test "Find by type (seq)": 89 | let found = CountrySubdivision.byType("County") 90 | check found.len > 0 91 | for item in found: 92 | check item.`type` == "County" 93 | 94 | test "Find by type (iterator)": 95 | var found = false 96 | for item in CountrySubdivision.byTypeIt("County"): 97 | check item.`type` == "County" 98 | found = true 99 | check found 100 | 101 | test "Find by parent code (seq)": 102 | var found = CountrySubdivision.byParent("AZ-NX") 103 | check found.len > 0 104 | for item in found: 105 | check item.parent == "AZ-NX" 106 | 107 | test "Find by parent code (iterator)": 108 | var found = false 109 | for item in CountrySubdivision.byParent("AZ-NX"): 110 | check item.parent == "AZ-NX" 111 | found = true 112 | check found 113 | 114 | test "Find by predicate (all)": 115 | var found = false 116 | for c in CountrySubdivision.findIt(firstCharInNameIsE): 117 | check c.name.startsWith("E") 118 | found = true 119 | check found 120 | 121 | test "Find by predicate (iterator)": 122 | var found = false 123 | for c in CountrySubdivision.find(firstCharInNameIsE): 124 | check c.name.startsWith("E") 125 | found = true 126 | check found == true 127 | 128 | test "Find by predicate (first)": 129 | let found = CountrySubdivision.findFirst(firstCharInNameIsE) 130 | check found.isSome 131 | check found.get().name.startsWith("E") -------------------------------------------------------------------------------- /src/isocodes/resources/iso_3166-3.json: -------------------------------------------------------------------------------- 1 | { 2 | "3166-3": [ 3 | { 4 | "alpha_2": "AI", 5 | "alpha_3": "AFI", 6 | "alpha_4": "AIDJ", 7 | "name": "French Afars and Issas", 8 | "numeric": "262", 9 | "withdrawal_date": "1977" 10 | }, 11 | { 12 | "alpha_2": "AN", 13 | "alpha_3": "ANT", 14 | "alpha_4": "ANHH", 15 | "comment": "had numeric code 532 until Aruba split away in 1986", 16 | "name": "Netherlands Antilles", 17 | "numeric": "530", 18 | "withdrawal_date": "2010-12-15" 19 | }, 20 | { 21 | "alpha_2": "BQ", 22 | "alpha_3": "ATB", 23 | "alpha_4": "BQAQ", 24 | "name": "British Antarctic Territory", 25 | "withdrawal_date": "1979" 26 | }, 27 | { 28 | "alpha_2": "BU", 29 | "alpha_3": "BUR", 30 | "alpha_4": "BUMM", 31 | "name": "Burma, Socialist Republic of the Union of", 32 | "numeric": "104", 33 | "withdrawal_date": "1989-12-05" 34 | }, 35 | { 36 | "alpha_2": "BY", 37 | "alpha_3": "BYS", 38 | "alpha_4": "BYAA", 39 | "name": "Byelorussian SSR Soviet Socialist Republic", 40 | "numeric": "112", 41 | "withdrawal_date": "1992-06-15" 42 | }, 43 | { 44 | "alpha_2": "CS", 45 | "alpha_3": "CSK", 46 | "alpha_4": "CSHH", 47 | "name": "Czechoslovakia, Czechoslovak Socialist Republic", 48 | "numeric": "200", 49 | "withdrawal_date": "1993-06-15" 50 | }, 51 | { 52 | "alpha_2": "CS", 53 | "alpha_3": "SCG", 54 | "alpha_4": "CSXX", 55 | "name": "Serbia and Montenegro", 56 | "numeric": "891", 57 | "withdrawal_date": "2006-09-26" 58 | }, 59 | { 60 | "alpha_2": "CT", 61 | "alpha_3": "CTE", 62 | "alpha_4": "CTKI", 63 | "name": "Canton and Enderbury Islands", 64 | "numeric": "128", 65 | "withdrawal_date": "1984" 66 | }, 67 | { 68 | "alpha_2": "DD", 69 | "alpha_3": "DDR", 70 | "alpha_4": "DDDE", 71 | "name": "German Democratic Republic", 72 | "numeric": "278", 73 | "withdrawal_date": "1990-10-30" 74 | }, 75 | { 76 | "alpha_2": "DY", 77 | "alpha_3": "DHY", 78 | "alpha_4": "DYBJ", 79 | "name": "Dahomey", 80 | "numeric": "204", 81 | "withdrawal_date": "1977" 82 | }, 83 | { 84 | "alpha_2": "FQ", 85 | "alpha_3": "ATF", 86 | "alpha_4": "FQHH", 87 | "comment": "now split between AQ and TF", 88 | "name": "French Southern and Antarctic Territories", 89 | "withdrawal_date": "1979" 90 | }, 91 | { 92 | "alpha_2": "FX", 93 | "alpha_3": "FXX", 94 | "alpha_4": "FXFR", 95 | "name": "France, Metropolitan", 96 | "numeric": "249", 97 | "withdrawal_date": "1997-07-14" 98 | }, 99 | { 100 | "alpha_2": "GE", 101 | "alpha_3": "GEL", 102 | "alpha_4": "GEHH", 103 | "comment": "now split into Kiribati and Tuvalu", 104 | "name": "Gilbert and Ellice Islands", 105 | "numeric": "296", 106 | "withdrawal_date": "1979" 107 | }, 108 | { 109 | "alpha_2": "HV", 110 | "alpha_3": "HVO", 111 | "alpha_4": "HVBF", 112 | "name": "Upper Volta, Republic of", 113 | "numeric": "854", 114 | "withdrawal_date": "1984" 115 | }, 116 | { 117 | "alpha_2": "JT", 118 | "alpha_3": "JTN", 119 | "alpha_4": "JTUM", 120 | "name": "Johnston Island", 121 | "numeric": "396", 122 | "withdrawal_date": "1986" 123 | }, 124 | { 125 | "alpha_2": "MI", 126 | "alpha_3": "MID", 127 | "alpha_4": "MIUM", 128 | "name": "Midway Islands", 129 | "numeric": "488", 130 | "withdrawal_date": "1986" 131 | }, 132 | { 133 | "alpha_2": "NH", 134 | "alpha_3": "NHB", 135 | "alpha_4": "NHVU", 136 | "name": "New Hebrides", 137 | "numeric": "548", 138 | "withdrawal_date": "1980" 139 | }, 140 | { 141 | "alpha_2": "NQ", 142 | "alpha_3": "ATN", 143 | "alpha_4": "NQAQ", 144 | "name": "Dronning Maud Land", 145 | "numeric": "216", 146 | "withdrawal_date": "1983" 147 | }, 148 | { 149 | "alpha_2": "NT", 150 | "alpha_3": "NTZ", 151 | "alpha_4": "NTHH", 152 | "comment": "formerly between Saudi Arabia and Iraq", 153 | "name": "Neutral Zone", 154 | "numeric": "536", 155 | "withdrawal_date": "1993-07-12" 156 | }, 157 | { 158 | "alpha_2": "PC", 159 | "alpha_3": "PCI", 160 | "alpha_4": "PCHH", 161 | "comment": "divided into FM, MH, MP, and PW", 162 | "name": "Pacific Islands (trust territory)", 163 | "numeric": "582", 164 | "withdrawal_date": "1986" 165 | }, 166 | { 167 | "alpha_2": "PU", 168 | "alpha_3": "PUS", 169 | "alpha_4": "PUUM", 170 | "name": "US Miscellaneous Pacific Islands", 171 | "numeric": "849", 172 | "withdrawal_date": "1986" 173 | }, 174 | { 175 | "alpha_2": "PZ", 176 | "alpha_3": "PCZ", 177 | "alpha_4": "PZPA", 178 | "name": "Panama Canal Zone", 179 | "withdrawal_date": "1980" 180 | }, 181 | { 182 | "alpha_2": "RH", 183 | "alpha_3": "RHO", 184 | "alpha_4": "RHZW", 185 | "name": "Southern Rhodesia", 186 | "numeric": "716", 187 | "withdrawal_date": "1980" 188 | }, 189 | { 190 | "alpha_2": "SK", 191 | "alpha_3": "SKM", 192 | "alpha_4": "SKIN", 193 | "name": "Sikkim", 194 | "withdrawal_date": "1975" 195 | }, 196 | { 197 | "alpha_2": "SU", 198 | "alpha_3": "SUN", 199 | "alpha_4": "SUHH", 200 | "name": "USSR, Union of Soviet Socialist Republics", 201 | "numeric": "810", 202 | "withdrawal_date": "1992-08-30" 203 | }, 204 | { 205 | "alpha_2": "TP", 206 | "alpha_3": "TMP", 207 | "alpha_4": "TPTL", 208 | "comment": "was Portuguese Timor", 209 | "name": "East Timor", 210 | "numeric": "626", 211 | "withdrawal_date": "2002-05-20" 212 | }, 213 | { 214 | "alpha_2": "VD", 215 | "alpha_3": "VDR", 216 | "alpha_4": "VDVN", 217 | "name": "Viet-Nam, Democratic Republic of", 218 | "withdrawal_date": "1977" 219 | }, 220 | { 221 | "alpha_2": "WK", 222 | "alpha_3": "WAK", 223 | "alpha_4": "WKUM", 224 | "name": "Wake Island", 225 | "numeric": "872", 226 | "withdrawal_date": "1986" 227 | }, 228 | { 229 | "alpha_2": "YD", 230 | "alpha_3": "YMD", 231 | "alpha_4": "YDYE", 232 | "name": "Yemen, Democratic, People's Democratic Republic of", 233 | "numeric": "720", 234 | "withdrawal_date": "1990-08-14" 235 | }, 236 | { 237 | "alpha_2": "YU", 238 | "alpha_3": "YUG", 239 | "alpha_4": "YUCS", 240 | "comment": "had numeric code 890 until the 'Socialist Federal Republic of Yugoslavia' formerly broke apart on 27 April 1992 and the 'Federal Republic of Yugoslavia' was founded", 241 | "name": "Yugoslavia, (Socialist) Federal Republic of", 242 | "numeric": "891", 243 | "withdrawal_date": "2003-07-23" 244 | }, 245 | { 246 | "alpha_2": "ZR", 247 | "alpha_3": "ZAR", 248 | "alpha_4": "ZRCD", 249 | "name": "Zaire, Republic of", 250 | "numeric": "180", 251 | "withdrawal_date": "1997-07-14" 252 | } 253 | ] 254 | } 255 | -------------------------------------------------------------------------------- /src/isocodes/resources/iso_639-5.json: -------------------------------------------------------------------------------- 1 | { 2 | "639-5": [ 3 | { 4 | "alpha_3": "aav", 5 | "name": "Austro-Asiatic languages" 6 | }, 7 | { 8 | "alpha_3": "afa", 9 | "name": "Afro-Asiatic languages" 10 | }, 11 | { 12 | "alpha_3": "alg", 13 | "name": "Algonquian languages" 14 | }, 15 | { 16 | "alpha_3": "alv", 17 | "name": "Atlantic-Congo languages" 18 | }, 19 | { 20 | "alpha_3": "apa", 21 | "name": "Apache languages" 22 | }, 23 | { 24 | "alpha_3": "aqa", 25 | "name": "Alacalufan languages" 26 | }, 27 | { 28 | "alpha_3": "aql", 29 | "name": "Algic languages" 30 | }, 31 | { 32 | "alpha_3": "art", 33 | "name": "Artificial languages" 34 | }, 35 | { 36 | "alpha_3": "ath", 37 | "name": "Athapascan languages" 38 | }, 39 | { 40 | "alpha_3": "auf", 41 | "name": "Arauan languages" 42 | }, 43 | { 44 | "alpha_3": "aus", 45 | "name": "Australian languages" 46 | }, 47 | { 48 | "alpha_3": "awd", 49 | "name": "Arawakan languages" 50 | }, 51 | { 52 | "alpha_3": "azc", 53 | "name": "Uto-Aztecan languages" 54 | }, 55 | { 56 | "alpha_3": "bad", 57 | "name": "Banda languages" 58 | }, 59 | { 60 | "alpha_3": "bai", 61 | "name": "Bamileke languages" 62 | }, 63 | { 64 | "alpha_3": "bat", 65 | "name": "Baltic languages" 66 | }, 67 | { 68 | "alpha_3": "ber", 69 | "name": "Berber languages" 70 | }, 71 | { 72 | "alpha_3": "bih", 73 | "name": "Bihari languages" 74 | }, 75 | { 76 | "alpha_3": "bnt", 77 | "name": "Bantu languages" 78 | }, 79 | { 80 | "alpha_3": "btk", 81 | "name": "Batak languages" 82 | }, 83 | { 84 | "alpha_3": "cai", 85 | "name": "Central American Indian languages" 86 | }, 87 | { 88 | "alpha_3": "cau", 89 | "name": "Caucasian languages" 90 | }, 91 | { 92 | "alpha_3": "cba", 93 | "name": "Chibchan languages" 94 | }, 95 | { 96 | "alpha_3": "ccn", 97 | "name": "North Caucasian languages" 98 | }, 99 | { 100 | "alpha_3": "ccs", 101 | "name": "South Caucasian languages" 102 | }, 103 | { 104 | "alpha_3": "cdc", 105 | "name": "Chadic languages" 106 | }, 107 | { 108 | "alpha_3": "cdd", 109 | "name": "Caddoan languages" 110 | }, 111 | { 112 | "alpha_3": "cel", 113 | "name": "Celtic languages" 114 | }, 115 | { 116 | "alpha_3": "cmc", 117 | "name": "Chamic languages" 118 | }, 119 | { 120 | "alpha_3": "cpe", 121 | "name": "Creoles and pidgins, English‑based" 122 | }, 123 | { 124 | "alpha_3": "cpf", 125 | "name": "Creoles and pidgins, French‑based" 126 | }, 127 | { 128 | "alpha_3": "cpp", 129 | "name": "Creoles and pidgins, Portuguese-based" 130 | }, 131 | { 132 | "alpha_3": "crp", 133 | "name": "Creoles and pidgins" 134 | }, 135 | { 136 | "alpha_3": "csu", 137 | "name": "Central Sudanic languages" 138 | }, 139 | { 140 | "alpha_3": "cus", 141 | "name": "Cushitic languages" 142 | }, 143 | { 144 | "alpha_3": "day", 145 | "name": "Land Dayak languages" 146 | }, 147 | { 148 | "alpha_3": "dmn", 149 | "name": "Mande languages" 150 | }, 151 | { 152 | "alpha_3": "dra", 153 | "name": "Dravidian languages" 154 | }, 155 | { 156 | "alpha_3": "egx", 157 | "name": "Egyptian languages" 158 | }, 159 | { 160 | "alpha_3": "esx", 161 | "name": "Eskimo-Aleut languages" 162 | }, 163 | { 164 | "alpha_3": "euq", 165 | "name": "Basque (family)" 166 | }, 167 | { 168 | "alpha_3": "fiu", 169 | "name": "Finno-Ugrian languages" 170 | }, 171 | { 172 | "alpha_3": "fox", 173 | "name": "Formosan languages" 174 | }, 175 | { 176 | "alpha_3": "gem", 177 | "name": "Germanic languages" 178 | }, 179 | { 180 | "alpha_3": "gme", 181 | "name": "East Germanic languages" 182 | }, 183 | { 184 | "alpha_3": "gmq", 185 | "name": "North Germanic languages" 186 | }, 187 | { 188 | "alpha_3": "gmw", 189 | "name": "West Germanic languages" 190 | }, 191 | { 192 | "alpha_3": "grk", 193 | "name": "Greek languages" 194 | }, 195 | { 196 | "alpha_3": "hmx", 197 | "name": "Hmong-Mien languages" 198 | }, 199 | { 200 | "alpha_3": "hok", 201 | "name": "Hokan languages" 202 | }, 203 | { 204 | "alpha_3": "hyx", 205 | "name": "Armenian (family)" 206 | }, 207 | { 208 | "alpha_3": "iir", 209 | "name": "Indo-Iranian languages" 210 | }, 211 | { 212 | "alpha_3": "ijo", 213 | "name": "Ijo languages" 214 | }, 215 | { 216 | "alpha_3": "inc", 217 | "name": "Indic languages" 218 | }, 219 | { 220 | "alpha_3": "ine", 221 | "name": "Indo-European languages" 222 | }, 223 | { 224 | "alpha_3": "ira", 225 | "name": "Iranian languages" 226 | }, 227 | { 228 | "alpha_3": "iro", 229 | "name": "Iroquoian languages" 230 | }, 231 | { 232 | "alpha_3": "itc", 233 | "name": "Italic languages" 234 | }, 235 | { 236 | "alpha_3": "jpx", 237 | "name": "Japanese (family)" 238 | }, 239 | { 240 | "alpha_3": "kar", 241 | "name": "Karen languages" 242 | }, 243 | { 244 | "alpha_3": "kdo", 245 | "name": "Kordofanian languages" 246 | }, 247 | { 248 | "alpha_3": "khi", 249 | "name": "Khoisan languages" 250 | }, 251 | { 252 | "alpha_3": "kro", 253 | "name": "Kru languages" 254 | }, 255 | { 256 | "alpha_3": "map", 257 | "name": "Austronesian languages" 258 | }, 259 | { 260 | "alpha_3": "mkh", 261 | "name": "Mon-Khmer languages" 262 | }, 263 | { 264 | "alpha_3": "mno", 265 | "name": "Manobo languages" 266 | }, 267 | { 268 | "alpha_3": "mun", 269 | "name": "Munda languages" 270 | }, 271 | { 272 | "alpha_3": "myn", 273 | "name": "Mayan languages" 274 | }, 275 | { 276 | "alpha_3": "nah", 277 | "name": "Nahuatl languages" 278 | }, 279 | { 280 | "alpha_3": "nai", 281 | "name": "North American Indian languages" 282 | }, 283 | { 284 | "alpha_3": "ngf", 285 | "name": "Trans-New Guinea languages" 286 | }, 287 | { 288 | "alpha_3": "nic", 289 | "name": "Niger-Kordofanian languages" 290 | }, 291 | { 292 | "alpha_3": "nub", 293 | "name": "Nubian languages" 294 | }, 295 | { 296 | "alpha_3": "omq", 297 | "name": "Oto-Manguean languages" 298 | }, 299 | { 300 | "alpha_3": "omv", 301 | "name": "Omotic languages" 302 | }, 303 | { 304 | "alpha_3": "oto", 305 | "name": "Otomian languages" 306 | }, 307 | { 308 | "alpha_3": "paa", 309 | "name": "Papuan languages" 310 | }, 311 | { 312 | "alpha_3": "phi", 313 | "name": "Philippine languages" 314 | }, 315 | { 316 | "alpha_3": "plf", 317 | "name": "Central Malayo-Polynesian languages" 318 | }, 319 | { 320 | "alpha_3": "poz", 321 | "name": "Malayo-Polynesian languages" 322 | }, 323 | { 324 | "alpha_3": "pqe", 325 | "name": "Eastern Malayo-Polynesian languages" 326 | }, 327 | { 328 | "alpha_3": "pqw", 329 | "name": "Western Malayo-Polynesian languages" 330 | }, 331 | { 332 | "alpha_3": "pra", 333 | "name": "Prakrit languages" 334 | }, 335 | { 336 | "alpha_3": "qwe", 337 | "name": "Quechuan (family)" 338 | }, 339 | { 340 | "alpha_3": "roa", 341 | "name": "Romance languages" 342 | }, 343 | { 344 | "alpha_3": "sai", 345 | "name": "South American Indian languages" 346 | }, 347 | { 348 | "alpha_3": "sal", 349 | "name": "Salishan languages" 350 | }, 351 | { 352 | "alpha_3": "sdv", 353 | "name": "Eastern Sudanic languages" 354 | }, 355 | { 356 | "alpha_3": "sem", 357 | "name": "Semitic languages" 358 | }, 359 | { 360 | "alpha_3": "sgn", 361 | "name": "sign languages" 362 | }, 363 | { 364 | "alpha_3": "sio", 365 | "name": "Siouan languages" 366 | }, 367 | { 368 | "alpha_3": "sit", 369 | "name": "Sino-Tibetan languages" 370 | }, 371 | { 372 | "alpha_3": "sla", 373 | "name": "Slavic languages" 374 | }, 375 | { 376 | "alpha_3": "smi", 377 | "name": "Sami languages" 378 | }, 379 | { 380 | "alpha_3": "son", 381 | "name": "Songhai languages" 382 | }, 383 | { 384 | "alpha_3": "sqj", 385 | "name": "Albanian languages" 386 | }, 387 | { 388 | "alpha_3": "ssa", 389 | "name": "Nilo-Saharan languages" 390 | }, 391 | { 392 | "alpha_3": "syd", 393 | "name": "Samoyedic languages" 394 | }, 395 | { 396 | "alpha_3": "tai", 397 | "name": "Tai languages" 398 | }, 399 | { 400 | "alpha_3": "tbq", 401 | "name": "Tibeto-Burman languages" 402 | }, 403 | { 404 | "alpha_3": "trk", 405 | "name": "Turkic languages" 406 | }, 407 | { 408 | "alpha_3": "tup", 409 | "name": "Tupi languages" 410 | }, 411 | { 412 | "alpha_3": "tut", 413 | "name": "Altaic languages" 414 | }, 415 | { 416 | "alpha_3": "tuw", 417 | "name": "Tungus languages" 418 | }, 419 | { 420 | "alpha_3": "urj", 421 | "name": "Uralic languages" 422 | }, 423 | { 424 | "alpha_3": "wak", 425 | "name": "Wakashan languages" 426 | }, 427 | { 428 | "alpha_3": "wen", 429 | "name": "Sorbian languages" 430 | }, 431 | { 432 | "alpha_3": "xgn", 433 | "name": "Mongolian languages" 434 | }, 435 | { 436 | "alpha_3": "xnd", 437 | "name": "Na-Dene languages" 438 | }, 439 | { 440 | "alpha_3": "ypk", 441 | "name": "Yupik languages" 442 | }, 443 | { 444 | "alpha_3": "zhx", 445 | "name": "Chinese (family)" 446 | }, 447 | { 448 | "alpha_3": "zle", 449 | "name": "East Slavic languages" 450 | }, 451 | { 452 | "alpha_3": "zls", 453 | "name": "South Slavic languages" 454 | }, 455 | { 456 | "alpha_3": "zlw", 457 | "name": "West Slavic languages" 458 | }, 459 | { 460 | "alpha_3": "znd", 461 | "name": "Zande languages" 462 | } 463 | ] 464 | } 465 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 7 | 8 | [![made-with-nim](https://img.shields.io/badge/Made%20with-Nim-ffc200.svg)](https://nim-lang.org/) ![Build](https://github.com/kraptor/isocodes/workflows/Build/badge.svg) 9 | 10 | # `isocodes` 11 | 12 | ISO codes for Nim. 13 | 14 | Supports loading the data at runtime or embedding it within the executable 15 | 16 | Provides the utility `isocodes_download` to download latest JSON packages when 17 | you don't want to use the provided ones (or if they become obsolete). 18 | 19 | By default all data is embedded within the executable. See section [Compilation flags](#compilation-flags) on how to specify the files to load/embed and how to 20 | load the data at runtime if you need to. 21 | 22 | ## Supported ISO standards 23 | 24 | | ISO | Description | Library type | 25 | |-|-|-| 26 | | ISO 3166-1 | Name of countries | `Country` | 27 | | ISO 3166-2 | Country subdivisions | `CountrySubdivision`| 28 | | ISO 3166-3 | Countries removed from the standard. | `RemovedCountry` | 29 | | ISO 15924 | Language scripts | `Script` | 30 | | ISO 4217 | Currencies | `Currency` | 31 | | ISO 639-2 | Languages | `Language` | 32 | | ISO 639-5 | Language Families | `LanguageFamily` | 33 | 34 | ## Example 35 | 36 | ```nim 37 | import isocodes 38 | 39 | if isMainModule: 40 | for c in Country.allIt(): 41 | echo c.name 42 | ``` 43 | 44 | ## API 45 | 46 | All procedures/iterators can be accessed by using the corresponding type. 47 | For example: `Country`. 48 | 49 | Procedures either return an `Option[T]` object or a `seq[T]` (when multiple 50 | values can be requested). 51 | 52 | > **IMPORTANT**: Procedures ending in `It` return an iterator, instead of a 53 | `seq[T]`, if you don't want to store/build a copy of the data requested. 54 | 55 | ### Country API 56 | 57 | #### Country Attributes 58 | 59 | The following attributes are available for each `Country` instance: 60 | 61 | | Attribute | Description | 62 | |-|-| 63 | |`name` | Country name. | 64 | |`official_name`| Official name of the country. | 65 | |`common_name` | Common name for the country. | 66 | |`alpha_2` | Country ISO code (2 characters).| 67 | |`alpha_3` | Country ISO code (3 characters).| 68 | |`numeric` | Numeric code for the country. **NOTE**: this is a string. | 69 | |`flag` | Flag emoji for the country. | 70 | 71 | #### Country Procedures 72 | 73 | | Procedure | Description | 74 | |-|-| 75 | |`.count()` | Number of countries | 76 | |`.all()` | `seq` for all countries. | 77 | |`.allIt()` | Iterator for all countries. | 78 | |`.byName(str)` | `Option[Country]` with the specified name. | 79 | |`.byAlpha2(str)` | `Option[Country]` with the specified alpha2 code. | 80 | |`.byAlpha3(str)` | `Option[Country]` with the specified alpha3 code. | 81 | |`.byNumeric(str)` | `Option[Country]` with the specified numeric code. | 82 | |`.byOfficialName(str)`| `Option[Country]` with the specified official name. | 83 | |`.byCommonName(str)` | `Option[Country]` with the specified common name. | 84 | |`.find(proc)` | `seq` for all countries that proc evaluates to `true`. | 85 | |`.findIt(proc)` | Iterator for all countries that proc evaluates to `true`.| 86 | |`.findFirst(proc)` | `Option[Country]` were proc evaluates to `true`. | 87 | 88 | ### CountrySubdivision API 89 | 90 | #### CountrySubdivision Attributes 91 | 92 | | Attribute | Description | 93 | |-|-| 94 | |`code` | Subdivision code. | 95 | |`name` | Name of the subdivision. | 96 | |`type` | Type of the subdivision.
**NOTE**: use [stropping](https://en.wikipedia.org/wiki/Nim_%28programming_language%29#Stropping) to access this field because type is a reserved word.
Example: ``echo subdivision.`type` ``.| 97 | |`parent` | Parent code.| 98 | 99 | #### CountrySubdivision Procedures 100 | 101 | | Procedure | Description | 102 | |-|-| 103 | |`.count()` | Number of subdivisions | 104 | |`.all()` | `seq` for all subdivisions. | 105 | |`.allIt()` | Iterator for all subdivisions. | 106 | |`.byCountryCode(str)` | `seq` for subdivisions for an specific country code. | 107 | |`.byCountryCodeIt(str)`| Iterator for subdivisions for an specific country code. | 108 | |`.byCode(str)` | `seq` for subdivisions by specified code. | 109 | |`.byCodeIt(str)` | Iterator for subdivisions specified by code. | 110 | |`.byCodeStart(str)` | `seq` for subdivisions where code starts by a value. | 111 | |`.byCodeStartIt(str)` | Iterator subdivisions where code starts by a value. | 112 | |`.byName(str)` | `seq` for subdivisions with specified name. | 113 | |`.byNameIt(str)` | Iterator for subdivisions with specified name. | 114 | |`.byType(str)` | `seq` for subdivisions with the specified type. | 115 | |`.byTypeIt(str)` | Iterator for subdivisions with the specified type. | 116 | |`.byParent(str)` | `seq` for subdivisions with the specified parent value. | 117 | |`.byParentIt(str)` | Iterator for subdivisions with the specified parent value. | 118 | |`.find(proc)` | `seq` for all subdivisions that proc evaluates to `true`. | 119 | |`.findIt(proc)` | Iterator for all subdivisions that proc evaluates to `true`.| 120 | |`.findFirst(proc)` | `Option[CountrySubdivision]` were proc evaluates to `true`. | 121 | 122 | ### RemovedCountry API 123 | 124 | #### RemovedCountry Attributes 125 | 126 | | Attribute | Description | 127 | |-|-| 128 | |`name` | Country name. | 129 | |`official_name` | Official name of the country. | 130 | |`alpha_2` | Country ISO code (2 characters). | 131 | |`alpha_3` | Country ISO code (3 characters). | 132 | |`alpha_4` | Country ISO code (4 characters). | 133 | |`numeric` | Numeric code for the country.
**NOTE**: this is a string.| 134 | |`comment` | Comment about the country. | 135 | |`withdrawal_date`| Date of withdrawal (format: YYYY or YYYY-MM-DD)
**NOTE**: this is a string.| 136 | 137 | #### RemovedCountry Procedures 138 | 139 | | Procedure | Description | 140 | |-|-| 141 | |`.count()` | Number of countries | 142 | |`.all()` | `seq` for all countries. | 143 | |`.allIt()` | Iterator for all countries. | 144 | |`.byName(str)` | `Option[Country]` with the specified name. | 145 | |`.byAlpha2(str)` | `Option[Country]` with the specified alpha2 code. | 146 | |`.byAlpha3(str)` | `Option[Country]` with the specified alpha3 code. | 147 | |`.byAlpha4(str)` | `Option[Country]` with the specified alpha4 code. | 148 | |`.byNumeric(str)` | `Option[Country]` with the specified numeric code. | 149 | |`.byWithdrawalDate(str)` | `seq` for all countries with specified date. | 150 | |`.byWithdrawalDateIt(str)`| Iterator all countries with specified date. | 151 | |`.byWithdrawalYear(str)` | `seq` for all countries with specified year. | 152 | |`.byWithdrawalYearIt(str)`| Iterator all countries with specified year. | 153 | |`.find(proc)` | `seq` for all countries that proc evaluates to `true`. | 154 | |`.findIt(proc)` | Iterator for all countries that proc evaluates to `true`.| 155 | |`.findFirst(proc)` | `Option[Country]` were proc evaluates to `true`. | 156 | 157 | ### Script API 158 | 159 | #### Script Attributes 160 | 161 | | Attribute | Description | 162 | |-|-| 163 | |`name` | Script name. | 164 | |`alpha_4` | Script ISO code (4 characters). | 165 | |`numeric` | Numeric code for the script.
**NOTE**: this is a string.| 166 | 167 | #### Script Procedures 168 | 169 | | Procedure | Description | 170 | |-|-| 171 | |`.count()` | Number of scripts | 172 | |`.all()` | `seq` for all scripts. | 173 | |`.allIt()` | Iterator for all scripts. | 174 | |`.byName(str)` | `Option[Script]` with the specified name. | 175 | |`.byAlpha4(str)` | `Option[Script]` with the specified alpha4 code. | 176 | |`.byNumeric(str)` | `Option[Script]` with the specified numeric code. | 177 | |`.find(proc)` | `seq` for all scripts that proc evaluates to `true`. | 178 | |`.findIt(proc)` | Iterator for all scripts that proc evaluates to `true`. | 179 | |`.findFirst(proc)`| `Option[Script]` were proc evaluates to `true`. | 180 | 181 | ### Currency API 182 | 183 | #### Currency Attributes 184 | 185 | | Attribute | Description | 186 | |-|-| 187 | |`name` | Currency name. | 188 | |`alpha_3` | Currency ISO code (3 characters). | 189 | |`numeric` | Numeric code for the currency.
**NOTE**: this is a string.| 190 | 191 | #### Currency Procedures 192 | 193 | | Procedure | Description | 194 | |-|-| 195 | |`.count()` | Number of currencies. | 196 | |`.all()` | `seq` for all currencies. | 197 | |`.allIt()` | Iterator for all currencies. | 198 | |`.byName(str)` | `Option[Currency]` with the specified name. | 199 | |`.byAlpha3(str)` | `Option[Currency]` with the specified alpha3 code. | 200 | |`.byNumeric(str)` | `Option[Currency]` with the specified numeric code. | 201 | |`.find(proc)` | `seq` for all currencies that proc evaluates to `true`. | 202 | |`.findIt(proc)` | Iterator for all currencies that proc evaluates to `true`.| 203 | |`.findFirst(proc)`| `Option[Currency]` were proc evaluates to `true`. | 204 | 205 | ### Language API 206 | 207 | #### Language Attributes 208 | 209 | | Attribute | Description | 210 | |-|-| 211 | |`name` | Language name. | 212 | |`alpha_2` | Language ISO code (2 characters). | 213 | |`alpha_3` | Language ISO code (3 characters). | 214 | |`common_name` | Language common name. | 215 | |`bibliographic` | Language bibliographic code. | 216 | 217 | #### Language Procedures 218 | 219 | | Procedure | Description | 220 | |-|-| 221 | |`.count()` | Number of languages. | 222 | |`.all()` | `seq` for all languages. | 223 | |`.allIt()` | Iterator for all languages. | 224 | |`.byName(str)` | `Option[Language]` with the specified name. | 225 | |`.byCommonName(str)` | `Option[Language]` with the specified common name. | 226 | |`.byAlpha2(str)` | `Option[Language]` with the specified alpha2 code. | 227 | |`.byAlpha3(str)` | `Option[Language]` with the specified alpha3 code. | 228 | |`.byBibliographic(str)`| `Option[Language]` with the specified bibliographic code.| 229 | |`.find(proc)` | `seq` for all languages that proc evaluates to `true`. | 230 | |`.findIt(proc)` | Iterator for all languages that proc evaluates to `true`.| 231 | |`.findFirst(proc)` | `Option[Language]` were proc evaluates to `true`. | 232 | 233 | ### LanguageFamily API 234 | 235 | #### LanguageFamily Attributes 236 | 237 | | Attribute | Description | 238 | |-|-| 239 | |`name` | Language family name. | 240 | |`alpha_3` | Language family ISO code (3 characters). | 241 | 242 | #### LanguageFamily Procedures 243 | 244 | | Procedure | Description | 245 | |-|-| 246 | |`.count()` | Number of language families. | 247 | |`.all()` | `seq` for all language families. | 248 | |`.allIt()` | Iterator for all language families. | 249 | |`.byName(str)` | `Option[LanguageFamily]` with the specified name. | 250 | |`.byAlpha3(str)` | `Option[LanguageFamily]` with the specified alpha3 code. | 251 | |`.find(proc)` | `seq` for all language families that proc evaluates to `true`. | 252 | |`.findIt(proc)` | Iterator for all language families that proc evaluates to `true`.| 253 | |`.findFirst(proc)` | `Option[LanguageFamily]` were proc evaluates to `true`. | 254 | 255 | ## Compilation flags 256 | 257 | With the following flags it's possible to embed the data (or not) and specify the JSON 258 | file to embed/load. This could be useful if the provided files are outdated and you want 259 | to provide your own files, or if you want to load the data at runtime. 260 | 261 | | Flag | Comment | 262 | |-|-| 263 | | **Countries** 264 | |`-d:embedCountries=true` | Embed countries data within the executable. | 265 | |`-d:embedCountries=false` | Load countries data at runtime. | 266 | |`-d:useCountriesFile=PATH` | Use a specific countries JSON file. | 267 | | **Country Subdivisions** 268 | |`-d:embedSubdivisions=true` | Embed subdivisions data within the executable. | 269 | |`-d:embedSubdivisions=false` | Load subdivisions data at runtime. | 270 | |`-d:useSubdivisionsFile=PATH` | Use a specific subdivisions JSON file. | 271 | | **Removed Countries** 272 | |`-d:embedRemovedCountries=true` | Embed removed countries data within the executable.| 273 | |`-d:embedRemovedCountries=false` | Load removed countries data at runtime. | 274 | |`-d:useRemovedCountriesFile=PATH`| Use a specific removed countries JSON file. | 275 | | **Scripts** 276 | |`-d:embedScripts=true` | Embed scripts data within the executable.| 277 | |`-d:embedScripts=false` | Load scripts data at runtime. | 278 | |`-d:useScriptsFile=PATH`| Use a specific scripts JSON file. | 279 | | **Currencies** 280 | |`-d:embedCurrencies=true` | Embed currencies data within the executable.| 281 | |`-d:embedCurrencies=false` | Load currencies data at runtime. | 282 | |`-d:useCurrenciesFile=PATH`| Use a specific currencies JSON file. | 283 | | **Language** 284 | |`-d:embedLanguages=true` | Embed languages data within the executable.| 285 | |`-d:embedLanguages=false` | Load languages data at runtime. | 286 | |`-d:useLanguagesFile=PATH`| Use a specific languages JSON file. | 287 | | **Language Families** 288 | |`-d:embedLanguageFamilies=true` | Embed language families data within the executable.| 289 | |`-d:embedLanguageFamilies=false` | Load language families data at runtime. | 290 | |`-d:useLanguageFamiliesFile=PATH`| Use a specific language families JSON file. | 291 | 292 | ## Source 293 | 294 | The ISO codes JSON files are synced verbatim from Debian's `iso-codes` 295 | repository here: 296 | 297 | - 298 | -------------------------------------------------------------------------------- /src/isocodes/resources/iso_4217.json: -------------------------------------------------------------------------------- 1 | { 2 | "4217": [ 3 | { 4 | "alpha_3": "AED", 5 | "name": "UAE Dirham", 6 | "numeric": "784" 7 | }, 8 | { 9 | "alpha_3": "AFN", 10 | "name": "Afghani", 11 | "numeric": "971" 12 | }, 13 | { 14 | "alpha_3": "ALL", 15 | "name": "Lek", 16 | "numeric": "008" 17 | }, 18 | { 19 | "alpha_3": "AMD", 20 | "name": "Armenian Dram", 21 | "numeric": "051" 22 | }, 23 | { 24 | "alpha_3": "ANG", 25 | "name": "Netherlands Antillean Guilder", 26 | "numeric": "532" 27 | }, 28 | { 29 | "alpha_3": "AOA", 30 | "name": "Kwanza", 31 | "numeric": "973" 32 | }, 33 | { 34 | "alpha_3": "ARS", 35 | "name": "Argentine Peso", 36 | "numeric": "032" 37 | }, 38 | { 39 | "alpha_3": "AUD", 40 | "name": "Australian Dollar", 41 | "numeric": "036" 42 | }, 43 | { 44 | "alpha_3": "AWG", 45 | "name": "Aruban Florin", 46 | "numeric": "533" 47 | }, 48 | { 49 | "alpha_3": "AZN", 50 | "name": "Azerbaijan Manat", 51 | "numeric": "944" 52 | }, 53 | { 54 | "alpha_3": "BAM", 55 | "name": "Convertible Mark", 56 | "numeric": "977" 57 | }, 58 | { 59 | "alpha_3": "BBD", 60 | "name": "Barbados Dollar", 61 | "numeric": "052" 62 | }, 63 | { 64 | "alpha_3": "BDT", 65 | "name": "Taka", 66 | "numeric": "050" 67 | }, 68 | { 69 | "alpha_3": "BGN", 70 | "name": "Bulgarian Lev", 71 | "numeric": "975" 72 | }, 73 | { 74 | "alpha_3": "BHD", 75 | "name": "Bahraini Dinar", 76 | "numeric": "048" 77 | }, 78 | { 79 | "alpha_3": "BIF", 80 | "name": "Burundi Franc", 81 | "numeric": "108" 82 | }, 83 | { 84 | "alpha_3": "BMD", 85 | "name": "Bermudian Dollar", 86 | "numeric": "060" 87 | }, 88 | { 89 | "alpha_3": "BND", 90 | "name": "Brunei Dollar", 91 | "numeric": "096" 92 | }, 93 | { 94 | "alpha_3": "BOB", 95 | "name": "Boliviano", 96 | "numeric": "068" 97 | }, 98 | { 99 | "alpha_3": "BOV", 100 | "name": "Mvdol", 101 | "numeric": "984" 102 | }, 103 | { 104 | "alpha_3": "BRL", 105 | "name": "Brazilian Real", 106 | "numeric": "986" 107 | }, 108 | { 109 | "alpha_3": "BSD", 110 | "name": "Bahamian Dollar", 111 | "numeric": "044" 112 | }, 113 | { 114 | "alpha_3": "BTN", 115 | "name": "Ngultrum", 116 | "numeric": "064" 117 | }, 118 | { 119 | "alpha_3": "BWP", 120 | "name": "Pula", 121 | "numeric": "072" 122 | }, 123 | { 124 | "alpha_3": "BYN", 125 | "name": "Belarusian Ruble", 126 | "numeric": "933" 127 | }, 128 | { 129 | "alpha_3": "BZD", 130 | "name": "Belize Dollar", 131 | "numeric": "084" 132 | }, 133 | { 134 | "alpha_3": "CAD", 135 | "name": "Canadian Dollar", 136 | "numeric": "124" 137 | }, 138 | { 139 | "alpha_3": "CDF", 140 | "name": "Congolese Franc", 141 | "numeric": "976" 142 | }, 143 | { 144 | "alpha_3": "CHE", 145 | "name": "WIR Euro", 146 | "numeric": "947" 147 | }, 148 | { 149 | "alpha_3": "CHF", 150 | "name": "Swiss Franc", 151 | "numeric": "756" 152 | }, 153 | { 154 | "alpha_3": "CHW", 155 | "name": "WIR Franc", 156 | "numeric": "948" 157 | }, 158 | { 159 | "alpha_3": "CLF", 160 | "name": "Unidad de Fomento", 161 | "numeric": "990" 162 | }, 163 | { 164 | "alpha_3": "CLP", 165 | "name": "Chilean Peso", 166 | "numeric": "152" 167 | }, 168 | { 169 | "alpha_3": "CNY", 170 | "name": "Yuan Renminbi", 171 | "numeric": "156" 172 | }, 173 | { 174 | "alpha_3": "COP", 175 | "name": "Colombian Peso", 176 | "numeric": "170" 177 | }, 178 | { 179 | "alpha_3": "COU", 180 | "name": "Unidad de Valor Real", 181 | "numeric": "970" 182 | }, 183 | { 184 | "alpha_3": "CRC", 185 | "name": "Costa Rican Colon", 186 | "numeric": "188" 187 | }, 188 | { 189 | "alpha_3": "CUC", 190 | "name": "Peso Convertible", 191 | "numeric": "931" 192 | }, 193 | { 194 | "alpha_3": "CUP", 195 | "name": "Cuban Peso", 196 | "numeric": "192" 197 | }, 198 | { 199 | "alpha_3": "CVE", 200 | "name": "Cabo Verde Escudo", 201 | "numeric": "132" 202 | }, 203 | { 204 | "alpha_3": "CZK", 205 | "name": "Czech Koruna", 206 | "numeric": "203" 207 | }, 208 | { 209 | "alpha_3": "DJF", 210 | "name": "Djibouti Franc", 211 | "numeric": "262" 212 | }, 213 | { 214 | "alpha_3": "DKK", 215 | "name": "Danish Krone", 216 | "numeric": "208" 217 | }, 218 | { 219 | "alpha_3": "DOP", 220 | "name": "Dominican Peso", 221 | "numeric": "214" 222 | }, 223 | { 224 | "alpha_3": "DZD", 225 | "name": "Algerian Dinar", 226 | "numeric": "012" 227 | }, 228 | { 229 | "alpha_3": "EGP", 230 | "name": "Egyptian Pound", 231 | "numeric": "818" 232 | }, 233 | { 234 | "alpha_3": "ERN", 235 | "name": "Nakfa", 236 | "numeric": "232" 237 | }, 238 | { 239 | "alpha_3": "ETB", 240 | "name": "Ethiopian Birr", 241 | "numeric": "230" 242 | }, 243 | { 244 | "alpha_3": "EUR", 245 | "name": "Euro", 246 | "numeric": "978" 247 | }, 248 | { 249 | "alpha_3": "FJD", 250 | "name": "Fiji Dollar", 251 | "numeric": "242" 252 | }, 253 | { 254 | "alpha_3": "FKP", 255 | "name": "Falkland Islands Pound", 256 | "numeric": "238" 257 | }, 258 | { 259 | "alpha_3": "GBP", 260 | "name": "Pound Sterling", 261 | "numeric": "826" 262 | }, 263 | { 264 | "alpha_3": "GEL", 265 | "name": "Lari", 266 | "numeric": "981" 267 | }, 268 | { 269 | "alpha_3": "GHS", 270 | "name": "Ghana Cedi", 271 | "numeric": "936" 272 | }, 273 | { 274 | "alpha_3": "GIP", 275 | "name": "Gibraltar Pound", 276 | "numeric": "292" 277 | }, 278 | { 279 | "alpha_3": "GMD", 280 | "name": "Dalasi", 281 | "numeric": "270" 282 | }, 283 | { 284 | "alpha_3": "GNF", 285 | "name": "Guinean Franc", 286 | "numeric": "324" 287 | }, 288 | { 289 | "alpha_3": "GTQ", 290 | "name": "Quetzal", 291 | "numeric": "320" 292 | }, 293 | { 294 | "alpha_3": "GYD", 295 | "name": "Guyana Dollar", 296 | "numeric": "328" 297 | }, 298 | { 299 | "alpha_3": "HKD", 300 | "name": "Hong Kong Dollar", 301 | "numeric": "344" 302 | }, 303 | { 304 | "alpha_3": "HNL", 305 | "name": "Lempira", 306 | "numeric": "340" 307 | }, 308 | { 309 | "alpha_3": "HRK", 310 | "name": "Kuna", 311 | "numeric": "191" 312 | }, 313 | { 314 | "alpha_3": "HTG", 315 | "name": "Gourde", 316 | "numeric": "332" 317 | }, 318 | { 319 | "alpha_3": "HUF", 320 | "name": "Forint", 321 | "numeric": "348" 322 | }, 323 | { 324 | "alpha_3": "IDR", 325 | "name": "Rupiah", 326 | "numeric": "360" 327 | }, 328 | { 329 | "alpha_3": "ILS", 330 | "name": "New Israeli Sheqel", 331 | "numeric": "376" 332 | }, 333 | { 334 | "alpha_3": "INR", 335 | "name": "Indian Rupee", 336 | "numeric": "356" 337 | }, 338 | { 339 | "alpha_3": "IQD", 340 | "name": "Iraqi Dinar", 341 | "numeric": "368" 342 | }, 343 | { 344 | "alpha_3": "IRR", 345 | "name": "Iranian Rial", 346 | "numeric": "364" 347 | }, 348 | { 349 | "alpha_3": "ISK", 350 | "name": "Iceland Krona", 351 | "numeric": "352" 352 | }, 353 | { 354 | "alpha_3": "JMD", 355 | "name": "Jamaican Dollar", 356 | "numeric": "388" 357 | }, 358 | { 359 | "alpha_3": "JOD", 360 | "name": "Jordanian Dinar", 361 | "numeric": "400" 362 | }, 363 | { 364 | "alpha_3": "JPY", 365 | "name": "Yen", 366 | "numeric": "392" 367 | }, 368 | { 369 | "alpha_3": "KES", 370 | "name": "Kenyan Shilling", 371 | "numeric": "404" 372 | }, 373 | { 374 | "alpha_3": "KGS", 375 | "name": "Som", 376 | "numeric": "417" 377 | }, 378 | { 379 | "alpha_3": "KHR", 380 | "name": "Riel", 381 | "numeric": "116" 382 | }, 383 | { 384 | "alpha_3": "KMF", 385 | "name": "Comorian Franc", 386 | "numeric": "174" 387 | }, 388 | { 389 | "alpha_3": "KPW", 390 | "name": "North Korean Won", 391 | "numeric": "408" 392 | }, 393 | { 394 | "alpha_3": "KRW", 395 | "name": "Won", 396 | "numeric": "410" 397 | }, 398 | { 399 | "alpha_3": "KWD", 400 | "name": "Kuwaiti Dinar", 401 | "numeric": "414" 402 | }, 403 | { 404 | "alpha_3": "KYD", 405 | "name": "Cayman Islands Dollar", 406 | "numeric": "136" 407 | }, 408 | { 409 | "alpha_3": "KZT", 410 | "name": "Tenge", 411 | "numeric": "398" 412 | }, 413 | { 414 | "alpha_3": "LAK", 415 | "name": "Lao Kip", 416 | "numeric": "418" 417 | }, 418 | { 419 | "alpha_3": "LBP", 420 | "name": "Lebanese Pound", 421 | "numeric": "422" 422 | }, 423 | { 424 | "alpha_3": "LKR", 425 | "name": "Sri Lanka Rupee", 426 | "numeric": "144" 427 | }, 428 | { 429 | "alpha_3": "LRD", 430 | "name": "Liberian Dollar", 431 | "numeric": "430" 432 | }, 433 | { 434 | "alpha_3": "LSL", 435 | "name": "Loti", 436 | "numeric": "426" 437 | }, 438 | { 439 | "alpha_3": "LYD", 440 | "name": "Libyan Dinar", 441 | "numeric": "434" 442 | }, 443 | { 444 | "alpha_3": "MAD", 445 | "name": "Moroccan Dirham", 446 | "numeric": "504" 447 | }, 448 | { 449 | "alpha_3": "MDL", 450 | "name": "Moldovan Leu", 451 | "numeric": "498" 452 | }, 453 | { 454 | "alpha_3": "MGA", 455 | "name": "Malagasy Ariary", 456 | "numeric": "969" 457 | }, 458 | { 459 | "alpha_3": "MKD", 460 | "name": "Denar", 461 | "numeric": "807" 462 | }, 463 | { 464 | "alpha_3": "MMK", 465 | "name": "Kyat", 466 | "numeric": "104" 467 | }, 468 | { 469 | "alpha_3": "MNT", 470 | "name": "Tugrik", 471 | "numeric": "496" 472 | }, 473 | { 474 | "alpha_3": "MOP", 475 | "name": "Pataca", 476 | "numeric": "446" 477 | }, 478 | { 479 | "alpha_3": "MRU", 480 | "name": "Ouguiya", 481 | "numeric": "929" 482 | }, 483 | { 484 | "alpha_3": "MUR", 485 | "name": "Mauritius Rupee", 486 | "numeric": "480" 487 | }, 488 | { 489 | "alpha_3": "MVR", 490 | "name": "Rufiyaa", 491 | "numeric": "462" 492 | }, 493 | { 494 | "alpha_3": "MWK", 495 | "name": "Malawi Kwacha", 496 | "numeric": "454" 497 | }, 498 | { 499 | "alpha_3": "MXN", 500 | "name": "Mexican Peso", 501 | "numeric": "484" 502 | }, 503 | { 504 | "alpha_3": "MXV", 505 | "name": "Mexican Unidad de Inversion (UDI)", 506 | "numeric": "979" 507 | }, 508 | { 509 | "alpha_3": "MYR", 510 | "name": "Malaysian Ringgit", 511 | "numeric": "458" 512 | }, 513 | { 514 | "alpha_3": "MZN", 515 | "name": "Mozambique Metical", 516 | "numeric": "943" 517 | }, 518 | { 519 | "alpha_3": "NAD", 520 | "name": "Namibia Dollar", 521 | "numeric": "516" 522 | }, 523 | { 524 | "alpha_3": "NGN", 525 | "name": "Naira", 526 | "numeric": "566" 527 | }, 528 | { 529 | "alpha_3": "NIO", 530 | "name": "Cordoba Oro", 531 | "numeric": "558" 532 | }, 533 | { 534 | "alpha_3": "NOK", 535 | "name": "Norwegian Krone", 536 | "numeric": "578" 537 | }, 538 | { 539 | "alpha_3": "NPR", 540 | "name": "Nepalese Rupee", 541 | "numeric": "524" 542 | }, 543 | { 544 | "alpha_3": "NZD", 545 | "name": "New Zealand Dollar", 546 | "numeric": "554" 547 | }, 548 | { 549 | "alpha_3": "OMR", 550 | "name": "Rial Omani", 551 | "numeric": "512" 552 | }, 553 | { 554 | "alpha_3": "PAB", 555 | "name": "Balboa", 556 | "numeric": "590" 557 | }, 558 | { 559 | "alpha_3": "PEN", 560 | "name": "Sol", 561 | "numeric": "604" 562 | }, 563 | { 564 | "alpha_3": "PGK", 565 | "name": "Kina", 566 | "numeric": "598" 567 | }, 568 | { 569 | "alpha_3": "PHP", 570 | "name": "Philippine Peso", 571 | "numeric": "608" 572 | }, 573 | { 574 | "alpha_3": "PKR", 575 | "name": "Pakistan Rupee", 576 | "numeric": "586" 577 | }, 578 | { 579 | "alpha_3": "PLN", 580 | "name": "Zloty", 581 | "numeric": "985" 582 | }, 583 | { 584 | "alpha_3": "PYG", 585 | "name": "Guarani", 586 | "numeric": "600" 587 | }, 588 | { 589 | "alpha_3": "QAR", 590 | "name": "Qatari Rial", 591 | "numeric": "634" 592 | }, 593 | { 594 | "alpha_3": "RON", 595 | "name": "Romanian Leu", 596 | "numeric": "946" 597 | }, 598 | { 599 | "alpha_3": "RSD", 600 | "name": "Serbian Dinar", 601 | "numeric": "941" 602 | }, 603 | { 604 | "alpha_3": "RUB", 605 | "name": "Russian Ruble", 606 | "numeric": "643" 607 | }, 608 | { 609 | "alpha_3": "RWF", 610 | "name": "Rwanda Franc", 611 | "numeric": "646" 612 | }, 613 | { 614 | "alpha_3": "SAR", 615 | "name": "Saudi Riyal", 616 | "numeric": "682" 617 | }, 618 | { 619 | "alpha_3": "SBD", 620 | "name": "Solomon Islands Dollar", 621 | "numeric": "090" 622 | }, 623 | { 624 | "alpha_3": "SCR", 625 | "name": "Seychelles Rupee", 626 | "numeric": "690" 627 | }, 628 | { 629 | "alpha_3": "SDG", 630 | "name": "Sudanese Pound", 631 | "numeric": "938" 632 | }, 633 | { 634 | "alpha_3": "SEK", 635 | "name": "Swedish Krona", 636 | "numeric": "752" 637 | }, 638 | { 639 | "alpha_3": "SGD", 640 | "name": "Singapore Dollar", 641 | "numeric": "702" 642 | }, 643 | { 644 | "alpha_3": "SHP", 645 | "name": "Saint Helena Pound", 646 | "numeric": "654" 647 | }, 648 | { 649 | "alpha_3": "SLE", 650 | "name": "Leone", 651 | "numeric": "925" 652 | }, 653 | { 654 | "alpha_3": "SLL", 655 | "name": "Leone", 656 | "numeric": "694" 657 | }, 658 | { 659 | "alpha_3": "SOS", 660 | "name": "Somali Shilling", 661 | "numeric": "706" 662 | }, 663 | { 664 | "alpha_3": "SRD", 665 | "name": "Surinam Dollar", 666 | "numeric": "968" 667 | }, 668 | { 669 | "alpha_3": "SSP", 670 | "name": "South Sudanese Pound", 671 | "numeric": "728" 672 | }, 673 | { 674 | "alpha_3": "STN", 675 | "name": "Dobra", 676 | "numeric": "930" 677 | }, 678 | { 679 | "alpha_3": "SVC", 680 | "name": "El Salvador Colon", 681 | "numeric": "222" 682 | }, 683 | { 684 | "alpha_3": "SYP", 685 | "name": "Syrian Pound", 686 | "numeric": "760" 687 | }, 688 | { 689 | "alpha_3": "SZL", 690 | "name": "Lilangeni", 691 | "numeric": "748" 692 | }, 693 | { 694 | "alpha_3": "THB", 695 | "name": "Baht", 696 | "numeric": "764" 697 | }, 698 | { 699 | "alpha_3": "TJS", 700 | "name": "Somoni", 701 | "numeric": "972" 702 | }, 703 | { 704 | "alpha_3": "TMT", 705 | "name": "Turkmenistan New Manat", 706 | "numeric": "934" 707 | }, 708 | { 709 | "alpha_3": "TND", 710 | "name": "Tunisian Dinar", 711 | "numeric": "788" 712 | }, 713 | { 714 | "alpha_3": "TOP", 715 | "name": "Pa’anga", 716 | "numeric": "776" 717 | }, 718 | { 719 | "alpha_3": "TRY", 720 | "name": "Turkish Lira", 721 | "numeric": "949" 722 | }, 723 | { 724 | "alpha_3": "TTD", 725 | "name": "Trinidad and Tobago Dollar", 726 | "numeric": "780" 727 | }, 728 | { 729 | "alpha_3": "TWD", 730 | "name": "New Taiwan Dollar", 731 | "numeric": "901" 732 | }, 733 | { 734 | "alpha_3": "TZS", 735 | "name": "Tanzanian Shilling", 736 | "numeric": "834" 737 | }, 738 | { 739 | "alpha_3": "UAH", 740 | "name": "Hryvnia", 741 | "numeric": "980" 742 | }, 743 | { 744 | "alpha_3": "UGX", 745 | "name": "Uganda Shilling", 746 | "numeric": "800" 747 | }, 748 | { 749 | "alpha_3": "USD", 750 | "name": "US Dollar", 751 | "numeric": "840" 752 | }, 753 | { 754 | "alpha_3": "USN", 755 | "name": "US Dollar (Next day)", 756 | "numeric": "997" 757 | }, 758 | { 759 | "alpha_3": "UYI", 760 | "name": "Uruguay Peso en Unidades Indexadas (UI)", 761 | "numeric": "940" 762 | }, 763 | { 764 | "alpha_3": "UYU", 765 | "name": "Peso Uruguayo", 766 | "numeric": "858" 767 | }, 768 | { 769 | "alpha_3": "UYW", 770 | "name": "Unidad Previsional", 771 | "numeric": "927" 772 | }, 773 | { 774 | "alpha_3": "UZS", 775 | "name": "Uzbekistan Sum", 776 | "numeric": "860" 777 | }, 778 | { 779 | "alpha_3": "VED", 780 | "name": "Bolívar Soberano", 781 | "numeric": "926" 782 | }, 783 | { 784 | "alpha_3": "VES", 785 | "name": "Bolívar Soberano", 786 | "numeric": "928" 787 | }, 788 | { 789 | "alpha_3": "VND", 790 | "name": "Dong", 791 | "numeric": "704" 792 | }, 793 | { 794 | "alpha_3": "VUV", 795 | "name": "Vatu", 796 | "numeric": "548" 797 | }, 798 | { 799 | "alpha_3": "WST", 800 | "name": "Tala", 801 | "numeric": "882" 802 | }, 803 | { 804 | "alpha_3": "XAF", 805 | "name": "CFA Franc BEAC", 806 | "numeric": "950" 807 | }, 808 | { 809 | "alpha_3": "XAG", 810 | "name": "Silver", 811 | "numeric": "961" 812 | }, 813 | { 814 | "alpha_3": "XAU", 815 | "name": "Gold", 816 | "numeric": "959" 817 | }, 818 | { 819 | "alpha_3": "XBA", 820 | "name": "Bond Markets Unit European Composite Unit (EURCO)", 821 | "numeric": "955" 822 | }, 823 | { 824 | "alpha_3": "XBB", 825 | "name": "Bond Markets Unit European Monetary Unit (E.M.U.-6)", 826 | "numeric": "956" 827 | }, 828 | { 829 | "alpha_3": "XBC", 830 | "name": "Bond Markets Unit European Unit of Account 9 (E.U.A.-9)", 831 | "numeric": "957" 832 | }, 833 | { 834 | "alpha_3": "XBD", 835 | "name": "Bond Markets Unit European Unit of Account 17 (E.U.A.-17)", 836 | "numeric": "958" 837 | }, 838 | { 839 | "alpha_3": "XCD", 840 | "name": "East Caribbean Dollar", 841 | "numeric": "951" 842 | }, 843 | { 844 | "alpha_3": "XDR", 845 | "name": "SDR (Special Drawing Right)", 846 | "numeric": "960" 847 | }, 848 | { 849 | "alpha_3": "XOF", 850 | "name": "CFA Franc BCEAO", 851 | "numeric": "952" 852 | }, 853 | { 854 | "alpha_3": "XPD", 855 | "name": "Palladium", 856 | "numeric": "964" 857 | }, 858 | { 859 | "alpha_3": "XPF", 860 | "name": "CFP Franc", 861 | "numeric": "953" 862 | }, 863 | { 864 | "alpha_3": "XPT", 865 | "name": "Platinum", 866 | "numeric": "962" 867 | }, 868 | { 869 | "alpha_3": "XSU", 870 | "name": "Sucre", 871 | "numeric": "994" 872 | }, 873 | { 874 | "alpha_3": "XTS", 875 | "name": "Codes specifically reserved for testing purposes", 876 | "numeric": "963" 877 | }, 878 | { 879 | "alpha_3": "XUA", 880 | "name": "ADB Unit of Account", 881 | "numeric": "965" 882 | }, 883 | { 884 | "alpha_3": "XXX", 885 | "name": "The codes assigned for transactions where no currency is involved", 886 | "numeric": "999" 887 | }, 888 | { 889 | "alpha_3": "YER", 890 | "name": "Yemeni Rial", 891 | "numeric": "886" 892 | }, 893 | { 894 | "alpha_3": "ZAR", 895 | "name": "Rand", 896 | "numeric": "710" 897 | }, 898 | { 899 | "alpha_3": "ZMW", 900 | "name": "Zambian Kwacha", 901 | "numeric": "967" 902 | }, 903 | { 904 | "alpha_3": "ZWL", 905 | "name": "Zimbabwe Dollar", 906 | "numeric": "932" 907 | } 908 | ] 909 | } 910 | -------------------------------------------------------------------------------- /src/isocodes/resources/iso_15924.json: -------------------------------------------------------------------------------- 1 | { 2 | "15924": [ 3 | { 4 | "alpha_4": "Adlm", 5 | "name": "Adlam", 6 | "numeric": "166" 7 | }, 8 | { 9 | "alpha_4": "Afak", 10 | "name": "Afaka", 11 | "numeric": "439" 12 | }, 13 | { 14 | "alpha_4": "Aghb", 15 | "name": "Caucasian Albanian", 16 | "numeric": "239" 17 | }, 18 | { 19 | "alpha_4": "Ahom", 20 | "name": "Ahom, Tai Ahom", 21 | "numeric": "338" 22 | }, 23 | { 24 | "alpha_4": "Arab", 25 | "name": "Arabic", 26 | "numeric": "160" 27 | }, 28 | { 29 | "alpha_4": "Aran", 30 | "name": "Arabic (Nastaliq variant)", 31 | "numeric": "161" 32 | }, 33 | { 34 | "alpha_4": "Armi", 35 | "name": "Imperial Aramaic", 36 | "numeric": "124" 37 | }, 38 | { 39 | "alpha_4": "Armn", 40 | "name": "Armenian", 41 | "numeric": "230" 42 | }, 43 | { 44 | "alpha_4": "Avst", 45 | "name": "Avestan", 46 | "numeric": "134" 47 | }, 48 | { 49 | "alpha_4": "Bali", 50 | "name": "Balinese", 51 | "numeric": "360" 52 | }, 53 | { 54 | "alpha_4": "Bamu", 55 | "name": "Bamum", 56 | "numeric": "435" 57 | }, 58 | { 59 | "alpha_4": "Bass", 60 | "name": "Bassa Vah", 61 | "numeric": "259" 62 | }, 63 | { 64 | "alpha_4": "Batk", 65 | "name": "Batak", 66 | "numeric": "365" 67 | }, 68 | { 69 | "alpha_4": "Beng", 70 | "name": "Bengali", 71 | "numeric": "325" 72 | }, 73 | { 74 | "alpha_4": "Bhks", 75 | "name": "Bhaiksuki", 76 | "numeric": "334" 77 | }, 78 | { 79 | "alpha_4": "Blis", 80 | "name": "Blissymbols", 81 | "numeric": "550" 82 | }, 83 | { 84 | "alpha_4": "Bopo", 85 | "name": "Bopomofo", 86 | "numeric": "285" 87 | }, 88 | { 89 | "alpha_4": "Brah", 90 | "name": "Brahmi", 91 | "numeric": "300" 92 | }, 93 | { 94 | "alpha_4": "Brai", 95 | "name": "Braille", 96 | "numeric": "570" 97 | }, 98 | { 99 | "alpha_4": "Bugi", 100 | "name": "Buginese", 101 | "numeric": "367" 102 | }, 103 | { 104 | "alpha_4": "Buhd", 105 | "name": "Buhid", 106 | "numeric": "372" 107 | }, 108 | { 109 | "alpha_4": "Cakm", 110 | "name": "Chakma", 111 | "numeric": "349" 112 | }, 113 | { 114 | "alpha_4": "Cans", 115 | "name": "Unified Canadian Aboriginal Syllabics", 116 | "numeric": "440" 117 | }, 118 | { 119 | "alpha_4": "Cari", 120 | "name": "Carian", 121 | "numeric": "201" 122 | }, 123 | { 124 | "alpha_4": "Cham", 125 | "name": "Cham", 126 | "numeric": "358" 127 | }, 128 | { 129 | "alpha_4": "Cher", 130 | "name": "Cherokee", 131 | "numeric": "445" 132 | }, 133 | { 134 | "alpha_4": "Cirt", 135 | "name": "Cirth", 136 | "numeric": "291" 137 | }, 138 | { 139 | "alpha_4": "Copt", 140 | "name": "Coptic", 141 | "numeric": "204" 142 | }, 143 | { 144 | "alpha_4": "Cprt", 145 | "name": "Cypriot", 146 | "numeric": "403" 147 | }, 148 | { 149 | "alpha_4": "Cyrl", 150 | "name": "Cyrillic", 151 | "numeric": "220" 152 | }, 153 | { 154 | "alpha_4": "Cyrs", 155 | "name": "Cyrillic (Old Church Slavonic variant)", 156 | "numeric": "221" 157 | }, 158 | { 159 | "alpha_4": "Deva", 160 | "name": "Devanagari (Nagari)", 161 | "numeric": "315" 162 | }, 163 | { 164 | "alpha_4": "Dsrt", 165 | "name": "Deseret (Mormon)", 166 | "numeric": "250" 167 | }, 168 | { 169 | "alpha_4": "Dupl", 170 | "name": "Duployan shorthand, Duployan stenography", 171 | "numeric": "755" 172 | }, 173 | { 174 | "alpha_4": "Egyd", 175 | "name": "Egyptian demotic", 176 | "numeric": "070" 177 | }, 178 | { 179 | "alpha_4": "Egyh", 180 | "name": "Egyptian hieratic", 181 | "numeric": "060" 182 | }, 183 | { 184 | "alpha_4": "Egyp", 185 | "name": "Egyptian hieroglyphs", 186 | "numeric": "050" 187 | }, 188 | { 189 | "alpha_4": "Elba", 190 | "name": "Elbasan", 191 | "numeric": "226" 192 | }, 193 | { 194 | "alpha_4": "Ethi", 195 | "name": "Ethiopic (Geʻez)", 196 | "numeric": "430" 197 | }, 198 | { 199 | "alpha_4": "Geok", 200 | "name": "Khutsuri (Asomtavruli and Nuskhuri)", 201 | "numeric": "241" 202 | }, 203 | { 204 | "alpha_4": "Geor", 205 | "name": "Georgian (Mkhedruli)", 206 | "numeric": "240" 207 | }, 208 | { 209 | "alpha_4": "Glag", 210 | "name": "Glagolitic", 211 | "numeric": "225" 212 | }, 213 | { 214 | "alpha_4": "Goth", 215 | "name": "Gothic", 216 | "numeric": "206" 217 | }, 218 | { 219 | "alpha_4": "Gran", 220 | "name": "Grantha", 221 | "numeric": "343" 222 | }, 223 | { 224 | "alpha_4": "Grek", 225 | "name": "Greek", 226 | "numeric": "200" 227 | }, 228 | { 229 | "alpha_4": "Gujr", 230 | "name": "Gujarati", 231 | "numeric": "320" 232 | }, 233 | { 234 | "alpha_4": "Guru", 235 | "name": "Gurmukhi", 236 | "numeric": "310" 237 | }, 238 | { 239 | "alpha_4": "Hanb", 240 | "name": "Han with Bopomofo (alias for Han + Bopomofo)", 241 | "numeric": "503" 242 | }, 243 | { 244 | "alpha_4": "Hang", 245 | "name": "Hangul (Hangŭl, Hangeul)", 246 | "numeric": "286" 247 | }, 248 | { 249 | "alpha_4": "Hani", 250 | "name": "Han (Hanzi, Kanji, Hanja)", 251 | "numeric": "500" 252 | }, 253 | { 254 | "alpha_4": "Hano", 255 | "name": "Hanunoo (Hanunóo)", 256 | "numeric": "371" 257 | }, 258 | { 259 | "alpha_4": "Hans", 260 | "name": "Han (Simplified variant)", 261 | "numeric": "501" 262 | }, 263 | { 264 | "alpha_4": "Hant", 265 | "name": "Han (Traditional variant)", 266 | "numeric": "502" 267 | }, 268 | { 269 | "alpha_4": "Hatr", 270 | "name": "Hatran", 271 | "numeric": "127" 272 | }, 273 | { 274 | "alpha_4": "Hebr", 275 | "name": "Hebrew", 276 | "numeric": "125" 277 | }, 278 | { 279 | "alpha_4": "Hira", 280 | "name": "Hiragana", 281 | "numeric": "410" 282 | }, 283 | { 284 | "alpha_4": "Hluw", 285 | "name": "Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)", 286 | "numeric": "080" 287 | }, 288 | { 289 | "alpha_4": "Hmng", 290 | "name": "Pahawh Hmong", 291 | "numeric": "450" 292 | }, 293 | { 294 | "alpha_4": "Hrkt", 295 | "name": "Japanese syllabaries (alias for Hiragana + Katakana)", 296 | "numeric": "412" 297 | }, 298 | { 299 | "alpha_4": "Hung", 300 | "name": "Old Hungarian (Hungarian Runic)", 301 | "numeric": "176" 302 | }, 303 | { 304 | "alpha_4": "Inds", 305 | "name": "Indus (Harappan)", 306 | "numeric": "610" 307 | }, 308 | { 309 | "alpha_4": "Ital", 310 | "name": "Old Italic (Etruscan, Oscan, etc.)", 311 | "numeric": "210" 312 | }, 313 | { 314 | "alpha_4": "Jamo", 315 | "name": "Jamo (alias for Jamo subset of Hangul)", 316 | "numeric": "284" 317 | }, 318 | { 319 | "alpha_4": "Java", 320 | "name": "Javanese", 321 | "numeric": "361" 322 | }, 323 | { 324 | "alpha_4": "Jpan", 325 | "name": "Japanese (alias for Han + Hiragana + Katakana)", 326 | "numeric": "413" 327 | }, 328 | { 329 | "alpha_4": "Jurc", 330 | "name": "Jurchen", 331 | "numeric": "510" 332 | }, 333 | { 334 | "alpha_4": "Kali", 335 | "name": "Kayah Li", 336 | "numeric": "357" 337 | }, 338 | { 339 | "alpha_4": "Kana", 340 | "name": "Katakana", 341 | "numeric": "411" 342 | }, 343 | { 344 | "alpha_4": "Khar", 345 | "name": "Kharoshthi", 346 | "numeric": "305" 347 | }, 348 | { 349 | "alpha_4": "Khmr", 350 | "name": "Khmer", 351 | "numeric": "355" 352 | }, 353 | { 354 | "alpha_4": "Khoj", 355 | "name": "Khojki", 356 | "numeric": "322" 357 | }, 358 | { 359 | "alpha_4": "Kitl", 360 | "name": "Khitan large script", 361 | "numeric": "505" 362 | }, 363 | { 364 | "alpha_4": "Kits", 365 | "name": "Khitan small script", 366 | "numeric": "288" 367 | }, 368 | { 369 | "alpha_4": "Knda", 370 | "name": "Kannada", 371 | "numeric": "345" 372 | }, 373 | { 374 | "alpha_4": "Kore", 375 | "name": "Korean (alias for Hangul + Han)", 376 | "numeric": "287" 377 | }, 378 | { 379 | "alpha_4": "Kpel", 380 | "name": "Kpelle", 381 | "numeric": "436" 382 | }, 383 | { 384 | "alpha_4": "Kthi", 385 | "name": "Kaithi", 386 | "numeric": "317" 387 | }, 388 | { 389 | "alpha_4": "Lana", 390 | "name": "Tai Tham (Lanna)", 391 | "numeric": "351" 392 | }, 393 | { 394 | "alpha_4": "Laoo", 395 | "name": "Lao", 396 | "numeric": "356" 397 | }, 398 | { 399 | "alpha_4": "Latf", 400 | "name": "Latin (Fraktur variant)", 401 | "numeric": "217" 402 | }, 403 | { 404 | "alpha_4": "Latg", 405 | "name": "Latin (Gaelic variant)", 406 | "numeric": "216" 407 | }, 408 | { 409 | "alpha_4": "Latn", 410 | "name": "Latin", 411 | "numeric": "215" 412 | }, 413 | { 414 | "alpha_4": "Leke", 415 | "name": "Leke", 416 | "numeric": "364" 417 | }, 418 | { 419 | "alpha_4": "Lepc", 420 | "name": "Lepcha (Róng)", 421 | "numeric": "335" 422 | }, 423 | { 424 | "alpha_4": "Limb", 425 | "name": "Limbu", 426 | "numeric": "336" 427 | }, 428 | { 429 | "alpha_4": "Lina", 430 | "name": "Linear A", 431 | "numeric": "400" 432 | }, 433 | { 434 | "alpha_4": "Linb", 435 | "name": "Linear B", 436 | "numeric": "401" 437 | }, 438 | { 439 | "alpha_4": "Lisu", 440 | "name": "Lisu (Fraser)", 441 | "numeric": "399" 442 | }, 443 | { 444 | "alpha_4": "Loma", 445 | "name": "Loma", 446 | "numeric": "437" 447 | }, 448 | { 449 | "alpha_4": "Lyci", 450 | "name": "Lycian", 451 | "numeric": "202" 452 | }, 453 | { 454 | "alpha_4": "Lydi", 455 | "name": "Lydian", 456 | "numeric": "116" 457 | }, 458 | { 459 | "alpha_4": "Mahj", 460 | "name": "Mahajani", 461 | "numeric": "314" 462 | }, 463 | { 464 | "alpha_4": "Mand", 465 | "name": "Mandaic, Mandaean", 466 | "numeric": "140" 467 | }, 468 | { 469 | "alpha_4": "Mani", 470 | "name": "Manichaean", 471 | "numeric": "139" 472 | }, 473 | { 474 | "alpha_4": "Marc", 475 | "name": "Marchen", 476 | "numeric": "332" 477 | }, 478 | { 479 | "alpha_4": "Maya", 480 | "name": "Mayan hieroglyphs", 481 | "numeric": "090" 482 | }, 483 | { 484 | "alpha_4": "Mend", 485 | "name": "Mende Kikakui", 486 | "numeric": "438" 487 | }, 488 | { 489 | "alpha_4": "Merc", 490 | "name": "Meroitic Cursive", 491 | "numeric": "101" 492 | }, 493 | { 494 | "alpha_4": "Mero", 495 | "name": "Meroitic Hieroglyphs", 496 | "numeric": "100" 497 | }, 498 | { 499 | "alpha_4": "Mlym", 500 | "name": "Malayalam", 501 | "numeric": "347" 502 | }, 503 | { 504 | "alpha_4": "Modi", 505 | "name": "Modi, Moḍī", 506 | "numeric": "324" 507 | }, 508 | { 509 | "alpha_4": "Mong", 510 | "name": "Mongolian", 511 | "numeric": "145" 512 | }, 513 | { 514 | "alpha_4": "Moon", 515 | "name": "Moon (Moon code, Moon script, Moon type)", 516 | "numeric": "218" 517 | }, 518 | { 519 | "alpha_4": "Mroo", 520 | "name": "Mro, Mru", 521 | "numeric": "199" 522 | }, 523 | { 524 | "alpha_4": "Mtei", 525 | "name": "Meitei Mayek (Meithei, Meetei)", 526 | "numeric": "337" 527 | }, 528 | { 529 | "alpha_4": "Mult", 530 | "name": "Multani", 531 | "numeric": "323" 532 | }, 533 | { 534 | "alpha_4": "Mymr", 535 | "name": "Myanmar (Burmese)", 536 | "numeric": "350" 537 | }, 538 | { 539 | "alpha_4": "Narb", 540 | "name": "Old North Arabian (Ancient North Arabian)", 541 | "numeric": "106" 542 | }, 543 | { 544 | "alpha_4": "Nbat", 545 | "name": "Nabataean", 546 | "numeric": "159" 547 | }, 548 | { 549 | "alpha_4": "Newa", 550 | "name": "Newa, Newar, Newari, Nepāla lipi", 551 | "numeric": "333" 552 | }, 553 | { 554 | "alpha_4": "Nkgb", 555 | "name": "Nakhi Geba ('Na-'Khi ²Ggŏ-¹baw, Naxi Geba)", 556 | "numeric": "420" 557 | }, 558 | { 559 | "alpha_4": "Nkoo", 560 | "name": "N’Ko", 561 | "numeric": "165" 562 | }, 563 | { 564 | "alpha_4": "Nshu", 565 | "name": "Nüshu", 566 | "numeric": "499" 567 | }, 568 | { 569 | "alpha_4": "Ogam", 570 | "name": "Ogham", 571 | "numeric": "212" 572 | }, 573 | { 574 | "alpha_4": "Olck", 575 | "name": "Ol Chiki (Ol Cemet’, Ol, Santali)", 576 | "numeric": "261" 577 | }, 578 | { 579 | "alpha_4": "Orkh", 580 | "name": "Old Turkic, Orkhon Runic", 581 | "numeric": "175" 582 | }, 583 | { 584 | "alpha_4": "Orya", 585 | "name": "Oriya", 586 | "numeric": "327" 587 | }, 588 | { 589 | "alpha_4": "Osge", 590 | "name": "Osage", 591 | "numeric": "219" 592 | }, 593 | { 594 | "alpha_4": "Osma", 595 | "name": "Osmanya", 596 | "numeric": "260" 597 | }, 598 | { 599 | "alpha_4": "Palm", 600 | "name": "Palmyrene", 601 | "numeric": "126" 602 | }, 603 | { 604 | "alpha_4": "Pauc", 605 | "name": "Pau Cin Hau", 606 | "numeric": "263" 607 | }, 608 | { 609 | "alpha_4": "Perm", 610 | "name": "Old Permic", 611 | "numeric": "227" 612 | }, 613 | { 614 | "alpha_4": "Phag", 615 | "name": "Phags-pa", 616 | "numeric": "331" 617 | }, 618 | { 619 | "alpha_4": "Phli", 620 | "name": "Inscriptional Pahlavi", 621 | "numeric": "131" 622 | }, 623 | { 624 | "alpha_4": "Phlp", 625 | "name": "Psalter Pahlavi", 626 | "numeric": "132" 627 | }, 628 | { 629 | "alpha_4": "Phlv", 630 | "name": "Book Pahlavi", 631 | "numeric": "133" 632 | }, 633 | { 634 | "alpha_4": "Phnx", 635 | "name": "Phoenician", 636 | "numeric": "115" 637 | }, 638 | { 639 | "alpha_4": "Piqd", 640 | "name": "Klingon (KLI pIqaD)", 641 | "numeric": "293" 642 | }, 643 | { 644 | "alpha_4": "Plrd", 645 | "name": "Miao (Pollard)", 646 | "numeric": "282" 647 | }, 648 | { 649 | "alpha_4": "Prti", 650 | "name": "Inscriptional Parthian", 651 | "numeric": "130" 652 | }, 653 | { 654 | "alpha_4": "Qaaa", 655 | "name": "Reserved for private use (start)", 656 | "numeric": "900" 657 | }, 658 | { 659 | "alpha_4": "Qabx", 660 | "name": "Reserved for private use (end)", 661 | "numeric": "949" 662 | }, 663 | { 664 | "alpha_4": "Rjng", 665 | "name": "Rejang (Redjang, Kaganga)", 666 | "numeric": "363" 667 | }, 668 | { 669 | "alpha_4": "Roro", 670 | "name": "Rongorongo", 671 | "numeric": "620" 672 | }, 673 | { 674 | "alpha_4": "Runr", 675 | "name": "Runic", 676 | "numeric": "211" 677 | }, 678 | { 679 | "alpha_4": "Samr", 680 | "name": "Samaritan", 681 | "numeric": "123" 682 | }, 683 | { 684 | "alpha_4": "Sara", 685 | "name": "Sarati", 686 | "numeric": "292" 687 | }, 688 | { 689 | "alpha_4": "Sarb", 690 | "name": "Old South Arabian", 691 | "numeric": "105" 692 | }, 693 | { 694 | "alpha_4": "Saur", 695 | "name": "Saurashtra", 696 | "numeric": "344" 697 | }, 698 | { 699 | "alpha_4": "Sgnw", 700 | "name": "SignWriting", 701 | "numeric": "095" 702 | }, 703 | { 704 | "alpha_4": "Shaw", 705 | "name": "Shavian (Shaw)", 706 | "numeric": "281" 707 | }, 708 | { 709 | "alpha_4": "Shrd", 710 | "name": "Sharada, Śāradā", 711 | "numeric": "319" 712 | }, 713 | { 714 | "alpha_4": "Sidd", 715 | "name": "Siddham, Siddhaṃ, Siddhamātṛkā", 716 | "numeric": "302" 717 | }, 718 | { 719 | "alpha_4": "Sind", 720 | "name": "Khudawadi, Sindhi", 721 | "numeric": "318" 722 | }, 723 | { 724 | "alpha_4": "Sinh", 725 | "name": "Sinhala", 726 | "numeric": "348" 727 | }, 728 | { 729 | "alpha_4": "Sora", 730 | "name": "Sora Sompeng", 731 | "numeric": "398" 732 | }, 733 | { 734 | "alpha_4": "Sund", 735 | "name": "Sundanese", 736 | "numeric": "362" 737 | }, 738 | { 739 | "alpha_4": "Sylo", 740 | "name": "Syloti Nagri", 741 | "numeric": "316" 742 | }, 743 | { 744 | "alpha_4": "Syrc", 745 | "name": "Syriac", 746 | "numeric": "135" 747 | }, 748 | { 749 | "alpha_4": "Syre", 750 | "name": "Syriac (Estrangelo variant)", 751 | "numeric": "138" 752 | }, 753 | { 754 | "alpha_4": "Syrj", 755 | "name": "Syriac (Western variant)", 756 | "numeric": "137" 757 | }, 758 | { 759 | "alpha_4": "Syrn", 760 | "name": "Syriac (Eastern variant)", 761 | "numeric": "136" 762 | }, 763 | { 764 | "alpha_4": "Tagb", 765 | "name": "Tagbanwa", 766 | "numeric": "373" 767 | }, 768 | { 769 | "alpha_4": "Takr", 770 | "name": "Takri, Ṭākrī, Ṭāṅkrī", 771 | "numeric": "321" 772 | }, 773 | { 774 | "alpha_4": "Tale", 775 | "name": "Tai Le", 776 | "numeric": "353" 777 | }, 778 | { 779 | "alpha_4": "Talu", 780 | "name": "New Tai Lue", 781 | "numeric": "354" 782 | }, 783 | { 784 | "alpha_4": "Taml", 785 | "name": "Tamil", 786 | "numeric": "346" 787 | }, 788 | { 789 | "alpha_4": "Tang", 790 | "name": "Tangut", 791 | "numeric": "520" 792 | }, 793 | { 794 | "alpha_4": "Tavt", 795 | "name": "Tai Viet", 796 | "numeric": "359" 797 | }, 798 | { 799 | "alpha_4": "Telu", 800 | "name": "Telugu", 801 | "numeric": "340" 802 | }, 803 | { 804 | "alpha_4": "Teng", 805 | "name": "Tengwar", 806 | "numeric": "290" 807 | }, 808 | { 809 | "alpha_4": "Tfng", 810 | "name": "Tifinagh (Berber)", 811 | "numeric": "120" 812 | }, 813 | { 814 | "alpha_4": "Tglg", 815 | "name": "Tagalog (Baybayin, Alibata)", 816 | "numeric": "370" 817 | }, 818 | { 819 | "alpha_4": "Thaa", 820 | "name": "Thaana", 821 | "numeric": "170" 822 | }, 823 | { 824 | "alpha_4": "Thai", 825 | "name": "Thai", 826 | "numeric": "352" 827 | }, 828 | { 829 | "alpha_4": "Tibt", 830 | "name": "Tibetan", 831 | "numeric": "330" 832 | }, 833 | { 834 | "alpha_4": "Tirh", 835 | "name": "Tirhuta", 836 | "numeric": "326" 837 | }, 838 | { 839 | "alpha_4": "Ugar", 840 | "name": "Ugaritic", 841 | "numeric": "040" 842 | }, 843 | { 844 | "alpha_4": "Vaii", 845 | "name": "Vai", 846 | "numeric": "470" 847 | }, 848 | { 849 | "alpha_4": "Visp", 850 | "name": "Visible Speech", 851 | "numeric": "280" 852 | }, 853 | { 854 | "alpha_4": "Wara", 855 | "name": "Warang Citi (Varang Kshiti)", 856 | "numeric": "262" 857 | }, 858 | { 859 | "alpha_4": "Wole", 860 | "name": "Woleai", 861 | "numeric": "480" 862 | }, 863 | { 864 | "alpha_4": "Xpeo", 865 | "name": "Old Persian", 866 | "numeric": "030" 867 | }, 868 | { 869 | "alpha_4": "Xsux", 870 | "name": "Cuneiform, Sumero-Akkadian", 871 | "numeric": "020" 872 | }, 873 | { 874 | "alpha_4": "Yiii", 875 | "name": "Yi", 876 | "numeric": "460" 877 | }, 878 | { 879 | "alpha_4": "Zinh", 880 | "name": "Code for inherited script", 881 | "numeric": "994" 882 | }, 883 | { 884 | "alpha_4": "Zmth", 885 | "name": "Mathematical notation", 886 | "numeric": "995" 887 | }, 888 | { 889 | "alpha_4": "Zsye", 890 | "name": "Symbols (Emoji variant)", 891 | "numeric": "993" 892 | }, 893 | { 894 | "alpha_4": "Zsym", 895 | "name": "Symbols", 896 | "numeric": "996" 897 | }, 898 | { 899 | "alpha_4": "Zxxx", 900 | "name": "Code for unwritten documents", 901 | "numeric": "997" 902 | }, 903 | { 904 | "alpha_4": "Zyyy", 905 | "name": "Code for undetermined script", 906 | "numeric": "998" 907 | }, 908 | { 909 | "alpha_4": "Zzzz", 910 | "name": "Code for uncoded script", 911 | "numeric": "999" 912 | } 913 | ] 914 | } 915 | -------------------------------------------------------------------------------- /src/isocodes/resources/iso_639-2.json: -------------------------------------------------------------------------------- 1 | { 2 | "639-2": [ 3 | { 4 | "alpha_2": "aa", 5 | "alpha_3": "aar", 6 | "name": "Afar" 7 | }, 8 | { 9 | "alpha_2": "ab", 10 | "alpha_3": "abk", 11 | "name": "Abkhazian" 12 | }, 13 | { 14 | "alpha_3": "ace", 15 | "name": "Achinese" 16 | }, 17 | { 18 | "alpha_3": "ach", 19 | "name": "Acoli" 20 | }, 21 | { 22 | "alpha_3": "ada", 23 | "name": "Adangme" 24 | }, 25 | { 26 | "alpha_3": "ady", 27 | "name": "Adyghe; Adygei" 28 | }, 29 | { 30 | "alpha_3": "afa", 31 | "name": "Afro-Asiatic languages" 32 | }, 33 | { 34 | "alpha_3": "afh", 35 | "name": "Afrihili" 36 | }, 37 | { 38 | "alpha_2": "af", 39 | "alpha_3": "afr", 40 | "name": "Afrikaans" 41 | }, 42 | { 43 | "alpha_3": "ain", 44 | "name": "Ainu" 45 | }, 46 | { 47 | "alpha_2": "ak", 48 | "alpha_3": "aka", 49 | "name": "Akan" 50 | }, 51 | { 52 | "alpha_3": "akk", 53 | "name": "Akkadian" 54 | }, 55 | { 56 | "alpha_3": "ale", 57 | "name": "Aleut" 58 | }, 59 | { 60 | "alpha_3": "alg", 61 | "name": "Algonquian languages" 62 | }, 63 | { 64 | "alpha_3": "alt", 65 | "name": "Southern Altai" 66 | }, 67 | { 68 | "alpha_2": "am", 69 | "alpha_3": "amh", 70 | "name": "Amharic" 71 | }, 72 | { 73 | "alpha_3": "ang", 74 | "name": "English, Old (ca. 450-1100)" 75 | }, 76 | { 77 | "alpha_3": "anp", 78 | "name": "Angika" 79 | }, 80 | { 81 | "alpha_3": "apa", 82 | "name": "Apache languages" 83 | }, 84 | { 85 | "alpha_2": "ar", 86 | "alpha_3": "ara", 87 | "name": "Arabic" 88 | }, 89 | { 90 | "alpha_3": "arc", 91 | "name": "Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)" 92 | }, 93 | { 94 | "alpha_2": "an", 95 | "alpha_3": "arg", 96 | "name": "Aragonese" 97 | }, 98 | { 99 | "alpha_3": "arn", 100 | "name": "Mapudungun; Mapuche" 101 | }, 102 | { 103 | "alpha_3": "arp", 104 | "name": "Arapaho" 105 | }, 106 | { 107 | "alpha_3": "art", 108 | "name": "Artificial languages" 109 | }, 110 | { 111 | "alpha_3": "arw", 112 | "name": "Arawak" 113 | }, 114 | { 115 | "alpha_2": "as", 116 | "alpha_3": "asm", 117 | "name": "Assamese" 118 | }, 119 | { 120 | "alpha_3": "ast", 121 | "name": "Asturian; Bable; Leonese; Asturleonese" 122 | }, 123 | { 124 | "alpha_3": "ath", 125 | "name": "Athapascan languages" 126 | }, 127 | { 128 | "alpha_3": "aus", 129 | "name": "Australian languages" 130 | }, 131 | { 132 | "alpha_2": "av", 133 | "alpha_3": "ava", 134 | "name": "Avaric" 135 | }, 136 | { 137 | "alpha_2": "ae", 138 | "alpha_3": "ave", 139 | "name": "Avestan" 140 | }, 141 | { 142 | "alpha_3": "awa", 143 | "name": "Awadhi" 144 | }, 145 | { 146 | "alpha_2": "ay", 147 | "alpha_3": "aym", 148 | "name": "Aymara" 149 | }, 150 | { 151 | "alpha_2": "az", 152 | "alpha_3": "aze", 153 | "name": "Azerbaijani" 154 | }, 155 | { 156 | "alpha_3": "bad", 157 | "name": "Banda languages" 158 | }, 159 | { 160 | "alpha_3": "bai", 161 | "name": "Bamileke languages" 162 | }, 163 | { 164 | "alpha_2": "ba", 165 | "alpha_3": "bak", 166 | "name": "Bashkir" 167 | }, 168 | { 169 | "alpha_3": "bal", 170 | "name": "Baluchi" 171 | }, 172 | { 173 | "alpha_2": "bm", 174 | "alpha_3": "bam", 175 | "name": "Bambara" 176 | }, 177 | { 178 | "alpha_3": "ban", 179 | "name": "Balinese" 180 | }, 181 | { 182 | "alpha_3": "bas", 183 | "name": "Basa" 184 | }, 185 | { 186 | "alpha_3": "bat", 187 | "name": "Baltic languages" 188 | }, 189 | { 190 | "alpha_3": "bej", 191 | "name": "Beja; Bedawiyet" 192 | }, 193 | { 194 | "alpha_2": "be", 195 | "alpha_3": "bel", 196 | "name": "Belarusian" 197 | }, 198 | { 199 | "alpha_3": "bem", 200 | "name": "Bemba" 201 | }, 202 | { 203 | "alpha_2": "bn", 204 | "alpha_3": "ben", 205 | "common_name": "Bangla", 206 | "name": "Bengali" 207 | }, 208 | { 209 | "alpha_3": "ber", 210 | "name": "Berber languages" 211 | }, 212 | { 213 | "alpha_3": "bho", 214 | "name": "Bhojpuri" 215 | }, 216 | { 217 | "alpha_2": "bh", 218 | "alpha_3": "bih", 219 | "name": "Bihari languages" 220 | }, 221 | { 222 | "alpha_3": "bik", 223 | "name": "Bikol" 224 | }, 225 | { 226 | "alpha_3": "bin", 227 | "name": "Bini; Edo" 228 | }, 229 | { 230 | "alpha_2": "bi", 231 | "alpha_3": "bis", 232 | "name": "Bislama" 233 | }, 234 | { 235 | "alpha_3": "bla", 236 | "name": "Siksika" 237 | }, 238 | { 239 | "alpha_3": "bnt", 240 | "name": "Bantu (Other)" 241 | }, 242 | { 243 | "alpha_2": "bo", 244 | "alpha_3": "bod", 245 | "bibliographic": "tib", 246 | "name": "Tibetan" 247 | }, 248 | { 249 | "alpha_2": "bs", 250 | "alpha_3": "bos", 251 | "name": "Bosnian" 252 | }, 253 | { 254 | "alpha_3": "bra", 255 | "name": "Braj" 256 | }, 257 | { 258 | "alpha_2": "br", 259 | "alpha_3": "bre", 260 | "name": "Breton" 261 | }, 262 | { 263 | "alpha_3": "btk", 264 | "name": "Batak languages" 265 | }, 266 | { 267 | "alpha_3": "bua", 268 | "name": "Buriat" 269 | }, 270 | { 271 | "alpha_3": "bug", 272 | "name": "Buginese" 273 | }, 274 | { 275 | "alpha_2": "bg", 276 | "alpha_3": "bul", 277 | "name": "Bulgarian" 278 | }, 279 | { 280 | "alpha_3": "byn", 281 | "name": "Blin; Bilin" 282 | }, 283 | { 284 | "alpha_3": "cad", 285 | "name": "Caddo" 286 | }, 287 | { 288 | "alpha_3": "cai", 289 | "name": "Central American Indian languages" 290 | }, 291 | { 292 | "alpha_3": "car", 293 | "name": "Galibi Carib" 294 | }, 295 | { 296 | "alpha_2": "ca", 297 | "alpha_3": "cat", 298 | "name": "Catalan; Valencian" 299 | }, 300 | { 301 | "alpha_3": "cau", 302 | "name": "Caucasian languages" 303 | }, 304 | { 305 | "alpha_3": "ceb", 306 | "name": "Cebuano" 307 | }, 308 | { 309 | "alpha_3": "cel", 310 | "name": "Celtic languages" 311 | }, 312 | { 313 | "alpha_2": "cs", 314 | "alpha_3": "ces", 315 | "bibliographic": "cze", 316 | "name": "Czech" 317 | }, 318 | { 319 | "alpha_2": "ch", 320 | "alpha_3": "cha", 321 | "name": "Chamorro" 322 | }, 323 | { 324 | "alpha_3": "chb", 325 | "name": "Chibcha" 326 | }, 327 | { 328 | "alpha_2": "ce", 329 | "alpha_3": "che", 330 | "name": "Chechen" 331 | }, 332 | { 333 | "alpha_3": "chg", 334 | "name": "Chagatai" 335 | }, 336 | { 337 | "alpha_3": "chk", 338 | "name": "Chuukese" 339 | }, 340 | { 341 | "alpha_3": "chm", 342 | "name": "Mari" 343 | }, 344 | { 345 | "alpha_3": "chn", 346 | "name": "Chinook jargon" 347 | }, 348 | { 349 | "alpha_3": "cho", 350 | "name": "Choctaw" 351 | }, 352 | { 353 | "alpha_3": "chp", 354 | "name": "Chipewyan; Dene Suline" 355 | }, 356 | { 357 | "alpha_3": "chr", 358 | "name": "Cherokee" 359 | }, 360 | { 361 | "alpha_2": "cu", 362 | "alpha_3": "chu", 363 | "name": "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" 364 | }, 365 | { 366 | "alpha_2": "cv", 367 | "alpha_3": "chv", 368 | "name": "Chuvash" 369 | }, 370 | { 371 | "alpha_3": "chy", 372 | "name": "Cheyenne" 373 | }, 374 | { 375 | "alpha_3": "cmc", 376 | "name": "Chamic languages" 377 | }, 378 | { 379 | "alpha_3": "cnr", 380 | "name": "Montenegrin" 381 | }, 382 | { 383 | "alpha_3": "cop", 384 | "name": "Coptic" 385 | }, 386 | { 387 | "alpha_2": "kw", 388 | "alpha_3": "cor", 389 | "name": "Cornish" 390 | }, 391 | { 392 | "alpha_2": "co", 393 | "alpha_3": "cos", 394 | "name": "Corsican" 395 | }, 396 | { 397 | "alpha_3": "cpe", 398 | "name": "Creoles and pidgins, English based" 399 | }, 400 | { 401 | "alpha_3": "cpf", 402 | "name": "Creoles and pidgins, French-based" 403 | }, 404 | { 405 | "alpha_3": "cpp", 406 | "name": "Creoles and pidgins, Portuguese-based" 407 | }, 408 | { 409 | "alpha_2": "cr", 410 | "alpha_3": "cre", 411 | "name": "Cree" 412 | }, 413 | { 414 | "alpha_3": "crh", 415 | "name": "Crimean Tatar; Crimean Turkish" 416 | }, 417 | { 418 | "alpha_3": "crp", 419 | "name": "Creoles and pidgins" 420 | }, 421 | { 422 | "alpha_3": "csb", 423 | "name": "Kashubian" 424 | }, 425 | { 426 | "alpha_3": "cus", 427 | "name": "Cushitic languages" 428 | }, 429 | { 430 | "alpha_2": "cy", 431 | "alpha_3": "cym", 432 | "bibliographic": "wel", 433 | "name": "Welsh" 434 | }, 435 | { 436 | "alpha_3": "dak", 437 | "name": "Dakota" 438 | }, 439 | { 440 | "alpha_2": "da", 441 | "alpha_3": "dan", 442 | "name": "Danish" 443 | }, 444 | { 445 | "alpha_3": "dar", 446 | "name": "Dargwa" 447 | }, 448 | { 449 | "alpha_3": "day", 450 | "name": "Land Dayak languages" 451 | }, 452 | { 453 | "alpha_3": "del", 454 | "name": "Delaware" 455 | }, 456 | { 457 | "alpha_3": "den", 458 | "name": "Slave (Athapascan)" 459 | }, 460 | { 461 | "alpha_2": "de", 462 | "alpha_3": "deu", 463 | "bibliographic": "ger", 464 | "name": "German" 465 | }, 466 | { 467 | "alpha_3": "dgr", 468 | "name": "Dogrib" 469 | }, 470 | { 471 | "alpha_3": "din", 472 | "name": "Dinka" 473 | }, 474 | { 475 | "alpha_2": "dv", 476 | "alpha_3": "div", 477 | "name": "Divehi; Dhivehi; Maldivian" 478 | }, 479 | { 480 | "alpha_3": "doi", 481 | "name": "Dogri" 482 | }, 483 | { 484 | "alpha_3": "dra", 485 | "name": "Dravidian languages" 486 | }, 487 | { 488 | "alpha_3": "dsb", 489 | "name": "Lower Sorbian" 490 | }, 491 | { 492 | "alpha_3": "dua", 493 | "name": "Duala" 494 | }, 495 | { 496 | "alpha_3": "dum", 497 | "name": "Dutch, Middle (ca. 1050-1350)" 498 | }, 499 | { 500 | "alpha_3": "dyu", 501 | "name": "Dyula" 502 | }, 503 | { 504 | "alpha_2": "dz", 505 | "alpha_3": "dzo", 506 | "name": "Dzongkha" 507 | }, 508 | { 509 | "alpha_3": "efi", 510 | "name": "Efik" 511 | }, 512 | { 513 | "alpha_3": "egy", 514 | "name": "Egyptian (Ancient)" 515 | }, 516 | { 517 | "alpha_3": "eka", 518 | "name": "Ekajuk" 519 | }, 520 | { 521 | "alpha_2": "el", 522 | "alpha_3": "ell", 523 | "bibliographic": "gre", 524 | "name": "Greek, Modern (1453-)" 525 | }, 526 | { 527 | "alpha_3": "elx", 528 | "name": "Elamite" 529 | }, 530 | { 531 | "alpha_2": "en", 532 | "alpha_3": "eng", 533 | "name": "English" 534 | }, 535 | { 536 | "alpha_3": "enm", 537 | "name": "English, Middle (1100-1500)" 538 | }, 539 | { 540 | "alpha_2": "eo", 541 | "alpha_3": "epo", 542 | "name": "Esperanto" 543 | }, 544 | { 545 | "alpha_2": "et", 546 | "alpha_3": "est", 547 | "name": "Estonian" 548 | }, 549 | { 550 | "alpha_2": "eu", 551 | "alpha_3": "eus", 552 | "bibliographic": "baq", 553 | "name": "Basque" 554 | }, 555 | { 556 | "alpha_2": "ee", 557 | "alpha_3": "ewe", 558 | "name": "Ewe" 559 | }, 560 | { 561 | "alpha_3": "ewo", 562 | "name": "Ewondo" 563 | }, 564 | { 565 | "alpha_3": "fan", 566 | "name": "Fang" 567 | }, 568 | { 569 | "alpha_2": "fo", 570 | "alpha_3": "fao", 571 | "name": "Faroese" 572 | }, 573 | { 574 | "alpha_2": "fa", 575 | "alpha_3": "fas", 576 | "bibliographic": "per", 577 | "name": "Persian" 578 | }, 579 | { 580 | "alpha_3": "fat", 581 | "name": "Fanti" 582 | }, 583 | { 584 | "alpha_2": "fj", 585 | "alpha_3": "fij", 586 | "name": "Fijian" 587 | }, 588 | { 589 | "alpha_3": "fil", 590 | "name": "Filipino; Pilipino" 591 | }, 592 | { 593 | "alpha_2": "fi", 594 | "alpha_3": "fin", 595 | "name": "Finnish" 596 | }, 597 | { 598 | "alpha_3": "fiu", 599 | "name": "Finno-Ugrian languages" 600 | }, 601 | { 602 | "alpha_3": "fon", 603 | "name": "Fon" 604 | }, 605 | { 606 | "alpha_2": "fr", 607 | "alpha_3": "fra", 608 | "bibliographic": "fre", 609 | "name": "French" 610 | }, 611 | { 612 | "alpha_3": "frm", 613 | "name": "French, Middle (ca. 1400-1600)" 614 | }, 615 | { 616 | "alpha_3": "fro", 617 | "name": "French, Old (842-ca. 1400)" 618 | }, 619 | { 620 | "alpha_3": "frr", 621 | "name": "Northern Frisian" 622 | }, 623 | { 624 | "alpha_3": "frs", 625 | "name": "Eastern Frisian" 626 | }, 627 | { 628 | "alpha_2": "fy", 629 | "alpha_3": "fry", 630 | "name": "Western Frisian" 631 | }, 632 | { 633 | "alpha_2": "ff", 634 | "alpha_3": "ful", 635 | "name": "Fulah" 636 | }, 637 | { 638 | "alpha_3": "fur", 639 | "name": "Friulian" 640 | }, 641 | { 642 | "alpha_3": "gaa", 643 | "name": "Ga" 644 | }, 645 | { 646 | "alpha_3": "gay", 647 | "name": "Gayo" 648 | }, 649 | { 650 | "alpha_3": "gba", 651 | "name": "Gbaya" 652 | }, 653 | { 654 | "alpha_3": "gem", 655 | "name": "Germanic languages" 656 | }, 657 | { 658 | "alpha_3": "gez", 659 | "name": "Geez" 660 | }, 661 | { 662 | "alpha_3": "gil", 663 | "name": "Gilbertese" 664 | }, 665 | { 666 | "alpha_2": "gd", 667 | "alpha_3": "gla", 668 | "name": "Gaelic; Scottish Gaelic" 669 | }, 670 | { 671 | "alpha_2": "ga", 672 | "alpha_3": "gle", 673 | "name": "Irish" 674 | }, 675 | { 676 | "alpha_2": "gl", 677 | "alpha_3": "glg", 678 | "name": "Galician" 679 | }, 680 | { 681 | "alpha_2": "gv", 682 | "alpha_3": "glv", 683 | "name": "Manx" 684 | }, 685 | { 686 | "alpha_3": "gmh", 687 | "name": "German, Middle High (ca. 1050-1500)" 688 | }, 689 | { 690 | "alpha_3": "goh", 691 | "name": "German, Old High (ca. 750-1050)" 692 | }, 693 | { 694 | "alpha_3": "gon", 695 | "name": "Gondi" 696 | }, 697 | { 698 | "alpha_3": "gor", 699 | "name": "Gorontalo" 700 | }, 701 | { 702 | "alpha_3": "got", 703 | "name": "Gothic" 704 | }, 705 | { 706 | "alpha_3": "grb", 707 | "name": "Grebo" 708 | }, 709 | { 710 | "alpha_3": "grc", 711 | "name": "Greek, Ancient (to 1453)" 712 | }, 713 | { 714 | "alpha_2": "gn", 715 | "alpha_3": "grn", 716 | "name": "Guarani" 717 | }, 718 | { 719 | "alpha_3": "gsw", 720 | "name": "Swiss German; Alemannic; Alsatian" 721 | }, 722 | { 723 | "alpha_2": "gu", 724 | "alpha_3": "guj", 725 | "name": "Gujarati" 726 | }, 727 | { 728 | "alpha_3": "gwi", 729 | "name": "Gwich'in" 730 | }, 731 | { 732 | "alpha_3": "hai", 733 | "name": "Haida" 734 | }, 735 | { 736 | "alpha_2": "ht", 737 | "alpha_3": "hat", 738 | "name": "Haitian; Haitian Creole" 739 | }, 740 | { 741 | "alpha_2": "ha", 742 | "alpha_3": "hau", 743 | "name": "Hausa" 744 | }, 745 | { 746 | "alpha_3": "haw", 747 | "name": "Hawaiian" 748 | }, 749 | { 750 | "alpha_2": "he", 751 | "alpha_3": "heb", 752 | "name": "Hebrew" 753 | }, 754 | { 755 | "alpha_2": "hz", 756 | "alpha_3": "her", 757 | "name": "Herero" 758 | }, 759 | { 760 | "alpha_3": "hil", 761 | "name": "Hiligaynon" 762 | }, 763 | { 764 | "alpha_3": "him", 765 | "name": "Himachali languages; Western Pahari languages" 766 | }, 767 | { 768 | "alpha_2": "hi", 769 | "alpha_3": "hin", 770 | "name": "Hindi" 771 | }, 772 | { 773 | "alpha_3": "hit", 774 | "name": "Hittite" 775 | }, 776 | { 777 | "alpha_3": "hmn", 778 | "name": "Hmong; Mong" 779 | }, 780 | { 781 | "alpha_2": "ho", 782 | "alpha_3": "hmo", 783 | "name": "Hiri Motu" 784 | }, 785 | { 786 | "alpha_2": "hr", 787 | "alpha_3": "hrv", 788 | "name": "Croatian" 789 | }, 790 | { 791 | "alpha_3": "hsb", 792 | "name": "Upper Sorbian" 793 | }, 794 | { 795 | "alpha_2": "hu", 796 | "alpha_3": "hun", 797 | "name": "Hungarian" 798 | }, 799 | { 800 | "alpha_3": "hup", 801 | "name": "Hupa" 802 | }, 803 | { 804 | "alpha_2": "hy", 805 | "alpha_3": "hye", 806 | "bibliographic": "arm", 807 | "name": "Armenian" 808 | }, 809 | { 810 | "alpha_3": "iba", 811 | "name": "Iban" 812 | }, 813 | { 814 | "alpha_2": "ig", 815 | "alpha_3": "ibo", 816 | "name": "Igbo" 817 | }, 818 | { 819 | "alpha_2": "io", 820 | "alpha_3": "ido", 821 | "name": "Ido" 822 | }, 823 | { 824 | "alpha_2": "ii", 825 | "alpha_3": "iii", 826 | "name": "Sichuan Yi; Nuosu" 827 | }, 828 | { 829 | "alpha_3": "ijo", 830 | "name": "Ijo languages" 831 | }, 832 | { 833 | "alpha_2": "iu", 834 | "alpha_3": "iku", 835 | "name": "Inuktitut" 836 | }, 837 | { 838 | "alpha_2": "ie", 839 | "alpha_3": "ile", 840 | "name": "Interlingue; Occidental" 841 | }, 842 | { 843 | "alpha_3": "ilo", 844 | "name": "Iloko" 845 | }, 846 | { 847 | "alpha_2": "ia", 848 | "alpha_3": "ina", 849 | "name": "Interlingua (International Auxiliary Language Association)" 850 | }, 851 | { 852 | "alpha_3": "inc", 853 | "name": "Indic languages" 854 | }, 855 | { 856 | "alpha_2": "id", 857 | "alpha_3": "ind", 858 | "name": "Indonesian" 859 | }, 860 | { 861 | "alpha_3": "ine", 862 | "name": "Indo-European languages" 863 | }, 864 | { 865 | "alpha_3": "inh", 866 | "name": "Ingush" 867 | }, 868 | { 869 | "alpha_2": "ik", 870 | "alpha_3": "ipk", 871 | "name": "Inupiaq" 872 | }, 873 | { 874 | "alpha_3": "ira", 875 | "name": "Iranian languages" 876 | }, 877 | { 878 | "alpha_3": "iro", 879 | "name": "Iroquoian languages" 880 | }, 881 | { 882 | "alpha_2": "is", 883 | "alpha_3": "isl", 884 | "bibliographic": "ice", 885 | "name": "Icelandic" 886 | }, 887 | { 888 | "alpha_2": "it", 889 | "alpha_3": "ita", 890 | "name": "Italian" 891 | }, 892 | { 893 | "alpha_2": "jv", 894 | "alpha_3": "jav", 895 | "name": "Javanese" 896 | }, 897 | { 898 | "alpha_3": "jbo", 899 | "name": "Lojban" 900 | }, 901 | { 902 | "alpha_2": "ja", 903 | "alpha_3": "jpn", 904 | "name": "Japanese" 905 | }, 906 | { 907 | "alpha_3": "jpr", 908 | "name": "Judeo-Persian" 909 | }, 910 | { 911 | "alpha_3": "jrb", 912 | "name": "Judeo-Arabic" 913 | }, 914 | { 915 | "alpha_3": "kaa", 916 | "name": "Kara-Kalpak" 917 | }, 918 | { 919 | "alpha_3": "kab", 920 | "name": "Kabyle" 921 | }, 922 | { 923 | "alpha_3": "kac", 924 | "name": "Kachin; Jingpho" 925 | }, 926 | { 927 | "alpha_2": "kl", 928 | "alpha_3": "kal", 929 | "name": "Kalaallisut; Greenlandic" 930 | }, 931 | { 932 | "alpha_3": "kam", 933 | "name": "Kamba" 934 | }, 935 | { 936 | "alpha_2": "kn", 937 | "alpha_3": "kan", 938 | "name": "Kannada" 939 | }, 940 | { 941 | "alpha_3": "kar", 942 | "name": "Karen languages" 943 | }, 944 | { 945 | "alpha_2": "ks", 946 | "alpha_3": "kas", 947 | "name": "Kashmiri" 948 | }, 949 | { 950 | "alpha_2": "ka", 951 | "alpha_3": "kat", 952 | "bibliographic": "geo", 953 | "name": "Georgian" 954 | }, 955 | { 956 | "alpha_2": "kr", 957 | "alpha_3": "kau", 958 | "name": "Kanuri" 959 | }, 960 | { 961 | "alpha_3": "kaw", 962 | "name": "Kawi" 963 | }, 964 | { 965 | "alpha_2": "kk", 966 | "alpha_3": "kaz", 967 | "name": "Kazakh" 968 | }, 969 | { 970 | "alpha_3": "kbd", 971 | "name": "Kabardian" 972 | }, 973 | { 974 | "alpha_3": "kha", 975 | "name": "Khasi" 976 | }, 977 | { 978 | "alpha_3": "khi", 979 | "name": "Khoisan languages" 980 | }, 981 | { 982 | "alpha_2": "km", 983 | "alpha_3": "khm", 984 | "name": "Central Khmer" 985 | }, 986 | { 987 | "alpha_3": "kho", 988 | "name": "Khotanese; Sakan" 989 | }, 990 | { 991 | "alpha_2": "ki", 992 | "alpha_3": "kik", 993 | "name": "Kikuyu; Gikuyu" 994 | }, 995 | { 996 | "alpha_2": "rw", 997 | "alpha_3": "kin", 998 | "name": "Kinyarwanda" 999 | }, 1000 | { 1001 | "alpha_2": "ky", 1002 | "alpha_3": "kir", 1003 | "name": "Kirghiz; Kyrgyz" 1004 | }, 1005 | { 1006 | "alpha_3": "kmb", 1007 | "name": "Kimbundu" 1008 | }, 1009 | { 1010 | "alpha_3": "kok", 1011 | "name": "Konkani" 1012 | }, 1013 | { 1014 | "alpha_2": "kv", 1015 | "alpha_3": "kom", 1016 | "name": "Komi" 1017 | }, 1018 | { 1019 | "alpha_2": "kg", 1020 | "alpha_3": "kon", 1021 | "name": "Kongo" 1022 | }, 1023 | { 1024 | "alpha_2": "ko", 1025 | "alpha_3": "kor", 1026 | "name": "Korean" 1027 | }, 1028 | { 1029 | "alpha_3": "kos", 1030 | "name": "Kosraean" 1031 | }, 1032 | { 1033 | "alpha_3": "kpe", 1034 | "name": "Kpelle" 1035 | }, 1036 | { 1037 | "alpha_3": "krc", 1038 | "name": "Karachay-Balkar" 1039 | }, 1040 | { 1041 | "alpha_3": "krl", 1042 | "name": "Karelian" 1043 | }, 1044 | { 1045 | "alpha_3": "kro", 1046 | "name": "Kru languages" 1047 | }, 1048 | { 1049 | "alpha_3": "kru", 1050 | "name": "Kurukh" 1051 | }, 1052 | { 1053 | "alpha_2": "kj", 1054 | "alpha_3": "kua", 1055 | "name": "Kuanyama; Kwanyama" 1056 | }, 1057 | { 1058 | "alpha_3": "kum", 1059 | "name": "Kumyk" 1060 | }, 1061 | { 1062 | "alpha_2": "ku", 1063 | "alpha_3": "kur", 1064 | "name": "Kurdish" 1065 | }, 1066 | { 1067 | "alpha_3": "kut", 1068 | "name": "Kutenai" 1069 | }, 1070 | { 1071 | "alpha_3": "lad", 1072 | "name": "Ladino" 1073 | }, 1074 | { 1075 | "alpha_3": "lah", 1076 | "name": "Lahnda" 1077 | }, 1078 | { 1079 | "alpha_3": "lam", 1080 | "name": "Lamba" 1081 | }, 1082 | { 1083 | "alpha_2": "lo", 1084 | "alpha_3": "lao", 1085 | "name": "Lao" 1086 | }, 1087 | { 1088 | "alpha_2": "la", 1089 | "alpha_3": "lat", 1090 | "name": "Latin" 1091 | }, 1092 | { 1093 | "alpha_2": "lv", 1094 | "alpha_3": "lav", 1095 | "name": "Latvian" 1096 | }, 1097 | { 1098 | "alpha_3": "lez", 1099 | "name": "Lezghian" 1100 | }, 1101 | { 1102 | "alpha_2": "li", 1103 | "alpha_3": "lim", 1104 | "name": "Limburgan; Limburger; Limburgish" 1105 | }, 1106 | { 1107 | "alpha_2": "ln", 1108 | "alpha_3": "lin", 1109 | "name": "Lingala" 1110 | }, 1111 | { 1112 | "alpha_2": "lt", 1113 | "alpha_3": "lit", 1114 | "name": "Lithuanian" 1115 | }, 1116 | { 1117 | "alpha_3": "lol", 1118 | "name": "Mongo" 1119 | }, 1120 | { 1121 | "alpha_3": "loz", 1122 | "name": "Lozi" 1123 | }, 1124 | { 1125 | "alpha_2": "lb", 1126 | "alpha_3": "ltz", 1127 | "name": "Luxembourgish; Letzeburgesch" 1128 | }, 1129 | { 1130 | "alpha_3": "lua", 1131 | "name": "Luba-Lulua" 1132 | }, 1133 | { 1134 | "alpha_2": "lu", 1135 | "alpha_3": "lub", 1136 | "name": "Luba-Katanga" 1137 | }, 1138 | { 1139 | "alpha_2": "lg", 1140 | "alpha_3": "lug", 1141 | "name": "Ganda" 1142 | }, 1143 | { 1144 | "alpha_3": "lui", 1145 | "name": "Luiseno" 1146 | }, 1147 | { 1148 | "alpha_3": "lun", 1149 | "name": "Lunda" 1150 | }, 1151 | { 1152 | "alpha_3": "luo", 1153 | "name": "Luo (Kenya and Tanzania)" 1154 | }, 1155 | { 1156 | "alpha_3": "lus", 1157 | "name": "Lushai" 1158 | }, 1159 | { 1160 | "alpha_3": "mad", 1161 | "name": "Madurese" 1162 | }, 1163 | { 1164 | "alpha_3": "mag", 1165 | "name": "Magahi" 1166 | }, 1167 | { 1168 | "alpha_2": "mh", 1169 | "alpha_3": "mah", 1170 | "name": "Marshallese" 1171 | }, 1172 | { 1173 | "alpha_3": "mai", 1174 | "name": "Maithili" 1175 | }, 1176 | { 1177 | "alpha_3": "mak", 1178 | "name": "Makasar" 1179 | }, 1180 | { 1181 | "alpha_2": "ml", 1182 | "alpha_3": "mal", 1183 | "name": "Malayalam" 1184 | }, 1185 | { 1186 | "alpha_3": "man", 1187 | "name": "Mandingo" 1188 | }, 1189 | { 1190 | "alpha_3": "map", 1191 | "name": "Austronesian languages" 1192 | }, 1193 | { 1194 | "alpha_2": "mr", 1195 | "alpha_3": "mar", 1196 | "name": "Marathi" 1197 | }, 1198 | { 1199 | "alpha_3": "mas", 1200 | "name": "Masai" 1201 | }, 1202 | { 1203 | "alpha_3": "mdf", 1204 | "name": "Moksha" 1205 | }, 1206 | { 1207 | "alpha_3": "mdr", 1208 | "name": "Mandar" 1209 | }, 1210 | { 1211 | "alpha_3": "men", 1212 | "name": "Mende" 1213 | }, 1214 | { 1215 | "alpha_3": "mga", 1216 | "name": "Irish, Middle (900-1200)" 1217 | }, 1218 | { 1219 | "alpha_3": "mic", 1220 | "name": "Mi'kmaq; Micmac" 1221 | }, 1222 | { 1223 | "alpha_3": "min", 1224 | "name": "Minangkabau" 1225 | }, 1226 | { 1227 | "alpha_3": "mis", 1228 | "name": "Uncoded languages" 1229 | }, 1230 | { 1231 | "alpha_2": "mk", 1232 | "alpha_3": "mkd", 1233 | "bibliographic": "mac", 1234 | "name": "Macedonian" 1235 | }, 1236 | { 1237 | "alpha_3": "mkh", 1238 | "name": "Mon-Khmer languages" 1239 | }, 1240 | { 1241 | "alpha_2": "mg", 1242 | "alpha_3": "mlg", 1243 | "name": "Malagasy" 1244 | }, 1245 | { 1246 | "alpha_2": "mt", 1247 | "alpha_3": "mlt", 1248 | "name": "Maltese" 1249 | }, 1250 | { 1251 | "alpha_3": "mnc", 1252 | "name": "Manchu" 1253 | }, 1254 | { 1255 | "alpha_3": "mni", 1256 | "name": "Manipuri" 1257 | }, 1258 | { 1259 | "alpha_3": "mno", 1260 | "name": "Manobo languages" 1261 | }, 1262 | { 1263 | "alpha_3": "moh", 1264 | "name": "Mohawk" 1265 | }, 1266 | { 1267 | "alpha_2": "mn", 1268 | "alpha_3": "mon", 1269 | "name": "Mongolian" 1270 | }, 1271 | { 1272 | "alpha_3": "mos", 1273 | "name": "Mossi" 1274 | }, 1275 | { 1276 | "alpha_2": "mi", 1277 | "alpha_3": "mri", 1278 | "bibliographic": "mao", 1279 | "name": "Maori" 1280 | }, 1281 | { 1282 | "alpha_2": "ms", 1283 | "alpha_3": "msa", 1284 | "bibliographic": "may", 1285 | "name": "Malay" 1286 | }, 1287 | { 1288 | "alpha_3": "mul", 1289 | "name": "Multiple languages" 1290 | }, 1291 | { 1292 | "alpha_3": "mun", 1293 | "name": "Munda languages" 1294 | }, 1295 | { 1296 | "alpha_3": "mus", 1297 | "name": "Creek" 1298 | }, 1299 | { 1300 | "alpha_3": "mwl", 1301 | "name": "Mirandese" 1302 | }, 1303 | { 1304 | "alpha_3": "mwr", 1305 | "name": "Marwari" 1306 | }, 1307 | { 1308 | "alpha_2": "my", 1309 | "alpha_3": "mya", 1310 | "bibliographic": "bur", 1311 | "name": "Burmese" 1312 | }, 1313 | { 1314 | "alpha_3": "myn", 1315 | "name": "Mayan languages" 1316 | }, 1317 | { 1318 | "alpha_3": "myv", 1319 | "name": "Erzya" 1320 | }, 1321 | { 1322 | "alpha_3": "nah", 1323 | "name": "Nahuatl languages" 1324 | }, 1325 | { 1326 | "alpha_3": "nai", 1327 | "name": "North American Indian languages" 1328 | }, 1329 | { 1330 | "alpha_3": "nap", 1331 | "name": "Neapolitan" 1332 | }, 1333 | { 1334 | "alpha_2": "na", 1335 | "alpha_3": "nau", 1336 | "name": "Nauru" 1337 | }, 1338 | { 1339 | "alpha_2": "nv", 1340 | "alpha_3": "nav", 1341 | "name": "Navajo; Navaho" 1342 | }, 1343 | { 1344 | "alpha_2": "nr", 1345 | "alpha_3": "nbl", 1346 | "name": "Ndebele, South; South Ndebele" 1347 | }, 1348 | { 1349 | "alpha_2": "nd", 1350 | "alpha_3": "nde", 1351 | "name": "Ndebele, North; North Ndebele" 1352 | }, 1353 | { 1354 | "alpha_2": "ng", 1355 | "alpha_3": "ndo", 1356 | "name": "Ndonga" 1357 | }, 1358 | { 1359 | "alpha_3": "nds", 1360 | "name": "Low German; Low Saxon; German, Low; Saxon, Low" 1361 | }, 1362 | { 1363 | "alpha_2": "ne", 1364 | "alpha_3": "nep", 1365 | "name": "Nepali" 1366 | }, 1367 | { 1368 | "alpha_3": "new", 1369 | "name": "Nepal Bhasa; Newari" 1370 | }, 1371 | { 1372 | "alpha_3": "nia", 1373 | "name": "Nias" 1374 | }, 1375 | { 1376 | "alpha_3": "nic", 1377 | "name": "Niger-Kordofanian languages" 1378 | }, 1379 | { 1380 | "alpha_3": "niu", 1381 | "name": "Niuean" 1382 | }, 1383 | { 1384 | "alpha_2": "nl", 1385 | "alpha_3": "nld", 1386 | "bibliographic": "dut", 1387 | "name": "Dutch; Flemish" 1388 | }, 1389 | { 1390 | "alpha_2": "nn", 1391 | "alpha_3": "nno", 1392 | "name": "Norwegian Nynorsk; Nynorsk, Norwegian" 1393 | }, 1394 | { 1395 | "alpha_2": "nb", 1396 | "alpha_3": "nob", 1397 | "name": "Bokmål, Norwegian; Norwegian Bokmål" 1398 | }, 1399 | { 1400 | "alpha_3": "nog", 1401 | "name": "Nogai" 1402 | }, 1403 | { 1404 | "alpha_3": "non", 1405 | "name": "Norse, Old" 1406 | }, 1407 | { 1408 | "alpha_2": "no", 1409 | "alpha_3": "nor", 1410 | "name": "Norwegian" 1411 | }, 1412 | { 1413 | "alpha_3": "nqo", 1414 | "name": "N'Ko" 1415 | }, 1416 | { 1417 | "alpha_3": "nso", 1418 | "name": "Pedi; Sepedi; Northern Sotho" 1419 | }, 1420 | { 1421 | "alpha_3": "nub", 1422 | "name": "Nubian languages" 1423 | }, 1424 | { 1425 | "alpha_3": "nwc", 1426 | "name": "Classical Newari; Old Newari; Classical Nepal Bhasa" 1427 | }, 1428 | { 1429 | "alpha_2": "ny", 1430 | "alpha_3": "nya", 1431 | "name": "Chichewa; Chewa; Nyanja" 1432 | }, 1433 | { 1434 | "alpha_3": "nym", 1435 | "name": "Nyamwezi" 1436 | }, 1437 | { 1438 | "alpha_3": "nyn", 1439 | "name": "Nyankole" 1440 | }, 1441 | { 1442 | "alpha_3": "nyo", 1443 | "name": "Nyoro" 1444 | }, 1445 | { 1446 | "alpha_3": "nzi", 1447 | "name": "Nzima" 1448 | }, 1449 | { 1450 | "alpha_2": "oc", 1451 | "alpha_3": "oci", 1452 | "name": "Occitan (post 1500); Provençal" 1453 | }, 1454 | { 1455 | "alpha_2": "oj", 1456 | "alpha_3": "oji", 1457 | "name": "Ojibwa" 1458 | }, 1459 | { 1460 | "alpha_2": "or", 1461 | "alpha_3": "ori", 1462 | "name": "Oriya" 1463 | }, 1464 | { 1465 | "alpha_2": "om", 1466 | "alpha_3": "orm", 1467 | "name": "Oromo" 1468 | }, 1469 | { 1470 | "alpha_3": "osa", 1471 | "name": "Osage" 1472 | }, 1473 | { 1474 | "alpha_2": "os", 1475 | "alpha_3": "oss", 1476 | "name": "Ossetian; Ossetic" 1477 | }, 1478 | { 1479 | "alpha_3": "ota", 1480 | "name": "Turkish, Ottoman (1500-1928)" 1481 | }, 1482 | { 1483 | "alpha_3": "oto", 1484 | "name": "Otomian languages" 1485 | }, 1486 | { 1487 | "alpha_3": "paa", 1488 | "name": "Papuan languages" 1489 | }, 1490 | { 1491 | "alpha_3": "pag", 1492 | "name": "Pangasinan" 1493 | }, 1494 | { 1495 | "alpha_3": "pal", 1496 | "name": "Pahlavi" 1497 | }, 1498 | { 1499 | "alpha_3": "pam", 1500 | "name": "Pampanga; Kapampangan" 1501 | }, 1502 | { 1503 | "alpha_2": "pa", 1504 | "alpha_3": "pan", 1505 | "name": "Panjabi; Punjabi" 1506 | }, 1507 | { 1508 | "alpha_3": "pap", 1509 | "name": "Papiamento" 1510 | }, 1511 | { 1512 | "alpha_3": "pau", 1513 | "name": "Palauan" 1514 | }, 1515 | { 1516 | "alpha_3": "peo", 1517 | "name": "Persian, Old (ca. 600-400 B.C.)" 1518 | }, 1519 | { 1520 | "alpha_3": "phi", 1521 | "name": "Philippine languages" 1522 | }, 1523 | { 1524 | "alpha_3": "phn", 1525 | "name": "Phoenician" 1526 | }, 1527 | { 1528 | "alpha_2": "pi", 1529 | "alpha_3": "pli", 1530 | "name": "Pali" 1531 | }, 1532 | { 1533 | "alpha_2": "pl", 1534 | "alpha_3": "pol", 1535 | "name": "Polish" 1536 | }, 1537 | { 1538 | "alpha_3": "pon", 1539 | "name": "Pohnpeian" 1540 | }, 1541 | { 1542 | "alpha_2": "pt", 1543 | "alpha_3": "por", 1544 | "name": "Portuguese" 1545 | }, 1546 | { 1547 | "alpha_3": "pra", 1548 | "name": "Prakrit languages" 1549 | }, 1550 | { 1551 | "alpha_3": "pro", 1552 | "name": "Provençal, Old (to 1500)" 1553 | }, 1554 | { 1555 | "alpha_2": "ps", 1556 | "alpha_3": "pus", 1557 | "name": "Pushto; Pashto" 1558 | }, 1559 | { 1560 | "alpha_3": "qaa-qtz", 1561 | "name": "Reserved for local use" 1562 | }, 1563 | { 1564 | "alpha_2": "qu", 1565 | "alpha_3": "que", 1566 | "name": "Quechua" 1567 | }, 1568 | { 1569 | "alpha_3": "raj", 1570 | "name": "Rajasthani" 1571 | }, 1572 | { 1573 | "alpha_3": "rap", 1574 | "name": "Rapanui" 1575 | }, 1576 | { 1577 | "alpha_3": "rar", 1578 | "name": "Rarotongan; Cook Islands Maori" 1579 | }, 1580 | { 1581 | "alpha_3": "roa", 1582 | "name": "Romance languages" 1583 | }, 1584 | { 1585 | "alpha_2": "rm", 1586 | "alpha_3": "roh", 1587 | "name": "Romansh" 1588 | }, 1589 | { 1590 | "alpha_3": "rom", 1591 | "name": "Romany" 1592 | }, 1593 | { 1594 | "alpha_2": "ro", 1595 | "alpha_3": "ron", 1596 | "bibliographic": "rum", 1597 | "name": "Romanian; Moldavian; Moldovan" 1598 | }, 1599 | { 1600 | "alpha_2": "rn", 1601 | "alpha_3": "run", 1602 | "name": "Rundi" 1603 | }, 1604 | { 1605 | "alpha_3": "rup", 1606 | "name": "Aromanian; Arumanian; Macedo-Romanian" 1607 | }, 1608 | { 1609 | "alpha_2": "ru", 1610 | "alpha_3": "rus", 1611 | "name": "Russian" 1612 | }, 1613 | { 1614 | "alpha_3": "sad", 1615 | "name": "Sandawe" 1616 | }, 1617 | { 1618 | "alpha_2": "sg", 1619 | "alpha_3": "sag", 1620 | "name": "Sango" 1621 | }, 1622 | { 1623 | "alpha_3": "sah", 1624 | "name": "Yakut" 1625 | }, 1626 | { 1627 | "alpha_3": "sai", 1628 | "name": "South American Indian (Other)" 1629 | }, 1630 | { 1631 | "alpha_3": "sal", 1632 | "name": "Salishan languages" 1633 | }, 1634 | { 1635 | "alpha_3": "sam", 1636 | "name": "Samaritan Aramaic" 1637 | }, 1638 | { 1639 | "alpha_2": "sa", 1640 | "alpha_3": "san", 1641 | "name": "Sanskrit" 1642 | }, 1643 | { 1644 | "alpha_3": "sas", 1645 | "name": "Sasak" 1646 | }, 1647 | { 1648 | "alpha_3": "sat", 1649 | "name": "Santali" 1650 | }, 1651 | { 1652 | "alpha_3": "scn", 1653 | "name": "Sicilian" 1654 | }, 1655 | { 1656 | "alpha_3": "sco", 1657 | "name": "Scots" 1658 | }, 1659 | { 1660 | "alpha_3": "sel", 1661 | "name": "Selkup" 1662 | }, 1663 | { 1664 | "alpha_3": "sem", 1665 | "name": "Semitic languages" 1666 | }, 1667 | { 1668 | "alpha_3": "sga", 1669 | "name": "Irish, Old (to 900)" 1670 | }, 1671 | { 1672 | "alpha_3": "sgn", 1673 | "name": "Sign Languages" 1674 | }, 1675 | { 1676 | "alpha_3": "shn", 1677 | "name": "Shan" 1678 | }, 1679 | { 1680 | "alpha_3": "sid", 1681 | "name": "Sidamo" 1682 | }, 1683 | { 1684 | "alpha_2": "si", 1685 | "alpha_3": "sin", 1686 | "name": "Sinhala; Sinhalese" 1687 | }, 1688 | { 1689 | "alpha_3": "sio", 1690 | "name": "Siouan languages" 1691 | }, 1692 | { 1693 | "alpha_3": "sit", 1694 | "name": "Sino-Tibetan languages" 1695 | }, 1696 | { 1697 | "alpha_3": "sla", 1698 | "name": "Slavic languages" 1699 | }, 1700 | { 1701 | "alpha_2": "sk", 1702 | "alpha_3": "slk", 1703 | "bibliographic": "slo", 1704 | "name": "Slovak" 1705 | }, 1706 | { 1707 | "alpha_2": "sl", 1708 | "alpha_3": "slv", 1709 | "name": "Slovenian" 1710 | }, 1711 | { 1712 | "alpha_3": "sma", 1713 | "name": "Southern Sami" 1714 | }, 1715 | { 1716 | "alpha_2": "se", 1717 | "alpha_3": "sme", 1718 | "name": "Northern Sami" 1719 | }, 1720 | { 1721 | "alpha_3": "smi", 1722 | "name": "Sami languages" 1723 | }, 1724 | { 1725 | "alpha_3": "smj", 1726 | "name": "Lule Sami" 1727 | }, 1728 | { 1729 | "alpha_3": "smn", 1730 | "name": "Inari Sami" 1731 | }, 1732 | { 1733 | "alpha_2": "sm", 1734 | "alpha_3": "smo", 1735 | "name": "Samoan" 1736 | }, 1737 | { 1738 | "alpha_3": "sms", 1739 | "name": "Skolt Sami" 1740 | }, 1741 | { 1742 | "alpha_2": "sn", 1743 | "alpha_3": "sna", 1744 | "name": "Shona" 1745 | }, 1746 | { 1747 | "alpha_2": "sd", 1748 | "alpha_3": "snd", 1749 | "name": "Sindhi" 1750 | }, 1751 | { 1752 | "alpha_3": "snk", 1753 | "name": "Soninke" 1754 | }, 1755 | { 1756 | "alpha_3": "sog", 1757 | "name": "Sogdian" 1758 | }, 1759 | { 1760 | "alpha_2": "so", 1761 | "alpha_3": "som", 1762 | "name": "Somali" 1763 | }, 1764 | { 1765 | "alpha_3": "son", 1766 | "name": "Songhai languages" 1767 | }, 1768 | { 1769 | "alpha_2": "st", 1770 | "alpha_3": "sot", 1771 | "name": "Sotho, Southern" 1772 | }, 1773 | { 1774 | "alpha_2": "es", 1775 | "alpha_3": "spa", 1776 | "name": "Spanish; Castilian" 1777 | }, 1778 | { 1779 | "alpha_2": "sq", 1780 | "alpha_3": "sqi", 1781 | "bibliographic": "alb", 1782 | "name": "Albanian" 1783 | }, 1784 | { 1785 | "alpha_2": "sc", 1786 | "alpha_3": "srd", 1787 | "name": "Sardinian" 1788 | }, 1789 | { 1790 | "alpha_3": "srn", 1791 | "name": "Sranan Tongo" 1792 | }, 1793 | { 1794 | "alpha_2": "sr", 1795 | "alpha_3": "srp", 1796 | "name": "Serbian" 1797 | }, 1798 | { 1799 | "alpha_3": "srr", 1800 | "name": "Serer" 1801 | }, 1802 | { 1803 | "alpha_3": "ssa", 1804 | "name": "Nilo-Saharan languages" 1805 | }, 1806 | { 1807 | "alpha_2": "ss", 1808 | "alpha_3": "ssw", 1809 | "name": "Swati" 1810 | }, 1811 | { 1812 | "alpha_3": "suk", 1813 | "name": "Sukuma" 1814 | }, 1815 | { 1816 | "alpha_2": "su", 1817 | "alpha_3": "sun", 1818 | "name": "Sundanese" 1819 | }, 1820 | { 1821 | "alpha_3": "sus", 1822 | "name": "Susu" 1823 | }, 1824 | { 1825 | "alpha_3": "sux", 1826 | "name": "Sumerian" 1827 | }, 1828 | { 1829 | "alpha_2": "sw", 1830 | "alpha_3": "swa", 1831 | "name": "Swahili" 1832 | }, 1833 | { 1834 | "alpha_2": "sv", 1835 | "alpha_3": "swe", 1836 | "name": "Swedish" 1837 | }, 1838 | { 1839 | "alpha_3": "syc", 1840 | "name": "Classical Syriac" 1841 | }, 1842 | { 1843 | "alpha_3": "syr", 1844 | "name": "Syriac" 1845 | }, 1846 | { 1847 | "alpha_2": "ty", 1848 | "alpha_3": "tah", 1849 | "name": "Tahitian" 1850 | }, 1851 | { 1852 | "alpha_3": "tai", 1853 | "name": "Tai languages" 1854 | }, 1855 | { 1856 | "alpha_2": "ta", 1857 | "alpha_3": "tam", 1858 | "name": "Tamil" 1859 | }, 1860 | { 1861 | "alpha_2": "tt", 1862 | "alpha_3": "tat", 1863 | "name": "Tatar" 1864 | }, 1865 | { 1866 | "alpha_2": "te", 1867 | "alpha_3": "tel", 1868 | "name": "Telugu" 1869 | }, 1870 | { 1871 | "alpha_3": "tem", 1872 | "name": "Timne" 1873 | }, 1874 | { 1875 | "alpha_3": "ter", 1876 | "name": "Tereno" 1877 | }, 1878 | { 1879 | "alpha_3": "tet", 1880 | "name": "Tetum" 1881 | }, 1882 | { 1883 | "alpha_2": "tg", 1884 | "alpha_3": "tgk", 1885 | "name": "Tajik" 1886 | }, 1887 | { 1888 | "alpha_2": "tl", 1889 | "alpha_3": "tgl", 1890 | "name": "Tagalog" 1891 | }, 1892 | { 1893 | "alpha_2": "th", 1894 | "alpha_3": "tha", 1895 | "name": "Thai" 1896 | }, 1897 | { 1898 | "alpha_3": "tig", 1899 | "name": "Tigre" 1900 | }, 1901 | { 1902 | "alpha_2": "ti", 1903 | "alpha_3": "tir", 1904 | "name": "Tigrinya" 1905 | }, 1906 | { 1907 | "alpha_3": "tiv", 1908 | "name": "Tiv" 1909 | }, 1910 | { 1911 | "alpha_3": "tkl", 1912 | "name": "Tokelau" 1913 | }, 1914 | { 1915 | "alpha_3": "tlh", 1916 | "name": "Klingon; tlhIngan-Hol" 1917 | }, 1918 | { 1919 | "alpha_3": "tli", 1920 | "name": "Tlingit" 1921 | }, 1922 | { 1923 | "alpha_3": "tmh", 1924 | "name": "Tamashek" 1925 | }, 1926 | { 1927 | "alpha_3": "tog", 1928 | "name": "Tonga (Nyasa)" 1929 | }, 1930 | { 1931 | "alpha_2": "to", 1932 | "alpha_3": "ton", 1933 | "name": "Tonga (Tonga Islands)" 1934 | }, 1935 | { 1936 | "alpha_3": "tpi", 1937 | "name": "Tok Pisin" 1938 | }, 1939 | { 1940 | "alpha_3": "tsi", 1941 | "name": "Tsimshian" 1942 | }, 1943 | { 1944 | "alpha_2": "tn", 1945 | "alpha_3": "tsn", 1946 | "name": "Tswana" 1947 | }, 1948 | { 1949 | "alpha_2": "ts", 1950 | "alpha_3": "tso", 1951 | "name": "Tsonga" 1952 | }, 1953 | { 1954 | "alpha_2": "tk", 1955 | "alpha_3": "tuk", 1956 | "name": "Turkmen" 1957 | }, 1958 | { 1959 | "alpha_3": "tum", 1960 | "name": "Tumbuka" 1961 | }, 1962 | { 1963 | "alpha_3": "tup", 1964 | "name": "Tupi languages" 1965 | }, 1966 | { 1967 | "alpha_2": "tr", 1968 | "alpha_3": "tur", 1969 | "name": "Turkish" 1970 | }, 1971 | { 1972 | "alpha_3": "tut", 1973 | "name": "Altaic languages" 1974 | }, 1975 | { 1976 | "alpha_3": "tvl", 1977 | "name": "Tuvalu" 1978 | }, 1979 | { 1980 | "alpha_2": "tw", 1981 | "alpha_3": "twi", 1982 | "name": "Twi" 1983 | }, 1984 | { 1985 | "alpha_3": "tyv", 1986 | "name": "Tuvinian" 1987 | }, 1988 | { 1989 | "alpha_3": "udm", 1990 | "name": "Udmurt" 1991 | }, 1992 | { 1993 | "alpha_3": "uga", 1994 | "name": "Ugaritic" 1995 | }, 1996 | { 1997 | "alpha_2": "ug", 1998 | "alpha_3": "uig", 1999 | "name": "Uighur; Uyghur" 2000 | }, 2001 | { 2002 | "alpha_2": "uk", 2003 | "alpha_3": "ukr", 2004 | "name": "Ukrainian" 2005 | }, 2006 | { 2007 | "alpha_3": "umb", 2008 | "name": "Umbundu" 2009 | }, 2010 | { 2011 | "alpha_3": "und", 2012 | "name": "Undetermined" 2013 | }, 2014 | { 2015 | "alpha_2": "ur", 2016 | "alpha_3": "urd", 2017 | "name": "Urdu" 2018 | }, 2019 | { 2020 | "alpha_2": "uz", 2021 | "alpha_3": "uzb", 2022 | "name": "Uzbek" 2023 | }, 2024 | { 2025 | "alpha_3": "vai", 2026 | "name": "Vai" 2027 | }, 2028 | { 2029 | "alpha_2": "ve", 2030 | "alpha_3": "ven", 2031 | "name": "Venda" 2032 | }, 2033 | { 2034 | "alpha_2": "vi", 2035 | "alpha_3": "vie", 2036 | "name": "Vietnamese" 2037 | }, 2038 | { 2039 | "alpha_2": "vo", 2040 | "alpha_3": "vol", 2041 | "name": "Volapük" 2042 | }, 2043 | { 2044 | "alpha_3": "vot", 2045 | "name": "Votic" 2046 | }, 2047 | { 2048 | "alpha_3": "wak", 2049 | "name": "Wakashan languages" 2050 | }, 2051 | { 2052 | "alpha_3": "wal", 2053 | "name": "Walamo" 2054 | }, 2055 | { 2056 | "alpha_3": "war", 2057 | "name": "Waray" 2058 | }, 2059 | { 2060 | "alpha_3": "was", 2061 | "name": "Washo" 2062 | }, 2063 | { 2064 | "alpha_3": "wen", 2065 | "name": "Sorbian languages" 2066 | }, 2067 | { 2068 | "alpha_2": "wa", 2069 | "alpha_3": "wln", 2070 | "name": "Walloon" 2071 | }, 2072 | { 2073 | "alpha_2": "wo", 2074 | "alpha_3": "wol", 2075 | "name": "Wolof" 2076 | }, 2077 | { 2078 | "alpha_3": "xal", 2079 | "name": "Kalmyk; Oirat" 2080 | }, 2081 | { 2082 | "alpha_2": "xh", 2083 | "alpha_3": "xho", 2084 | "name": "Xhosa" 2085 | }, 2086 | { 2087 | "alpha_3": "yao", 2088 | "name": "Yao" 2089 | }, 2090 | { 2091 | "alpha_3": "yap", 2092 | "name": "Yapese" 2093 | }, 2094 | { 2095 | "alpha_2": "yi", 2096 | "alpha_3": "yid", 2097 | "name": "Yiddish" 2098 | }, 2099 | { 2100 | "alpha_2": "yo", 2101 | "alpha_3": "yor", 2102 | "name": "Yoruba" 2103 | }, 2104 | { 2105 | "alpha_3": "ypk", 2106 | "name": "Yupik languages" 2107 | }, 2108 | { 2109 | "alpha_3": "zap", 2110 | "name": "Zapotec" 2111 | }, 2112 | { 2113 | "alpha_3": "zbl", 2114 | "name": "Blissymbols; Blissymbolics; Bliss" 2115 | }, 2116 | { 2117 | "alpha_3": "zen", 2118 | "name": "Zenaga" 2119 | }, 2120 | { 2121 | "alpha_3": "zgh", 2122 | "name": "Standard Moroccan Tamazight" 2123 | }, 2124 | { 2125 | "alpha_2": "za", 2126 | "alpha_3": "zha", 2127 | "name": "Zhuang; Chuang" 2128 | }, 2129 | { 2130 | "alpha_2": "zh", 2131 | "alpha_3": "zho", 2132 | "bibliographic": "chi", 2133 | "name": "Chinese" 2134 | }, 2135 | { 2136 | "alpha_3": "znd", 2137 | "name": "Zande languages" 2138 | }, 2139 | { 2140 | "alpha_2": "zu", 2141 | "alpha_3": "zul", 2142 | "name": "Zulu" 2143 | }, 2144 | { 2145 | "alpha_3": "zun", 2146 | "name": "Zuni" 2147 | }, 2148 | { 2149 | "alpha_3": "zxx", 2150 | "name": "No linguistic content; Not applicable" 2151 | }, 2152 | { 2153 | "alpha_3": "zza", 2154 | "name": "Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" 2155 | } 2156 | ] 2157 | } 2158 | -------------------------------------------------------------------------------- /src/isocodes/resources/iso_3166-1.json: -------------------------------------------------------------------------------- 1 | { 2 | "3166-1": [ 3 | { 4 | "alpha_2": "AW", 5 | "alpha_3": "ABW", 6 | "flag": "🇦🇼", 7 | "name": "Aruba", 8 | "numeric": "533" 9 | }, 10 | { 11 | "alpha_2": "AF", 12 | "alpha_3": "AFG", 13 | "flag": "🇦🇫", 14 | "name": "Afghanistan", 15 | "numeric": "004", 16 | "official_name": "Islamic Republic of Afghanistan" 17 | }, 18 | { 19 | "alpha_2": "AO", 20 | "alpha_3": "AGO", 21 | "flag": "🇦🇴", 22 | "name": "Angola", 23 | "numeric": "024", 24 | "official_name": "Republic of Angola" 25 | }, 26 | { 27 | "alpha_2": "AI", 28 | "alpha_3": "AIA", 29 | "flag": "🇦🇮", 30 | "name": "Anguilla", 31 | "numeric": "660" 32 | }, 33 | { 34 | "alpha_2": "AX", 35 | "alpha_3": "ALA", 36 | "flag": "🇦🇽", 37 | "name": "Åland Islands", 38 | "numeric": "248" 39 | }, 40 | { 41 | "alpha_2": "AL", 42 | "alpha_3": "ALB", 43 | "flag": "🇦🇱", 44 | "name": "Albania", 45 | "numeric": "008", 46 | "official_name": "Republic of Albania" 47 | }, 48 | { 49 | "alpha_2": "AD", 50 | "alpha_3": "AND", 51 | "flag": "🇦🇩", 52 | "name": "Andorra", 53 | "numeric": "020", 54 | "official_name": "Principality of Andorra" 55 | }, 56 | { 57 | "alpha_2": "AE", 58 | "alpha_3": "ARE", 59 | "flag": "🇦🇪", 60 | "name": "United Arab Emirates", 61 | "numeric": "784" 62 | }, 63 | { 64 | "alpha_2": "AR", 65 | "alpha_3": "ARG", 66 | "flag": "🇦🇷", 67 | "name": "Argentina", 68 | "numeric": "032", 69 | "official_name": "Argentine Republic" 70 | }, 71 | { 72 | "alpha_2": "AM", 73 | "alpha_3": "ARM", 74 | "flag": "🇦🇲", 75 | "name": "Armenia", 76 | "numeric": "051", 77 | "official_name": "Republic of Armenia" 78 | }, 79 | { 80 | "alpha_2": "AS", 81 | "alpha_3": "ASM", 82 | "flag": "🇦🇸", 83 | "name": "American Samoa", 84 | "numeric": "016" 85 | }, 86 | { 87 | "alpha_2": "AQ", 88 | "alpha_3": "ATA", 89 | "flag": "🇦🇶", 90 | "name": "Antarctica", 91 | "numeric": "010" 92 | }, 93 | { 94 | "alpha_2": "TF", 95 | "alpha_3": "ATF", 96 | "flag": "🇹🇫", 97 | "name": "French Southern Territories", 98 | "numeric": "260" 99 | }, 100 | { 101 | "alpha_2": "AG", 102 | "alpha_3": "ATG", 103 | "flag": "🇦🇬", 104 | "name": "Antigua and Barbuda", 105 | "numeric": "028" 106 | }, 107 | { 108 | "alpha_2": "AU", 109 | "alpha_3": "AUS", 110 | "flag": "🇦🇺", 111 | "name": "Australia", 112 | "numeric": "036" 113 | }, 114 | { 115 | "alpha_2": "AT", 116 | "alpha_3": "AUT", 117 | "flag": "🇦🇹", 118 | "name": "Austria", 119 | "numeric": "040", 120 | "official_name": "Republic of Austria" 121 | }, 122 | { 123 | "alpha_2": "AZ", 124 | "alpha_3": "AZE", 125 | "flag": "🇦🇿", 126 | "name": "Azerbaijan", 127 | "numeric": "031", 128 | "official_name": "Republic of Azerbaijan" 129 | }, 130 | { 131 | "alpha_2": "BI", 132 | "alpha_3": "BDI", 133 | "flag": "🇧🇮", 134 | "name": "Burundi", 135 | "numeric": "108", 136 | "official_name": "Republic of Burundi" 137 | }, 138 | { 139 | "alpha_2": "BE", 140 | "alpha_3": "BEL", 141 | "flag": "🇧🇪", 142 | "name": "Belgium", 143 | "numeric": "056", 144 | "official_name": "Kingdom of Belgium" 145 | }, 146 | { 147 | "alpha_2": "BJ", 148 | "alpha_3": "BEN", 149 | "flag": "🇧🇯", 150 | "name": "Benin", 151 | "numeric": "204", 152 | "official_name": "Republic of Benin" 153 | }, 154 | { 155 | "alpha_2": "BQ", 156 | "alpha_3": "BES", 157 | "flag": "🇧🇶", 158 | "name": "Bonaire, Sint Eustatius and Saba", 159 | "numeric": "535", 160 | "official_name": "Bonaire, Sint Eustatius and Saba" 161 | }, 162 | { 163 | "alpha_2": "BF", 164 | "alpha_3": "BFA", 165 | "flag": "🇧🇫", 166 | "name": "Burkina Faso", 167 | "numeric": "854" 168 | }, 169 | { 170 | "alpha_2": "BD", 171 | "alpha_3": "BGD", 172 | "flag": "🇧🇩", 173 | "name": "Bangladesh", 174 | "numeric": "050", 175 | "official_name": "People's Republic of Bangladesh" 176 | }, 177 | { 178 | "alpha_2": "BG", 179 | "alpha_3": "BGR", 180 | "flag": "🇧🇬", 181 | "name": "Bulgaria", 182 | "numeric": "100", 183 | "official_name": "Republic of Bulgaria" 184 | }, 185 | { 186 | "alpha_2": "BH", 187 | "alpha_3": "BHR", 188 | "flag": "🇧🇭", 189 | "name": "Bahrain", 190 | "numeric": "048", 191 | "official_name": "Kingdom of Bahrain" 192 | }, 193 | { 194 | "alpha_2": "BS", 195 | "alpha_3": "BHS", 196 | "flag": "🇧🇸", 197 | "name": "Bahamas", 198 | "numeric": "044", 199 | "official_name": "Commonwealth of the Bahamas" 200 | }, 201 | { 202 | "alpha_2": "BA", 203 | "alpha_3": "BIH", 204 | "flag": "🇧🇦", 205 | "name": "Bosnia and Herzegovina", 206 | "numeric": "070", 207 | "official_name": "Republic of Bosnia and Herzegovina" 208 | }, 209 | { 210 | "alpha_2": "BL", 211 | "alpha_3": "BLM", 212 | "flag": "🇧🇱", 213 | "name": "Saint Barthélemy", 214 | "numeric": "652" 215 | }, 216 | { 217 | "alpha_2": "BY", 218 | "alpha_3": "BLR", 219 | "flag": "🇧🇾", 220 | "name": "Belarus", 221 | "numeric": "112", 222 | "official_name": "Republic of Belarus" 223 | }, 224 | { 225 | "alpha_2": "BZ", 226 | "alpha_3": "BLZ", 227 | "flag": "🇧🇿", 228 | "name": "Belize", 229 | "numeric": "084" 230 | }, 231 | { 232 | "alpha_2": "BM", 233 | "alpha_3": "BMU", 234 | "flag": "🇧🇲", 235 | "name": "Bermuda", 236 | "numeric": "060" 237 | }, 238 | { 239 | "alpha_2": "BO", 240 | "alpha_3": "BOL", 241 | "common_name": "Bolivia", 242 | "flag": "🇧🇴", 243 | "name": "Bolivia, Plurinational State of", 244 | "numeric": "068", 245 | "official_name": "Plurinational State of Bolivia" 246 | }, 247 | { 248 | "alpha_2": "BR", 249 | "alpha_3": "BRA", 250 | "flag": "🇧🇷", 251 | "name": "Brazil", 252 | "numeric": "076", 253 | "official_name": "Federative Republic of Brazil" 254 | }, 255 | { 256 | "alpha_2": "BB", 257 | "alpha_3": "BRB", 258 | "flag": "🇧🇧", 259 | "name": "Barbados", 260 | "numeric": "052" 261 | }, 262 | { 263 | "alpha_2": "BN", 264 | "alpha_3": "BRN", 265 | "flag": "🇧🇳", 266 | "name": "Brunei Darussalam", 267 | "numeric": "096" 268 | }, 269 | { 270 | "alpha_2": "BT", 271 | "alpha_3": "BTN", 272 | "flag": "🇧🇹", 273 | "name": "Bhutan", 274 | "numeric": "064", 275 | "official_name": "Kingdom of Bhutan" 276 | }, 277 | { 278 | "alpha_2": "BV", 279 | "alpha_3": "BVT", 280 | "flag": "🇧🇻", 281 | "name": "Bouvet Island", 282 | "numeric": "074" 283 | }, 284 | { 285 | "alpha_2": "BW", 286 | "alpha_3": "BWA", 287 | "flag": "🇧🇼", 288 | "name": "Botswana", 289 | "numeric": "072", 290 | "official_name": "Republic of Botswana" 291 | }, 292 | { 293 | "alpha_2": "CF", 294 | "alpha_3": "CAF", 295 | "flag": "🇨🇫", 296 | "name": "Central African Republic", 297 | "numeric": "140" 298 | }, 299 | { 300 | "alpha_2": "CA", 301 | "alpha_3": "CAN", 302 | "flag": "🇨🇦", 303 | "name": "Canada", 304 | "numeric": "124" 305 | }, 306 | { 307 | "alpha_2": "CC", 308 | "alpha_3": "CCK", 309 | "flag": "🇨🇨", 310 | "name": "Cocos (Keeling) Islands", 311 | "numeric": "166" 312 | }, 313 | { 314 | "alpha_2": "CH", 315 | "alpha_3": "CHE", 316 | "flag": "🇨🇭", 317 | "name": "Switzerland", 318 | "numeric": "756", 319 | "official_name": "Swiss Confederation" 320 | }, 321 | { 322 | "alpha_2": "CL", 323 | "alpha_3": "CHL", 324 | "flag": "🇨🇱", 325 | "name": "Chile", 326 | "numeric": "152", 327 | "official_name": "Republic of Chile" 328 | }, 329 | { 330 | "alpha_2": "CN", 331 | "alpha_3": "CHN", 332 | "flag": "🇨🇳", 333 | "name": "China", 334 | "numeric": "156", 335 | "official_name": "People's Republic of China" 336 | }, 337 | { 338 | "alpha_2": "CI", 339 | "alpha_3": "CIV", 340 | "flag": "🇨🇮", 341 | "name": "Côte d'Ivoire", 342 | "numeric": "384", 343 | "official_name": "Republic of Côte d'Ivoire" 344 | }, 345 | { 346 | "alpha_2": "CM", 347 | "alpha_3": "CMR", 348 | "flag": "🇨🇲", 349 | "name": "Cameroon", 350 | "numeric": "120", 351 | "official_name": "Republic of Cameroon" 352 | }, 353 | { 354 | "alpha_2": "CD", 355 | "alpha_3": "COD", 356 | "flag": "🇨🇩", 357 | "name": "Congo, The Democratic Republic of the", 358 | "numeric": "180" 359 | }, 360 | { 361 | "alpha_2": "CG", 362 | "alpha_3": "COG", 363 | "flag": "🇨🇬", 364 | "name": "Congo", 365 | "numeric": "178", 366 | "official_name": "Republic of the Congo" 367 | }, 368 | { 369 | "alpha_2": "CK", 370 | "alpha_3": "COK", 371 | "flag": "🇨🇰", 372 | "name": "Cook Islands", 373 | "numeric": "184" 374 | }, 375 | { 376 | "alpha_2": "CO", 377 | "alpha_3": "COL", 378 | "flag": "🇨🇴", 379 | "name": "Colombia", 380 | "numeric": "170", 381 | "official_name": "Republic of Colombia" 382 | }, 383 | { 384 | "alpha_2": "KM", 385 | "alpha_3": "COM", 386 | "flag": "🇰🇲", 387 | "name": "Comoros", 388 | "numeric": "174", 389 | "official_name": "Union of the Comoros" 390 | }, 391 | { 392 | "alpha_2": "CV", 393 | "alpha_3": "CPV", 394 | "flag": "🇨🇻", 395 | "name": "Cabo Verde", 396 | "numeric": "132", 397 | "official_name": "Republic of Cabo Verde" 398 | }, 399 | { 400 | "alpha_2": "CR", 401 | "alpha_3": "CRI", 402 | "flag": "🇨🇷", 403 | "name": "Costa Rica", 404 | "numeric": "188", 405 | "official_name": "Republic of Costa Rica" 406 | }, 407 | { 408 | "alpha_2": "CU", 409 | "alpha_3": "CUB", 410 | "flag": "🇨🇺", 411 | "name": "Cuba", 412 | "numeric": "192", 413 | "official_name": "Republic of Cuba" 414 | }, 415 | { 416 | "alpha_2": "CW", 417 | "alpha_3": "CUW", 418 | "flag": "🇨🇼", 419 | "name": "Curaçao", 420 | "numeric": "531", 421 | "official_name": "Curaçao" 422 | }, 423 | { 424 | "alpha_2": "CX", 425 | "alpha_3": "CXR", 426 | "flag": "🇨🇽", 427 | "name": "Christmas Island", 428 | "numeric": "162" 429 | }, 430 | { 431 | "alpha_2": "KY", 432 | "alpha_3": "CYM", 433 | "flag": "🇰🇾", 434 | "name": "Cayman Islands", 435 | "numeric": "136" 436 | }, 437 | { 438 | "alpha_2": "CY", 439 | "alpha_3": "CYP", 440 | "flag": "🇨🇾", 441 | "name": "Cyprus", 442 | "numeric": "196", 443 | "official_name": "Republic of Cyprus" 444 | }, 445 | { 446 | "alpha_2": "CZ", 447 | "alpha_3": "CZE", 448 | "flag": "🇨🇿", 449 | "name": "Czechia", 450 | "numeric": "203", 451 | "official_name": "Czech Republic" 452 | }, 453 | { 454 | "alpha_2": "DE", 455 | "alpha_3": "DEU", 456 | "flag": "🇩🇪", 457 | "name": "Germany", 458 | "numeric": "276", 459 | "official_name": "Federal Republic of Germany" 460 | }, 461 | { 462 | "alpha_2": "DJ", 463 | "alpha_3": "DJI", 464 | "flag": "🇩🇯", 465 | "name": "Djibouti", 466 | "numeric": "262", 467 | "official_name": "Republic of Djibouti" 468 | }, 469 | { 470 | "alpha_2": "DM", 471 | "alpha_3": "DMA", 472 | "flag": "🇩🇲", 473 | "name": "Dominica", 474 | "numeric": "212", 475 | "official_name": "Commonwealth of Dominica" 476 | }, 477 | { 478 | "alpha_2": "DK", 479 | "alpha_3": "DNK", 480 | "flag": "🇩🇰", 481 | "name": "Denmark", 482 | "numeric": "208", 483 | "official_name": "Kingdom of Denmark" 484 | }, 485 | { 486 | "alpha_2": "DO", 487 | "alpha_3": "DOM", 488 | "flag": "🇩🇴", 489 | "name": "Dominican Republic", 490 | "numeric": "214" 491 | }, 492 | { 493 | "alpha_2": "DZ", 494 | "alpha_3": "DZA", 495 | "flag": "🇩🇿", 496 | "name": "Algeria", 497 | "numeric": "012", 498 | "official_name": "People's Democratic Republic of Algeria" 499 | }, 500 | { 501 | "alpha_2": "EC", 502 | "alpha_3": "ECU", 503 | "flag": "🇪🇨", 504 | "name": "Ecuador", 505 | "numeric": "218", 506 | "official_name": "Republic of Ecuador" 507 | }, 508 | { 509 | "alpha_2": "EG", 510 | "alpha_3": "EGY", 511 | "flag": "🇪🇬", 512 | "name": "Egypt", 513 | "numeric": "818", 514 | "official_name": "Arab Republic of Egypt" 515 | }, 516 | { 517 | "alpha_2": "ER", 518 | "alpha_3": "ERI", 519 | "flag": "🇪🇷", 520 | "name": "Eritrea", 521 | "numeric": "232", 522 | "official_name": "the State of Eritrea" 523 | }, 524 | { 525 | "alpha_2": "EH", 526 | "alpha_3": "ESH", 527 | "flag": "🇪🇭", 528 | "name": "Western Sahara", 529 | "numeric": "732" 530 | }, 531 | { 532 | "alpha_2": "ES", 533 | "alpha_3": "ESP", 534 | "flag": "🇪🇸", 535 | "name": "Spain", 536 | "numeric": "724", 537 | "official_name": "Kingdom of Spain" 538 | }, 539 | { 540 | "alpha_2": "EE", 541 | "alpha_3": "EST", 542 | "flag": "🇪🇪", 543 | "name": "Estonia", 544 | "numeric": "233", 545 | "official_name": "Republic of Estonia" 546 | }, 547 | { 548 | "alpha_2": "ET", 549 | "alpha_3": "ETH", 550 | "flag": "🇪🇹", 551 | "name": "Ethiopia", 552 | "numeric": "231", 553 | "official_name": "Federal Democratic Republic of Ethiopia" 554 | }, 555 | { 556 | "alpha_2": "FI", 557 | "alpha_3": "FIN", 558 | "flag": "🇫🇮", 559 | "name": "Finland", 560 | "numeric": "246", 561 | "official_name": "Republic of Finland" 562 | }, 563 | { 564 | "alpha_2": "FJ", 565 | "alpha_3": "FJI", 566 | "flag": "🇫🇯", 567 | "name": "Fiji", 568 | "numeric": "242", 569 | "official_name": "Republic of Fiji" 570 | }, 571 | { 572 | "alpha_2": "FK", 573 | "alpha_3": "FLK", 574 | "flag": "🇫🇰", 575 | "name": "Falkland Islands (Malvinas)", 576 | "numeric": "238" 577 | }, 578 | { 579 | "alpha_2": "FR", 580 | "alpha_3": "FRA", 581 | "flag": "🇫🇷", 582 | "name": "France", 583 | "numeric": "250", 584 | "official_name": "French Republic" 585 | }, 586 | { 587 | "alpha_2": "FO", 588 | "alpha_3": "FRO", 589 | "flag": "🇫🇴", 590 | "name": "Faroe Islands", 591 | "numeric": "234" 592 | }, 593 | { 594 | "alpha_2": "FM", 595 | "alpha_3": "FSM", 596 | "flag": "🇫🇲", 597 | "name": "Micronesia, Federated States of", 598 | "numeric": "583", 599 | "official_name": "Federated States of Micronesia" 600 | }, 601 | { 602 | "alpha_2": "GA", 603 | "alpha_3": "GAB", 604 | "flag": "🇬🇦", 605 | "name": "Gabon", 606 | "numeric": "266", 607 | "official_name": "Gabonese Republic" 608 | }, 609 | { 610 | "alpha_2": "GB", 611 | "alpha_3": "GBR", 612 | "flag": "🇬🇧", 613 | "name": "United Kingdom", 614 | "numeric": "826", 615 | "official_name": "United Kingdom of Great Britain and Northern Ireland" 616 | }, 617 | { 618 | "alpha_2": "GE", 619 | "alpha_3": "GEO", 620 | "flag": "🇬🇪", 621 | "name": "Georgia", 622 | "numeric": "268" 623 | }, 624 | { 625 | "alpha_2": "GG", 626 | "alpha_3": "GGY", 627 | "flag": "🇬🇬", 628 | "name": "Guernsey", 629 | "numeric": "831" 630 | }, 631 | { 632 | "alpha_2": "GH", 633 | "alpha_3": "GHA", 634 | "flag": "🇬🇭", 635 | "name": "Ghana", 636 | "numeric": "288", 637 | "official_name": "Republic of Ghana" 638 | }, 639 | { 640 | "alpha_2": "GI", 641 | "alpha_3": "GIB", 642 | "flag": "🇬🇮", 643 | "name": "Gibraltar", 644 | "numeric": "292" 645 | }, 646 | { 647 | "alpha_2": "GN", 648 | "alpha_3": "GIN", 649 | "flag": "🇬🇳", 650 | "name": "Guinea", 651 | "numeric": "324", 652 | "official_name": "Republic of Guinea" 653 | }, 654 | { 655 | "alpha_2": "GP", 656 | "alpha_3": "GLP", 657 | "flag": "🇬🇵", 658 | "name": "Guadeloupe", 659 | "numeric": "312" 660 | }, 661 | { 662 | "alpha_2": "GM", 663 | "alpha_3": "GMB", 664 | "flag": "🇬🇲", 665 | "name": "Gambia", 666 | "numeric": "270", 667 | "official_name": "Republic of the Gambia" 668 | }, 669 | { 670 | "alpha_2": "GW", 671 | "alpha_3": "GNB", 672 | "flag": "🇬🇼", 673 | "name": "Guinea-Bissau", 674 | "numeric": "624", 675 | "official_name": "Republic of Guinea-Bissau" 676 | }, 677 | { 678 | "alpha_2": "GQ", 679 | "alpha_3": "GNQ", 680 | "flag": "🇬🇶", 681 | "name": "Equatorial Guinea", 682 | "numeric": "226", 683 | "official_name": "Republic of Equatorial Guinea" 684 | }, 685 | { 686 | "alpha_2": "GR", 687 | "alpha_3": "GRC", 688 | "flag": "🇬🇷", 689 | "name": "Greece", 690 | "numeric": "300", 691 | "official_name": "Hellenic Republic" 692 | }, 693 | { 694 | "alpha_2": "GD", 695 | "alpha_3": "GRD", 696 | "flag": "🇬🇩", 697 | "name": "Grenada", 698 | "numeric": "308" 699 | }, 700 | { 701 | "alpha_2": "GL", 702 | "alpha_3": "GRL", 703 | "flag": "🇬🇱", 704 | "name": "Greenland", 705 | "numeric": "304" 706 | }, 707 | { 708 | "alpha_2": "GT", 709 | "alpha_3": "GTM", 710 | "flag": "🇬🇹", 711 | "name": "Guatemala", 712 | "numeric": "320", 713 | "official_name": "Republic of Guatemala" 714 | }, 715 | { 716 | "alpha_2": "GF", 717 | "alpha_3": "GUF", 718 | "flag": "🇬🇫", 719 | "name": "French Guiana", 720 | "numeric": "254" 721 | }, 722 | { 723 | "alpha_2": "GU", 724 | "alpha_3": "GUM", 725 | "flag": "🇬🇺", 726 | "name": "Guam", 727 | "numeric": "316" 728 | }, 729 | { 730 | "alpha_2": "GY", 731 | "alpha_3": "GUY", 732 | "flag": "🇬🇾", 733 | "name": "Guyana", 734 | "numeric": "328", 735 | "official_name": "Republic of Guyana" 736 | }, 737 | { 738 | "alpha_2": "HK", 739 | "alpha_3": "HKG", 740 | "flag": "🇭🇰", 741 | "name": "Hong Kong", 742 | "numeric": "344", 743 | "official_name": "Hong Kong Special Administrative Region of China" 744 | }, 745 | { 746 | "alpha_2": "HM", 747 | "alpha_3": "HMD", 748 | "flag": "🇭🇲", 749 | "name": "Heard Island and McDonald Islands", 750 | "numeric": "334" 751 | }, 752 | { 753 | "alpha_2": "HN", 754 | "alpha_3": "HND", 755 | "flag": "🇭🇳", 756 | "name": "Honduras", 757 | "numeric": "340", 758 | "official_name": "Republic of Honduras" 759 | }, 760 | { 761 | "alpha_2": "HR", 762 | "alpha_3": "HRV", 763 | "flag": "🇭🇷", 764 | "name": "Croatia", 765 | "numeric": "191", 766 | "official_name": "Republic of Croatia" 767 | }, 768 | { 769 | "alpha_2": "HT", 770 | "alpha_3": "HTI", 771 | "flag": "🇭🇹", 772 | "name": "Haiti", 773 | "numeric": "332", 774 | "official_name": "Republic of Haiti" 775 | }, 776 | { 777 | "alpha_2": "HU", 778 | "alpha_3": "HUN", 779 | "flag": "🇭🇺", 780 | "name": "Hungary", 781 | "numeric": "348", 782 | "official_name": "Hungary" 783 | }, 784 | { 785 | "alpha_2": "ID", 786 | "alpha_3": "IDN", 787 | "flag": "🇮🇩", 788 | "name": "Indonesia", 789 | "numeric": "360", 790 | "official_name": "Republic of Indonesia" 791 | }, 792 | { 793 | "alpha_2": "IM", 794 | "alpha_3": "IMN", 795 | "flag": "🇮🇲", 796 | "name": "Isle of Man", 797 | "numeric": "833" 798 | }, 799 | { 800 | "alpha_2": "IN", 801 | "alpha_3": "IND", 802 | "flag": "🇮🇳", 803 | "name": "India", 804 | "numeric": "356", 805 | "official_name": "Republic of India" 806 | }, 807 | { 808 | "alpha_2": "IO", 809 | "alpha_3": "IOT", 810 | "flag": "🇮🇴", 811 | "name": "British Indian Ocean Territory", 812 | "numeric": "086" 813 | }, 814 | { 815 | "alpha_2": "IE", 816 | "alpha_3": "IRL", 817 | "flag": "🇮🇪", 818 | "name": "Ireland", 819 | "numeric": "372" 820 | }, 821 | { 822 | "alpha_2": "IR", 823 | "alpha_3": "IRN", 824 | "common_name": "Iran", 825 | "flag": "🇮🇷", 826 | "name": "Iran, Islamic Republic of", 827 | "numeric": "364", 828 | "official_name": "Islamic Republic of Iran" 829 | }, 830 | { 831 | "alpha_2": "IQ", 832 | "alpha_3": "IRQ", 833 | "flag": "🇮🇶", 834 | "name": "Iraq", 835 | "numeric": "368", 836 | "official_name": "Republic of Iraq" 837 | }, 838 | { 839 | "alpha_2": "IS", 840 | "alpha_3": "ISL", 841 | "flag": "🇮🇸", 842 | "name": "Iceland", 843 | "numeric": "352", 844 | "official_name": "Republic of Iceland" 845 | }, 846 | { 847 | "alpha_2": "IL", 848 | "alpha_3": "ISR", 849 | "flag": "🇮🇱", 850 | "name": "Israel", 851 | "numeric": "376", 852 | "official_name": "State of Israel" 853 | }, 854 | { 855 | "alpha_2": "IT", 856 | "alpha_3": "ITA", 857 | "flag": "🇮🇹", 858 | "name": "Italy", 859 | "numeric": "380", 860 | "official_name": "Italian Republic" 861 | }, 862 | { 863 | "alpha_2": "JM", 864 | "alpha_3": "JAM", 865 | "flag": "🇯🇲", 866 | "name": "Jamaica", 867 | "numeric": "388" 868 | }, 869 | { 870 | "alpha_2": "JE", 871 | "alpha_3": "JEY", 872 | "flag": "🇯🇪", 873 | "name": "Jersey", 874 | "numeric": "832" 875 | }, 876 | { 877 | "alpha_2": "JO", 878 | "alpha_3": "JOR", 879 | "flag": "🇯🇴", 880 | "name": "Jordan", 881 | "numeric": "400", 882 | "official_name": "Hashemite Kingdom of Jordan" 883 | }, 884 | { 885 | "alpha_2": "JP", 886 | "alpha_3": "JPN", 887 | "flag": "🇯🇵", 888 | "name": "Japan", 889 | "numeric": "392" 890 | }, 891 | { 892 | "alpha_2": "KZ", 893 | "alpha_3": "KAZ", 894 | "flag": "🇰🇿", 895 | "name": "Kazakhstan", 896 | "numeric": "398", 897 | "official_name": "Republic of Kazakhstan" 898 | }, 899 | { 900 | "alpha_2": "KE", 901 | "alpha_3": "KEN", 902 | "flag": "🇰🇪", 903 | "name": "Kenya", 904 | "numeric": "404", 905 | "official_name": "Republic of Kenya" 906 | }, 907 | { 908 | "alpha_2": "KG", 909 | "alpha_3": "KGZ", 910 | "flag": "🇰🇬", 911 | "name": "Kyrgyzstan", 912 | "numeric": "417", 913 | "official_name": "Kyrgyz Republic" 914 | }, 915 | { 916 | "alpha_2": "KH", 917 | "alpha_3": "KHM", 918 | "flag": "🇰🇭", 919 | "name": "Cambodia", 920 | "numeric": "116", 921 | "official_name": "Kingdom of Cambodia" 922 | }, 923 | { 924 | "alpha_2": "KI", 925 | "alpha_3": "KIR", 926 | "flag": "🇰🇮", 927 | "name": "Kiribati", 928 | "numeric": "296", 929 | "official_name": "Republic of Kiribati" 930 | }, 931 | { 932 | "alpha_2": "KN", 933 | "alpha_3": "KNA", 934 | "flag": "🇰🇳", 935 | "name": "Saint Kitts and Nevis", 936 | "numeric": "659" 937 | }, 938 | { 939 | "alpha_2": "KR", 940 | "alpha_3": "KOR", 941 | "common_name": "South Korea", 942 | "flag": "🇰🇷", 943 | "name": "Korea, Republic of", 944 | "numeric": "410" 945 | }, 946 | { 947 | "alpha_2": "KW", 948 | "alpha_3": "KWT", 949 | "flag": "🇰🇼", 950 | "name": "Kuwait", 951 | "numeric": "414", 952 | "official_name": "State of Kuwait" 953 | }, 954 | { 955 | "alpha_2": "LA", 956 | "alpha_3": "LAO", 957 | "common_name": "Laos", 958 | "flag": "🇱🇦", 959 | "name": "Lao People's Democratic Republic", 960 | "numeric": "418" 961 | }, 962 | { 963 | "alpha_2": "LB", 964 | "alpha_3": "LBN", 965 | "flag": "🇱🇧", 966 | "name": "Lebanon", 967 | "numeric": "422", 968 | "official_name": "Lebanese Republic" 969 | }, 970 | { 971 | "alpha_2": "LR", 972 | "alpha_3": "LBR", 973 | "flag": "🇱🇷", 974 | "name": "Liberia", 975 | "numeric": "430", 976 | "official_name": "Republic of Liberia" 977 | }, 978 | { 979 | "alpha_2": "LY", 980 | "alpha_3": "LBY", 981 | "flag": "🇱🇾", 982 | "name": "Libya", 983 | "numeric": "434", 984 | "official_name": "Libya" 985 | }, 986 | { 987 | "alpha_2": "LC", 988 | "alpha_3": "LCA", 989 | "flag": "🇱🇨", 990 | "name": "Saint Lucia", 991 | "numeric": "662" 992 | }, 993 | { 994 | "alpha_2": "LI", 995 | "alpha_3": "LIE", 996 | "flag": "🇱🇮", 997 | "name": "Liechtenstein", 998 | "numeric": "438", 999 | "official_name": "Principality of Liechtenstein" 1000 | }, 1001 | { 1002 | "alpha_2": "LK", 1003 | "alpha_3": "LKA", 1004 | "flag": "🇱🇰", 1005 | "name": "Sri Lanka", 1006 | "numeric": "144", 1007 | "official_name": "Democratic Socialist Republic of Sri Lanka" 1008 | }, 1009 | { 1010 | "alpha_2": "LS", 1011 | "alpha_3": "LSO", 1012 | "flag": "🇱🇸", 1013 | "name": "Lesotho", 1014 | "numeric": "426", 1015 | "official_name": "Kingdom of Lesotho" 1016 | }, 1017 | { 1018 | "alpha_2": "LT", 1019 | "alpha_3": "LTU", 1020 | "flag": "🇱🇹", 1021 | "name": "Lithuania", 1022 | "numeric": "440", 1023 | "official_name": "Republic of Lithuania" 1024 | }, 1025 | { 1026 | "alpha_2": "LU", 1027 | "alpha_3": "LUX", 1028 | "flag": "🇱🇺", 1029 | "name": "Luxembourg", 1030 | "numeric": "442", 1031 | "official_name": "Grand Duchy of Luxembourg" 1032 | }, 1033 | { 1034 | "alpha_2": "LV", 1035 | "alpha_3": "LVA", 1036 | "flag": "🇱🇻", 1037 | "name": "Latvia", 1038 | "numeric": "428", 1039 | "official_name": "Republic of Latvia" 1040 | }, 1041 | { 1042 | "alpha_2": "MO", 1043 | "alpha_3": "MAC", 1044 | "flag": "🇲🇴", 1045 | "name": "Macao", 1046 | "numeric": "446", 1047 | "official_name": "Macao Special Administrative Region of China" 1048 | }, 1049 | { 1050 | "alpha_2": "MF", 1051 | "alpha_3": "MAF", 1052 | "flag": "🇲🇫", 1053 | "name": "Saint Martin (French part)", 1054 | "numeric": "663" 1055 | }, 1056 | { 1057 | "alpha_2": "MA", 1058 | "alpha_3": "MAR", 1059 | "flag": "🇲🇦", 1060 | "name": "Morocco", 1061 | "numeric": "504", 1062 | "official_name": "Kingdom of Morocco" 1063 | }, 1064 | { 1065 | "alpha_2": "MC", 1066 | "alpha_3": "MCO", 1067 | "flag": "🇲🇨", 1068 | "name": "Monaco", 1069 | "numeric": "492", 1070 | "official_name": "Principality of Monaco" 1071 | }, 1072 | { 1073 | "alpha_2": "MD", 1074 | "alpha_3": "MDA", 1075 | "common_name": "Moldova", 1076 | "flag": "🇲🇩", 1077 | "name": "Moldova, Republic of", 1078 | "numeric": "498", 1079 | "official_name": "Republic of Moldova" 1080 | }, 1081 | { 1082 | "alpha_2": "MG", 1083 | "alpha_3": "MDG", 1084 | "flag": "🇲🇬", 1085 | "name": "Madagascar", 1086 | "numeric": "450", 1087 | "official_name": "Republic of Madagascar" 1088 | }, 1089 | { 1090 | "alpha_2": "MV", 1091 | "alpha_3": "MDV", 1092 | "flag": "🇲🇻", 1093 | "name": "Maldives", 1094 | "numeric": "462", 1095 | "official_name": "Republic of Maldives" 1096 | }, 1097 | { 1098 | "alpha_2": "MX", 1099 | "alpha_3": "MEX", 1100 | "flag": "🇲🇽", 1101 | "name": "Mexico", 1102 | "numeric": "484", 1103 | "official_name": "United Mexican States" 1104 | }, 1105 | { 1106 | "alpha_2": "MH", 1107 | "alpha_3": "MHL", 1108 | "flag": "🇲🇭", 1109 | "name": "Marshall Islands", 1110 | "numeric": "584", 1111 | "official_name": "Republic of the Marshall Islands" 1112 | }, 1113 | { 1114 | "alpha_2": "MK", 1115 | "alpha_3": "MKD", 1116 | "flag": "🇲🇰", 1117 | "name": "North Macedonia", 1118 | "numeric": "807", 1119 | "official_name": "Republic of North Macedonia" 1120 | }, 1121 | { 1122 | "alpha_2": "ML", 1123 | "alpha_3": "MLI", 1124 | "flag": "🇲🇱", 1125 | "name": "Mali", 1126 | "numeric": "466", 1127 | "official_name": "Republic of Mali" 1128 | }, 1129 | { 1130 | "alpha_2": "MT", 1131 | "alpha_3": "MLT", 1132 | "flag": "🇲🇹", 1133 | "name": "Malta", 1134 | "numeric": "470", 1135 | "official_name": "Republic of Malta" 1136 | }, 1137 | { 1138 | "alpha_2": "MM", 1139 | "alpha_3": "MMR", 1140 | "flag": "🇲🇲", 1141 | "name": "Myanmar", 1142 | "numeric": "104", 1143 | "official_name": "Republic of Myanmar" 1144 | }, 1145 | { 1146 | "alpha_2": "ME", 1147 | "alpha_3": "MNE", 1148 | "flag": "🇲🇪", 1149 | "name": "Montenegro", 1150 | "numeric": "499", 1151 | "official_name": "Montenegro" 1152 | }, 1153 | { 1154 | "alpha_2": "MN", 1155 | "alpha_3": "MNG", 1156 | "flag": "🇲🇳", 1157 | "name": "Mongolia", 1158 | "numeric": "496" 1159 | }, 1160 | { 1161 | "alpha_2": "MP", 1162 | "alpha_3": "MNP", 1163 | "flag": "🇲🇵", 1164 | "name": "Northern Mariana Islands", 1165 | "numeric": "580", 1166 | "official_name": "Commonwealth of the Northern Mariana Islands" 1167 | }, 1168 | { 1169 | "alpha_2": "MZ", 1170 | "alpha_3": "MOZ", 1171 | "flag": "🇲🇿", 1172 | "name": "Mozambique", 1173 | "numeric": "508", 1174 | "official_name": "Republic of Mozambique" 1175 | }, 1176 | { 1177 | "alpha_2": "MR", 1178 | "alpha_3": "MRT", 1179 | "flag": "🇲🇷", 1180 | "name": "Mauritania", 1181 | "numeric": "478", 1182 | "official_name": "Islamic Republic of Mauritania" 1183 | }, 1184 | { 1185 | "alpha_2": "MS", 1186 | "alpha_3": "MSR", 1187 | "flag": "🇲🇸", 1188 | "name": "Montserrat", 1189 | "numeric": "500" 1190 | }, 1191 | { 1192 | "alpha_2": "MQ", 1193 | "alpha_3": "MTQ", 1194 | "flag": "🇲🇶", 1195 | "name": "Martinique", 1196 | "numeric": "474" 1197 | }, 1198 | { 1199 | "alpha_2": "MU", 1200 | "alpha_3": "MUS", 1201 | "flag": "🇲🇺", 1202 | "name": "Mauritius", 1203 | "numeric": "480", 1204 | "official_name": "Republic of Mauritius" 1205 | }, 1206 | { 1207 | "alpha_2": "MW", 1208 | "alpha_3": "MWI", 1209 | "flag": "🇲🇼", 1210 | "name": "Malawi", 1211 | "numeric": "454", 1212 | "official_name": "Republic of Malawi" 1213 | }, 1214 | { 1215 | "alpha_2": "MY", 1216 | "alpha_3": "MYS", 1217 | "flag": "🇲🇾", 1218 | "name": "Malaysia", 1219 | "numeric": "458" 1220 | }, 1221 | { 1222 | "alpha_2": "YT", 1223 | "alpha_3": "MYT", 1224 | "flag": "🇾🇹", 1225 | "name": "Mayotte", 1226 | "numeric": "175" 1227 | }, 1228 | { 1229 | "alpha_2": "NA", 1230 | "alpha_3": "NAM", 1231 | "flag": "🇳🇦", 1232 | "name": "Namibia", 1233 | "numeric": "516", 1234 | "official_name": "Republic of Namibia" 1235 | }, 1236 | { 1237 | "alpha_2": "NC", 1238 | "alpha_3": "NCL", 1239 | "flag": "🇳🇨", 1240 | "name": "New Caledonia", 1241 | "numeric": "540" 1242 | }, 1243 | { 1244 | "alpha_2": "NE", 1245 | "alpha_3": "NER", 1246 | "flag": "🇳🇪", 1247 | "name": "Niger", 1248 | "numeric": "562", 1249 | "official_name": "Republic of the Niger" 1250 | }, 1251 | { 1252 | "alpha_2": "NF", 1253 | "alpha_3": "NFK", 1254 | "flag": "🇳🇫", 1255 | "name": "Norfolk Island", 1256 | "numeric": "574" 1257 | }, 1258 | { 1259 | "alpha_2": "NG", 1260 | "alpha_3": "NGA", 1261 | "flag": "🇳🇬", 1262 | "name": "Nigeria", 1263 | "numeric": "566", 1264 | "official_name": "Federal Republic of Nigeria" 1265 | }, 1266 | { 1267 | "alpha_2": "NI", 1268 | "alpha_3": "NIC", 1269 | "flag": "🇳🇮", 1270 | "name": "Nicaragua", 1271 | "numeric": "558", 1272 | "official_name": "Republic of Nicaragua" 1273 | }, 1274 | { 1275 | "alpha_2": "NU", 1276 | "alpha_3": "NIU", 1277 | "flag": "🇳🇺", 1278 | "name": "Niue", 1279 | "numeric": "570", 1280 | "official_name": "Niue" 1281 | }, 1282 | { 1283 | "alpha_2": "NL", 1284 | "alpha_3": "NLD", 1285 | "flag": "🇳🇱", 1286 | "name": "Netherlands", 1287 | "numeric": "528", 1288 | "official_name": "Kingdom of the Netherlands" 1289 | }, 1290 | { 1291 | "alpha_2": "NO", 1292 | "alpha_3": "NOR", 1293 | "flag": "🇳🇴", 1294 | "name": "Norway", 1295 | "numeric": "578", 1296 | "official_name": "Kingdom of Norway" 1297 | }, 1298 | { 1299 | "alpha_2": "NP", 1300 | "alpha_3": "NPL", 1301 | "flag": "🇳🇵", 1302 | "name": "Nepal", 1303 | "numeric": "524", 1304 | "official_name": "Federal Democratic Republic of Nepal" 1305 | }, 1306 | { 1307 | "alpha_2": "NR", 1308 | "alpha_3": "NRU", 1309 | "flag": "🇳🇷", 1310 | "name": "Nauru", 1311 | "numeric": "520", 1312 | "official_name": "Republic of Nauru" 1313 | }, 1314 | { 1315 | "alpha_2": "NZ", 1316 | "alpha_3": "NZL", 1317 | "flag": "🇳🇿", 1318 | "name": "New Zealand", 1319 | "numeric": "554" 1320 | }, 1321 | { 1322 | "alpha_2": "OM", 1323 | "alpha_3": "OMN", 1324 | "flag": "🇴🇲", 1325 | "name": "Oman", 1326 | "numeric": "512", 1327 | "official_name": "Sultanate of Oman" 1328 | }, 1329 | { 1330 | "alpha_2": "PK", 1331 | "alpha_3": "PAK", 1332 | "flag": "🇵🇰", 1333 | "name": "Pakistan", 1334 | "numeric": "586", 1335 | "official_name": "Islamic Republic of Pakistan" 1336 | }, 1337 | { 1338 | "alpha_2": "PA", 1339 | "alpha_3": "PAN", 1340 | "flag": "🇵🇦", 1341 | "name": "Panama", 1342 | "numeric": "591", 1343 | "official_name": "Republic of Panama" 1344 | }, 1345 | { 1346 | "alpha_2": "PN", 1347 | "alpha_3": "PCN", 1348 | "flag": "🇵🇳", 1349 | "name": "Pitcairn", 1350 | "numeric": "612" 1351 | }, 1352 | { 1353 | "alpha_2": "PE", 1354 | "alpha_3": "PER", 1355 | "flag": "🇵🇪", 1356 | "name": "Peru", 1357 | "numeric": "604", 1358 | "official_name": "Republic of Peru" 1359 | }, 1360 | { 1361 | "alpha_2": "PH", 1362 | "alpha_3": "PHL", 1363 | "flag": "🇵🇭", 1364 | "name": "Philippines", 1365 | "numeric": "608", 1366 | "official_name": "Republic of the Philippines" 1367 | }, 1368 | { 1369 | "alpha_2": "PW", 1370 | "alpha_3": "PLW", 1371 | "flag": "🇵🇼", 1372 | "name": "Palau", 1373 | "numeric": "585", 1374 | "official_name": "Republic of Palau" 1375 | }, 1376 | { 1377 | "alpha_2": "PG", 1378 | "alpha_3": "PNG", 1379 | "flag": "🇵🇬", 1380 | "name": "Papua New Guinea", 1381 | "numeric": "598", 1382 | "official_name": "Independent State of Papua New Guinea" 1383 | }, 1384 | { 1385 | "alpha_2": "PL", 1386 | "alpha_3": "POL", 1387 | "flag": "🇵🇱", 1388 | "name": "Poland", 1389 | "numeric": "616", 1390 | "official_name": "Republic of Poland" 1391 | }, 1392 | { 1393 | "alpha_2": "PR", 1394 | "alpha_3": "PRI", 1395 | "flag": "🇵🇷", 1396 | "name": "Puerto Rico", 1397 | "numeric": "630" 1398 | }, 1399 | { 1400 | "alpha_2": "KP", 1401 | "alpha_3": "PRK", 1402 | "common_name": "North Korea", 1403 | "flag": "🇰🇵", 1404 | "name": "Korea, Democratic People's Republic of", 1405 | "numeric": "408", 1406 | "official_name": "Democratic People's Republic of Korea" 1407 | }, 1408 | { 1409 | "alpha_2": "PT", 1410 | "alpha_3": "PRT", 1411 | "flag": "🇵🇹", 1412 | "name": "Portugal", 1413 | "numeric": "620", 1414 | "official_name": "Portuguese Republic" 1415 | }, 1416 | { 1417 | "alpha_2": "PY", 1418 | "alpha_3": "PRY", 1419 | "flag": "🇵🇾", 1420 | "name": "Paraguay", 1421 | "numeric": "600", 1422 | "official_name": "Republic of Paraguay" 1423 | }, 1424 | { 1425 | "alpha_2": "PS", 1426 | "alpha_3": "PSE", 1427 | "flag": "🇵🇸", 1428 | "name": "Palestine, State of", 1429 | "numeric": "275", 1430 | "official_name": "the State of Palestine" 1431 | }, 1432 | { 1433 | "alpha_2": "PF", 1434 | "alpha_3": "PYF", 1435 | "flag": "🇵🇫", 1436 | "name": "French Polynesia", 1437 | "numeric": "258" 1438 | }, 1439 | { 1440 | "alpha_2": "QA", 1441 | "alpha_3": "QAT", 1442 | "flag": "🇶🇦", 1443 | "name": "Qatar", 1444 | "numeric": "634", 1445 | "official_name": "State of Qatar" 1446 | }, 1447 | { 1448 | "alpha_2": "RE", 1449 | "alpha_3": "REU", 1450 | "flag": "🇷🇪", 1451 | "name": "Réunion", 1452 | "numeric": "638" 1453 | }, 1454 | { 1455 | "alpha_2": "RO", 1456 | "alpha_3": "ROU", 1457 | "flag": "🇷🇴", 1458 | "name": "Romania", 1459 | "numeric": "642" 1460 | }, 1461 | { 1462 | "alpha_2": "RU", 1463 | "alpha_3": "RUS", 1464 | "flag": "🇷🇺", 1465 | "name": "Russian Federation", 1466 | "numeric": "643" 1467 | }, 1468 | { 1469 | "alpha_2": "RW", 1470 | "alpha_3": "RWA", 1471 | "flag": "🇷🇼", 1472 | "name": "Rwanda", 1473 | "numeric": "646", 1474 | "official_name": "Rwandese Republic" 1475 | }, 1476 | { 1477 | "alpha_2": "SA", 1478 | "alpha_3": "SAU", 1479 | "flag": "🇸🇦", 1480 | "name": "Saudi Arabia", 1481 | "numeric": "682", 1482 | "official_name": "Kingdom of Saudi Arabia" 1483 | }, 1484 | { 1485 | "alpha_2": "SD", 1486 | "alpha_3": "SDN", 1487 | "flag": "🇸🇩", 1488 | "name": "Sudan", 1489 | "numeric": "729", 1490 | "official_name": "Republic of the Sudan" 1491 | }, 1492 | { 1493 | "alpha_2": "SN", 1494 | "alpha_3": "SEN", 1495 | "flag": "🇸🇳", 1496 | "name": "Senegal", 1497 | "numeric": "686", 1498 | "official_name": "Republic of Senegal" 1499 | }, 1500 | { 1501 | "alpha_2": "SG", 1502 | "alpha_3": "SGP", 1503 | "flag": "🇸🇬", 1504 | "name": "Singapore", 1505 | "numeric": "702", 1506 | "official_name": "Republic of Singapore" 1507 | }, 1508 | { 1509 | "alpha_2": "GS", 1510 | "alpha_3": "SGS", 1511 | "flag": "🇬🇸", 1512 | "name": "South Georgia and the South Sandwich Islands", 1513 | "numeric": "239" 1514 | }, 1515 | { 1516 | "alpha_2": "SH", 1517 | "alpha_3": "SHN", 1518 | "flag": "🇸🇭", 1519 | "name": "Saint Helena, Ascension and Tristan da Cunha", 1520 | "numeric": "654" 1521 | }, 1522 | { 1523 | "alpha_2": "SJ", 1524 | "alpha_3": "SJM", 1525 | "flag": "🇸🇯", 1526 | "name": "Svalbard and Jan Mayen", 1527 | "numeric": "744" 1528 | }, 1529 | { 1530 | "alpha_2": "SB", 1531 | "alpha_3": "SLB", 1532 | "flag": "🇸🇧", 1533 | "name": "Solomon Islands", 1534 | "numeric": "090" 1535 | }, 1536 | { 1537 | "alpha_2": "SL", 1538 | "alpha_3": "SLE", 1539 | "flag": "🇸🇱", 1540 | "name": "Sierra Leone", 1541 | "numeric": "694", 1542 | "official_name": "Republic of Sierra Leone" 1543 | }, 1544 | { 1545 | "alpha_2": "SV", 1546 | "alpha_3": "SLV", 1547 | "flag": "🇸🇻", 1548 | "name": "El Salvador", 1549 | "numeric": "222", 1550 | "official_name": "Republic of El Salvador" 1551 | }, 1552 | { 1553 | "alpha_2": "SM", 1554 | "alpha_3": "SMR", 1555 | "flag": "🇸🇲", 1556 | "name": "San Marino", 1557 | "numeric": "674", 1558 | "official_name": "Republic of San Marino" 1559 | }, 1560 | { 1561 | "alpha_2": "SO", 1562 | "alpha_3": "SOM", 1563 | "flag": "🇸🇴", 1564 | "name": "Somalia", 1565 | "numeric": "706", 1566 | "official_name": "Federal Republic of Somalia" 1567 | }, 1568 | { 1569 | "alpha_2": "PM", 1570 | "alpha_3": "SPM", 1571 | "flag": "🇵🇲", 1572 | "name": "Saint Pierre and Miquelon", 1573 | "numeric": "666" 1574 | }, 1575 | { 1576 | "alpha_2": "RS", 1577 | "alpha_3": "SRB", 1578 | "flag": "🇷🇸", 1579 | "name": "Serbia", 1580 | "numeric": "688", 1581 | "official_name": "Republic of Serbia" 1582 | }, 1583 | { 1584 | "alpha_2": "SS", 1585 | "alpha_3": "SSD", 1586 | "flag": "🇸🇸", 1587 | "name": "South Sudan", 1588 | "numeric": "728", 1589 | "official_name": "Republic of South Sudan" 1590 | }, 1591 | { 1592 | "alpha_2": "ST", 1593 | "alpha_3": "STP", 1594 | "flag": "🇸🇹", 1595 | "name": "Sao Tome and Principe", 1596 | "numeric": "678", 1597 | "official_name": "Democratic Republic of Sao Tome and Principe" 1598 | }, 1599 | { 1600 | "alpha_2": "SR", 1601 | "alpha_3": "SUR", 1602 | "flag": "🇸🇷", 1603 | "name": "Suriname", 1604 | "numeric": "740", 1605 | "official_name": "Republic of Suriname" 1606 | }, 1607 | { 1608 | "alpha_2": "SK", 1609 | "alpha_3": "SVK", 1610 | "flag": "🇸🇰", 1611 | "name": "Slovakia", 1612 | "numeric": "703", 1613 | "official_name": "Slovak Republic" 1614 | }, 1615 | { 1616 | "alpha_2": "SI", 1617 | "alpha_3": "SVN", 1618 | "flag": "🇸🇮", 1619 | "name": "Slovenia", 1620 | "numeric": "705", 1621 | "official_name": "Republic of Slovenia" 1622 | }, 1623 | { 1624 | "alpha_2": "SE", 1625 | "alpha_3": "SWE", 1626 | "flag": "🇸🇪", 1627 | "name": "Sweden", 1628 | "numeric": "752", 1629 | "official_name": "Kingdom of Sweden" 1630 | }, 1631 | { 1632 | "alpha_2": "SZ", 1633 | "alpha_3": "SWZ", 1634 | "flag": "🇸🇿", 1635 | "name": "Eswatini", 1636 | "numeric": "748", 1637 | "official_name": "Kingdom of Eswatini" 1638 | }, 1639 | { 1640 | "alpha_2": "SX", 1641 | "alpha_3": "SXM", 1642 | "flag": "🇸🇽", 1643 | "name": "Sint Maarten (Dutch part)", 1644 | "numeric": "534", 1645 | "official_name": "Sint Maarten (Dutch part)" 1646 | }, 1647 | { 1648 | "alpha_2": "SC", 1649 | "alpha_3": "SYC", 1650 | "flag": "🇸🇨", 1651 | "name": "Seychelles", 1652 | "numeric": "690", 1653 | "official_name": "Republic of Seychelles" 1654 | }, 1655 | { 1656 | "alpha_2": "SY", 1657 | "alpha_3": "SYR", 1658 | "common_name": "Syria", 1659 | "flag": "🇸🇾", 1660 | "name": "Syrian Arab Republic", 1661 | "numeric": "760" 1662 | }, 1663 | { 1664 | "alpha_2": "TC", 1665 | "alpha_3": "TCA", 1666 | "flag": "🇹🇨", 1667 | "name": "Turks and Caicos Islands", 1668 | "numeric": "796" 1669 | }, 1670 | { 1671 | "alpha_2": "TD", 1672 | "alpha_3": "TCD", 1673 | "flag": "🇹🇩", 1674 | "name": "Chad", 1675 | "numeric": "148", 1676 | "official_name": "Republic of Chad" 1677 | }, 1678 | { 1679 | "alpha_2": "TG", 1680 | "alpha_3": "TGO", 1681 | "flag": "🇹🇬", 1682 | "name": "Togo", 1683 | "numeric": "768", 1684 | "official_name": "Togolese Republic" 1685 | }, 1686 | { 1687 | "alpha_2": "TH", 1688 | "alpha_3": "THA", 1689 | "flag": "🇹🇭", 1690 | "name": "Thailand", 1691 | "numeric": "764", 1692 | "official_name": "Kingdom of Thailand" 1693 | }, 1694 | { 1695 | "alpha_2": "TJ", 1696 | "alpha_3": "TJK", 1697 | "flag": "🇹🇯", 1698 | "name": "Tajikistan", 1699 | "numeric": "762", 1700 | "official_name": "Republic of Tajikistan" 1701 | }, 1702 | { 1703 | "alpha_2": "TK", 1704 | "alpha_3": "TKL", 1705 | "flag": "🇹🇰", 1706 | "name": "Tokelau", 1707 | "numeric": "772" 1708 | }, 1709 | { 1710 | "alpha_2": "TM", 1711 | "alpha_3": "TKM", 1712 | "flag": "🇹🇲", 1713 | "name": "Turkmenistan", 1714 | "numeric": "795" 1715 | }, 1716 | { 1717 | "alpha_2": "TL", 1718 | "alpha_3": "TLS", 1719 | "flag": "🇹🇱", 1720 | "name": "Timor-Leste", 1721 | "numeric": "626", 1722 | "official_name": "Democratic Republic of Timor-Leste" 1723 | }, 1724 | { 1725 | "alpha_2": "TO", 1726 | "alpha_3": "TON", 1727 | "flag": "🇹🇴", 1728 | "name": "Tonga", 1729 | "numeric": "776", 1730 | "official_name": "Kingdom of Tonga" 1731 | }, 1732 | { 1733 | "alpha_2": "TT", 1734 | "alpha_3": "TTO", 1735 | "flag": "🇹🇹", 1736 | "name": "Trinidad and Tobago", 1737 | "numeric": "780", 1738 | "official_name": "Republic of Trinidad and Tobago" 1739 | }, 1740 | { 1741 | "alpha_2": "TN", 1742 | "alpha_3": "TUN", 1743 | "flag": "🇹🇳", 1744 | "name": "Tunisia", 1745 | "numeric": "788", 1746 | "official_name": "Republic of Tunisia" 1747 | }, 1748 | { 1749 | "alpha_2": "TR", 1750 | "alpha_3": "TUR", 1751 | "flag": "🇹🇷", 1752 | "name": "Türkiye", 1753 | "numeric": "792", 1754 | "official_name": "Republic of Türkiye" 1755 | }, 1756 | { 1757 | "alpha_2": "TV", 1758 | "alpha_3": "TUV", 1759 | "flag": "🇹🇻", 1760 | "name": "Tuvalu", 1761 | "numeric": "798" 1762 | }, 1763 | { 1764 | "alpha_2": "TW", 1765 | "alpha_3": "TWN", 1766 | "common_name": "Taiwan", 1767 | "flag": "🇹🇼", 1768 | "name": "Taiwan, Province of China", 1769 | "numeric": "158", 1770 | "official_name": "Taiwan, Province of China" 1771 | }, 1772 | { 1773 | "alpha_2": "TZ", 1774 | "alpha_3": "TZA", 1775 | "common_name": "Tanzania", 1776 | "flag": "🇹🇿", 1777 | "name": "Tanzania, United Republic of", 1778 | "numeric": "834", 1779 | "official_name": "United Republic of Tanzania" 1780 | }, 1781 | { 1782 | "alpha_2": "UG", 1783 | "alpha_3": "UGA", 1784 | "flag": "🇺🇬", 1785 | "name": "Uganda", 1786 | "numeric": "800", 1787 | "official_name": "Republic of Uganda" 1788 | }, 1789 | { 1790 | "alpha_2": "UA", 1791 | "alpha_3": "UKR", 1792 | "flag": "🇺🇦", 1793 | "name": "Ukraine", 1794 | "numeric": "804" 1795 | }, 1796 | { 1797 | "alpha_2": "UM", 1798 | "alpha_3": "UMI", 1799 | "flag": "🇺🇲", 1800 | "name": "United States Minor Outlying Islands", 1801 | "numeric": "581" 1802 | }, 1803 | { 1804 | "alpha_2": "UY", 1805 | "alpha_3": "URY", 1806 | "flag": "🇺🇾", 1807 | "name": "Uruguay", 1808 | "numeric": "858", 1809 | "official_name": "Eastern Republic of Uruguay" 1810 | }, 1811 | { 1812 | "alpha_2": "US", 1813 | "alpha_3": "USA", 1814 | "flag": "🇺🇸", 1815 | "name": "United States", 1816 | "numeric": "840", 1817 | "official_name": "United States of America" 1818 | }, 1819 | { 1820 | "alpha_2": "UZ", 1821 | "alpha_3": "UZB", 1822 | "flag": "🇺🇿", 1823 | "name": "Uzbekistan", 1824 | "numeric": "860", 1825 | "official_name": "Republic of Uzbekistan" 1826 | }, 1827 | { 1828 | "alpha_2": "VA", 1829 | "alpha_3": "VAT", 1830 | "flag": "🇻🇦", 1831 | "name": "Holy See (Vatican City State)", 1832 | "numeric": "336" 1833 | }, 1834 | { 1835 | "alpha_2": "VC", 1836 | "alpha_3": "VCT", 1837 | "flag": "🇻🇨", 1838 | "name": "Saint Vincent and the Grenadines", 1839 | "numeric": "670" 1840 | }, 1841 | { 1842 | "alpha_2": "VE", 1843 | "alpha_3": "VEN", 1844 | "common_name": "Venezuela", 1845 | "flag": "🇻🇪", 1846 | "name": "Venezuela, Bolivarian Republic of", 1847 | "numeric": "862", 1848 | "official_name": "Bolivarian Republic of Venezuela" 1849 | }, 1850 | { 1851 | "alpha_2": "VG", 1852 | "alpha_3": "VGB", 1853 | "flag": "🇻🇬", 1854 | "name": "Virgin Islands, British", 1855 | "numeric": "092", 1856 | "official_name": "British Virgin Islands" 1857 | }, 1858 | { 1859 | "alpha_2": "VI", 1860 | "alpha_3": "VIR", 1861 | "flag": "🇻🇮", 1862 | "name": "Virgin Islands, U.S.", 1863 | "numeric": "850", 1864 | "official_name": "Virgin Islands of the United States" 1865 | }, 1866 | { 1867 | "alpha_2": "VN", 1868 | "alpha_3": "VNM", 1869 | "common_name": "Vietnam", 1870 | "flag": "🇻🇳", 1871 | "name": "Viet Nam", 1872 | "numeric": "704", 1873 | "official_name": "Socialist Republic of Viet Nam" 1874 | }, 1875 | { 1876 | "alpha_2": "VU", 1877 | "alpha_3": "VUT", 1878 | "flag": "🇻🇺", 1879 | "name": "Vanuatu", 1880 | "numeric": "548", 1881 | "official_name": "Republic of Vanuatu" 1882 | }, 1883 | { 1884 | "alpha_2": "WF", 1885 | "alpha_3": "WLF", 1886 | "flag": "🇼🇫", 1887 | "name": "Wallis and Futuna", 1888 | "numeric": "876" 1889 | }, 1890 | { 1891 | "alpha_2": "WS", 1892 | "alpha_3": "WSM", 1893 | "flag": "🇼🇸", 1894 | "name": "Samoa", 1895 | "numeric": "882", 1896 | "official_name": "Independent State of Samoa" 1897 | }, 1898 | { 1899 | "alpha_2": "YE", 1900 | "alpha_3": "YEM", 1901 | "flag": "🇾🇪", 1902 | "name": "Yemen", 1903 | "numeric": "887", 1904 | "official_name": "Republic of Yemen" 1905 | }, 1906 | { 1907 | "alpha_2": "ZA", 1908 | "alpha_3": "ZAF", 1909 | "flag": "🇿🇦", 1910 | "name": "South Africa", 1911 | "numeric": "710", 1912 | "official_name": "Republic of South Africa" 1913 | }, 1914 | { 1915 | "alpha_2": "ZM", 1916 | "alpha_3": "ZMB", 1917 | "flag": "🇿🇲", 1918 | "name": "Zambia", 1919 | "numeric": "894", 1920 | "official_name": "Republic of Zambia" 1921 | }, 1922 | { 1923 | "alpha_2": "ZW", 1924 | "alpha_3": "ZWE", 1925 | "flag": "🇿🇼", 1926 | "name": "Zimbabwe", 1927 | "numeric": "716", 1928 | "official_name": "Republic of Zimbabwe" 1929 | } 1930 | ] 1931 | } 1932 | --------------------------------------------------------------------------------