├── .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 | [](https://nim-lang.org/) 
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 |
--------------------------------------------------------------------------------