fix component. Add flags.

This commit is contained in:
Jordan 2025-01-24 06:25:37 -08:00
parent 8cc1048251
commit 0c9daf8e4a
17 changed files with 334 additions and 33 deletions

View File

@ -1,9 +1,10 @@
import { LanguageSelection } from '@/components/LanguageSelection';
import { Text } from '@react-navigation/elements';
import { Image, StyleSheet, Platform } from 'react-native';
export default function HomeScreen() {
return (
<Text>Hello World</Text>
<LanguageSelection />
);
}

View File

@ -1,8 +1,9 @@
import { language_t } from "./lang";
import { Cache } from "react-native-cache";
import AsyncStorage from '@react-native-async-storage/async-storage';
import { LIBRETRANSLATE_BASE_URL } from "@/constants/api";
type language_t = string;
const cache = new Cache({
namespace: "translation_terrace",
policy: {
@ -12,18 +13,45 @@ const cache = new Cache({
backend: AsyncStorage
});
export class Translator {
constructor(public source : language_t, public target : language_t) {
export type language_matrix_entry = {
code: string,
name: string,
targets: string []
}
export type language_matrix = {
[key:string] : language_matrix_entry
}
export class Translator {
constructor(public source : language_t, public defaultTarget : string = "en", private baseUrl = LIBRETRANSLATE_BASE_URL) {
}
async translate(text : string) {
async fetchLanguages() : Promise<language_matrix> {
const res = await fetch(this.baseUrl + "/languages", {
headers: {
"Content-Type": "application/json"
}
});
const data = await res.json();
return Object.fromEntries(
Object.values(data).map((obj : language_matrix_entry) => {
return [
obj["code"],
obj,
]
})
)
}
async translate(text : string, target : string|undefined = undefined) {
const url = LIBRETRANSLATE_BASE_URL + `/translate`;
const res = await fetch(url, {
method: "POST",
body: JSON.stringify({
q: text,
source: this.source,
target: this.target,
target: target || this.defaultTarget,
format: "text",
alternatives: 3,
api_key: ""
@ -37,12 +65,14 @@ export class Translator {
}
export class CachedTranslator extends Translator {
async translate (text : string) {
const key1 = `${this.source}::${this.target}::${text}`
async translate (text : string, target : string|undefined = undefined) {
const targetKey = target || this.defaultTarget;
// console.debug(`Translating from ${this.source} -> ${targetKey}`)
const key1 = `${this.source}::${targetKey}::${text}`
const tr1 = await cache.get(key1);
if (tr1) return tr1;
const tr2 = await super.translate(text);
const key2 = `${this.source}::${this.target}::${text}`
const tr2 = await super.translate(text, target);
const key2 = `${this.source}::${targetKey}::${text}`
await cache.set(key2, tr2);
}
}

18
app/i18n/countries.ts Normal file
View File

@ -0,0 +1,18 @@
import _countries from "@/assets/countries.min.json";
import LANG_FLAGS from "@/langs-flags-list/lang-flags.json"
import { language_matrix_entry } from "./api";
import { lang_a2_a3 } from "./lang";
export const countries = _countries;
export function chooseCountry(lang_a2 : string) {
const lang_a3 = lang_a2_a3(lang_a2);
if (!lang_a3) throw new Error(`Could not find alpha3 code of ${lang_a2}`);
const cs = countries.filter(
c => c.languages.includes(lang_a3.alpha3)
);
console.log("cc = %x, ", cs.map(c => c.alpha2))
return cs.filter(cc => Object.keys(LANG_FLAGS).includes(cc.alpha2.toLowerCase())).map(c => c.alpha2.toLowerCase());
}

29
app/i18n/flagStyle.ts Normal file
View File

@ -0,0 +1,29 @@
import { StyleSheet } from 'react-native';
import { LANG_FLAGS } from './lang';
interface FlagStyle {
width: number;
height: number;
backgroundColor: string;
backgroundImage: string;
backgroundSize: string;
backgroundPosition: string;
}
const generateFlagStyle = (index: number): FlagStyle => {
const xPosition = index % 24 * -25;
const yPosition = Math.floor(index / 24) * -15;
return {
width: 25,
height: 15,
backgroundColor: 'transparent',
backgroundImage: require("@/assets/images/lang-flags.png"),
backgroundSize: '600px 375px',
};
};
export const FLAG_STYLES = StyleSheet.create({
...Object.fromEntries(Object.keys(LANG_FLAGS).map((k, i) => {
return [k, generateFlagStyle(i)]
}))
});

View File

@ -1,9 +1,16 @@
import * as LANG_FLAGS from "@/langs-flags-list/lang-flags.json"
import _LANG_FLAGS from "@/langs-flags-list/lang-flags.json"
import _LANGUAGES from "@/assets/languages.min.json"
export const LANGUAGES = Object.keys(LANG_FLAGS);
export type lang_t = typeof LANGUAGES[number];
export const LANG_FLAGS = _LANG_FLAGS
export function longLang(shortLang : string) {
return ((LANG_FLAGS as any)[shortLang] as any)["nameEnglish"] as string
}
export function lang_a3_a2(a3 : string) {
return _LANGUAGES.find(l => l.alpha3 === a3);
}
export function lang_a2_a3(a2 : string) {
return _LANGUAGES.find(l => l.alpha2 === a2);
}

View File

@ -0,0 +1 @@
[{"alpha2":"AC","alpha3":"","countryCallingCodes":["+247"],"currencies":["USD"],"ioc":"SHP","languages":["eng"],"name":"Ascension Island","status":"reserved"},{"alpha2":"AD","alpha3":"AND","countryCallingCodes":["+376"],"currencies":["EUR"],"ioc":"AND","languages":["cat"],"name":"Andorra","status":"assigned"},{"alpha2":"AE","alpha3":"ARE","countryCallingCodes":["+971"],"currencies":["AED"],"ioc":"UAE","languages":["ara"],"name":"United Arab Emirates","status":"assigned"},{"alpha2":"AF","alpha3":"AFG","countryCallingCodes":["+93"],"currencies":["AFN"],"ioc":"AFG","languages":["pus"],"name":"Afghanistan","status":"assigned"},{"alpha2":"AG","alpha3":"ATG","countryCallingCodes":["+1 268"],"currencies":["XCD"],"ioc":"ANT","languages":["eng"],"name":"Antigua And Barbuda","status":"assigned"},{"alpha2":"AI","alpha3":"AIA","countryCallingCodes":["+1 264"],"currencies":["XCD"],"ioc":"","languages":["eng"],"name":"Anguilla","status":"assigned"},{"alpha2":"AL","alpha3":"ALB","countryCallingCodes":["+355"],"currencies":["ALL"],"ioc":"ALB","languages":["alb"],"name":"Albania","status":"assigned"},{"alpha2":"AM","alpha3":"ARM","countryCallingCodes":["+374"],"currencies":["AMD"],"ioc":"ARM","languages":["arm","rus"],"name":"Armenia","status":"assigned"},{"alpha2":"AO","alpha3":"AGO","countryCallingCodes":["+244"],"currencies":["AOA"],"ioc":"ANG","languages":["por"],"name":"Angola","status":"assigned"},{"alpha2":"AQ","alpha3":"ATA","countryCallingCodes":["+672"],"currencies":[],"ioc":"","languages":[],"name":"Antarctica","status":"assigned"},{"alpha2":"AR","alpha3":"ARG","countryCallingCodes":["+54"],"currencies":["ARS"],"ioc":"ARG","languages":["spa"],"name":"Argentina","status":"assigned"},{"alpha2":"AS","alpha3":"ASM","countryCallingCodes":["+1 684"],"currencies":["USD"],"ioc":"ASA","languages":["eng","smo"],"name":"American Samoa","status":"assigned"},{"alpha2":"AT","alpha3":"AUT","countryCallingCodes":["+43"],"currencies":["EUR"],"ioc":"AUT","languages":["ger"],"name":"Austria","status":"assigned"},{"alpha2":"AU","alpha3":"AUS","countryCallingCodes":["+61"],"currencies":["AUD"],"ioc":"AUS","languages":["eng"],"name":"Australia","status":"assigned"},{"alpha2":"AW","alpha3":"ABW","countryCallingCodes":["+297"],"currencies":["AWG"],"ioc":"ARU","languages":["dut"],"name":"Aruba","status":"assigned"},{"alpha2":"AX","alpha3":"ALA","countryCallingCodes":["+358"],"currencies":["EUR"],"ioc":"","languages":["swe"],"name":"Åland Islands","status":"assigned"},{"alpha2":"AZ","alpha3":"AZE","countryCallingCodes":["+994"],"currencies":["AZN"],"ioc":"AZE","languages":["aze"],"name":"Azerbaijan","status":"assigned"},{"alpha2":"BA","alpha3":"BIH","countryCallingCodes":["+387"],"currencies":["BAM"],"ioc":"BIH","languages":["bos","cre","srp"],"name":"Bosnia & Herzegovina","status":"assigned"},{"alpha2":"BB","alpha3":"BRB","countryCallingCodes":["+1 246"],"currencies":["BBD"],"ioc":"BAR","languages":["eng"],"name":"Barbados","status":"assigned"},{"alpha2":"BD","alpha3":"BGD","countryCallingCodes":["+880"],"currencies":["BDT"],"ioc":"BAN","languages":["ben"],"name":"Bangladesh","status":"assigned"},{"alpha2":"BE","alpha3":"BEL","countryCallingCodes":["+32"],"currencies":["EUR"],"ioc":"BEL","languages":["dut","fre","ger"],"name":"Belgium","status":"assigned"},{"alpha2":"BF","alpha3":"BFA","countryCallingCodes":["+226"],"currencies":["XOF"],"ioc":"BUR","languages":["fre"],"name":"Burkina Faso","status":"assigned"},{"alpha2":"BG","alpha3":"BGR","countryCallingCodes":["+359"],"currencies":["BGN"],"ioc":"BUL","languages":["bul"],"name":"Bulgaria","status":"assigned"},{"alpha2":"BH","alpha3":"BHR","countryCallingCodes":["+973"],"currencies":["BHD"],"ioc":"BRN","languages":["ara"],"name":"Bahrain","status":"assigned"},{"alpha2":"BI","alpha3":"BDI","countryCallingCodes":["+257"],"currencies":["BIF"],"ioc":"BDI","languages":["fre"],"name":"Burundi","status":"assigned"},{"alpha2":"BJ","alpha3":"BEN","countryCallingCodes":["+229"],"currencies":["XOF"],"ioc":"BEN","languages":["fre"],"name":"Benin","status":"assigned"},{"alpha2":"BL","alpha3":"BLM","countryCallingCodes":["+590"],"currencies":["EUR"],"ioc":"","languages":["fre"],"name":"Saint Barthélemy","status":"assigned"},{"alpha2":"BM","alpha3":"BMU","countryCallingCodes":["+1 441"],"currencies":["BMD"],"ioc":"BER","languages":["eng"],"name":"Bermuda","status":"assigned"},{"alpha2":"BN","alpha3":"BRN","countryCallingCodes":["+673"],"currencies":["BND"],"ioc":"BRU","languages":["may","eng"],"name":"Brunei Darussalam","status":"assigned"},{"alpha2":"BO","alpha3":"BOL","countryCallingCodes":["+591"],"currencies":["BOB","BOV"],"ioc":"BOL","languages":["spa","aym","que"],"name":"Bolivia, Plurinational State Of","status":"assigned"},{"alpha2":"BQ","alpha3":"BES","countryCallingCodes":["+599"],"currencies":["USD"],"ioc":"","languages":["dut"],"name":"Bonaire, Saint Eustatius And Saba","status":"assigned"},{"alpha2":"BR","alpha3":"BRA","countryCallingCodes":["+55"],"currencies":["BRL"],"ioc":"BRA","languages":["por"],"name":"Brazil","status":"assigned"},{"alpha2":"BS","alpha3":"BHS","countryCallingCodes":["+1 242"],"currencies":["BSD"],"ioc":"BAH","languages":["eng"],"name":"Bahamas","status":"assigned"},{"alpha2":"BT","alpha3":"BTN","countryCallingCodes":["+975"],"currencies":["INR","BTN"],"ioc":"BHU","languages":["dzo"],"name":"Bhutan","status":"assigned"},{"alpha2":"BV","alpha3":"BVT","countryCallingCodes":[],"currencies":["NOK"],"ioc":"","languages":[],"name":"Bouvet Island","status":"assigned"},{"alpha2":"BW","alpha3":"BWA","countryCallingCodes":["+267"],"currencies":["BWP"],"ioc":"BOT","languages":["eng","tsn"],"name":"Botswana","status":"assigned"},{"alpha2":"BY","alpha3":"BLR","countryCallingCodes":["+375"],"currencies":["BYR"],"ioc":"BLR","languages":["bel","rus"],"name":"Belarus","status":"assigned"},{"alpha2":"BZ","alpha3":"BLZ","countryCallingCodes":["+501"],"currencies":["BZD"],"ioc":"BIZ","languages":["eng"],"name":"Belize","status":"assigned"},{"alpha2":"CA","alpha3":"CAN","countryCallingCodes":["+1"],"currencies":["CAD"],"ioc":"CAN","languages":["eng","fre"],"name":"Canada","status":"assigned"},{"alpha2":"CC","alpha3":"CCK","countryCallingCodes":["+61"],"currencies":["AUD"],"ioc":"","languages":["eng"],"name":"Cocos (Keeling) Islands","status":"assigned"},{"alpha2":"CD","alpha3":"COD","countryCallingCodes":["+243"],"currencies":["CDF"],"ioc":"COD","languages":["fre","lin","kon","swa"],"name":"Democratic Republic Of Congo","status":"assigned"},{"alpha2":"CF","alpha3":"CAF","countryCallingCodes":["+236"],"currencies":["XAF"],"ioc":"CAF","languages":["fre","sag"],"name":"Central African Republic","status":"assigned"},{"alpha2":"CG","alpha3":"COG","countryCallingCodes":["+242"],"currencies":["XAF"],"ioc":"CGO","languages":["fre","lin"],"name":"Republic Of Congo","status":"assigned"},{"alpha2":"CH","alpha3":"CHE","countryCallingCodes":["+41"],"currencies":["CHF","CHE","CHW"],"ioc":"SUI","languages":["ger","fre","ita","roh"],"name":"Switzerland","status":"assigned"},{"alpha2":"CI","alpha3":"CIV","countryCallingCodes":["+225"],"currencies":["XOF"],"ioc":"CIV","languages":["fre"],"name":"Cote d'Ivoire","status":"assigned"},{"alpha2":"CK","alpha3":"COK","countryCallingCodes":["+682"],"currencies":["NZD"],"ioc":"COK","languages":["eng","mao"],"name":"Cook Islands","status":"assigned"},{"alpha2":"CL","alpha3":"CHL","countryCallingCodes":["+56"],"currencies":["CLP","CLF"],"ioc":"CHI","languages":["spa"],"name":"Chile","status":"assigned"},{"alpha2":"CM","alpha3":"CMR","countryCallingCodes":["+237"],"currencies":["XAF"],"ioc":"CMR","languages":["eng","fre"],"name":"Cameroon","status":"assigned"},{"alpha2":"CN","alpha3":"CHN","countryCallingCodes":["+86"],"currencies":["CNY"],"ioc":"CHN","languages":["chi"],"name":"China","status":"assigned"},{"alpha2":"CO","alpha3":"COL","countryCallingCodes":["+57"],"currencies":["COP","COU"],"ioc":"COL","languages":["spa"],"name":"Colombia","status":"assigned"},{"alpha2":"CP","alpha3":"","countryCallingCodes":[],"currencies":["EUR"],"ioc":"","languages":[],"name":"Clipperton Island","status":"reserved"},{"alpha2":"CR","alpha3":"CRI","countryCallingCodes":["+506"],"currencies":["CRC"],"ioc":"CRC","languages":["spa"],"name":"Costa Rica","status":"assigned"},{"alpha2":"CU","alpha3":"CUB","countryCallingCodes":["+53"],"currencies":["CUP","CUC"],"ioc":"CUB","languages":["spa"],"name":"Cuba","status":"assigned"},{"alpha2":"CV","alpha3":"CPV","countryCallingCodes":["+238"],"currencies":["CVE"],"ioc":"CPV","languages":["por"],"name":"Cabo Verde","status":"assigned"},{"alpha2":"CW","alpha3":"CUW","countryCallingCodes":["+599"],"currencies":["ANG"],"ioc":"","languages":["dut"],"name":"Curacao","status":"assigned"},{"alpha2":"CX","alpha3":"CXR","countryCallingCodes":["+61"],"currencies":["AUD"],"ioc":"","languages":["eng"],"name":"Christmas Island","status":"assigned"},{"alpha2":"CY","alpha3":"CYP","countryCallingCodes":["+357"],"currencies":["EUR"],"ioc":"CYP","languages":["gre","tur"],"name":"Cyprus","status":"assigned"},{"alpha2":"CZ","alpha3":"CZE","countryCallingCodes":["+420"],"currencies":["CZK"],"ioc":"CZE","languages":["cze"],"name":"Czech Republic","status":"assigned"},{"alpha2":"DE","alpha3":"DEU","countryCallingCodes":["+49"],"currencies":["EUR"],"ioc":"GER","languages":["ger"],"name":"Germany","status":"assigned"},{"alpha2":"DG","alpha3":"","countryCallingCodes":[],"currencies":["USD"],"ioc":"","languages":[],"name":"Diego Garcia","status":"reserved"},{"alpha2":"DJ","alpha3":"DJI","countryCallingCodes":["+253"],"currencies":["DJF"],"ioc":"DJI","languages":["ara","fre"],"name":"Djibouti","status":"assigned"},{"alpha2":"DK","alpha3":"DNK","countryCallingCodes":["+45"],"currencies":["DKK"],"ioc":"DEN","languages":["dan"],"name":"Denmark","status":"assigned"},{"alpha2":"DM","alpha3":"DMA","countryCallingCodes":["+1 767"],"currencies":["XCD"],"ioc":"DMA","languages":["eng"],"name":"Dominica","status":"assigned"},{"alpha2":"DO","alpha3":"DOM","countryCallingCodes":["+1 809","+1 829","+1 849"],"currencies":["DOP"],"ioc":"DOM","languages":["spa"],"name":"Dominican Republic","status":"assigned"},{"alpha2":"DZ","alpha3":"DZA","countryCallingCodes":["+213"],"currencies":["DZD"],"ioc":"ALG","languages":["ara"],"name":"Algeria","status":"assigned"},{"alpha2":"EA","alpha3":"","countryCallingCodes":[],"currencies":["EUR"],"ioc":"","languages":[],"name":"Ceuta, Mulilla","status":"reserved"},{"alpha2":"EC","alpha3":"ECU","countryCallingCodes":["+593"],"currencies":["USD"],"ioc":"ECU","languages":["spa","que"],"name":"Ecuador","status":"assigned"},{"alpha2":"EE","alpha3":"EST","countryCallingCodes":["+372"],"currencies":["EUR"],"ioc":"EST","languages":["est"],"name":"Estonia","status":"assigned"},{"alpha2":"EG","alpha3":"EGY","countryCallingCodes":["+20"],"currencies":["EGP"],"ioc":"EGY","languages":["ara"],"name":"Egypt","status":"assigned"},{"alpha2":"EH","alpha3":"ESH","countryCallingCodes":["+212"],"currencies":["MAD"],"ioc":"","languages":[],"name":"Western Sahara","status":"assigned"},{"alpha2":"ER","alpha3":"ERI","countryCallingCodes":["+291"],"currencies":["ERN"],"ioc":"ERI","languages":["eng","ara","tir"],"name":"Eritrea","status":"assigned"},{"alpha2":"ES","alpha3":"ESP","countryCallingCodes":["+34"],"currencies":["EUR"],"ioc":"ESP","languages":["spa"],"name":"Spain","status":"assigned"},{"alpha2":"ET","alpha3":"ETH","countryCallingCodes":["+251"],"currencies":["ETB"],"ioc":"ETH","languages":["amh"],"name":"Ethiopia","status":"assigned"},{"alpha2":"EU","alpha3":"","countryCallingCodes":["+388"],"currencies":["EUR"],"ioc":"","languages":[],"name":"European Union","status":"reserved"},{"alpha2":"FI","alpha3":"FIN","countryCallingCodes":["+358"],"currencies":["EUR"],"ioc":"FIN","languages":["fin","swe"],"name":"Finland","status":"assigned"},{"alpha2":"FJ","alpha3":"FJI","countryCallingCodes":["+679"],"currencies":["FJD"],"ioc":"FIJ","languages":["eng","fij"],"name":"Fiji","status":"assigned"},{"alpha2":"FK","alpha3":"FLK","countryCallingCodes":["+500"],"currencies":["FKP"],"ioc":"","languages":["eng"],"name":"Falkland Islands","status":"assigned"},{"alpha2":"FM","alpha3":"FSM","countryCallingCodes":["+691"],"currencies":["USD"],"ioc":"","languages":["eng"],"name":"Micronesia, Federated States Of","status":"assigned"},{"alpha2":"FO","alpha3":"FRO","countryCallingCodes":["+298"],"currencies":["DKK"],"ioc":"FAI","languages":["fao","dan"],"name":"Faroe Islands","status":"assigned"},{"alpha2":"FR","alpha3":"FRA","countryCallingCodes":["+33"],"currencies":["EUR"],"ioc":"FRA","languages":["fre"],"name":"France","status":"assigned"},{"alpha2":"FX","alpha3":"","countryCallingCodes":["+241"],"currencies":["EUR"],"ioc":"","languages":["fre"],"name":"France, Metropolitan","status":"reserved"},{"alpha2":"GA","alpha3":"GAB","countryCallingCodes":["+241"],"currencies":["XAF"],"ioc":"GAB","languages":["fre"],"name":"Gabon","status":"assigned"},{"alpha2":"GB","alpha3":"GBR","countryCallingCodes":["+44"],"currencies":["GBP"],"ioc":"GBR","languages":["eng","cor","gle","gla","wel"],"name":"United Kingdom","status":"assigned"},{"alpha2":"GD","alpha3":"GRD","countryCallingCodes":["+473"],"currencies":["XCD"],"ioc":"GRN","languages":["eng"],"name":"Grenada","status":"assigned"},{"alpha2":"GE","alpha3":"GEO","countryCallingCodes":["+995"],"currencies":["GEL"],"ioc":"GEO","languages":["geo"],"name":"Georgia","status":"assigned"},{"alpha2":"GF","alpha3":"GUF","countryCallingCodes":["+594"],"currencies":["EUR"],"ioc":"","languages":["fre"],"name":"French Guiana","status":"assigned"},{"alpha2":"GG","alpha3":"GGY","countryCallingCodes":["+44"],"currencies":["GBP"],"ioc":"GCI","languages":["fre"],"name":"Guernsey","status":"assigned"},{"alpha2":"GH","alpha3":"GHA","countryCallingCodes":["+233"],"currencies":["GHS"],"ioc":"GHA","languages":["eng"],"name":"Ghana","status":"assigned"},{"alpha2":"GI","alpha3":"GIB","countryCallingCodes":["+350"],"currencies":["GIP"],"ioc":"","languages":["eng"],"name":"Gibraltar","status":"assigned"},{"alpha2":"GL","alpha3":"GRL","countryCallingCodes":["+299"],"currencies":["DKK"],"ioc":"","languages":["kal"],"name":"Greenland","status":"assigned"},{"alpha2":"GM","alpha3":"GMB","countryCallingCodes":["+220"],"currencies":["GMD"],"ioc":"GAM","languages":["eng"],"name":"Gambia","status":"assigned"},{"alpha2":"GN","alpha3":"GIN","countryCallingCodes":["+224"],"currencies":["GNF"],"ioc":"GUI","languages":["fre"],"name":"Guinea","status":"assigned"},{"alpha2":"GP","alpha3":"GLP","countryCallingCodes":["+590"],"currencies":["EUR"],"ioc":"","languages":["fre"],"name":"Guadeloupe","status":"assigned"},{"alpha2":"GQ","alpha3":"GNQ","countryCallingCodes":["+240"],"currencies":["XAF"],"ioc":"GEQ","languages":["spa","fre","por"],"name":"Equatorial Guinea","status":"assigned"},{"alpha2":"GR","alpha3":"GRC","countryCallingCodes":["+30"],"currencies":["EUR"],"ioc":"GRE","languages":["gre"],"name":"Greece","status":"assigned"},{"alpha2":"GS","alpha3":"SGS","countryCallingCodes":[],"currencies":["GBP"],"ioc":"","languages":["eng"],"name":"South Georgia And The South Sandwich Islands","status":"assigned"},{"alpha2":"GT","alpha3":"GTM","countryCallingCodes":["+502"],"currencies":["GTQ"],"ioc":"GUA","languages":["spa"],"name":"Guatemala","status":"assigned"},{"alpha2":"GU","alpha3":"GUM","countryCallingCodes":["+1 671"],"currencies":["USD"],"ioc":"GUM","languages":["eng"],"name":"Guam","status":"assigned"},{"alpha2":"GW","alpha3":"GNB","countryCallingCodes":["+245"],"currencies":["XOF"],"ioc":"GBS","languages":["por"],"name":"Guinea-bissau","status":"assigned"},{"alpha2":"GY","alpha3":"GUY","countryCallingCodes":["+592"],"currencies":["GYD"],"ioc":"GUY","languages":["eng"],"name":"Guyana","status":"assigned"},{"alpha2":"HK","alpha3":"HKG","countryCallingCodes":["+852"],"currencies":["HKD"],"ioc":"HKG","languages":["chi","eng"],"name":"Hong Kong","status":"assigned"},{"alpha2":"HM","alpha3":"HMD","countryCallingCodes":[],"currencies":["AUD"],"ioc":"","languages":[],"name":"Heard Island And McDonald Islands","status":"assigned"},{"alpha2":"HN","alpha3":"HND","countryCallingCodes":["+504"],"currencies":["HNL"],"ioc":"HON","languages":["spa"],"name":"Honduras","status":"assigned"},{"alpha2":"HR","alpha3":"HRV","countryCallingCodes":["+385"],"currencies":["HRK"],"ioc":"CRO","languages":["hrv"],"name":"Croatia","status":"assigned"},{"alpha2":"HT","alpha3":"HTI","countryCallingCodes":["+509"],"currencies":["HTG","USD"],"ioc":"HAI","languages":["fre","hat"],"name":"Haiti","status":"assigned"},{"alpha2":"HU","alpha3":"HUN","countryCallingCodes":["+36"],"currencies":["HUF"],"ioc":"HUN","languages":["hun"],"name":"Hungary","status":"assigned"},{"alpha2":"IC","alpha3":"","countryCallingCodes":[],"currencies":["EUR"],"ioc":"","languages":[],"name":"Canary Islands","status":"reserved"},{"alpha2":"ID","alpha3":"IDN","countryCallingCodes":["+62"],"currencies":["IDR"],"ioc":"INA","languages":["ind"],"name":"Indonesia","status":"assigned"},{"alpha2":"IE","alpha3":"IRL","countryCallingCodes":["+353"],"currencies":["EUR"],"ioc":"IRL","languages":["eng","gle"],"name":"Ireland","status":"assigned"},{"alpha2":"IL","alpha3":"ISR","countryCallingCodes":["+972"],"currencies":["ILS"],"ioc":"ISR","languages":["heb","ara","eng"],"name":"Israel","status":"assigned"},{"alpha2":"IM","alpha3":"IMN","countryCallingCodes":["+44"],"currencies":["GBP"],"ioc":"","languages":["eng","glv"],"name":"Isle Of Man","status":"assigned"},{"alpha2":"IN","alpha3":"IND","countryCallingCodes":["+91"],"currencies":["INR"],"ioc":"IND","languages":["eng","hin"],"name":"India","status":"assigned"},{"alpha2":"IO","alpha3":"IOT","countryCallingCodes":["+246"],"currencies":["USD"],"ioc":"","languages":["eng"],"name":"British Indian Ocean Territory","status":"assigned"},{"alpha2":"IQ","alpha3":"IRQ","countryCallingCodes":["+964"],"currencies":["IQD"],"ioc":"IRQ","languages":["ara","kur"],"name":"Iraq","status":"assigned"},{"alpha2":"IR","alpha3":"IRN","countryCallingCodes":["+98"],"currencies":["IRR"],"ioc":"IRI","languages":["per"],"name":"Iran, Islamic Republic Of","status":"assigned"},{"alpha2":"IS","alpha3":"ISL","countryCallingCodes":["+354"],"currencies":["ISK"],"ioc":"ISL","languages":["ice"],"name":"Iceland","status":"assigned"},{"alpha2":"IT","alpha3":"ITA","countryCallingCodes":["+39"],"currencies":["EUR"],"ioc":"ITA","languages":["ita"],"name":"Italy","status":"assigned"},{"alpha2":"JE","alpha3":"JEY","countryCallingCodes":["+44"],"currencies":["GBP"],"ioc":"JCI","languages":["eng","fre"],"name":"Jersey","status":"assigned"},{"alpha2":"JM","alpha3":"JAM","countryCallingCodes":["+1 876"],"currencies":["JMD"],"ioc":"JAM","languages":["eng"],"name":"Jamaica","status":"assigned"},{"alpha2":"JO","alpha3":"JOR","countryCallingCodes":["+962"],"currencies":["JOD"],"ioc":"JOR","languages":["ara"],"name":"Jordan","status":"assigned"},{"alpha2":"JP","alpha3":"JPN","countryCallingCodes":["+81"],"currencies":["JPY"],"ioc":"JPN","languages":["jpn"],"name":"Japan","status":"assigned"},{"alpha2":"KE","alpha3":"KEN","countryCallingCodes":["+254"],"currencies":["KES"],"ioc":"KEN","languages":["eng","swa"],"name":"Kenya","status":"assigned"},{"alpha2":"KG","alpha3":"KGZ","countryCallingCodes":["+996"],"currencies":["KGS"],"ioc":"KGZ","languages":["rus"],"name":"Kyrgyzstan","status":"assigned"},{"alpha2":"KH","alpha3":"KHM","countryCallingCodes":["+855"],"currencies":["KHR"],"ioc":"CAM","languages":["khm"],"name":"Cambodia","status":"assigned"},{"alpha2":"KI","alpha3":"KIR","countryCallingCodes":["+686"],"currencies":["AUD"],"ioc":"KIR","languages":["eng"],"name":"Kiribati","status":"assigned"},{"alpha2":"KM","alpha3":"COM","countryCallingCodes":["+269"],"currencies":["KMF"],"ioc":"COM","languages":["ara","fre"],"name":"Comoros","status":"assigned"},{"alpha2":"KN","alpha3":"KNA","countryCallingCodes":["+1 869"],"currencies":["XCD"],"ioc":"SKN","languages":["eng"],"name":"Saint Kitts And Nevis","status":"assigned"},{"alpha2":"KP","alpha3":"PRK","countryCallingCodes":["+850"],"currencies":["KPW"],"ioc":"PRK","languages":["kor"],"name":"Korea, Democratic People's Republic Of","status":"assigned"},{"alpha2":"KR","alpha3":"KOR","countryCallingCodes":["+82"],"currencies":["KRW"],"ioc":"KOR","languages":["kor"],"name":"Korea, Republic Of","status":"assigned"},{"alpha2":"KW","alpha3":"KWT","countryCallingCodes":["+965"],"currencies":["KWD"],"ioc":"KUW","languages":["ara"],"name":"Kuwait","status":"assigned"},{"alpha2":"KY","alpha3":"CYM","countryCallingCodes":["+1 345"],"currencies":["KYD"],"ioc":"CAY","languages":["eng"],"name":"Cayman Islands","status":"assigned"},{"alpha2":"KZ","alpha3":"KAZ","countryCallingCodes":["+7","+7 6","+7 7"],"currencies":["KZT"],"ioc":"KAZ","languages":["kaz","rus"],"name":"Kazakhstan","status":"assigned"},{"alpha2":"LA","alpha3":"LAO","countryCallingCodes":["+856"],"currencies":["LAK"],"ioc":"LAO","languages":["lao"],"name":"Lao People's Democratic Republic","status":"assigned"},{"alpha2":"LB","alpha3":"LBN","countryCallingCodes":["+961"],"currencies":["LBP"],"ioc":"LIB","languages":["ara","arm"],"name":"Lebanon","status":"assigned"},{"alpha2":"LC","alpha3":"LCA","countryCallingCodes":["+1 758"],"currencies":["XCD"],"ioc":"LCA","languages":["eng"],"name":"Saint Lucia","status":"assigned"},{"alpha2":"LI","alpha3":"LIE","countryCallingCodes":["+423"],"currencies":["CHF"],"ioc":"LIE","languages":["ger"],"name":"Liechtenstein","status":"assigned"},{"alpha2":"LK","alpha3":"LKA","countryCallingCodes":["+94"],"currencies":["LKR"],"ioc":"SRI","languages":["sin","tam"],"name":"Sri Lanka","status":"assigned"},{"alpha2":"LR","alpha3":"LBR","countryCallingCodes":["+231"],"currencies":["LRD"],"ioc":"LBR","languages":["eng"],"name":"Liberia","status":"assigned"},{"alpha2":"LS","alpha3":"LSO","countryCallingCodes":["+266"],"currencies":["LSL","ZAR"],"ioc":"LES","languages":["eng","sot"],"name":"Lesotho","status":"assigned"},{"alpha2":"LT","alpha3":"LTU","countryCallingCodes":["+370"],"currencies":["EUR"],"ioc":"LTU","languages":["lit"],"name":"Lithuania","status":"assigned"},{"alpha2":"LU","alpha3":"LUX","countryCallingCodes":["+352"],"currencies":["EUR"],"ioc":"LUX","languages":["fre","ger","ltz"],"name":"Luxembourg","status":"assigned"},{"alpha2":"LV","alpha3":"LVA","countryCallingCodes":["+371"],"currencies":["EUR"],"ioc":"LAT","languages":["lav"],"name":"Latvia","status":"assigned"},{"alpha2":"LY","alpha3":"LBY","countryCallingCodes":["+218"],"currencies":["LYD"],"ioc":"LBA","languages":["ara"],"name":"Libya","status":"assigned"},{"alpha2":"MA","alpha3":"MAR","countryCallingCodes":["+212"],"currencies":["MAD"],"ioc":"MAR","languages":["ara"],"name":"Morocco","status":"assigned"},{"alpha2":"MC","alpha3":"MCO","countryCallingCodes":["+377"],"currencies":["EUR"],"ioc":"MON","languages":["fre"],"name":"Monaco","status":"assigned"},{"alpha2":"MD","alpha3":"MDA","countryCallingCodes":["+373"],"currencies":["MDL"],"ioc":"MDA","languages":["rum"],"name":"Moldova","status":"assigned"},{"alpha2":"ME","alpha3":"MNE","countryCallingCodes":["+382"],"currencies":["EUR"],"ioc":"MNE","languages":["mot"],"name":"Montenegro","status":"assigned"},{"alpha2":"MF","alpha3":"MAF","countryCallingCodes":["+590"],"currencies":["EUR"],"ioc":"","languages":["fre"],"name":"Saint Martin","status":"assigned"},{"alpha2":"MG","alpha3":"MDG","countryCallingCodes":["+261"],"currencies":["MGA"],"ioc":"MAD","languages":["fre","mlg"],"name":"Madagascar","status":"assigned"},{"alpha2":"MH","alpha3":"MHL","countryCallingCodes":["+692"],"currencies":["USD"],"ioc":"MHL","languages":["eng","mah"],"name":"Marshall Islands","status":"assigned"},{"alpha2":"MK","alpha3":"MKD","countryCallingCodes":["+389"],"currencies":["MKD"],"ioc":"MKD","languages":["mac"],"name":"Macedonia, The Former Yugoslav Republic Of","status":"assigned"},{"alpha2":"ML","alpha3":"MLI","countryCallingCodes":["+223"],"currencies":["XOF"],"ioc":"MLI","languages":["fre"],"name":"Mali","status":"assigned"},{"alpha2":"MM","alpha3":"MMR","countryCallingCodes":["+95"],"currencies":["MMK"],"ioc":"MYA","languages":["bur"],"name":"Myanmar","status":"assigned"},{"alpha2":"MN","alpha3":"MNG","countryCallingCodes":["+976"],"currencies":["MNT"],"ioc":"MGL","languages":["mon"],"name":"Mongolia","status":"assigned"},{"alpha2":"MO","alpha3":"MAC","countryCallingCodes":["+853"],"currencies":["MOP"],"ioc":"MAC","languages":["chi","por"],"name":"Macao","status":"assigned"},{"alpha2":"MP","alpha3":"MNP","countryCallingCodes":["+1 670"],"currencies":["USD"],"ioc":"","languages":["eng"],"name":"Northern Mariana Islands","status":"assigned"},{"alpha2":"MQ","alpha3":"MTQ","countryCallingCodes":["+596"],"currencies":["EUR"],"ioc":"","languages":[],"name":"Martinique","status":"assigned"},{"alpha2":"MR","alpha3":"MRT","countryCallingCodes":["+222"],"currencies":["MRO"],"ioc":"MTN","languages":["ara","fre"],"name":"Mauritania","status":"assigned"},{"alpha2":"MS","alpha3":"MSR","countryCallingCodes":["+1 664"],"currencies":["XCD"],"ioc":"","languages":[],"name":"Montserrat","status":"assigned"},{"alpha2":"MT","alpha3":"MLT","countryCallingCodes":["+356"],"currencies":["EUR"],"ioc":"MLT","languages":["mlt","eng"],"name":"Malta","status":"assigned"},{"alpha2":"MU","alpha3":"MUS","countryCallingCodes":["+230"],"currencies":["MUR"],"ioc":"MRI","languages":["eng","fre"],"name":"Mauritius","status":"assigned"},{"alpha2":"MV","alpha3":"MDV","countryCallingCodes":["+960"],"currencies":["MVR"],"ioc":"MDV","languages":["div"],"name":"Maldives","status":"assigned"},{"alpha2":"MW","alpha3":"MWI","countryCallingCodes":["+265"],"currencies":["MWK"],"ioc":"MAW","languages":["eng","nya"],"name":"Malawi","status":"assigned"},{"alpha2":"MX","alpha3":"MEX","countryCallingCodes":["+52"],"currencies":["MXN","MXV"],"ioc":"MEX","languages":["spa"],"name":"Mexico","status":"assigned"},{"alpha2":"MY","alpha3":"MYS","countryCallingCodes":["+60"],"currencies":["MYR"],"ioc":"MAS","languages":["msa","eng"],"name":"Malaysia","status":"assigned"},{"alpha2":"MZ","alpha3":"MOZ","countryCallingCodes":["+258"],"currencies":["MZN"],"ioc":"MOZ","languages":["por"],"name":"Mozambique","status":"assigned"},{"alpha2":"NA","alpha3":"NAM","countryCallingCodes":["+264"],"currencies":["NAD","ZAR"],"ioc":"NAM","languages":["eng"],"name":"Namibia","status":"assigned"},{"alpha2":"NC","alpha3":"NCL","countryCallingCodes":["+687"],"currencies":["XPF"],"ioc":"","languages":["fre"],"name":"New Caledonia","status":"assigned"},{"alpha2":"NE","alpha3":"NER","countryCallingCodes":["+227"],"currencies":["XOF"],"ioc":"NIG","languages":["fre"],"name":"Niger","status":"assigned"},{"alpha2":"NF","alpha3":"NFK","countryCallingCodes":["+672"],"currencies":["AUD"],"ioc":"","languages":["eng"],"name":"Norfolk Island","status":"assigned"},{"alpha2":"NG","alpha3":"NGA","countryCallingCodes":["+234"],"currencies":["NGN"],"ioc":"NGR","languages":["eng"],"name":"Nigeria","status":"assigned"},{"alpha2":"NI","alpha3":"NIC","countryCallingCodes":["+505"],"currencies":["NIO"],"ioc":"NCA","languages":["spa"],"name":"Nicaragua","status":"assigned"},{"alpha2":"NL","alpha3":"NLD","countryCallingCodes":["+31"],"currencies":["EUR"],"ioc":"NED","languages":["dut"],"name":"Netherlands","status":"assigned"},{"alpha2":"NO","alpha3":"NOR","countryCallingCodes":["+47"],"currencies":["NOK"],"ioc":"NOR","languages":["nor"],"name":"Norway","status":"assigned"},{"alpha2":"NP","alpha3":"NPL","countryCallingCodes":["+977"],"currencies":["NPR"],"ioc":"NEP","languages":["nep"],"name":"Nepal","status":"assigned"},{"alpha2":"NR","alpha3":"NRU","countryCallingCodes":["+674"],"currencies":["AUD"],"ioc":"NRU","languages":["eng","nau"],"name":"Nauru","status":"assigned"},{"alpha2":"NU","alpha3":"NIU","countryCallingCodes":["+683"],"currencies":["NZD"],"ioc":"","languages":["eng"],"name":"Niue","status":"assigned"},{"alpha2":"NZ","alpha3":"NZL","countryCallingCodes":["+64"],"currencies":["NZD"],"ioc":"NZL","languages":["eng"],"name":"New Zealand","status":"assigned"},{"alpha2":"OM","alpha3":"OMN","countryCallingCodes":["+968"],"currencies":["OMR"],"ioc":"OMA","languages":["ara"],"name":"Oman","status":"assigned"},{"alpha2":"PA","alpha3":"PAN","countryCallingCodes":["+507"],"currencies":["PAB","USD"],"ioc":"PAN","languages":["spa"],"name":"Panama","status":"assigned"},{"alpha2":"PE","alpha3":"PER","countryCallingCodes":["+51"],"currencies":["PEN"],"ioc":"PER","languages":["spa","aym","que"],"name":"Peru","status":"assigned"},{"alpha2":"PF","alpha3":"PYF","countryCallingCodes":["+689"],"currencies":["XPF"],"ioc":"","languages":["fre"],"name":"French Polynesia","status":"assigned"},{"alpha2":"PG","alpha3":"PNG","countryCallingCodes":["+675"],"currencies":["PGK"],"ioc":"PNG","languages":["eng"],"name":"Papua New Guinea","status":"assigned"},{"alpha2":"PH","alpha3":"PHL","countryCallingCodes":["+63"],"currencies":["PHP"],"ioc":"PHI","languages":["eng"],"name":"Philippines","status":"assigned"},{"alpha2":"PK","alpha3":"PAK","countryCallingCodes":["+92"],"currencies":["PKR"],"ioc":"PAK","languages":["urd","eng"],"name":"Pakistan","status":"assigned"},{"alpha2":"PL","alpha3":"POL","countryCallingCodes":["+48"],"currencies":["PLN"],"ioc":"POL","languages":["pol"],"name":"Poland","status":"assigned"},{"alpha2":"PM","alpha3":"SPM","countryCallingCodes":["+508"],"currencies":["EUR"],"ioc":"","languages":["eng"],"name":"Saint Pierre And Miquelon","status":"assigned"},{"alpha2":"PN","alpha3":"PCN","countryCallingCodes":["+872"],"currencies":["NZD"],"ioc":"","languages":["eng"],"name":"Pitcairn","status":"assigned"},{"alpha2":"PR","alpha3":"PRI","countryCallingCodes":["+1 787","+1 939"],"currencies":["USD"],"ioc":"PUR","languages":["spa","eng"],"name":"Puerto Rico","status":"assigned"},{"alpha2":"PS","alpha3":"PSE","countryCallingCodes":["+970"],"currencies":["JOD","EGP","ILS"],"ioc":"PLE","languages":["ara"],"name":"Palestinian Territory, Occupied","status":"assigned"},{"alpha2":"PT","alpha3":"PRT","countryCallingCodes":["+351"],"currencies":["EUR"],"ioc":"POR","languages":["por"],"name":"Portugal","status":"assigned"},{"alpha2":"PW","alpha3":"PLW","countryCallingCodes":["+680"],"currencies":["USD"],"ioc":"PLW","languages":["eng"],"name":"Palau","status":"assigned"},{"alpha2":"PY","alpha3":"PRY","countryCallingCodes":["+595"],"currencies":["PYG"],"ioc":"PAR","languages":["spa"],"name":"Paraguay","status":"assigned"},{"alpha2":"QA","alpha3":"QAT","countryCallingCodes":["+974"],"currencies":["QAR"],"ioc":"QAT","languages":["ara"],"name":"Qatar","status":"assigned"},{"alpha2":"RE","alpha3":"REU","countryCallingCodes":["+262"],"currencies":["EUR"],"ioc":"","languages":["fre"],"name":"Reunion","status":"assigned"},{"alpha2":"RO","alpha3":"ROU","countryCallingCodes":["+40"],"currencies":["RON"],"ioc":"ROU","languages":["rum"],"name":"Romania","status":"assigned"},{"alpha2":"RS","alpha3":"SRB","countryCallingCodes":["+381"],"currencies":["RSD"],"ioc":"SRB","languages":["srp"],"name":"Serbia","status":"assigned"},{"alpha2":"RU","alpha3":"RUS","countryCallingCodes":["+7","+7 3","+7 4","+7 8"],"currencies":["RUB"],"ioc":"RUS","languages":["rus"],"name":"Russian Federation","status":"assigned"},{"alpha2":"RW","alpha3":"RWA","countryCallingCodes":["+250"],"currencies":["RWF"],"ioc":"RWA","languages":["eng","fre","kin"],"name":"Rwanda","status":"assigned"},{"alpha2":"SA","alpha3":"SAU","countryCallingCodes":["+966"],"currencies":["SAR"],"ioc":"KSA","languages":["ara"],"name":"Saudi Arabia","status":"assigned"},{"alpha2":"SB","alpha3":"SLB","countryCallingCodes":["+677"],"currencies":["SBD"],"ioc":"SOL","languages":["eng"],"name":"Solomon Islands","status":"assigned"},{"alpha2":"SC","alpha3":"SYC","countryCallingCodes":["+248"],"currencies":["SCR"],"ioc":"SEY","languages":["eng","fre"],"name":"Seychelles","status":"assigned"},{"alpha2":"SD","alpha3":"SDN","countryCallingCodes":["+249"],"currencies":["SDG"],"ioc":"SUD","languages":["ara","eng"],"name":"Sudan","status":"assigned"},{"alpha2":"SE","alpha3":"SWE","countryCallingCodes":["+46"],"currencies":["SEK"],"ioc":"SWE","languages":["swe"],"name":"Sweden","status":"assigned"},{"alpha2":"SG","alpha3":"SGP","countryCallingCodes":["+65"],"currencies":["SGD"],"ioc":"SIN","languages":["eng","chi","may","tam"],"name":"Singapore","status":"assigned"},{"alpha2":"SH","alpha3":"SHN","countryCallingCodes":["+290"],"currencies":["SHP"],"ioc":"","languages":["eng"],"name":"Saint Helena, Ascension And Tristan Da Cunha","status":"assigned"},{"alpha2":"SI","alpha3":"SVN","countryCallingCodes":["+386"],"currencies":["EUR"],"ioc":"SLO","languages":["slv"],"name":"Slovenia","status":"assigned"},{"alpha2":"SJ","alpha3":"SJM","countryCallingCodes":["+47"],"currencies":["NOK"],"ioc":"","languages":[],"name":"Svalbard And Jan Mayen","status":"assigned"},{"alpha2":"SK","alpha3":"SVK","countryCallingCodes":["+421"],"currencies":["EUR"],"ioc":"SVK","languages":["slo"],"name":"Slovakia","status":"assigned"},{"alpha2":"SL","alpha3":"SLE","countryCallingCodes":["+232"],"currencies":["SLL"],"ioc":"SLE","languages":["eng"],"name":"Sierra Leone","status":"assigned"},{"alpha2":"SM","alpha3":"SMR","countryCallingCodes":["+378"],"currencies":["EUR"],"ioc":"SMR","languages":["ita"],"name":"San Marino","status":"assigned"},{"alpha2":"SN","alpha3":"SEN","countryCallingCodes":["+221"],"currencies":["XOF"],"ioc":"SEN","languages":["fre"],"name":"Senegal","status":"assigned"},{"alpha2":"SO","alpha3":"SOM","countryCallingCodes":["+252"],"currencies":["SOS"],"ioc":"SOM","languages":["som"],"name":"Somalia","status":"assigned"},{"alpha2":"SR","alpha3":"SUR","countryCallingCodes":["+597"],"currencies":["SRD"],"ioc":"SUR","languages":["dut"],"name":"Suriname","status":"assigned"},{"alpha2":"SS","alpha3":"SSD","countryCallingCodes":["+211"],"currencies":["SSP"],"ioc":"","languages":["eng"],"name":"South Sudan","status":"assigned"},{"alpha2":"ST","alpha3":"STP","countryCallingCodes":["+239"],"currencies":["STD"],"ioc":"STP","languages":["por"],"name":"São Tomé and Príncipe","status":"assigned"},{"alpha2":"SU","alpha3":"","countryCallingCodes":[],"currencies":["RUB"],"ioc":"","languages":["rus"],"name":"USSR","status":"reserved"},{"alpha2":"SV","alpha3":"SLV","countryCallingCodes":["+503"],"currencies":["USD"],"ioc":"ESA","languages":["spa"],"name":"El Salvador","status":"assigned"},{"alpha2":"SX","alpha3":"SXM","countryCallingCodes":["+1 721"],"currencies":["ANG"],"ioc":"","languages":["dut"],"name":"Sint Maarten","status":"assigned"},{"alpha2":"SY","alpha3":"SYR","countryCallingCodes":["+963"],"currencies":["SYP"],"ioc":"SYR","languages":["ara"],"name":"Syrian Arab Republic","status":"assigned"},{"alpha2":"SZ","alpha3":"SWZ","countryCallingCodes":["+268"],"currencies":["SZL"],"ioc":"SWZ","languages":["eng","ssw"],"name":"Swaziland","status":"assigned"},{"alpha2":"TA","alpha3":"","countryCallingCodes":["+290"],"currencies":["GBP"],"ioc":"","languages":[],"name":"Tristan de Cunha","status":"reserved"},{"alpha2":"TC","alpha3":"TCA","countryCallingCodes":["+1 649"],"currencies":["USD"],"ioc":"","languages":["eng"],"name":"Turks And Caicos Islands","status":"assigned"},{"alpha2":"TD","alpha3":"TCD","countryCallingCodes":["+235"],"currencies":["XAF"],"ioc":"CHA","languages":["ara","fre"],"name":"Chad","status":"assigned"},{"alpha2":"TF","alpha3":"ATF","countryCallingCodes":[],"currencies":["EUR"],"ioc":"","languages":["fre"],"name":"French Southern Territories","status":"assigned"},{"alpha2":"TG","alpha3":"TGO","countryCallingCodes":["+228"],"currencies":["XOF"],"ioc":"TOG","languages":["fre"],"name":"Togo","status":"assigned"},{"alpha2":"TH","alpha3":"THA","countryCallingCodes":["+66"],"currencies":["THB"],"ioc":"THA","languages":["tha"],"name":"Thailand","status":"assigned"},{"alpha2":"TJ","alpha3":"TJK","countryCallingCodes":["+992"],"currencies":["TJS"],"ioc":"TJK","languages":["tgk","rus"],"name":"Tajikistan","status":"assigned"},{"alpha2":"TK","alpha3":"TKL","countryCallingCodes":["+690"],"currencies":["NZD"],"ioc":"","languages":["eng"],"name":"Tokelau","status":"assigned"},{"alpha2":"TL","alpha3":"TLS","countryCallingCodes":["+670"],"currencies":["USD"],"ioc":"TLS","languages":["por"],"name":"East Timor","status":"assigned"},{"alpha2":"TM","alpha3":"TKM","countryCallingCodes":["+993"],"currencies":["TMT"],"ioc":"TKM","languages":["tuk","rus"],"name":"Turkmenistan","status":"assigned"},{"alpha2":"TN","alpha3":"TUN","countryCallingCodes":["+216"],"currencies":["TND"],"ioc":"TUN","languages":["ara"],"name":"Tunisia","status":"assigned"},{"alpha2":"TO","alpha3":"TON","countryCallingCodes":["+676"],"currencies":["TOP"],"ioc":"TGA","languages":["eng"],"name":"Tonga","status":"assigned"},{"alpha2":"TR","alpha3":"TUR","countryCallingCodes":["+90"],"currencies":["TRY"],"ioc":"TUR","languages":["tur"],"name":"Turkey","status":"assigned"},{"alpha2":"TT","alpha3":"TTO","countryCallingCodes":["+1 868"],"currencies":["TTD"],"ioc":"TRI","languages":["eng"],"name":"Trinidad And Tobago","status":"assigned"},{"alpha2":"TV","alpha3":"TUV","countryCallingCodes":["+688"],"currencies":["AUD"],"ioc":"TUV","languages":["eng"],"name":"Tuvalu","status":"assigned"},{"alpha2":"TW","alpha3":"TWN","countryCallingCodes":["+886"],"currencies":["TWD"],"ioc":"TPE","languages":["chi"],"name":"Taiwan, Province Of China","status":"assigned"},{"alpha2":"TZ","alpha3":"TZA","countryCallingCodes":["+255"],"currencies":["TZS"],"ioc":"TAN","languages":["swa","eng"],"name":"Tanzania, United Republic Of","status":"assigned"},{"alpha2":"UA","alpha3":"UKR","countryCallingCodes":["+380"],"currencies":["UAH"],"ioc":"UKR","languages":["ukr","rus"],"name":"Ukraine","status":"assigned"},{"alpha2":"UG","alpha3":"UGA","countryCallingCodes":["+256"],"currencies":["UGX"],"ioc":"UGA","languages":["eng","swa"],"name":"Uganda","status":"assigned"},{"alpha2":"UK","alpha3":"","countryCallingCodes":[],"currencies":["GBP"],"ioc":"","languages":["eng","cor","gle","gla","wel"],"name":"United Kingdom","status":"reserved"},{"alpha2":"UM","alpha3":"UMI","countryCallingCodes":["+1"],"currencies":["USD"],"ioc":"","languages":["eng"],"name":"United States Minor Outlying Islands","status":"assigned"},{"alpha2":"US","alpha3":"USA","countryCallingCodes":["+1"],"currencies":["USD"],"ioc":"USA","languages":["eng"],"name":"United States","status":"assigned"},{"alpha2":"UY","alpha3":"URY","countryCallingCodes":["+598"],"currencies":["UYU","UYI"],"ioc":"URU","languages":["spa"],"name":"Uruguay","status":"assigned"},{"alpha2":"UZ","alpha3":"UZB","countryCallingCodes":["+998"],"currencies":["UZS"],"ioc":"UZB","languages":["uzb","rus"],"name":"Uzbekistan","status":"assigned"},{"alpha2":"VA","alpha3":"VAT","countryCallingCodes":["+379","+39"],"currencies":["EUR"],"ioc":"","languages":["ita"],"name":"Vatican City State","status":"assigned"},{"alpha2":"VC","alpha3":"VCT","countryCallingCodes":["+1 784"],"currencies":["XCD"],"ioc":"VIN","languages":["eng"],"name":"Saint Vincent And The Grenadines","status":"assigned"},{"alpha2":"VE","alpha3":"VEN","countryCallingCodes":["+58"],"currencies":["VEF"],"ioc":"VEN","languages":["spa"],"name":"Venezuela, Bolivarian Republic Of","status":"assigned"},{"alpha2":"VG","alpha3":"VGB","countryCallingCodes":["+1 284"],"currencies":["USD"],"ioc":"ISV","languages":["eng"],"name":"Virgin Islands (British)","status":"assigned"},{"alpha2":"VI","alpha3":"VIR","countryCallingCodes":["+1 340"],"currencies":["USD"],"ioc":"ISV","languages":["eng"],"name":"Virgin Islands (US)","status":"assigned"},{"alpha2":"VN","alpha3":"VNM","countryCallingCodes":["+84"],"currencies":["VND"],"ioc":"VIE","languages":["vie"],"name":"Viet Nam","status":"assigned"},{"alpha2":"VU","alpha3":"VUT","countryCallingCodes":["+678"],"currencies":["VUV"],"ioc":"VAN","languages":["bis","eng","fre"],"name":"Vanuatu","status":"assigned"},{"alpha2":"WF","alpha3":"WLF","countryCallingCodes":["+681"],"currencies":["XPF"],"ioc":"","languages":["fre"],"name":"Wallis And Futuna","status":"assigned"},{"alpha2":"WS","alpha3":"WSM","countryCallingCodes":["+685"],"currencies":["WST"],"ioc":"SAM","languages":["eng","smo"],"name":"Samoa","status":"assigned"},{"alpha2":"YE","alpha3":"YEM","countryCallingCodes":["+967"],"currencies":["YER"],"ioc":"YEM","languages":["ara"],"name":"Yemen","status":"assigned"},{"alpha2":"YT","alpha3":"MYT","countryCallingCodes":["+262"],"currencies":["EUR"],"ioc":"","languages":["fre"],"name":"Mayotte","status":"assigned"},{"alpha2":"ZA","alpha3":"ZAF","countryCallingCodes":["+27"],"currencies":["ZAR"],"ioc":"RSA","languages":["afr","eng","nbl","som","tso","ven","xho","zul"],"name":"South Africa","status":"assigned"},{"alpha2":"ZM","alpha3":"ZMB","countryCallingCodes":["+260"],"currencies":["ZMW"],"ioc":"ZAM","languages":["eng"],"name":"Zambia","status":"assigned"},{"alpha2":"ZW","alpha3":"ZWE","countryCallingCodes":["+263"],"currencies":["USD","ZAR","BWP","GBP","EUR"],"ioc":"ZIM","languages":["eng","sna","nde"],"name":"Zimbabwe","status":"assigned"}]

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

View File

@ -0,0 +1 @@
[{"alpha2":"aa","alpha3":"aar","bibliographic":"","name":"Afar"},{"alpha2":"ab","alpha3":"abk","bibliographic":"","name":"Abkhazian"},{"alpha2":"","alpha3":"ace","bibliographic":"","name":"Achinese"},{"alpha2":"","alpha3":"ach","bibliographic":"","name":"Acoli"},{"alpha2":"","alpha3":"ada","bibliographic":"","name":"Adangme"},{"alpha2":"","alpha3":"ady","bibliographic":"","name":"Adygei"},{"alpha2":"","alpha3":"ady","bibliographic":"","name":"Adyghe"},{"alpha2":"","alpha3":"afa","bibliographic":"","name":"Afro-Asiatic languages"},{"alpha2":"","alpha3":"afh","bibliographic":"","name":"Afrihili"},{"alpha2":"af","alpha3":"afr","bibliographic":"","name":"Afrikaans"},{"alpha2":"","alpha3":"ain","bibliographic":"","name":"Ainu"},{"alpha2":"ak","alpha3":"aka","bibliographic":"","name":"Akan"},{"alpha2":"","alpha3":"akk","bibliographic":"","name":"Akkadian"},{"alpha2":"","alpha3":"ale","bibliographic":"","name":"Aleut"},{"alpha2":"","alpha3":"alg","bibliographic":"","name":"Algonquian languages"},{"alpha2":"","alpha3":"alt","bibliographic":"","name":"Southern Altai"},{"alpha2":"am","alpha3":"amh","bibliographic":"","name":"Amharic"},{"alpha2":"","alpha3":"ang","bibliographic":"","name":"English, Old (ca.450-1100)"},{"alpha2":"","alpha3":"anp","bibliographic":"","name":"Angika"},{"alpha2":"","alpha3":"apa","bibliographic":"","name":"Apache languages"},{"alpha2":"ar","alpha3":"ara","bibliographic":"","name":"Arabic"},{"alpha2":"","alpha3":"arc","bibliographic":"","name":"Imperial Aramaic (700-300 BCE)"},{"alpha2":"","alpha3":"arc","bibliographic":"","name":"Official Aramaic (700-300 BCE)"},{"alpha2":"an","alpha3":"arg","bibliographic":"","name":"Aragonese"},{"alpha2":"","alpha3":"arn","bibliographic":"","name":"Mapuche"},{"alpha2":"","alpha3":"arn","bibliographic":"","name":"Mapudungun"},{"alpha2":"","alpha3":"arp","bibliographic":"","name":"Arapaho"},{"alpha2":"","alpha3":"art","bibliographic":"","name":"Artificial languages"},{"alpha2":"","alpha3":"arw","bibliographic":"","name":"Arawak"},{"alpha2":"as","alpha3":"asm","bibliographic":"","name":"Assamese"},{"alpha2":"","alpha3":"ast","bibliographic":"","name":"Asturian"},{"alpha2":"","alpha3":"ast","bibliographic":"","name":"Asturleonese"},{"alpha2":"","alpha3":"ast","bibliographic":"","name":"Bable"},{"alpha2":"","alpha3":"ast","bibliographic":"","name":"Leonese"},{"alpha2":"","alpha3":"ath","bibliographic":"","name":"Athapascan languages"},{"alpha2":"","alpha3":"aus","bibliographic":"","name":"Australian languages"},{"alpha2":"av","alpha3":"ava","bibliographic":"","name":"Avaric"},{"alpha2":"ae","alpha3":"ave","bibliographic":"","name":"Avestan"},{"alpha2":"","alpha3":"awa","bibliographic":"","name":"Awadhi"},{"alpha2":"ay","alpha3":"aym","bibliographic":"","name":"Aymara"},{"alpha2":"az","alpha3":"aze","bibliographic":"","name":"Azerbaijani"},{"alpha2":"","alpha3":"bad","bibliographic":"","name":"Banda languages"},{"alpha2":"","alpha3":"bai","bibliographic":"","name":"Bamileke languages"},{"alpha2":"ba","alpha3":"bak","bibliographic":"","name":"Bashkir"},{"alpha2":"","alpha3":"bal","bibliographic":"","name":"Baluchi"},{"alpha2":"bm","alpha3":"bam","bibliographic":"","name":"Bambara"},{"alpha2":"","alpha3":"ban","bibliographic":"","name":"Balinese"},{"alpha2":"","alpha3":"bas","bibliographic":"","name":"Basa"},{"alpha2":"","alpha3":"bat","bibliographic":"","name":"Baltic languages"},{"alpha2":"","alpha3":"bej","bibliographic":"","name":"Bedawiyet"},{"alpha2":"","alpha3":"bej","bibliographic":"","name":"Beja"},{"alpha2":"be","alpha3":"bel","bibliographic":"","name":"Belarusian"},{"alpha2":"","alpha3":"bem","bibliographic":"","name":"Bemba"},{"alpha2":"bn","alpha3":"ben","bibliographic":"","name":"Bengali"},{"alpha2":"","alpha3":"ber","bibliographic":"","name":"Berber languages"},{"alpha2":"","alpha3":"bho","bibliographic":"","name":"Bhojpuri"},{"alpha2":"bh","alpha3":"bih","bibliographic":"","name":"Bihari languages"},{"alpha2":"","alpha3":"bik","bibliographic":"","name":"Bikol"},{"alpha2":"","alpha3":"bin","bibliographic":"","name":"Bini"},{"alpha2":"","alpha3":"bin","bibliographic":"","name":"Edo"},{"alpha2":"bi","alpha3":"bis","bibliographic":"","name":"Bislama"},{"alpha2":"","alpha3":"bla","bibliographic":"","name":"Siksika"},{"alpha2":"","alpha3":"bnt","bibliographic":"","name":"Bantu languages"},{"alpha2":"bo","alpha3":"bod","bibliographic":"tib","name":"Tibetan"},{"alpha2":"bs","alpha3":"bos","bibliographic":"","name":"Bosnian"},{"alpha2":"","alpha3":"bra","bibliographic":"","name":"Braj"},{"alpha2":"br","alpha3":"bre","bibliographic":"","name":"Breton"},{"alpha2":"","alpha3":"btk","bibliographic":"","name":"Batak languages"},{"alpha2":"","alpha3":"bua","bibliographic":"","name":"Buriat"},{"alpha2":"","alpha3":"bug","bibliographic":"","name":"Buginese"},{"alpha2":"bg","alpha3":"bul","bibliographic":"","name":"Bulgarian"},{"alpha2":"","alpha3":"byn","bibliographic":"","name":"Bilin"},{"alpha2":"","alpha3":"byn","bibliographic":"","name":"Blin"},{"alpha2":"","alpha3":"cad","bibliographic":"","name":"Caddo"},{"alpha2":"","alpha3":"cai","bibliographic":"","name":"Central American Indian languages"},{"alpha2":"","alpha3":"car","bibliographic":"","name":"Galibi Carib"},{"alpha2":"ca","alpha3":"cat","bibliographic":"","name":"Catalan"},{"alpha2":"ca","alpha3":"cat","bibliographic":"","name":"Valencian"},{"alpha2":"","alpha3":"cau","bibliographic":"","name":"Caucasian languages"},{"alpha2":"","alpha3":"ceb","bibliographic":"","name":"Cebuano"},{"alpha2":"","alpha3":"cel","bibliographic":"","name":"Celtic languages"},{"alpha2":"cs","alpha3":"ces","bibliographic":"cze","name":"Czech"},{"alpha2":"ch","alpha3":"cha","bibliographic":"","name":"Chamorro"},{"alpha2":"","alpha3":"chb","bibliographic":"","name":"Chibcha"},{"alpha2":"ce","alpha3":"che","bibliographic":"","name":"Chechen"},{"alpha2":"","alpha3":"chg","bibliographic":"","name":"Chagatai"},{"alpha2":"","alpha3":"chk","bibliographic":"","name":"Chuukese"},{"alpha2":"","alpha3":"chm","bibliographic":"","name":"Mari"},{"alpha2":"","alpha3":"chn","bibliographic":"","name":"Chinook jargon"},{"alpha2":"","alpha3":"cho","bibliographic":"","name":"Choctaw"},{"alpha2":"","alpha3":"chp","bibliographic":"","name":"Chipewyan"},{"alpha2":"","alpha3":"chp","bibliographic":"","name":"Dene Suline"},{"alpha2":"","alpha3":"chr","bibliographic":"","name":"Cherokee"},{"alpha2":"cu","alpha3":"chu","bibliographic":"","name":"Church Slavic"},{"alpha2":"cu","alpha3":"chu","bibliographic":"","name":"Church Slavonic"},{"alpha2":"cu","alpha3":"chu","bibliographic":"","name":"Old Bulgarian"},{"alpha2":"cu","alpha3":"chu","bibliographic":"","name":"Old Church Slavonic"},{"alpha2":"cu","alpha3":"chu","bibliographic":"","name":"Old Slavonic"},{"alpha2":"cv","alpha3":"chv","bibliographic":"","name":"Chuvash"},{"alpha2":"","alpha3":"chy","bibliographic":"","name":"Cheyenne"},{"alpha2":"","alpha3":"cmc","bibliographic":"","name":"Chamic languages"},{"alpha2":"","alpha3":"cop","bibliographic":"","name":"Coptic"},{"alpha2":"kw","alpha3":"cor","bibliographic":"","name":"Cornish"},{"alpha2":"co","alpha3":"cos","bibliographic":"","name":"Corsican"},{"alpha2":"","alpha3":"cpe","bibliographic":"","name":"Creoles and pidgins, English based"},{"alpha2":"","alpha3":"cpf","bibliographic":"","name":"Creoles and pidgins, French-based"},{"alpha2":"","alpha3":"cpp","bibliographic":"","name":"Creoles and pidgins, Portuguese-based"},{"alpha2":"cr","alpha3":"cre","bibliographic":"","name":"Cree"},{"alpha2":"","alpha3":"crh","bibliographic":"","name":"Crimean Tatar"},{"alpha2":"","alpha3":"crh","bibliographic":"","name":"Crimean Turkish"},{"alpha2":"","alpha3":"crp","bibliographic":"","name":"Creoles and pidgins"},{"alpha2":"","alpha3":"csb","bibliographic":"","name":"Kashubian"},{"alpha2":"","alpha3":"cus","bibliographic":"","name":"Cushitic languages"},{"alpha2":"cy","alpha3":"cym","bibliographic":"wel","name":"Welsh"},{"alpha2":"","alpha3":"dak","bibliographic":"","name":"Dakota"},{"alpha2":"da","alpha3":"dan","bibliographic":"","name":"Danish"},{"alpha2":"","alpha3":"dar","bibliographic":"","name":"Dargwa"},{"alpha2":"","alpha3":"day","bibliographic":"","name":"Land Dayak languages"},{"alpha2":"","alpha3":"del","bibliographic":"","name":"Delaware"},{"alpha2":"","alpha3":"den","bibliographic":"","name":"Slave (Athapascan)"},{"alpha2":"de","alpha3":"deu","bibliographic":"ger","name":"German"},{"alpha2":"","alpha3":"dgr","bibliographic":"","name":"Dogrib"},{"alpha2":"","alpha3":"din","bibliographic":"","name":"Dinka"},{"alpha2":"dv","alpha3":"div","bibliographic":"","name":"Dhivehi"},{"alpha2":"dv","alpha3":"div","bibliographic":"","name":"Divehi"},{"alpha2":"dv","alpha3":"div","bibliographic":"","name":"Maldivian"},{"alpha2":"","alpha3":"doi","bibliographic":"","name":"Dogri"},{"alpha2":"","alpha3":"dra","bibliographic":"","name":"Dravidian languages"},{"alpha2":"","alpha3":"dsb","bibliographic":"","name":"Lower Sorbian"},{"alpha2":"","alpha3":"dua","bibliographic":"","name":"Duala"},{"alpha2":"","alpha3":"dum","bibliographic":"","name":"Dutch, Middle (ca.1050-1350)"},{"alpha2":"","alpha3":"dyu","bibliographic":"","name":"Dyula"},{"alpha2":"dz","alpha3":"dzo","bibliographic":"","name":"Dzongkha"},{"alpha2":"","alpha3":"efi","bibliographic":"","name":"Efik"},{"alpha2":"","alpha3":"egy","bibliographic":"","name":"Egyptian (Ancient)"},{"alpha2":"","alpha3":"eka","bibliographic":"","name":"Ekajuk"},{"alpha2":"el","alpha3":"ell","bibliographic":"gre","name":"Greek, Modern (1453-)"},{"alpha2":"","alpha3":"elx","bibliographic":"","name":"Elamite"},{"alpha2":"en","alpha3":"eng","bibliographic":"","name":"English"},{"alpha2":"","alpha3":"enm","bibliographic":"","name":"English, Middle (1100-1500)"},{"alpha2":"eo","alpha3":"epo","bibliographic":"","name":"Esperanto"},{"alpha2":"et","alpha3":"est","bibliographic":"","name":"Estonian"},{"alpha2":"eu","alpha3":"eus","bibliographic":"baq","name":"Basque"},{"alpha2":"ee","alpha3":"ewe","bibliographic":"","name":"Ewe"},{"alpha2":"","alpha3":"ewo","bibliographic":"","name":"Ewondo"},{"alpha2":"","alpha3":"fan","bibliographic":"","name":"Fang"},{"alpha2":"fo","alpha3":"fao","bibliographic":"","name":"Faroese"},{"alpha2":"fa","alpha3":"fas","bibliographic":"per","name":"Persian"},{"alpha2":"","alpha3":"fat","bibliographic":"","name":"Fanti"},{"alpha2":"fj","alpha3":"fij","bibliographic":"","name":"Fijian"},{"alpha2":"","alpha3":"fil","bibliographic":"","name":"Filipino"},{"alpha2":"","alpha3":"fil","bibliographic":"","name":"Pilipino"},{"alpha2":"fi","alpha3":"fin","bibliographic":"","name":"Finnish"},{"alpha2":"","alpha3":"fiu","bibliographic":"","name":"Finno-Ugrian languages"},{"alpha2":"","alpha3":"fon","bibliographic":"","name":"Fon"},{"alpha2":"fr","alpha3":"fra","bibliographic":"fre","name":"French"},{"alpha2":"","alpha3":"frm","bibliographic":"","name":"French, Middle (ca.1400-1600)"},{"alpha2":"","alpha3":"fro","bibliographic":"","name":"French, Old (842-ca.1400)"},{"alpha2":"","alpha3":"frr","bibliographic":"","name":"Northern Frisian"},{"alpha2":"","alpha3":"frs","bibliographic":"","name":"Eastern Frisian"},{"alpha2":"fy","alpha3":"fry","bibliographic":"","name":"Western Frisian"},{"alpha2":"ff","alpha3":"ful","bibliographic":"","name":"Fulah"},{"alpha2":"","alpha3":"fur","bibliographic":"","name":"Friulian"},{"alpha2":"","alpha3":"gaa","bibliographic":"","name":"Ga"},{"alpha2":"","alpha3":"gay","bibliographic":"","name":"Gayo"},{"alpha2":"","alpha3":"gba","bibliographic":"","name":"Gbaya"},{"alpha2":"","alpha3":"gem","bibliographic":"","name":"Germanic languages"},{"alpha2":"","alpha3":"gez","bibliographic":"","name":"Geez"},{"alpha2":"","alpha3":"gil","bibliographic":"","name":"Gilbertese"},{"alpha2":"gd","alpha3":"gla","bibliographic":"","name":"Gaelic"},{"alpha2":"gd","alpha3":"gla","bibliographic":"","name":"Scottish Gaelic"},{"alpha2":"ga","alpha3":"gle","bibliographic":"","name":"Irish"},{"alpha2":"gl","alpha3":"glg","bibliographic":"","name":"Galician"},{"alpha2":"gv","alpha3":"glv","bibliographic":"","name":"Manx"},{"alpha2":"","alpha3":"gmh","bibliographic":"","name":"German, Middle High (ca.1050-1500)"},{"alpha2":"","alpha3":"goh","bibliographic":"","name":"German, Old High (ca.750-1050)"},{"alpha2":"","alpha3":"gon","bibliographic":"","name":"Gondi"},{"alpha2":"","alpha3":"gor","bibliographic":"","name":"Gorontalo"},{"alpha2":"","alpha3":"got","bibliographic":"","name":"Gothic"},{"alpha2":"","alpha3":"grb","bibliographic":"","name":"Grebo"},{"alpha2":"","alpha3":"grc","bibliographic":"","name":"Greek, Ancient (to 1453)"},{"alpha2":"gn","alpha3":"grn","bibliographic":"","name":"Guarani"},{"alpha2":"","alpha3":"gsw","bibliographic":"","name":"Alemannic"},{"alpha2":"","alpha3":"gsw","bibliographic":"","name":"Alsatian"},{"alpha2":"","alpha3":"gsw","bibliographic":"","name":"Swiss German"},{"alpha2":"gu","alpha3":"guj","bibliographic":"","name":"Gujarati"},{"alpha2":"","alpha3":"gwi","bibliographic":"","name":"Gwich'in"},{"alpha2":"","alpha3":"hai","bibliographic":"","name":"Haida"},{"alpha2":"ht","alpha3":"hat","bibliographic":"","name":"Haitian"},{"alpha2":"ht","alpha3":"hat","bibliographic":"","name":"Haitian Creole"},{"alpha2":"ha","alpha3":"hau","bibliographic":"","name":"Hausa"},{"alpha2":"","alpha3":"haw","bibliographic":"","name":"Hawaiian"},{"alpha2":"he","alpha3":"heb","bibliographic":"","name":"Hebrew"},{"alpha2":"hz","alpha3":"her","bibliographic":"","name":"Herero"},{"alpha2":"","alpha3":"hil","bibliographic":"","name":"Hiligaynon"},{"alpha2":"","alpha3":"him","bibliographic":"","name":"Himachali languages"},{"alpha2":"","alpha3":"him","bibliographic":"","name":"Western Pahari languages"},{"alpha2":"hi","alpha3":"hin","bibliographic":"","name":"Hindi"},{"alpha2":"","alpha3":"hit","bibliographic":"","name":"Hittite"},{"alpha2":"","alpha3":"hmn","bibliographic":"","name":"Hmong"},{"alpha2":"","alpha3":"hmn","bibliographic":"","name":"Mong"},{"alpha2":"ho","alpha3":"hmo","bibliographic":"","name":"Hiri Motu"},{"alpha2":"hr","alpha3":"hrv","bibliographic":"","name":"Croatian"},{"alpha2":"","alpha3":"hsb","bibliographic":"","name":"Upper Sorbian"},{"alpha2":"hu","alpha3":"hun","bibliographic":"","name":"Hungarian"},{"alpha2":"","alpha3":"hup","bibliographic":"","name":"Hupa"},{"alpha2":"hy","alpha3":"hye","bibliographic":"arm","name":"Armenian"},{"alpha2":"","alpha3":"iba","bibliographic":"","name":"Iban"},{"alpha2":"ig","alpha3":"ibo","bibliographic":"","name":"Igbo"},{"alpha2":"io","alpha3":"ido","bibliographic":"","name":"Ido"},{"alpha2":"ii","alpha3":"iii","bibliographic":"","name":"Nuosu"},{"alpha2":"ii","alpha3":"iii","bibliographic":"","name":"Sichuan Yi"},{"alpha2":"","alpha3":"ijo","bibliographic":"","name":"Ijo languages"},{"alpha2":"iu","alpha3":"iku","bibliographic":"","name":"Inuktitut"},{"alpha2":"ie","alpha3":"ile","bibliographic":"","name":"Interlingue"},{"alpha2":"ie","alpha3":"ile","bibliographic":"","name":"Occidental"},{"alpha2":"","alpha3":"ilo","bibliographic":"","name":"Iloko"},{"alpha2":"ia","alpha3":"ina","bibliographic":"","name":"Interlingua (International Auxiliary Language Association)"},{"alpha2":"","alpha3":"inc","bibliographic":"","name":"Indic languages"},{"alpha2":"id","alpha3":"ind","bibliographic":"","name":"Indonesian"},{"alpha2":"","alpha3":"ine","bibliographic":"","name":"Indo-European languages"},{"alpha2":"","alpha3":"inh","bibliographic":"","name":"Ingush"},{"alpha2":"ik","alpha3":"ipk","bibliographic":"","name":"Inupiaq"},{"alpha2":"","alpha3":"ira","bibliographic":"","name":"Iranian languages"},{"alpha2":"","alpha3":"iro","bibliographic":"","name":"Iroquoian languages"},{"alpha2":"is","alpha3":"isl","bibliographic":"ice","name":"Icelandic"},{"alpha2":"it","alpha3":"ita","bibliographic":"","name":"Italian"},{"alpha2":"jv","alpha3":"jav","bibliographic":"","name":"Javanese"},{"alpha2":"","alpha3":"jbo","bibliographic":"","name":"Lojban"},{"alpha2":"ja","alpha3":"jpn","bibliographic":"","name":"Japanese"},{"alpha2":"","alpha3":"jpr","bibliographic":"","name":"Judeo-Persian"},{"alpha2":"","alpha3":"jrb","bibliographic":"","name":"Judeo-Arabic"},{"alpha2":"","alpha3":"kaa","bibliographic":"","name":"Kara-Kalpak"},{"alpha2":"","alpha3":"kab","bibliographic":"","name":"Kabyle"},{"alpha2":"","alpha3":"kac","bibliographic":"","name":"Jingpho"},{"alpha2":"","alpha3":"kac","bibliographic":"","name":"Kachin"},{"alpha2":"kl","alpha3":"kal","bibliographic":"","name":"Greenlandic"},{"alpha2":"kl","alpha3":"kal","bibliographic":"","name":"Kalaallisut"},{"alpha2":"","alpha3":"kam","bibliographic":"","name":"Kamba"},{"alpha2":"kn","alpha3":"kan","bibliographic":"","name":"Kannada"},{"alpha2":"","alpha3":"kar","bibliographic":"","name":"Karen languages"},{"alpha2":"ks","alpha3":"kas","bibliographic":"","name":"Kashmiri"},{"alpha2":"ka","alpha3":"kat","bibliographic":"geo","name":"Georgian"},{"alpha2":"kr","alpha3":"kau","bibliographic":"","name":"Kanuri"},{"alpha2":"","alpha3":"kaw","bibliographic":"","name":"Kawi"},{"alpha2":"kk","alpha3":"kaz","bibliographic":"","name":"Kazakh"},{"alpha2":"","alpha3":"kbd","bibliographic":"","name":"Kabardian"},{"alpha2":"","alpha3":"kha","bibliographic":"","name":"Khasi"},{"alpha2":"","alpha3":"khi","bibliographic":"","name":"Khoisan languages"},{"alpha2":"km","alpha3":"khm","bibliographic":"","name":"Central Khmer"},{"alpha2":"","alpha3":"kho","bibliographic":"","name":"Khotanese"},{"alpha2":"","alpha3":"kho","bibliographic":"","name":"Sakan"},{"alpha2":"ki","alpha3":"kik","bibliographic":"","name":"Gikuyu"},{"alpha2":"ki","alpha3":"kik","bibliographic":"","name":"Kikuyu"},{"alpha2":"rw","alpha3":"kin","bibliographic":"","name":"Kinyarwanda"},{"alpha2":"ky","alpha3":"kir","bibliographic":"","name":"Kirghiz"},{"alpha2":"ky","alpha3":"kir","bibliographic":"","name":"Kyrgyz"},{"alpha2":"","alpha3":"kmb","bibliographic":"","name":"Kimbundu"},{"alpha2":"","alpha3":"kok","bibliographic":"","name":"Konkani"},{"alpha2":"kv","alpha3":"kom","bibliographic":"","name":"Komi"},{"alpha2":"kg","alpha3":"kon","bibliographic":"","name":"Kongo"},{"alpha2":"ko","alpha3":"kor","bibliographic":"","name":"Korean"},{"alpha2":"","alpha3":"kos","bibliographic":"","name":"Kosraean"},{"alpha2":"","alpha3":"kpe","bibliographic":"","name":"Kpelle"},{"alpha2":"","alpha3":"krc","bibliographic":"","name":"Karachay-Balkar"},{"alpha2":"","alpha3":"krl","bibliographic":"","name":"Karelian"},{"alpha2":"","alpha3":"kro","bibliographic":"","name":"Kru languages"},{"alpha2":"","alpha3":"kru","bibliographic":"","name":"Kurukh"},{"alpha2":"kj","alpha3":"kua","bibliographic":"","name":"Kuanyama"},{"alpha2":"kj","alpha3":"kua","bibliographic":"","name":"Kwanyama"},{"alpha2":"","alpha3":"kum","bibliographic":"","name":"Kumyk"},{"alpha2":"ku","alpha3":"kur","bibliographic":"","name":"Kurdish"},{"alpha2":"","alpha3":"kut","bibliographic":"","name":"Kutenai"},{"alpha2":"","alpha3":"lad","bibliographic":"","name":"Ladino"},{"alpha2":"","alpha3":"lah","bibliographic":"","name":"Lahnda"},{"alpha2":"","alpha3":"lam","bibliographic":"","name":"Lamba"},{"alpha2":"lo","alpha3":"lao","bibliographic":"","name":"Lao"},{"alpha2":"la","alpha3":"lat","bibliographic":"","name":"Latin"},{"alpha2":"lv","alpha3":"lav","bibliographic":"","name":"Latvian"},{"alpha2":"","alpha3":"lez","bibliographic":"","name":"Lezghian"},{"alpha2":"li","alpha3":"lim","bibliographic":"","name":"Limburgan"},{"alpha2":"li","alpha3":"lim","bibliographic":"","name":"Limburger"},{"alpha2":"li","alpha3":"lim","bibliographic":"","name":"Limburgish"},{"alpha2":"ln","alpha3":"lin","bibliographic":"","name":"Lingala"},{"alpha2":"lt","alpha3":"lit","bibliographic":"","name":"Lithuanian"},{"alpha2":"","alpha3":"lol","bibliographic":"","name":"Mongo"},{"alpha2":"","alpha3":"loz","bibliographic":"","name":"Lozi"},{"alpha2":"lb","alpha3":"ltz","bibliographic":"","name":"Letzeburgesch"},{"alpha2":"lb","alpha3":"ltz","bibliographic":"","name":"Luxembourgish"},{"alpha2":"","alpha3":"lua","bibliographic":"","name":"Luba-Lulua"},{"alpha2":"lu","alpha3":"lub","bibliographic":"","name":"Luba-Katanga"},{"alpha2":"lg","alpha3":"lug","bibliographic":"","name":"Ganda"},{"alpha2":"","alpha3":"lui","bibliographic":"","name":"Luiseno"},{"alpha2":"","alpha3":"lun","bibliographic":"","name":"Lunda"},{"alpha2":"","alpha3":"luo","bibliographic":"","name":"Luo (Kenya and Tanzania)"},{"alpha2":"","alpha3":"lus","bibliographic":"","name":"Lushai"},{"alpha2":"","alpha3":"mad","bibliographic":"","name":"Madurese"},{"alpha2":"","alpha3":"mag","bibliographic":"","name":"Magahi"},{"alpha2":"mh","alpha3":"mah","bibliographic":"","name":"Marshallese"},{"alpha2":"","alpha3":"mai","bibliographic":"","name":"Maithili"},{"alpha2":"","alpha3":"mak","bibliographic":"","name":"Makasar"},{"alpha2":"ml","alpha3":"mal","bibliographic":"","name":"Malayalam"},{"alpha2":"","alpha3":"man","bibliographic":"","name":"Mandingo"},{"alpha2":"","alpha3":"map","bibliographic":"","name":"Austronesian languages"},{"alpha2":"mr","alpha3":"mar","bibliographic":"","name":"Marathi"},{"alpha2":"","alpha3":"mas","bibliographic":"","name":"Masai"},{"alpha2":"","alpha3":"mdf","bibliographic":"","name":"Moksha"},{"alpha2":"","alpha3":"mdr","bibliographic":"","name":"Mandar"},{"alpha2":"","alpha3":"men","bibliographic":"","name":"Mende"},{"alpha2":"","alpha3":"mga","bibliographic":"","name":"Irish, Middle (900-1200)"},{"alpha2":"","alpha3":"mic","bibliographic":"","name":"Mi'kmaq"},{"alpha2":"","alpha3":"mic","bibliographic":"","name":"Micmac"},{"alpha2":"","alpha3":"min","bibliographic":"","name":"Minangkabau"},{"alpha2":"","alpha3":"mis","bibliographic":"","name":"Uncoded languages"},{"alpha2":"mk","alpha3":"mkd","bibliographic":"mac","name":"Macedonian"},{"alpha2":"","alpha3":"mkh","bibliographic":"","name":"Mon-Khmer languages"},{"alpha2":"mg","alpha3":"mlg","bibliographic":"","name":"Malagasy"},{"alpha2":"mt","alpha3":"mlt","bibliographic":"","name":"Maltese"},{"alpha2":"","alpha3":"mnc","bibliographic":"","name":"Manchu"},{"alpha2":"","alpha3":"mni","bibliographic":"","name":"Manipuri"},{"alpha2":"","alpha3":"mno","bibliographic":"","name":"Manobo languages"},{"alpha2":"","alpha3":"moh","bibliographic":"","name":"Mohawk"},{"alpha2":"mn","alpha3":"mon","bibliographic":"","name":"Mongolian"},{"alpha2":"","alpha3":"mos","bibliographic":"","name":"Mossi"},{"alpha2":"","alpha3":"mot","bibliographic":"","name":"Montenegrin"},{"alpha2":"mi","alpha3":"mri","bibliographic":"mao","name":"Maori"},{"alpha2":"ms","alpha3":"msa","bibliographic":"may","name":"Malay"},{"alpha2":"","alpha3":"mul","bibliographic":"","name":"Multiple languages"},{"alpha2":"","alpha3":"mun","bibliographic":"","name":"Munda languages"},{"alpha2":"","alpha3":"mus","bibliographic":"","name":"Creek"},{"alpha2":"","alpha3":"mwl","bibliographic":"","name":"Mirandese"},{"alpha2":"","alpha3":"mwr","bibliographic":"","name":"Marwari"},{"alpha2":"my","alpha3":"mya","bibliographic":"bur","name":"Burmese"},{"alpha2":"","alpha3":"myn","bibliographic":"","name":"Mayan languages"},{"alpha2":"","alpha3":"myv","bibliographic":"","name":"Erzya"},{"alpha2":"","alpha3":"nah","bibliographic":"","name":"Nahuatl languages"},{"alpha2":"","alpha3":"nai","bibliographic":"","name":"North American Indian languages"},{"alpha2":"","alpha3":"nap","bibliographic":"","name":"Neapolitan"},{"alpha2":"na","alpha3":"nau","bibliographic":"","name":"Nauru"},{"alpha2":"nv","alpha3":"nav","bibliographic":"","name":"Navaho"},{"alpha2":"nv","alpha3":"nav","bibliographic":"","name":"Navajo"},{"alpha2":"nr","alpha3":"nbl","bibliographic":"","name":"Ndebele, South"},{"alpha2":"nr","alpha3":"nbl","bibliographic":"","name":"South Ndebele"},{"alpha2":"nd","alpha3":"nde","bibliographic":"","name":"Ndebele, North"},{"alpha2":"nd","alpha3":"nde","bibliographic":"","name":"North Ndebele"},{"alpha2":"ng","alpha3":"ndo","bibliographic":"","name":"Ndonga"},{"alpha2":"","alpha3":"nds","bibliographic":"","name":"German, Low"},{"alpha2":"","alpha3":"nds","bibliographic":"","name":"Low German"},{"alpha2":"","alpha3":"nds","bibliographic":"","name":"Low Saxon"},{"alpha2":"","alpha3":"nds","bibliographic":"","name":"Saxon, Low"},{"alpha2":"ne","alpha3":"nep","bibliographic":"","name":"Nepali"},{"alpha2":"","alpha3":"new","bibliographic":"","name":"Nepal Bhasa"},{"alpha2":"","alpha3":"new","bibliographic":"","name":"Newari"},{"alpha2":"","alpha3":"nia","bibliographic":"","name":"Nias"},{"alpha2":"","alpha3":"nic","bibliographic":"","name":"Niger-Kordofanian languages"},{"alpha2":"","alpha3":"niu","bibliographic":"","name":"Niuean"},{"alpha2":"nl","alpha3":"nld","bibliographic":"dut","name":"Dutch"},{"alpha2":"nl","alpha3":"nld","bibliographic":"dut","name":"Flemish"},{"alpha2":"nn","alpha3":"nno","bibliographic":"","name":"Norwegian Nynorsk"},{"alpha2":"nn","alpha3":"nno","bibliographic":"","name":"Nynorsk, Norwegian"},{"alpha2":"nb","alpha3":"nob","bibliographic":"","name":"Bokmål, Norwegian"},{"alpha2":"nb","alpha3":"nob","bibliographic":"","name":"Norwegian Bokmål"},{"alpha2":"","alpha3":"nog","bibliographic":"","name":"Nogai"},{"alpha2":"","alpha3":"non","bibliographic":"","name":"Norse, Old"},{"alpha2":"no","alpha3":"nor","bibliographic":"","name":"Norwegian"},{"alpha2":"","alpha3":"nqo","bibliographic":"","name":"N'Ko"},{"alpha2":"","alpha3":"nso","bibliographic":"","name":"Northern Sotho"},{"alpha2":"","alpha3":"nso","bibliographic":"","name":"Pedi"},{"alpha2":"","alpha3":"nso","bibliographic":"","name":"Sepedi"},{"alpha2":"","alpha3":"nso","bibliographic":"","name":"Sotho, Northern"},{"alpha2":"","alpha3":"nub","bibliographic":"","name":"Nubian languages"},{"alpha2":"","alpha3":"nwc","bibliographic":"","name":"Classical Nepal Bhasa"},{"alpha2":"","alpha3":"nwc","bibliographic":"","name":"Classical Newari"},{"alpha2":"","alpha3":"nwc","bibliographic":"","name":"Old Newari"},{"alpha2":"ny","alpha3":"nya","bibliographic":"","name":"Chewa"},{"alpha2":"ny","alpha3":"nya","bibliographic":"","name":"Chichewa"},{"alpha2":"ny","alpha3":"nya","bibliographic":"","name":"Nyanja"},{"alpha2":"","alpha3":"nym","bibliographic":"","name":"Nyamwezi"},{"alpha2":"","alpha3":"nyn","bibliographic":"","name":"Nyankole"},{"alpha2":"","alpha3":"nyo","bibliographic":"","name":"Nyoro"},{"alpha2":"","alpha3":"nzi","bibliographic":"","name":"Nzima"},{"alpha2":"oc","alpha3":"oci","bibliographic":"","name":"Occitan (post 1500)"},{"alpha2":"oj","alpha3":"oji","bibliographic":"","name":"Ojibwa"},{"alpha2":"or","alpha3":"ori","bibliographic":"","name":"Oriya"},{"alpha2":"om","alpha3":"orm","bibliographic":"","name":"Oromo"},{"alpha2":"","alpha3":"osa","bibliographic":"","name":"Osage"},{"alpha2":"os","alpha3":"oss","bibliographic":"","name":"Ossetian"},{"alpha2":"os","alpha3":"oss","bibliographic":"","name":"Ossetic"},{"alpha2":"","alpha3":"ota","bibliographic":"","name":"Turkish, Ottoman (1500-1928)"},{"alpha2":"","alpha3":"oto","bibliographic":"","name":"Otomian languages"},{"alpha2":"","alpha3":"paa","bibliographic":"","name":"Papuan languages"},{"alpha2":"","alpha3":"pag","bibliographic":"","name":"Pangasinan"},{"alpha2":"","alpha3":"pal","bibliographic":"","name":"Pahlavi"},{"alpha2":"","alpha3":"pam","bibliographic":"","name":"Kapampangan"},{"alpha2":"","alpha3":"pam","bibliographic":"","name":"Pampanga"},{"alpha2":"pa","alpha3":"pan","bibliographic":"","name":"Panjabi"},{"alpha2":"pa","alpha3":"pan","bibliographic":"","name":"Punjabi"},{"alpha2":"","alpha3":"pap","bibliographic":"","name":"Papiamento"},{"alpha2":"","alpha3":"pau","bibliographic":"","name":"Palauan"},{"alpha2":"","alpha3":"peo","bibliographic":"","name":"Persian, Old (ca.600-400 B.C.)"},{"alpha2":"","alpha3":"phi","bibliographic":"","name":"Philippine languages"},{"alpha2":"","alpha3":"phn","bibliographic":"","name":"Phoenician"},{"alpha2":"pi","alpha3":"pli","bibliographic":"","name":"Pali"},{"alpha2":"pl","alpha3":"pol","bibliographic":"","name":"Polish"},{"alpha2":"","alpha3":"pon","bibliographic":"","name":"Pohnpeian"},{"alpha2":"pt","alpha3":"por","bibliographic":"","name":"Portuguese"},{"alpha2":"","alpha3":"pra","bibliographic":"","name":"Prakrit languages"},{"alpha2":"","alpha3":"pro","bibliographic":"","name":"Occitan, Old (to 1500)"},{"alpha2":"","alpha3":"pro","bibliographic":"","name":"Provençal, Old (to 1500)"},{"alpha2":"ps","alpha3":"pus","bibliographic":"","name":"Pashto"},{"alpha2":"ps","alpha3":"pus","bibliographic":"","name":"Pushto"},{"alpha2":"qu","alpha3":"que","bibliographic":"","name":"Quechua"},{"alpha2":"","alpha3":"raj","bibliographic":"","name":"Rajasthani"},{"alpha2":"","alpha3":"rap","bibliographic":"","name":"Rapanui"},{"alpha2":"","alpha3":"rar","bibliographic":"","name":"Cook Islands Maori"},{"alpha2":"","alpha3":"rar","bibliographic":"","name":"Rarotongan"},{"alpha2":"","alpha3":"roa","bibliographic":"","name":"Romance languages"},{"alpha2":"rm","alpha3":"roh","bibliographic":"","name":"Romansh"},{"alpha2":"","alpha3":"rom","bibliographic":"","name":"Romany"},{"alpha2":"ro","alpha3":"ron","bibliographic":"rum","name":"Moldavian"},{"alpha2":"ro","alpha3":"ron","bibliographic":"rum","name":"Romanian"},{"alpha2":"rn","alpha3":"run","bibliographic":"","name":"Rundi"},{"alpha2":"","alpha3":"rup","bibliographic":"","name":"Aromanian"},{"alpha2":"","alpha3":"rup","bibliographic":"","name":"Arumanian"},{"alpha2":"","alpha3":"rup","bibliographic":"","name":"Macedo-Romanian"},{"alpha2":"ru","alpha3":"rus","bibliographic":"","name":"Russian"},{"alpha2":"","alpha3":"sad","bibliographic":"","name":"Sandawe"},{"alpha2":"sg","alpha3":"sag","bibliographic":"","name":"Sango"},{"alpha2":"","alpha3":"sah","bibliographic":"","name":"Yakut"},{"alpha2":"","alpha3":"sai","bibliographic":"","name":"South American Indian languages"},{"alpha2":"","alpha3":"sal","bibliographic":"","name":"Salishan languages"},{"alpha2":"","alpha3":"sam","bibliographic":"","name":"Samaritan Aramaic"},{"alpha2":"sa","alpha3":"san","bibliographic":"","name":"Sanskrit"},{"alpha2":"","alpha3":"sas","bibliographic":"","name":"Sasak"},{"alpha2":"","alpha3":"sat","bibliographic":"","name":"Santali"},{"alpha2":"","alpha3":"scn","bibliographic":"","name":"Sicilian"},{"alpha2":"","alpha3":"sco","bibliographic":"","name":"Scots"},{"alpha2":"","alpha3":"sel","bibliographic":"","name":"Selkup"},{"alpha2":"","alpha3":"sem","bibliographic":"","name":"Semitic languages"},{"alpha2":"","alpha3":"sga","bibliographic":"","name":"Irish, Old (to 900)"},{"alpha2":"","alpha3":"sgn","bibliographic":"","name":"Sign Languages"},{"alpha2":"","alpha3":"shn","bibliographic":"","name":"Shan"},{"alpha2":"","alpha3":"sid","bibliographic":"","name":"Sidamo"},{"alpha2":"si","alpha3":"sin","bibliographic":"","name":"Sinhala"},{"alpha2":"si","alpha3":"sin","bibliographic":"","name":"Sinhalese"},{"alpha2":"","alpha3":"sio","bibliographic":"","name":"Siouan languages"},{"alpha2":"","alpha3":"sit","bibliographic":"","name":"Sino-Tibetan languages"},{"alpha2":"","alpha3":"sla","bibliographic":"","name":"Slavic languages"},{"alpha2":"sk","alpha3":"slk","bibliographic":"slo","name":"Slovak"},{"alpha2":"sl","alpha3":"slv","bibliographic":"","name":"Slovenian"},{"alpha2":"","alpha3":"sma","bibliographic":"","name":"Southern Sami"},{"alpha2":"se","alpha3":"sme","bibliographic":"","name":"Northern Sami"},{"alpha2":"","alpha3":"smi","bibliographic":"","name":"Sami languages"},{"alpha2":"","alpha3":"smj","bibliographic":"","name":"Lule Sami"},{"alpha2":"","alpha3":"smn","bibliographic":"","name":"Inari Sami"},{"alpha2":"sm","alpha3":"smo","bibliographic":"","name":"Samoan"},{"alpha2":"","alpha3":"sms","bibliographic":"","name":"Skolt Sami"},{"alpha2":"sn","alpha3":"sna","bibliographic":"","name":"Shona"},{"alpha2":"sd","alpha3":"snd","bibliographic":"","name":"Sindhi"},{"alpha2":"","alpha3":"snk","bibliographic":"","name":"Soninke"},{"alpha2":"","alpha3":"sog","bibliographic":"","name":"Sogdian"},{"alpha2":"so","alpha3":"som","bibliographic":"","name":"Somali"},{"alpha2":"","alpha3":"son","bibliographic":"","name":"Songhai languages"},{"alpha2":"st","alpha3":"sot","bibliographic":"","name":"Sotho, Southern"},{"alpha2":"es","alpha3":"spa","bibliographic":"","name":"Castilian"},{"alpha2":"es","alpha3":"spa","bibliographic":"","name":"Spanish"},{"alpha2":"sq","alpha3":"sqi","bibliographic":"alb","name":"Albanian"},{"alpha2":"sc","alpha3":"srd","bibliographic":"","name":"Sardinian"},{"alpha2":"","alpha3":"srn","bibliographic":"","name":"Sranan Tongo"},{"alpha2":"sr","alpha3":"srp","bibliographic":"","name":"Serbian"},{"alpha2":"","alpha3":"srr","bibliographic":"","name":"Serer"},{"alpha2":"","alpha3":"ssa","bibliographic":"","name":"Nilo-Saharan languages"},{"alpha2":"ss","alpha3":"ssw","bibliographic":"","name":"Swati"},{"alpha2":"","alpha3":"suk","bibliographic":"","name":"Sukuma"},{"alpha2":"su","alpha3":"sun","bibliographic":"","name":"Sundanese"},{"alpha2":"","alpha3":"sus","bibliographic":"","name":"Susu"},{"alpha2":"","alpha3":"sux","bibliographic":"","name":"Sumerian"},{"alpha2":"sw","alpha3":"swa","bibliographic":"","name":"Swahili"},{"alpha2":"sv","alpha3":"swe","bibliographic":"","name":"Swedish"},{"alpha2":"","alpha3":"syc","bibliographic":"","name":"Classical Syriac"},{"alpha2":"","alpha3":"syr","bibliographic":"","name":"Syriac"},{"alpha2":"ty","alpha3":"tah","bibliographic":"","name":"Tahitian"},{"alpha2":"","alpha3":"tai","bibliographic":"","name":"Tai languages"},{"alpha2":"ta","alpha3":"tam","bibliographic":"","name":"Tamil"},{"alpha2":"tt","alpha3":"tat","bibliographic":"","name":"Tatar"},{"alpha2":"te","alpha3":"tel","bibliographic":"","name":"Telugu"},{"alpha2":"","alpha3":"tem","bibliographic":"","name":"Timne"},{"alpha2":"","alpha3":"ter","bibliographic":"","name":"Tereno"},{"alpha2":"","alpha3":"tet","bibliographic":"","name":"Tetum"},{"alpha2":"tg","alpha3":"tgk","bibliographic":"","name":"Tajik"},{"alpha2":"tl","alpha3":"tgl","bibliographic":"","name":"Tagalog"},{"alpha2":"th","alpha3":"tha","bibliographic":"","name":"Thai"},{"alpha2":"","alpha3":"tig","bibliographic":"","name":"Tigre"},{"alpha2":"ti","alpha3":"tir","bibliographic":"","name":"Tigrinya"},{"alpha2":"","alpha3":"tiv","bibliographic":"","name":"Tiv"},{"alpha2":"","alpha3":"tkl","bibliographic":"","name":"Tokelau"},{"alpha2":"","alpha3":"tlh","bibliographic":"","name":"Klingon"},{"alpha2":"","alpha3":"tlh","bibliographic":"","name":"tlhIngan-Hol"},{"alpha2":"","alpha3":"tli","bibliographic":"","name":"Tlingit"},{"alpha2":"","alpha3":"tmh","bibliographic":"","name":"Tamashek"},{"alpha2":"","alpha3":"tog","bibliographic":"","name":"Tonga (Nyasa)"},{"alpha2":"to","alpha3":"ton","bibliographic":"","name":"Tonga (Tonga Islands)"},{"alpha2":"","alpha3":"tpi","bibliographic":"","name":"Tok Pisin"},{"alpha2":"","alpha3":"tsi","bibliographic":"","name":"Tsimshian"},{"alpha2":"tn","alpha3":"tsn","bibliographic":"","name":"Tswana"},{"alpha2":"ts","alpha3":"tso","bibliographic":"","name":"Tsonga"},{"alpha2":"tk","alpha3":"tuk","bibliographic":"","name":"Turkmen"},{"alpha2":"","alpha3":"tum","bibliographic":"","name":"Tumbuka"},{"alpha2":"","alpha3":"tup","bibliographic":"","name":"Tupi languages"},{"alpha2":"tr","alpha3":"tur","bibliographic":"","name":"Turkish"},{"alpha2":"","alpha3":"tut","bibliographic":"","name":"Altaic languages"},{"alpha2":"","alpha3":"tvl","bibliographic":"","name":"Tuvalu"},{"alpha2":"tw","alpha3":"twi","bibliographic":"","name":"Twi"},{"alpha2":"","alpha3":"tyv","bibliographic":"","name":"Tuvinian"},{"alpha2":"","alpha3":"udm","bibliographic":"","name":"Udmurt"},{"alpha2":"","alpha3":"uga","bibliographic":"","name":"Ugaritic"},{"alpha2":"ug","alpha3":"uig","bibliographic":"","name":"Uighur"},{"alpha2":"ug","alpha3":"uig","bibliographic":"","name":"Uyghur"},{"alpha2":"uk","alpha3":"ukr","bibliographic":"","name":"Ukrainian"},{"alpha2":"","alpha3":"umb","bibliographic":"","name":"Umbundu"},{"alpha2":"","alpha3":"und","bibliographic":"","name":"Undetermined"},{"alpha2":"ur","alpha3":"urd","bibliographic":"","name":"Urdu"},{"alpha2":"uz","alpha3":"uzb","bibliographic":"","name":"Uzbek"},{"alpha2":"","alpha3":"vai","bibliographic":"","name":"Vai"},{"alpha2":"ve","alpha3":"ven","bibliographic":"","name":"Venda"},{"alpha2":"vi","alpha3":"vie","bibliographic":"","name":"Vietnamese"},{"alpha2":"vo","alpha3":"vol","bibliographic":"","name":"Volapük"},{"alpha2":"","alpha3":"vot","bibliographic":"","name":"Votic"},{"alpha2":"","alpha3":"wak","bibliographic":"","name":"Wakashan languages"},{"alpha2":"","alpha3":"wal","bibliographic":"","name":"Wolaitta"},{"alpha2":"","alpha3":"wal","bibliographic":"","name":"Wolaytta"},{"alpha2":"","alpha3":"war","bibliographic":"","name":"Waray"},{"alpha2":"","alpha3":"was","bibliographic":"","name":"Washo"},{"alpha2":"","alpha3":"wen","bibliographic":"","name":"Sorbian languages"},{"alpha2":"wa","alpha3":"wln","bibliographic":"","name":"Walloon"},{"alpha2":"wo","alpha3":"wol","bibliographic":"","name":"Wolof"},{"alpha2":"","alpha3":"xal","bibliographic":"","name":"Kalmyk"},{"alpha2":"","alpha3":"xal","bibliographic":"","name":"Oirat"},{"alpha2":"xh","alpha3":"xho","bibliographic":"","name":"Xhosa"},{"alpha2":"","alpha3":"yao","bibliographic":"","name":"Yao"},{"alpha2":"","alpha3":"yap","bibliographic":"","name":"Yapese"},{"alpha2":"yi","alpha3":"yid","bibliographic":"","name":"Yiddish"},{"alpha2":"yo","alpha3":"yor","bibliographic":"","name":"Yoruba"},{"alpha2":"","alpha3":"ypk","bibliographic":"","name":"Yupik languages"},{"alpha2":"","alpha3":"zap","bibliographic":"","name":"Zapotec"},{"alpha2":"","alpha3":"zbl","bibliographic":"","name":"Bliss"},{"alpha2":"","alpha3":"zbl","bibliographic":"","name":"Blissymbolics"},{"alpha2":"","alpha3":"zbl","bibliographic":"","name":"Blissymbols"},{"alpha2":"","alpha3":"zen","bibliographic":"","name":"Zenaga"},{"alpha2":"","alpha3":"zgh","bibliographic":"","name":"Standard Moroccan Tamazight"},{"alpha2":"za","alpha3":"zha","bibliographic":"","name":"Chuang"},{"alpha2":"za","alpha3":"zha","bibliographic":"","name":"Zhuang"},{"alpha2":"zh","alpha3":"zho","bibliographic":"chi","name":"Chinese"},{"alpha2":"","alpha3":"znd","bibliographic":"","name":"Zande languages"},{"alpha2":"zu","alpha3":"zul","bibliographic":"","name":"Zulu"},{"alpha2":"","alpha3":"zun","bibliographic":"","name":"Zuni"},{"alpha2":"","alpha3":"zxx","bibliographic":"","name":"No linguistic content"},{"alpha2":"","alpha3":"zxx","bibliographic":"","name":"Not applicable"},{"alpha2":"","alpha3":"zza","bibliographic":"","name":"Dimili"},{"alpha2":"","alpha3":"zza","bibliographic":"","name":"Dimli"},{"alpha2":"","alpha3":"zza","bibliographic":"","name":"Kirdki"},{"alpha2":"","alpha3":"zza","bibliographic":"","name":"Kirmanjki"},{"alpha2":"","alpha3":"zza","bibliographic":"","name":"Zaza"},{"alpha2":"","alpha3":"zza","bibliographic":"","name":"Zazaki"}]

18
components/HapticTab.tsx Normal file
View File

@ -0,0 +1,18 @@
import { BottomTabBarButtonProps } from '@react-navigation/bottom-tabs';
import { PlatformPressable } from '@react-navigation/elements';
import * as Haptics from 'expo-haptics';
export function HapticTab(props: BottomTabBarButtonProps) {
return (
<PlatformPressable
{...props}
onPressIn={(ev) => {
if (process.env.EXPO_OS === 'ios') {
// Add a soft haptic feedback when pressing down on the tabs.
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);
}
props.onPressIn?.(ev);
}}
/>
);
}

View File

@ -0,0 +1,50 @@
import { CachedTranslator, Translator, language_matrix } from "@/app/i18n/api";
import { LIBRETRANSLATE_BASE_URL } from "@/constants/api";
import { Text } from "@react-navigation/elements";
import { useEffect, useState } from "react";
import ISpeakButton from "./ui/ISpeakButton";
import { LANG_FLAGS } from "@/app/i18n/lang";
import { ScrollView } from "react-native";
import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context";
export function LanguageSelection(props : {
translator? : Translator
}) {
const [languages, setLanguages] = useState<language_matrix|undefined>();
const [languagesLoaded, setLanguagesLoaded] = useState<boolean>(false);
const translator = props.translator || new CachedTranslator("en")
useEffect(() => {
const fetchData = async () => {
try {
// Replace with your actual async data fetching logic
const languages = await translator.fetchLanguages();
setLanguages(languages);
setLanguagesLoaded(true);
} catch (error) {
console.error('Error fetching data:', error);
}
};
fetchData();
}, []);
return (
<ScrollView >
<SafeAreaProvider >
<SafeAreaView>
{(languages && languagesLoaded) ? Object.entries(languages).filter((l) => (LANG_FLAGS as any)[l[0]] !== undefined).map(
([lang, lang_entry]) => {
return (
<ISpeakButton language={lang_entry} key={lang_entry.code} />
);
}
) : <Text>Waiting...</Text>
}
</SafeAreaView>
</SafeAreaProvider>
</ScrollView>
)
}

View File

@ -1,37 +1,108 @@
import AsyncStorage from '@react-native-async-storage/async-storage';
import { CachedTranslator } from "@/app/i18n/api"
import { CachedTranslator, Translator, language_matrix_entry } from "@/app/i18n/api"
import { longLang } from "@/app/i18n/lang"
import { useEffect, useRef, useState } from "react"
import { Button } from "react-native"
import React, { useEffect, useRef, useState } from "react"
import { Button, Image, ImageBackground, Pressable, StyleSheet, TouchableOpacity, View } from "react-native"
import { Text } from '@react-navigation/elements';
import CountryFlag from "react-native-country-flag";
import { chooseCountry } from '@/app/i18n/countries';
type ISpeakButtonProps = {
country: string,
language: string,
language: language_matrix_entry,
translator?: Translator,
}
function iSpeak(language : string) {
return `I speak ${longLang(language)}.`
function iSpeak(language : language_matrix_entry) {
return `I speak ${language.name}.`
}
async function iSpeakTr(targetLang : string, sourceLang = "en") {
async function iSpeakTr(translator : CachedTranslator, targetLang : language_matrix_entry) {
const sourceStr = iSpeak(targetLang)
const translator = new CachedTranslator(sourceLang, targetLang);
return await translator.translate(sourceStr)
return await translator.translate(sourceStr, targetLang.code);
}
const DEFAULT_FLAGS = {
"en": ["us", "gb"],
// "sq": ["al"],
"ar": ["ae"],
"es": ["es"],
"pt": ["pt"],
"ru": ["ru"],
"it": ["it"],
"ir": ["ie"],
"sk": ["sk"],
"ro": ["ro"],
"ja": ["jp"],
"ko": ["kp", "kr"],
"el": ["gr"],
"fr": ["fr"],
"de": ["de"],
"nl": ["nl"],
"cz": ["cz"],
"uk": ["ua"],
"he": ["il"],
"hi": ["in"],
"gl": ["es"],
"fa": ["ir"],
"ur": ["pk"],
"ga": ["ie"],
"eo": ["es"]
}
const ISpeakButton = (props : ISpeakButtonProps) => {
const [title, setTitle] = useState("");
const [title, setTitle] = useState<string | undefined>();
const [titleLoaded, setTitleLoaded] = useState<boolean>(false);
const translator = props.translator || new CachedTranslator("en");
useEffect(() => {
async function () {
setTitle(await iSpeakTr(props.language) as string);
}
}, []);
const fetchData = async () => {
try {
// Replace with your actual async data fetching logic
const title = await iSpeakTr(translator, props.language);
setTitle(title);
} catch (error) {
console.error('Error fetching data:', error);
} finally {
setTitleLoaded(true);
}
};
fetchData();
}, []);
const countries = DEFAULT_FLAGS[props.language.code] || chooseCountry(props.language.code);
return (
title ? (
<TouchableOpacity style={styles.button}>
<View>
{countries &&
countries.map( c => {
return <CountryFlag isoCode={c} size={25} key={c}/> }
)
}
<Text style={{textAlign: "center", verticalAlign: "bottom"}}>{ title } { props.language.name } { props.language.code }</Text>
</View>
</TouchableOpacity>
) : (
<Text>Loading...</Text>
)
)
<Button onPress={setLanguage} title={}>
</Button>
}
const styles = StyleSheet.create({
button: {
// backgroundColor: "blue",
width: "20%",
// height: "20%",
margin: 5,
borderRadius: 10,
borderColor: "white",
borderWidth: 1,
borderStyle: "solid",
}
})
export default ISpeakButton;

View File

@ -0,0 +1,43 @@
// This file is a fallback for using MaterialIcons on Android and web.
import MaterialIcons from '@expo/vector-icons/MaterialIcons';
import { SymbolWeight } from 'expo-symbols';
import React from 'react';
import { OpaqueColorValue, StyleProp, ViewStyle } from 'react-native';
// Add your SFSymbol to MaterialIcons mappings here.
const MAPPING = {
// See MaterialIcons here: https://icons.expo.fyi
// See SF Symbols in the SF Symbols app on Mac.
'house.fill': 'home',
'paperplane.fill': 'send',
'chevron.left.forwardslash.chevron.right': 'code',
'chevron.right': 'chevron-right',
} as Partial<
Record<
import('expo-symbols').SymbolViewProps['name'],
React.ComponentProps<typeof MaterialIcons>['name']
>
>;
export type IconSymbolName = keyof typeof MAPPING;
/**
* An icon component that uses native SFSymbols on iOS, and MaterialIcons on Android and web. This ensures a consistent look across platforms, and optimal resource usage.
*
* Icon `name`s are based on SFSymbols and require manual mapping to MaterialIcons.
*/
export function IconSymbol({
name,
size = 24,
color,
style,
}: {
name: IconSymbolName;
size?: number;
color: string | OpaqueColorValue;
style?: StyleProp<ViewStyle>;
weight?: SymbolWeight;
}) {
return <MaterialIcons color={color} size={size} name={MAPPING[name]} style={style} />;
}

View File

@ -0,0 +1,6 @@
// This is a shim for web and Android where the tab bar is generally opaque.
export default undefined;
export function useBottomTabOverflow() {
return 0;
}

View File

@ -1 +1 @@
export const LIBRETRANSLATE_BASE_URL = process.env.LIBRETRANSALTE_BASE_URL || "http://localhost:5000"
export const LIBRETRANSLATE_BASE_URL = process.env.LIBRETRANSALTE_BASE_URL || "https://translate.flossboxin.org.in"

View File

@ -43,6 +43,7 @@
"react-dom": "18.3.1",
"react-native": "0.76.6",
"react-native-cache": "^2.0.3",
"react-native-country-flag": "^2.0.2",
"react-native-gesture-handler": "~2.20.2",
"react-native-reanimated": "~3.16.1",
"react-native-safe-area-context": "4.12.0",

7
pnpm-lock.yaml generated
View File

@ -89,6 +89,9 @@ dependencies:
react-native-cache:
specifier: ^2.0.3
version: 2.0.3(react-native@0.76.6)
react-native-country-flag:
specifier: ^2.0.2
version: 2.0.2
react-native-gesture-handler:
specifier: ~2.20.2
version: 2.20.2(react-native@0.76.6)(react@18.3.1)
@ -7093,6 +7096,10 @@ packages:
- react-native
dev: false
/react-native-country-flag@2.0.2:
resolution: {integrity: sha512-5LMWxS79ZQ0Q9ntYgDYzWp794+HcQGXQmzzZNBR1AT7z5HcJHtX7rlk8RHi7RVzfp5gW6plWSZ4dKjRpu/OafQ==, tarball: https://registry.npmjs.org/react-native-country-flag/-/react-native-country-flag-2.0.2.tgz}
dev: false
/react-native-gesture-handler@2.20.2(react-native@0.76.6)(react@18.3.1):
resolution: {integrity: sha512-HqzFpFczV4qCnwKlvSAvpzEXisL+Z9fsR08YV5LfJDkzuArMhBu2sOoSPUF/K62PCoAb+ObGlTC83TKHfUd0vg==, tarball: https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.20.2.tgz}
peerDependencies:

18
scripts/captureTheFlag.ts Normal file
View File

@ -0,0 +1,18 @@
import {load} from "cheerio"
const QUERY = "ISO3166-1";
const PAGE = `https://openclipart.org/tag/${QUERY}`;
async function capture() {
for (let i = 1; i <= 1; ++i) {
const url = i > 1 ? PAGE + `?p=${i}?q=${QUERY}` : PAGE;
const data = await fetch(url);
const $ = load(await data.text());
const links = $("document").find("a");
console.log("%d links", links.length)
}
}
(async () => {
await capture()
})();