feat: added additional data

This commit is contained in:
amnesia
2025-04-11 12:08:24 +02:00
parent d2d2628e56
commit 523402d3ad
4 changed files with 821 additions and 152 deletions

View File

@@ -5,7 +5,7 @@ import os
import markdown
from typing import Optional
from .config import SOURCE_DIRECTORY, DIST_DIRECTORY, STATIC_DIRECTORY
from .config import SOURCE_DIRECTORY, DIST_DIRECTORY, LANGUAGE_INFORMATION
logger = logging.getLogger("stsg.build")
@@ -96,9 +96,28 @@ class CustomLanguageCode:
def __repr__(self) -> str:
return f"{self.language_code}"
def _get_additional_data(self) -> dict:
parsed_language_code = self.language_code.lower().replace("-", "_")
if parsed_language_code in LANGUAGE_INFORMATION:
return LANGUAGE_INFORMATION[parsed_language_code]
parsed_language_code = parsed_language_code.split("_")[0]
if parsed_language_code in LANGUAGE_INFORMATION:
return LANGUAGE_INFORMATION[parsed_language_code]
return {}
@property
def flag(self) -> str:
return self._get_additional_data()["flag"]
@property
def native_name(self) -> str:
return self._get_additional_data()["native_name"]
@property
def html_code(self) -> str:
return f'<ul><a href="{self.relative_url}"><bold>{self.language_code}</bold></a></ul>'
return f'<ul><a href="{self.relative_url}"><bold>{self.flag} {self.native_name}</bold></a></ul>'
def walk_directory(root):

View File

