diff --git a/src/example_page_1/de-DE.md b/src/example_page_1/de-DE.md index 684548a..5c6361a 100644 --- a/src/example_page_1/de-DE.md +++ b/src/example_page_1/de-DE.md @@ -1,3 +1,5 @@ +meow + # Abstrahere reddita celebrare in ossa ## Usque de celebrabant puer diff --git a/src/example_page_1/ku.md b/src/example_page_1/ku.md new file mode 100644 index 0000000..5c6361a --- /dev/null +++ b/src/example_page_1/ku.md @@ -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. diff --git a/stsg/build.py b/stsg/build.py index 000166f..65425df 100644 --- a/stsg/build.py +++ b/stsg/build.py @@ -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'' + return f'' def walk_directory(root): diff --git a/stsg/config.py b/stsg/config.py index b1fcd7e..eaf9bfb 100644 --- a/stsg/config.py +++ b/stsg/config.py @@ -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" + } }