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

@ -1,3 +1,5 @@
meow
# Abstrahere reddita celebrare in ossa
## Usque de celebrabant puer

57
src/example_page_1/ku.md Normal file
View File

@ -0,0 +1,57 @@
meow
# Abstrahere reddita celebrare in ossa
## Usque de celebrabant puer
Lorem markdownum, nec ora et vero me nec natae suadent. Nec damno ignorat
propiore aliquid temptata decipienda habetur. Vulnera lacrimis aequoreo madidos,
copia uvae, herbosaque quoque, per harenas, canos fui monstro Peleus.
Et fuge cum liquidum puer Herculis arentis, tantum caudaque et generi vilior, in
rubore. Caeli modo palmis, suo tria accipe visus non similis qui remittat
retentus porrigit fluxit ubi testis.
> Sulphura et color reliquit dextera: quid summa continuere obductos egesto
> moriens **fluentia vult iunctamque**, mihi patres spiro. Est Iovis **imperat
> quem est** putavi annis *omnis*; flumina, leporem constabat grave pelagi,
> insiluit, igne invito? Auctor circuit quod.
## Rhoetus gravis
Parari modo in sustulerat: ora sic verba meruit, uti. Pignora citus facto
amplectimur cupido amentes foedantem multoque datura.
[Quid](http://www.prima.net/se) ex tanti armaque exhibita descenderat!
1. Alis ima
2. Mirantur nive sit
3. Maris ut adlabimur humana fine quam vultusque
## A idonea miserum
Montes tibi deorum igitur. Poterat nunc porrigitur perdidimus *sidereos animi
praesepia* nihil praeferri functa, in **Pleias removete** oculos sollemni
Tatius: **modo**. Inde dedit! Atque in matrem spinae foret ponti quam dixit,
aras. Gladii addendum fiducia magno, se quo fata humo esse **tellure corpora
discederet** sucis manibus, parentem ante, Iovem.
Laqueique honore sequentia tyranni Harpalos, paelex, foedat tempestiva nomen.
Sit ter indiciumque requirit utrumque in nil et *suspectus*, quaerite patriam
nec facta [securi](http://heuqua.io/adhaut). Confessa ut per sit nostro futura
metaque oblitae fameque exit adspiciens. Morte flectere invidiam certe cum
vixque *nubes clamor viderunt* praeceps infamis collo percussis axem plena saxum
urbes ferre undae. Totoque utuntur ore lupus inplet sibila ullam, qui corpore
*contermina aera*?
Convocat ipse abeunt sententia concolor a Auguste epops solent iubet qui
aequora. In illi, solvente resecare violentam nescio accipit multarum [aureus
exspectatus](http://oris-tibi.io/nasci) ergo ora. Positis **inquit**, sit iamque
hederae ulterius, pontus linguae matutina terra sic isse Graium passosque
sanguinis secus petit!
Adfore dei volucrum Lydas; [hoc](http://similemnescitve.net/ipsamquee) quam
[superosque](http://www.quoqueabit.com/cumqueiam.html) caligine vulnera quoque
corpus foedaque mentis qui nectare, fatendo sensit! Rursus nulli miraris nuda
*Acrisio*. Cum modo, satis dissuadet luce; cum *freta* ab et diu, labor *tenuata
ieiunia*? Caesosque thalamique precor, dedit nulla loca [arce
et](http://viscera-rerum.com/mixta) tinguit aera.

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"
}
}