@@ -9,154 +9,745 @@ STATIC_DIRECTORY = "static"
CODE_DIRECTORY = "stsg"
# LANGUAGE INFORMATION
LANGUAGES = {
af: { flag: '🇿🇦', name: 'Afrikaans', native_name: 'Afrikaans' },
am: { flag: '🇪🇹', name: 'Amharic', native_name: 'አማርኛ' },
an: { flag: '🇪🇸', name: 'Aragonese', native_name: 'aragonés' },
ar: { flag: '🇸🇦', name: 'Arabic', native_name: 'العربية' },
ar_ae: { flag: '🇦🇪', name: 'Arabic (UAE)', native_name: 'العربية (الإمارات)' },
ar_bh: { flag: '🇧🇭', name: 'Arabic (Bahrain)', native_name: 'العربية (البحرين)' },
ar_dz: { flag: '🇩🇿', name: 'Arabic (Algeria)', native_name: 'العربية (الجزائر)' },
ar_eg: { flag: '🇪🇬', name: 'Arabic (Egypt)', native_name: 'العربية (مصر)' },
ar_iq: { flag: '🇮🇶', name: 'Arabic (Iraq)', native_name: 'العربية (العراق)' },
ar_jo: { flag: '🇯🇴', name: 'Arabic (Jordan)', native_name: 'العربية (الأردن)' },
ar_kw: { flag: '🇰🇼', name: 'Arabic (Kuwait)', native_name: 'العربية (الكويت)' },
ar_lb: { flag: '🇱🇧', name: 'Arabic (Lebanon)', native_name: 'العربية (لبنان)' },
ar_ly: { flag: '🇱🇾', name: 'Arabic (Libya)', native_name: 'العربية (ليبيا)' },
ar_ma: { flag: '🇲🇦', name: 'Arabic (Morocco)', native_name: 'العربية (المغرب)' },
ar_om: { flag: '🇴🇲', name: 'Arabic (Oman)', native_name: 'العربية (عُمان)' },
ar_qa: { flag: '🇶🇦', name: 'Arabic (Qatar)', native_name: 'العربية (قطر)' },
ar_sa: { flag: '🇸🇦', name: 'Arabic (Saudi Arabia)', native_name: 'العربية (السعودية)' },
ar_sd: { flag: '🇸🇩', name: 'Arabic (Sudan)', native_name: 'العربية (السودان)' },
ar_sy: { flag: '🇸🇾', name: 'Arabic (Syria)', native_name: 'العربية (سوريا)' },
ar_tn: { flag: '🇹🇳', name: 'Arabic (Tunisia)', native_name: 'العربية (تونس)' },
ar_ye: { flag: '🇾🇪', name: 'Arabic (Yemen)', native_name: 'العربية (اليمن)' },
ars_ae: { flag: '🇦🇪', name: 'Najdi Arabic (UAE)', native_name: 'نَجْدِيّ' },
ars_arab_sa: { flag: '🇸🇦', name: 'Najdi Arabic (Saudi Arabia, Arabic Script)', native_name: 'نَجْدِيّ' },
ars_sa: { flag: '🇸🇦', name: 'Najdi Arabic (Saudi Arabia)', native_name: 'نَجْدِيّ' },
as: { flag: '🇮🇳', name: 'Assamese', native_name: 'অসমীয়া' },
az: { flag: '🇦🇿', name: 'Azerbaijani', native_name: 'Azərbaycan' },
be: { flag: '🇧🇾', name: 'Belarusian', native_name: 'Беларуская' },
bg: { flag: '🇧🇬', name: 'Bulgarian', native_name: 'Български' },
bm: { flag: '🇲🇱', name: 'Bambara', native_name: 'bamanankan' },
bn: { flag: '🇧🇩', name: 'Bengali', native_name: 'বাংলা' },
bn_in: { flag: '🇮🇳', name: 'Bengali (India)', native_name: 'বাংলা (ভারত)' },
br: { flag: '🏴', name: 'Breton', native_name: 'brezhoneg' },
bs: { flag: '🇧🇦', name: 'Bosnian', native_name: 'Bosanski' },
ca: { flag: '🇪🇸', name: 'Catalan', native_name: 'Català' },
crh: { flag: '🇺🇦', name: 'Crimean Tatar', native_name: 'qırımtatarca' },
cs: { flag: '🇨🇿', name: 'Czech', native_name: 'Čeština' },
cv: { flag: '🇷🇺', name: 'Chuvash', native_name: 'чӑваш чӗлхи' },
cy: { flag: '🏴', name: 'Welsh', native_name: 'Cymraeg' },
da: { flag: '🇩🇰', name: 'Danish', native_name: 'Dansk' },
de: { flag: '🇩🇪', name: 'German', native_name: 'Deutsch' },
de_at: { flag: '🇦🇹', name: 'German (Austria)', native_name: 'Deutsch (Österreich)' },
de_be: { flag: '🇧🇪', name: 'German (Belgium)', native_name: 'Deutsch (Belgien)' },
de_ch: { flag: '🇨🇭', name: 'German (Switzerland)', native_name: 'Deutsch (Schweiz)' },
dv: { flag: '🇲🇻', name: 'Dhivehi', native_name: 'ދިވެހި' },
dz: { flag: '🇧🇹', name: 'Dzongkha', native_name: 'རྫོང་ཁ' },
el: { flag: '🇬🇷', name: 'Greek', native_name: 'Ελληνικά' },
en: { flag: '🇺🇸', name: 'English', native_name: 'English' },
en_au: { flag: '🇦🇺', name: 'English (Australia)', native_name: 'English (Australia)' },
en_ca: { flag: '🇨🇦', name: 'English (Canada)', native_name: 'English (Canada)' },
en_gb: { flag: '🇬🇧', name: 'English (UK)', native_name: 'English (UK)' },
en_ie: { flag: '🇮🇪', name: 'English (Ireland)', native_name: 'English (Ireland)' },
en_in: { flag: '🇮🇳', name: 'English (India)', native_name: 'English (India)' },
en_nz: { flag: '🇳🇿', name: 'English (New Zealand)', native_name: 'English (New Zealand)' },
en_us: { flag: '🇺🇸', name: 'English (US)', native_name: 'English (US)' },
es: { flag: '🇪🇸', name: 'Spanish', native_name: 'Español' },
es_ar: { flag: '🇦🇷', name: 'Spanish (Argentina)', native_name: 'Español (Argentina)' },
es_mx: { flag: '🇲🇽', name: 'Spanish (Mexico)', native_name: 'Español (México)' },
et: { flag: '🇪🇪', name: 'Estonian', native_name: 'Eesti' },
fa: { flag: '🇮🇷', name: 'Persian', native_name: 'فارسی' },
ff: { flag: '🌍', name: 'Fula', native_name: 'Fulfulde' },
fi: { flag: '🇫🇮', name: 'Finnish', native_name: 'Suomi' },
fo: { flag: '🇫🇴', name: 'Faroese', native_name: 'føroyskt' },
fr: { flag: '🇫🇷', name: 'French', native_name: 'Français' },
fr_ca: { flag: '🇨🇦', name: 'French (Canada)', native_name: 'Français (Canada)' },
fr_ch: { flag: '🇨🇭', name: 'French (Switzerland)', native_name: 'Français (Suisse)' },
ga: { flag: '🇮🇪', name: 'Irish', native_name: 'Gaeilge' },
gl: { flag: '🇪🇸', name: 'Galician', native_name: 'Galego' },
gn: { flag: '🇵🇾', name: 'Guarani', native_name: "Avañe'" },
gu: { flag: '🇮🇳', name: 'Gujarati', native_name: 'ગુજરાતી' },
ha: { flag: '🇳🇬', name: 'Hausa', native_name: 'هَوُسَ' },
he: { flag: '🇮🇱', name: 'Hebrew', native_name: 'עברית' },
hi: { flag: '🇮🇳', name: 'Hindi', native_name: 'हिन्दी' },
hr: { flag: '🇭🇷', name: 'Croatian', native_name: 'Hrvatski' },
ht: { flag: '🇭🇹', name: 'Haitian Creole', native_name: 'Kreyòl ayisyen' },
hu: { flag: '🇭🇺', name: 'Hungarian', native_name: 'Magyar' },
id: { flag: '🇮🇩', name: 'Indonesian', native_name: 'Bahasa Indonesia' },
io: { flag: '🌍', name: 'Ido', native_name: 'Ido' },
is: { flag: '🇮🇸', name: 'Icelandic', native_name: 'Íslenska' },
it: { flag: '🇮🇹', name: 'Italian', native_name: 'Italiano' },
ja: { flag: '🇯🇵', name: 'Japanese', native_name: '日本語' },
jv_id: { flag: '🇮🇩', name: 'Javanese (Indonesia)', native_name: 'basa jawa' },
ka: { flag: '🇬🇪', name: 'Georgian', native_name: 'ქართული' },
kg: { flag: '🇨🇬', name: 'Kongo', native_name: 'KiKongo' },
kj: { flag: '🇳🇦', name: 'Kuanyama', native_name: 'Oshikwanyama' },
kk: { flag: '🇰🇿', name: 'Kazakh', native_name: 'Қазақ' },
kl: { flag: '🇬🇱', name: 'Kalaallisut', native_name: 'kalaallisut' },
km: { flag: '🇰🇭', name: 'Khmer', native_name: 'ខ្មែរ' },
ko: { flag: '🇰🇷', name: 'Korean', native_name: '한국어' },
ks: { flag: '🇮🇳', name: 'Kashmiri', native_name: 'کٲشُر' },
ku: { flag: '🇮🇶', name: 'Kurdish', native_name: 'Kurdî' },
lo: { flag: '🇱🇦', name: 'Lao', native_name: 'ລາວ' },
lt: { flag: '🇱🇹', name: 'Lithuanian', native_name: 'Lietuvių' },
lv: { flag: '🇱🇻', name: 'Latvian', native_name: 'Latviešu' },
mg: { flag: '🇲🇬', name: 'Malagasy', native_name: 'Malagasy' },
mg_mg: { flag: '🇲🇬', name: 'Malagasy (Madagascar)', native_name: 'malagasy' },
mh: { flag: '🇲🇭', name: 'Marshallese', native_name: 'Kajin M̧ajeļ' },
mk: { flag: '🇲🇰', name: 'Macedonian', native_name: 'Македонски' },
mn_mn: { flag: '🇲🇳', name: 'Mongolian (Mongolia)', native_name: 'Монгол хэл' },
mr_in: { flag: '🇮🇳', name: 'Marathi (India)', native_name: 'मराठी' },
ms: { flag: '🇲🇾', name: 'Malay', native_name: 'Bahasa Melayu' },
my: { flag: '🇲🇲', name: 'Burmese', native_name: 'မြန်မာဘာသာ' },
na: { flag: '🇳🇷', name: 'Nauruan', native_name: 'Dorerin Naoero' },
nb: { flag: '🇳🇴', name: 'Norwegian Bokmål', native_name: 'Norsk Bokmål' },
ng: { flag: '🇳🇦', name: 'Ndonga', native_name: 'Oshindonga' },
nl: { flag: '🇳🇱', name: 'Dutch', native_name: 'Nederlands' },
om: { flag: '🇪🇹', name: 'Oromo', native_name: 'Afaan Oromoo' },
os: { flag: '🇷🇺', name: 'Ossetian', native_name: 'ирон æвзаг' },
pl: { flag: '🇵🇱', name: 'Polish', native_name: 'Polski' },
pt: { flag: '🇵🇹', name: 'Portuguese', native_name: 'Português' },
pt_br: { flag: '🇧🇷', name: 'Portuguese (Brazil)', native_name: 'Português (Brasil)' },
qu: { flag: '🇵🇪', name: 'Quechua', native_name: 'Runa Simi' },
ro: { flag: '🇷🇴', name: 'Romanian', native_name: 'Română' },
ru: { flag: '🇷🇺', name: 'Russian', native_name: 'Русский' },
rw: { flag: '🇷🇼', name: 'Kinyarwanda', native_name: 'Ikinyarwanda' },
sc: { flag: '🇮🇹', name: 'Sardinian', native_name: 'sardu' },
sg: { flag: '🇨🇫', name: 'Sango', native_name: 'yângâ tî sängö' },
sk: { flag: '🇸🇰', name: 'Slovak', native_name: 'Slovenčina' },
sl: { flag: '🇸🇮', name: 'Slovenian', native_name: 'Slovenščina' },
sm: { flag: '🇼🇸', name: 'Samoan', native_name: 'Gagana Samoa' },
sn: { flag: '🇿🇼', name: 'Shona', native_name: 'chiShona' },
so: { flag: '🇸🇴', name: 'Somali', native_name: 'Soomaaliga' },
sr: { flag: '🇷🇸', name: 'Serbian', native_name: 'Српски' },
ss: { flag: '🇸🇿', name: 'Swati', native_name: 'SiSwati' },
st: { flag: '🇱🇸', name: 'Southern Sotho', native_name: 'Sesotho' },
su_id: { flag: '🇮🇩', name: 'Sundanese (Indonesia)', native_name: 'basa sunda' },
sv: { flag: '🇸🇪', name: 'Swedish', native_name: 'Svenska' },
th: { flag: '🇹🇭', name: 'Thai', native_name: 'ไทย' },
tk: { flag: '🇹🇲', name: 'Turkmen', native_name: 'Türkmen' },
tn: { flag: '🇧🇼', name: 'Tswana', native_name: 'Setswana' },
to: { flag: '🇹🇴', name: 'Tongan', native_name: 'faka-Tonga' },
tr: { flag: '🇹🇷', name: 'Turkish', native_name: 'Türkçe' },
ts: { flag: '🇿🇦', name: 'Tsonga', native_name: 'Xitsonga' },
ts_zw: { flag: '🇿🇼', name: 'Tsonga (Zimbabwe)', native_name: 'xitsonga' },
ty: { flag: '🇵🇫', name: 'Tahitian', native_name: 'Reo Tahiti' },
uk: { flag: '🇺🇦', name: 'Ukrainian', native_name: 'Українська' },
ur: { flag: '🇵🇰', name: 'Urdu', native_name: 'اردو' },
uz: { flag: '🇺🇿', name: 'Uzbek', native_name: 'oʻzbek' },
ve: { flag: '🇿🇦', name: 'Venda', native_name: 'Tshivenda' },
vi: { flag: '🇻🇳', name: 'Vietnamese', native_name: 'Tiếng Việt' },
vo: { flag: '🌍', name: 'Volapük', native_name: 'Volapük' },
wa: { flag: '🇧🇪', name: 'Walloon', native_name: 'walon' },
xh: { flag: '🇿🇦', name: 'Xhosa', native_name: 'isiXhosa' },
yi: { flag: '🌍', name: 'Yiddish', native_name: 'ייִדיש' },
yo: { flag: '🇳🇬', name: 'Yoruba', native_name: 'Yorùbá' },
zh: { flag: '🇨🇳', name: 'Chinese', native_name: '中文' },
zh_hk: { flag: '🇭🇰', name: 'Chinese (Hong Kong)', native_name: '中文(香港)' },
zh_tw: { flag: '🇹🇼', name: 'Chinese (Taiwan)', native_name: '中文(台灣)' },
zu: { flag: '🇿🇦', name: 'Zulu', native_name: 'isiZulu' },
LANGUAGE_INFORMATION = {
"af": {
"flag": "🇿🇦",
"name": "Afrikaans",
"native_name": "Afrikaans"
},
"am": {
"flag": "🇪🇹",
"name": "Amharic",
"native_name": "አማርኛ"
},
"an": {
"flag": "🇪🇸",
"name": "Aragonese",
"native_name": "aragonés"
},
"ar": {
"flag": "🇸🇦",
"name": "Arabic",
"native_name": "العربية"
},
"ar_ae": {
"flag": "🇦🇪",
"name": "Arabic (UAE)",
"native_name": "العربية (الإمارات)"
},
"ar_bh": {
"flag": "🇧🇭",
"name": "Arabic (Bahrain)",
"native_name": "العربية (البحرين)"
},
"ar_dz": {
"flag": "🇩🇿",
"name": "Arabic (Algeria)",
"native_name": "العربية (الجزائر)"
},
"ar_eg": {
"flag": "🇪🇬",
"name": "Arabic (Egypt)",
"native_name": "العربية (مصر)"
},
"ar_iq": {
"flag": "🇮🇶",
"name": "Arabic (Iraq)",
"native_name": "العربية (العراق)"
},
"ar_jo": {
"flag": "🇯🇴",
"name": "Arabic (Jordan)",
"native_name": "العربية (الأردن)"
},
"ar_kw": {
"flag": "🇰🇼",
"name": "Arabic (Kuwait)",
"native_name": "العربية (الكويت)"
},
"ar_lb": {
"flag": "🇱🇧",
"name": "Arabic (Lebanon)",
"native_name": "العربية (لبنان)"
},
"ar_ly": {
"flag": "🇱🇾",
"name": "Arabic (Libya)",
"native_name": "العربية (ليبيا)"
},
"ar_ma": {
"flag": "🇲🇦",
"name": "Arabic (Morocco)",
"native_name": "العربية (المغرب)"
},
"ar_om": {
"flag": "🇴🇲",
"name": "Arabic (Oman)",
"native_name": "العربية (عُمان)"
},
"ar_qa": {
"flag": "🇶🇦",
"name": "Arabic (Qatar)",
"native_name": "العربية (قطر)"
},
"ar_sa": {
"flag": "🇸🇦",
"name": "Arabic (Saudi Arabia)",
"native_name": "العربية (السعودية)"
},
"ar_sd": {
"flag": "🇸🇩",
"name": "Arabic (Sudan)",
"native_name": "العربية (السودان)"
},
"ar_sy": {
"flag": "🇸🇾",
"name": "Arabic (Syria)",
"native_name": "العربية (سوريا)"
},
"ar_tn": {
"flag": "🇹🇳",
"name": "Arabic (Tunisia)",
"native_name": "العربية (تونس)"
},
"ar_ye": {
"flag": "🇾🇪",
"name": "Arabic (Yemen)",
"native_name": "العربية (اليمن)"
},
"ars_ae": {
"flag": "🇦🇪",
"name": "Najdi Arabic (UAE)",
"native_name": "نَجْدِيّ"
},
"ars_arab_sa": {
"flag": "🇸🇦",
"name": "Najdi Arabic (Saudi Arabia, Arabic Script)",
"native_name": "نَجْدِيّ"
},
"ars_sa": {
"flag": "🇸🇦",
"name": "Najdi Arabic (Saudi Arabia)",
"native_name": "نَجْدِيّ"
},
"as": {
"flag": "🇮🇳",
"name": "Assamese",
"native_name": "অসমীয়া"
},
"az": {
"flag": "🇦🇿",
"name": "Azerbaijani",
"native_name": "Azərbaycan"
},
"be": {
"flag": "🇧🇾",
"name": "Belarusian",
"native_name": "Беларуская"
},
"bg": {
"flag": "🇧🇬",
"name": "Bulgarian",
"native_name": "Български"
},
"bm": {
"flag": "🇲🇱",
"name": "Bambara",
"native_name": "bamanankan"
},
"bn": {
"flag": "🇧🇩",
"name": "Bengali",
"native_name": "বাংলা"
},
"bn_in": {
"flag": "🇮🇳",
"name": "Bengali (India)",
"native_name": "বাংলা (ভারত)"
},
"br": {
"flag": "🏴",
"name": "Breton",
"native_name": "brezhoneg"
},
"bs": {
"flag": "🇧🇦",
"name": "Bosnian",
"native_name": "Bosanski"
},
"ca": {
"flag": "🇪🇸",
"name": "Catalan",
"native_name": "Català"
},
"crh": {
"flag": "🇺🇦",
"name": "Crimean Tatar",
"native_name": "qırımtatarca"
},
"cs": {
"flag": "🇨🇿",
"name": "Czech",
"native_name": "Čeština"
},
"cv": {
"flag": "🇷🇺",
"name": "Chuvash",
"native_name": "чӑваш чӗлхи"
},
"cy": {
"flag": "🏴",
"name": "Welsh",
"native_name": "Cymraeg"
},
"da": {
"flag": "🇩🇰",
"name": "Danish",
"native_name": "Dansk"
},
"de": {
"flag": "🇩🇪",
"name": "German",
"native_name": "Deutsch"
},
"de_at": {
"flag": "🇦🇹",
"name": "German (Austria)",
"native_name": "Deutsch (Österreich)"
},
"de_be": {
"flag": "🇧🇪",
"name": "German (Belgium)",
"native_name": "Deutsch (Belgien)"
},
"de_ch": {
"flag": "🇨🇭",
"name": "German (Switzerland)",
"native_name": "Deutsch (Schweiz)"
},
"dv": {
"flag": "🇲🇻",
"name": "Dhivehi",
"native_name": "ދިވެހި"
},
"dz": {
"flag": "🇧🇹",
"name": "Dzongkha",
"native_name": "རྫོང་ཁ"
},
"el": {
"flag": "🇬🇷",
"name": "Greek",
"native_name": "Ελληνικά"
},
"en": {
"flag": "🇺🇸",
"name": "English",
"native_name": "English"
},
"en_au": {
"flag": "🇦🇺",
"name": "English (Australia)",
"native_name": "English (Australia)"
},
"en_ca": {
"flag": "🇨🇦",
"name": "English (Canada)",
"native_name": "English (Canada)"
},
"en_gb": {
"flag": "🇬🇧",
"name": "English (UK)",
"native_name": "English (UK)"
},
"en_ie": {
"flag": "🇮🇪",
"name": "English (Ireland)",
"native_name": "English (Ireland)"
},
"en_in": {
"flag": "🇮🇳",
"name": "English (India)",
"native_name": "English (India)"
},
"en_nz": {
"flag": "🇳🇿",
"name": "English (New Zealand)",
"native_name": "English (New Zealand)"
},
"en_us": {
"flag": "🇺🇸",
"name": "English (US)",
"native_name": "English (US)"
},
"es": {
"flag": "🇪🇸",
"name": "Spanish",
"native_name": "Español"
},
"es_ar": {
"flag": "🇦🇷",
"name": "Spanish (Argentina)",
"native_name": "Español (Argentina)"
},
"es_mx": {
"flag": "🇲🇽",
"name": "Spanish (Mexico)",
"native_name": "Español (México)"
},
"et": {
"flag": "🇪🇪",
"name": "Estonian",
"native_name": "Eesti"
},
"fa": {
"flag": "🇮🇷",
"name": "Persian",
"native_name": "فارسی"
},
"ff": {
"flag": "🌍",
"name": "Fula",
"native_name": "Fulfulde"
},
"fi": {
"flag": "🇫🇮",
"name": "Finnish",
"native_name": "Suomi"
},
"fo": {
"flag": "🇫🇴",
"name": "Faroese",
"native_name": "føroyskt"
},
"fr": {
"flag": "🇫🇷",
"name": "French",
"native_name": "Français"
},
"fr_ca": {
"flag": "🇨🇦",
"name": "French (Canada)",
"native_name": "Français (Canada)"
},
"fr_ch": {
"flag": "🇨🇭",
"name": "French (Switzerland)",
"native_name": "Français (Suisse)"
},
"ga": {
"flag": "🇮🇪",
"name": "Irish",
"native_name": "Gaeilge"
},
"gl": {
"flag": "🇪🇸",
"name": "Galician",
"native_name": "Galego"
},
"gn": {
"flag": "🇵🇾",
"name": "Guarani",
"native_name": "Avañe'"
},
"gu": {
"flag": "🇮🇳",
"name": "Gujarati",
"native_name": "ગુજરાતી"
},
"ha": {
"flag": "🇳🇬",
"name": "Hausa",
"native_name": "هَوُسَ"
},
"he": {
"flag": "🇮🇱",
"name": "Hebrew",
"native_name": "עברית"
},
"hi": {
"flag": "🇮🇳",
"name": "Hindi",
"native_name": "हिन्दी"
},
"hr": {
"flag": "🇭🇷",
"name": "Croatian",
"native_name": "Hrvatski"
},
"ht": {
"flag": "🇭🇹",
"name": "Haitian Creole",
"native_name": "Kreyòl ayisyen"
},
"hu": {
"flag": "🇭🇺",
"name": "Hungarian",
"native_name": "Magyar"
},
"id": {
"flag": "🇮🇩",
"name": "Indonesian",
"native_name": "Bahasa Indonesia"
},
"io": {
"flag": "🌍",
"name": "Ido",
"native_name": "Ido"
},
"is": {
"flag": "🇮🇸",
"name": "Icelandic",
"native_name": "Íslenska"
},
"it": {
"flag": "🇮🇹",
"name": "Italian",
"native_name": "Italiano"
},
"ja": {
"flag": "🇯🇵",
"name": "Japanese",
"native_name": "日本語"
},
"jv_id": {
"flag": "🇮🇩",
"name": "Javanese (Indonesia)",
"native_name": "basa jawa"
},
"ka": {
"flag": "🇬🇪",
"name": "Georgian",
"native_name": "ქართული"
},
"kg": {
"flag": "🇨🇬",
"name": "Kongo",
"native_name": "KiKongo"
},
"kj": {
"flag": "🇳🇦",
"name": "Kuanyama",
"native_name": "Oshikwanyama"
},
"kk": {
"flag": "🇰🇿",
"name": "Kazakh",
"native_name": "Қазақ"
},
"kl": {
"flag": "🇬🇱",
"name": "Kalaallisut",
"native_name": "kalaallisut"
},
"km": {
"flag": "🇰🇭",
"name": "Khmer",
"native_name": "ខ្មែរ"
},
"ko": {
"flag": "🇰🇷",
"name": "Korean",
"native_name": "한국어"
},
"ks": {
"flag": "🇮🇳",
"name": "Kashmiri",
"native_name": "کٲشُر"
},
"ku": {
"flag": "🇮🇶",
"name": "Kurdish",
"native_name": "Kurdî"
},
"lo": {
"flag": "🇱🇦",
"name": "Lao",
"native_name": "ລາວ"
},
"lt": {
"flag": "🇱🇹",
"name": "Lithuanian",
"native_name": "Lietuvių"
},
"lv": {
"flag": "🇱🇻",
"name": "Latvian",
"native_name": "Latviešu"
},
"mg": {
"flag": "🇲🇬",
"name": "Malagasy",
"native_name": "Malagasy"
},
"mg_mg": {
"flag": "🇲🇬",
"name": "Malagasy (Madagascar)",
"native_name": "malagasy"
},
"mh": {
"flag": "🇲🇭",
"name": "Marshallese",
"native_name": "Kajin M̧ajeļ"
},
"mk": {
"flag": "🇲🇰",
"name": "Macedonian",
"native_name": "Македонски"
},
"mn_mn": {
"flag": "🇲🇳",
"name": "Mongolian (Mongolia)",
"native_name": "Монгол хэл"
},
"mr_in": {
"flag": "🇮🇳",
"name": "Marathi (India)",
"native_name": "मराठी"
},
"ms": {
"flag": "🇲🇾",
"name": "Malay",
"native_name": "Bahasa Melayu"
},
"my": {
"flag": "🇲🇲",
"name": "Burmese",
"native_name": "မြန်မာဘာသာ"
},
"na": {
"flag": "🇳🇷",
"name": "Nauruan",
"native_name": "Dorerin Naoero"
},
"nb": {
"flag": "🇳🇴",
"name": "Norwegian Bokmål",
"native_name": "Norsk Bokmål"
},
"ng": {
"flag": "🇳🇦",
"name": "Ndonga",
"native_name": "Oshindonga"
},
"nl": {
"flag": "🇳🇱",
"name": "Dutch",
"native_name": "Nederlands"
},
"om": {
"flag": "🇪🇹",
"name": "Oromo",
"native_name": "Afaan Oromoo"
},
"os": {
"flag": "🇷🇺",
"name": "Ossetian",
"native_name": "ирон æвзаг"
},
"pl": {
"flag": "🇵🇱",
"name": "Polish",
"native_name": "Polski"
},
"pt": {
"flag": "🇵🇹",
"name": "Portuguese",
"native_name": "Português"
},
"pt_br": {
"flag": "🇧🇷",
"name": "Portuguese (Brazil)",
"native_name": "Português (Brasil)"
},
"qu": {
"flag": "🇵🇪",
"name": "Quechua",
"native_name": "Runa Simi"
},
"ro": {
"flag": "🇷🇴",
"name": "Romanian",
"native_name": "Română"
},
"ru": {
"flag": "🇷🇺",
"name": "Russian",
"native_name": "Русский"
},
"rw": {
"flag": "🇷🇼",
"name": "Kinyarwanda",
"native_name": "Ikinyarwanda"
},
"sc": {
"flag": "🇮🇹",
"name": "Sardinian",
"native_name": "sardu"
},
"sg": {
"flag": "🇨🇫",
"name": "Sango",
"native_name": "yângâ tî sängö"
},
"sk": {
"flag": "🇸🇰",
"name": "Slovak",
"native_name": "Slovenčina"
},
"sl": {
"flag": "🇸🇮",
"name": "Slovenian",
"native_name": "Slovenščina"
},
"sm": {
"flag": "🇼🇸",
"name": "Samoan",
"native_name": "Gagana Samoa"
},
"sn": {
"flag": "🇿🇼",
"name": "Shona",
"native_name": "chiShona"
},
"so": {
"flag": "🇸🇴",
"name": "Somali",
"native_name": "Soomaaliga"
},
"sr": {
"flag": "🇷🇸",
"name": "Serbian",
"native_name": "Српски"
},
"ss": {
"flag": "🇸🇿",
"name": "Swati",
"native_name": "SiSwati"
},
"st": {
"flag": "🇱🇸",
"name": "Southern Sotho",
"native_name": "Sesotho"
},
"su_id": {
"flag": "🇮🇩",
"name": "Sundanese (Indonesia)",
"native_name": "basa sunda"
},
"sv": {
"flag": "🇸🇪",
"name": "Swedish",
"native_name": "Svenska"
},
"th": {
"flag": "🇹🇭",
"name": "Thai",
"native_name": "ไทย"
},
"tk": {
"flag": "🇹🇲",
"name": "Turkmen",
"native_name": "Türkmen"
},
"tn": {
"flag": "🇧🇼",
"name": "Tswana",
"native_name": "Setswana"
},
"to": {
"flag": "🇹🇴",
"name": "Tongan",
"native_name": "faka-Tonga"
},
"tr": {
"flag": "🇹🇷",
"name": "Turkish",
"native_name": "Türkçe"
},
"ts": {
"flag": "🇿🇦",
"name": "Tsonga",
"native_name": "Xitsonga"
},
"ts_zw": {
"flag": "🇿🇼",
"name": "Tsonga (Zimbabwe)",
"native_name": "xitsonga"
},
"ty": {
"flag": "🇵🇫",
"name": "Tahitian",
"native_name": "Reo Tahiti"
},
"uk": {
"flag": "🇺🇦",
"name": "Ukrainian",
"native_name": "Українська"
},
"ur": {
"flag": "🇵🇰",
"name": "Urdu",
"native_name": "اردو"
},
"uz": {
"flag": "🇺🇿",
"name": "Uzbek",
"native_name": "oʻzbek"
},
"ve": {
"flag": "🇿🇦",
"name": "Venda",
"native_name": "Tshivenda"
},
"vi": {
"flag": "🇻🇳",
"name": "Vietnamese",
"native_name": "Tiếng Việt"
},
"vo": {
"flag": "🌍",
"name": "Volapük",
"native_name": "Volapük"
},
"wa": {
"flag": "🇧🇪",
"name": "Walloon",
"native_name": "walon"
},
"xh": {
"flag": "🇿🇦",
"name": "Xhosa",
"native_name": "isiXhosa"
},
"yi": {
"flag": "🌍",
"name": "Yiddish",
"native_name": "ייִדיש"
},
"yo": {
"flag": "🇳🇬",
"name": "Yoruba",
"native_name": "Yorùbá"
},
"zh": {
"flag": "🇨🇳",
"name": "Chinese",
"native_name": "中文"
},
"zh_hk": {
"flag": "🇭🇰",
"name": "Chinese (Hong Kong)",
"native_name": "中文(香港)"
},
"zh_tw": {
"flag": "🇹🇼",
"name": "Chinese (Taiwan)",
"native_name": "中文(台灣)"
},
"zu": {
"flag": "🇿🇦",
"name": "Zulu",
"native_name": "isiZulu"
}
}