334 lines
20 KiB
JavaScript
334 lines
20 KiB
JavaScript
// TODO: Enable STT:
|
||
// Output STT to TTS? *TTS service selection* (for now, later add the option to choose a specific voice with mega dropdowns)
|
||
// *automatic translation: make an translation.js and add ALL the texts and have it translated if user chooses a language in top bar
|
||
// *info page with credits, version and more info
|
||
|
||
const languages = {
|
||
none: { IETF: 'none', ISO639: 'none', ISO3166: 'xx' },
|
||
english: { IETF: 'en-GB', ISO639: 'en', ISO3166: 'gb' },
|
||
spanish: { IETF: 'es-ES', ISO639: 'es', ISO3166: 'es' },
|
||
dutch: { IETF: 'nl-NL', ISO639: 'nl', ISO3166: 'nl' },
|
||
'chinese simplified': { IETF: 'zh-CN', ISO639: 'zh', ISO3166: 'cn' },
|
||
russian: { IETF: 'ru-RU', ISO639: 'ru', ISO3166: 'ru' },
|
||
indonesian: { IETF: 'id-ID', ISO639: 'id', ISO3166: 'id' },
|
||
hindi: { IETF: 'hi-IN', ISO639: 'hi', ISO3166: 'in' },
|
||
filipino: { IETF: 'fil-PH', ISO639: 'fil', ISO3166: 'ph' },
|
||
turkish: { IETF: 'tr-TR', ISO639: 'tr', ISO3166: 'tr' },
|
||
acehnese: { IETF: 'ace-ID', ISO639: 'ace', ISO3166: 'id' },
|
||
afrikaans: { IETF: 'af-ZA', ISO639: 'af', ISO3166: 'za' },
|
||
akan: { IETF: 'ak-GH', ISO639: 'ak', ISO3166: 'gh' },
|
||
albanian: { IETF: 'sq-AL', ISO639: 'sq', ISO3166: 'al' },
|
||
amharic: { IETF: 'am-ET', ISO639: 'am', ISO3166: 'et' },
|
||
'antigua and barbuda creole english': { IETF: 'aig-AG', ISO639: 'aig', ISO3166: 'ag' },
|
||
arabic: { IETF: 'ar-SA', ISO639: 'ar', ISO3166: 'sa' },
|
||
'arabic egyptian': { IETF: 'ar-EG', ISO639: 'arz', ISO3166: 'eg' },
|
||
aragonese: { IETF: 'es-ES', ISO639: 'an', ISO3166: 'es' },
|
||
armenian: { IETF: 'hy-AM', ISO639: 'hy', ISO3166: 'am' },
|
||
assamese: { IETF: 'as-IN', ISO639: 'as', ISO3166: 'in' },
|
||
asturian: { IETF: 'ast-ES', ISO639: 'ast', ISO3166: 'es' },
|
||
'austrian german': { IETF: 'de-AT', ISO639: 'de', ISO3166: 'at' },
|
||
awadhi: { IETF: 'awa-IN', ISO639: 'awa', ISO3166: 'in' },
|
||
'ayacucho quechua': { IETF: 'quy-PE', ISO639: 'quy', ISO3166: 'pe' },
|
||
azerbaijani: { IETF: 'az-AZ', ISO639: 'az', ISO3166: 'az' },
|
||
'bahamas creole english': { IETF: 'bah-BS', ISO639: 'bah', ISO3166: 'bs' },
|
||
bajan: { IETF: 'bjs-BB', ISO639: 'bjs', ISO3166: 'bb' },
|
||
balinese: { IETF: 'ban-ID', ISO639: 'ban', ISO3166: 'id' },
|
||
'balkan gipsy': { IETF: 'rm-RO', ISO639: 'rm', ISO3166: 'ro' },
|
||
bambara: { IETF: 'bm-ML', ISO639: 'bm', ISO3166: 'ml' },
|
||
banjar: { IETF: 'bjn-ID', ISO639: 'bjn', ISO3166: 'id' },
|
||
bashkir: { IETF: 'ba-RU', ISO639: 'ba', ISO3166: 'ru' },
|
||
basque: { IETF: 'eu-ES', ISO639: 'eu', ISO3166: 'es-pv' },
|
||
belarusian: { IETF: 'be-BY', ISO639: 'be', ISO3166: 'by' },
|
||
'belgian french': { IETF: 'fr-BE', ISO639: 'fr', ISO3166: 'be' },
|
||
bemba: { IETF: 'bem-ZM', ISO639: 'bem', ISO3166: 'zm' },
|
||
bengali: { IETF: 'bn-IN', ISO639: 'bn', ISO3166: 'bd' },
|
||
bhojpuri: { IETF: 'bho-IN', ISO639: 'bho', ISO3166: 'in' },
|
||
bihari: { IETF: 'bh-IN', ISO639: 'bh', ISO3166: 'in' },
|
||
bislama: { IETF: 'bi-VU', ISO639: 'bi', ISO3166: 'vu' },
|
||
borana: { IETF: 'gax-KE', ISO639: 'gax', ISO3166: 'ke' },
|
||
bosnian: { IETF: 'bs-BA', ISO639: 'bs', ISO3166: 'ba' },
|
||
'bosnian (cyrillic)': { IETF: 'bs-Cyrl-BA', ISO639: 'bs', ISO3166: 'ba' },
|
||
breton: { IETF: 'br-FR', ISO639: 'br', ISO3166: 'fr' },
|
||
buginese: { IETF: 'bug-ID', ISO639: 'bug', ISO3166: 'id' },
|
||
bulgarian: { IETF: 'bg-BG', ISO639: 'bg', ISO3166: 'bg' },
|
||
burmese: { IETF: 'my-MM', ISO639: 'my', ISO3166: 'mm' },
|
||
catalan: { IETF: 'ca-ES', ISO639: 'ca', ISO3166: 'es' },
|
||
'catalan valencian': { IETF: 'cav-ES', ISO639: 'cav', ISO3166: 'es' },
|
||
cebuano: { IETF: 'ceb-PH', ISO639: 'ceb', ISO3166: 'ph' },
|
||
'central atlas tamazight': { IETF: 'tzm-MA', ISO639: 'tzm', ISO3166: 'ma' },
|
||
'central aymara': { IETF: 'ayr-BO', ISO639: 'ayr', ISO3166: 'bo' },
|
||
'central kanuri (latin script)': { IETF: 'knc-NG', ISO639: 'knc', ISO3166: 'ng' },
|
||
'chadian arabic': { IETF: 'shu-TD', ISO639: 'shu', ISO3166: 'td' },
|
||
chamorro: { IETF: 'ch-GU', ISO639: 'ch', ISO3166: 'gu' },
|
||
cherokee: { IETF: 'chr-US', ISO639: 'chr', ISO3166: 'us' },
|
||
chhattisgarhi: { IETF: 'hne-IN', ISO639: 'hne', ISO3166: 'in' },
|
||
'chinese trad. (hong kong)': { IETF: 'zh-HK', ISO639: 'zh', ISO3166: 'hk' },
|
||
'chinese traditional': { IETF: 'zh-TW', ISO639: 'zh', ISO3166: 'tw' },
|
||
'chinese traditional macau': { IETF: 'zh-MO', ISO639: 'zh', ISO3166: 'mo' },
|
||
chittagonian: { IETF: 'ctg-BD', ISO639: 'ctg', ISO3166: 'bd' },
|
||
chokwe: { IETF: 'cjk-AO', ISO639: 'cjk', ISO3166: 'ao' },
|
||
'classical greek': { IETF: 'grc-GR', ISO639: 'grc', ISO3166: 'gr' },
|
||
'comorian ngazidja': { IETF: 'zdj-KM', ISO639: 'zdj', ISO3166: 'km' },
|
||
coptic: { IETF: 'cop-EG', ISO639: 'cop', ISO3166: 'eg' },
|
||
'crimean tatar': { IETF: 'crh-RU', ISO639: 'crh', ISO3166: 'tr' },
|
||
'crioulo upper guinea': { IETF: 'pov-GW', ISO639: 'pov', ISO3166: 'gw' },
|
||
croatian: { IETF: 'hr-HR', ISO639: 'hr', ISO3166: 'hr' },
|
||
'serbo-croatian': { IETF: 'sr-Cyrl-RS', ISO639: 'sh', ISO3166: 'sr' },
|
||
czech: { IETF: 'cs-CZ', ISO639: 'cs', ISO3166: 'cz' },
|
||
danish: { IETF: 'da-DK', ISO639: 'da', ISO3166: 'dk' },
|
||
dari: { IETF: 'prs-AF', ISO639: 'prs', ISO3166: 'af' },
|
||
dimli: { IETF: 'diq-TR', ISO639: 'diq', ISO3166: 'tr' },
|
||
dyula: { IETF: 'dyu-CI', ISO639: 'dyu', ISO3166: 'ci' },
|
||
dzongkha: { IETF: 'dz-BT', ISO639: 'dz', ISO3166: 'bt' },
|
||
'eastern yiddish': { IETF: 'ydd-US', ISO639: 'ydd', ISO3166: 'il' },
|
||
emakhuwa: { IETF: 'vmw-MZ', ISO639: 'vmw', ISO3166: 'mz' },
|
||
'english australia': { IETF: 'en-AU', ISO639: 'en', ISO3166: 'au' },
|
||
'english canada': { IETF: 'en-CA', ISO639: 'en', ISO3166: 'ca' },
|
||
'english india': { IETF: 'en-IN', ISO639: 'en', ISO3166: 'in' },
|
||
'english ireland': { IETF: 'en-IE', ISO639: 'en', ISO3166: 'ie' },
|
||
'english new zealand': { IETF: 'en-NZ', ISO639: 'en', ISO3166: 'nz' },
|
||
'english singapore': { IETF: 'en-SG', ISO639: 'en', ISO3166: 'sg' },
|
||
'english south africa': { IETF: 'en-ZA', ISO639: 'en', ISO3166: 'za' },
|
||
'english us': { IETF: 'en-US', ISO639: 'en', ISO3166: 'us' },
|
||
esperanto: { IETF: 'eo-EU', ISO639: 'eo', ISO3166: 'eu' },
|
||
estonian: { IETF: 'et-EE', ISO639: 'et', ISO3166: 'ee' },
|
||
ewe: { IETF: 'ee-GH', ISO639: 'ee', ISO3166: 'gh' },
|
||
fanagalo: { IETF: 'fn-FNG', ISO639: 'fn', ISO3166: 'za' },
|
||
faroese: { IETF: 'fo-FO', ISO639: 'fo', ISO3166: 'fo' },
|
||
fijian: { IETF: 'fj-FJ', ISO639: 'fj', ISO3166: 'fj' },
|
||
finnish: { IETF: 'fi-FI', ISO639: 'fi', ISO3166: 'fi' },
|
||
flemish: { IETF: 'nl-BE', ISO639: 'nl', ISO3166: 'be' },
|
||
fon: { IETF: 'fon-BJ', ISO639: 'fon', ISO3166: 'bj' },
|
||
french: { IETF: 'fr-FR', ISO639: 'fr', ISO3166: 'fr' },
|
||
'french canada': { IETF: 'fr-CA', ISO639: 'fr', ISO3166: 'ca' },
|
||
'french swiss': { IETF: 'fr-CH', ISO639: 'fr', ISO3166: 'ch' },
|
||
friulian: { IETF: 'fur-IT', ISO639: 'fur', ISO3166: 'it' },
|
||
fula: { IETF: 'ff-FUL', ISO639: 'ff', ISO3166: 'cm' },
|
||
galician: { IETF: 'gl-ES', ISO639: 'gl', ISO3166: 'es-ga' },
|
||
gamargu: { IETF: 'mfi-NG', ISO639: 'mfi', ISO3166: 'ng' },
|
||
garo: { IETF: 'grt-IN', ISO639: 'grt', ISO3166: 'in' },
|
||
georgian: { IETF: 'ka-GE', ISO639: 'ka', ISO3166: 'ge' },
|
||
german: { IETF: 'de-DE', ISO639: 'de', ISO3166: 'de' },
|
||
'Low German': { IETF: 'nl-NL', ISO639: 'nds', ISO3166: 'nl' },
|
||
gilbertese: { IETF: 'gil-KI', ISO639: 'gil', ISO3166: 'ki' },
|
||
glavda: { IETF: 'glw-NG', ISO639: 'glw', ISO3166: 'ng' },
|
||
greek: { IETF: 'el-GR', ISO639: 'el', ISO3166: 'gr' },
|
||
'grenadian creole english': { IETF: 'gcl-GD', ISO639: 'gcl', ISO3166: 'gd' },
|
||
guarani: { IETF: 'gn-PY', ISO639: 'gn', ISO3166: 'py' },
|
||
gujarati: { IETF: 'gu-IN', ISO639: 'gu', ISO3166: 'in' },
|
||
'guyanese creole english': { IETF: 'gyn-GY', ISO639: 'gyn', ISO3166: 'gy' },
|
||
'haitian creole french': { IETF: 'ht-HT', ISO639: 'ht', ISO3166: 'ht' },
|
||
'halh mongolian': { IETF: 'khk-MN', ISO639: 'khk', ISO3166: 'mn' },
|
||
hausa: { IETF: 'ha-NE', ISO639: 'ha', ISO3166: 'ne' },
|
||
hawaiian: { IETF: 'haw-US', ISO639: 'haw', ISO3166: 'xx' },
|
||
hebrew: { IETF: 'he-IL', ISO639: 'he', ISO3166: 'il' },
|
||
higi: { IETF: 'hig-NG', ISO639: 'hig', ISO3166: 'ng' },
|
||
hiligaynon: { IETF: 'hil-PH', ISO639: 'hil', ISO3166: 'ph' },
|
||
'hill mari': { IETF: 'mrj-RU', ISO639: 'mrj', ISO3166: 'xx' },
|
||
hmong: { IETF: 'hmn-CN', ISO639: 'hmn', ISO3166: 'cn' },
|
||
hungarian: { IETF: 'hu-HU', ISO639: 'hu', ISO3166: 'hu' },
|
||
icelandic: { IETF: 'is-IS', ISO639: 'is', ISO3166: 'is' },
|
||
'igbo ibo': { IETF: 'ibo-NG', ISO639: 'ibo', ISO3166: 'ng' },
|
||
'igbo ig': { IETF: 'ig-NG', ISO639: 'ig', ISO3166: 'ng' },
|
||
ilocano: { IETF: 'ilo-PH', ISO639: 'ilo', ISO3166: 'ph' },
|
||
'inuktitut greenlandic': { IETF: 'kl-GL', ISO639: 'kl', ISO3166: 'gl' },
|
||
'irish gaelic': { IETF: 'ga-IE', ISO639: 'ga', ISO3166: 'ie' },
|
||
italian: { IETF: 'it-IT', ISO639: 'it', ISO3166: 'it' },
|
||
'italian swiss': { IETF: 'it-CH', ISO639: 'it', ISO3166: 'ch' },
|
||
'jamaican creole english': { IETF: 'jam-JM', ISO639: 'jam', ISO3166: 'jm' },
|
||
japanese: { IETF: 'ja-JP', ISO639: 'ja', ISO3166: 'jp' },
|
||
javanese: { IETF: 'jv-ID', ISO639: 'jv', ISO3166: 'id' },
|
||
jingpho: { IETF: 'kac-MM', ISO639: 'kac', ISO3166: 'mm' },
|
||
"k'iche'": { IETF: 'quc-GT', ISO639: 'quc', ISO3166: 'gt' },
|
||
kabiye: { IETF: 'kbp-TG', ISO639: 'kbp', ISO3166: 'tg' },
|
||
kabuverdianu: { IETF: 'kea-CV', ISO639: 'kea', ISO3166: 'cv' },
|
||
kabylian: { IETF: 'kab-DZ', ISO639: 'kab', ISO3166: 'dz' },
|
||
kalenjin: { IETF: 'kln-KE', ISO639: 'kln', ISO3166: 'ke' },
|
||
kamba: { IETF: 'kam-KE', ISO639: 'kam', ISO3166: 'ke' },
|
||
kannada: { IETF: 'kn-IN', ISO639: 'kn', ISO3166: 'in' },
|
||
kanuri: { IETF: 'kr-KAU', ISO639: 'kr', ISO3166: 'xx' },
|
||
karen: { IETF: 'kar-MM', ISO639: 'kar', ISO3166: 'mm' },
|
||
'kashmiri (devanagari script)': { IETF: 'ks-IN', ISO639: 'ks', ISO3166: 'in' },
|
||
'kashmiri (arabic script)': { IETF: 'kas-IN', ISO639: 'kas', ISO3166: 'in' },
|
||
kazakh: { IETF: 'kk-KZ', ISO639: 'kk', ISO3166: 'kz' },
|
||
khasi: { IETF: 'kha-IN', ISO639: 'kha', ISO3166: 'in' },
|
||
khmer: { IETF: 'km-KH', ISO639: 'km', ISO3166: 'kh' },
|
||
'kikuyu kik': { IETF: 'kik-KE', ISO639: 'kik', ISO3166: 'ke' },
|
||
'kikuyu ki': { IETF: 'ki-KE', ISO639: 'ki', ISO3166: 'ke' },
|
||
kimbundu: { IETF: 'kmb-AO', ISO639: 'kmb', ISO3166: 'ao' },
|
||
kinyarwanda: { IETF: 'rw-RW', ISO639: 'rw', ISO3166: 'rw' },
|
||
kirundi: { IETF: 'rn-BI', ISO639: 'rn', ISO3166: 'bi' },
|
||
kisii: { IETF: 'guz-KE', ISO639: 'guz', ISO3166: 'ke' },
|
||
kongo: { IETF: 'kg-CG', ISO639: 'kg', ISO3166: 'cg' },
|
||
konkani: { IETF: 'kok-IN', ISO639: 'kok', ISO3166: 'in' },
|
||
korean: { IETF: 'ko-KR', ISO639: 'ko', ISO3166: 'kr' },
|
||
'northern kurdish': { IETF: 'kmr-TR', ISO639: 'kmr', ISO3166: 'tr' },
|
||
'kurdish sorani': { IETF: 'ckb-IQ', ISO639: 'ckb', ISO3166: 'iq' },
|
||
kyrgyz: { IETF: 'ky-KG', ISO639: 'ky', ISO3166: 'kg' },
|
||
lao: { IETF: 'lo-LA', ISO639: 'lo', ISO3166: 'la' },
|
||
latgalian: { IETF: 'ltg-LV', ISO639: 'ltg', ISO3166: 'lv' },
|
||
latin: { IETF: 'la-XN', ISO639: 'la', ISO3166: 'xx' },
|
||
latvian: { IETF: 'lv-LV', ISO639: 'lv', ISO3166: 'lg' },
|
||
ligurian: { IETF: 'lij-IT', ISO639: 'lij', ISO3166: 'it' },
|
||
limburgish: { IETF: 'li-NL', ISO639: 'li', ISO3166: 'nl' },
|
||
lingala: { IETF: 'ln-LIN', ISO639: 'ln', ISO3166: 'cd' },
|
||
lithuanian: { IETF: 'lt-LT', ISO639: 'lt', ISO3166: 'lt' },
|
||
lombard: { IETF: 'lmo-IT', ISO639: 'lmo', ISO3166: 'it' },
|
||
'luba-kasai': { IETF: 'lua-CD', ISO639: 'lua', ISO3166: 'cd' },
|
||
luganda: { IETF: 'lg-UG', ISO639: 'lg', ISO3166: 'ug' },
|
||
luhya: { IETF: 'luy-KE', ISO639: 'luy', ISO3166: 'ke' },
|
||
luo: { IETF: 'luo-KE', ISO639: 'luo', ISO3166: 'ke' },
|
||
luxembourgish: { IETF: 'lb-LU', ISO639: 'lb', ISO3166: 'lu' },
|
||
maa: { IETF: 'mas-KE', ISO639: 'mas', ISO3166: 'ke' },
|
||
macedonian: { IETF: 'mk-MK', ISO639: 'mk', ISO3166: 'mk' },
|
||
magahi: { IETF: 'mag-IN', ISO639: 'mag', ISO3166: 'in' },
|
||
maithili: { IETF: 'mai-IN', ISO639: 'mai', ISO3166: 'in' },
|
||
malagasy: { IETF: 'mg-MG', ISO639: 'mg', ISO3166: 'mg' },
|
||
malay: { IETF: 'ms-MY', ISO639: 'ms', ISO3166: 'my' },
|
||
malayalam: { IETF: 'ml-IN', ISO639: 'ml', ISO3166: 'in' },
|
||
maldivian: { IETF: 'dv-MV', ISO639: 'dv', ISO3166: 'mv' },
|
||
maltese: { IETF: 'mt-MT', ISO639: 'mt', ISO3166: 'mt' },
|
||
mandara: { IETF: 'mfi-CM', ISO639: 'mfi', ISO3166: 'cm' },
|
||
manipuri: { IETF: 'mni-IN', ISO639: 'mni', ISO3166: 'in' },
|
||
'manx gaelic': { IETF: 'gv-IM', ISO639: 'gv', ISO3166: 'im' },
|
||
maori: { IETF: 'mi-NZ', ISO639: 'mi', ISO3166: 'nz' },
|
||
marathi: { IETF: 'mr-IN', ISO639: 'mr', ISO3166: 'in' },
|
||
margi: { IETF: 'mrt-NG', ISO639: 'mrt', ISO3166: 'ng' },
|
||
mari: { IETF: 'mhr-RU', ISO639: 'mhr', ISO3166: 'xx' },
|
||
marshallese: { IETF: 'mh-MH', ISO639: 'mh', ISO3166: 'mh' },
|
||
mende: { IETF: 'men-SL', ISO639: 'men', ISO3166: 'sl' },
|
||
meru: { IETF: 'mer-KE', ISO639: 'mer', ISO3166: 'ke' },
|
||
mijikenda: { IETF: 'nyf-KE', ISO639: 'nyf', ISO3166: 'ke' },
|
||
minangkabau: { IETF: 'min-ID', ISO639: 'min', ISO3166: 'id' },
|
||
mizo: { IETF: 'lus-IN', ISO639: 'lus', ISO3166: 'in' },
|
||
mongolian: { IETF: 'mn-MN', ISO639: 'mn', ISO3166: 'mn' },
|
||
montenegrin: { IETF: 'sr-ME', ISO639: 'sr', ISO3166: 'me' },
|
||
morisyen: { IETF: 'mfe-MU', ISO639: 'mfe', ISO3166: 'mu' },
|
||
'moroccan arabic': { IETF: 'ar-MA', ISO639: 'ar', ISO3166: 'ma' },
|
||
mossi: { IETF: 'mos-BF', ISO639: 'mos', ISO3166: 'bf' },
|
||
ndau: { IETF: 'ndc-MZ', ISO639: 'ndc', ISO3166: 'mz' },
|
||
ndebele: { IETF: 'nr-ZA', ISO639: 'nr', ISO3166: 'za' },
|
||
nepali: { IETF: 'ne-NP', ISO639: 'ne', ISO3166: 'np' },
|
||
'nigerian fulfulde': { IETF: 'fuv-NG', ISO639: 'fuv', ISO3166: 'ng' },
|
||
niuean: { IETF: 'niu-NU', ISO639: 'niu', ISO3166: 'nu' },
|
||
'north azerbaijani': { IETF: 'azj-AZ', ISO639: 'azj', ISO3166: 'az' },
|
||
sesotho: { IETF: 'nso-ZA', ISO639: 'nso', ISO3166: 'za' },
|
||
'northern uzbek': { IETF: 'uzn-UZ', ISO639: 'uzn', ISO3166: 'uz' },
|
||
'norwegian bokm<6B>l': { IETF: 'nb-NO', ISO639: 'nb', ISO3166: 'no' },
|
||
'norwegian nynorsk': { IETF: 'nn-NO', ISO639: 'nn', ISO3166: 'no' },
|
||
nuer: { IETF: 'nus-SS', ISO639: 'nus', ISO3166: 'ss' },
|
||
nyanja: { IETF: 'ny-MW', ISO639: 'ny', ISO3166: 'mw' },
|
||
occitan: { IETF: 'oc-FR', ISO639: 'oc', ISO3166: 'fr' },
|
||
'occitan aran': { IETF: 'oc-ES', ISO639: 'oc', ISO3166: 'es-ct' },
|
||
odia: { IETF: 'or-IN', ISO639: 'or', ISO3166: 'in' },
|
||
oriya: { IETF: 'ory-IN', ISO639: 'ory', ISO3166: 'in' },
|
||
urdu: { IETF: 'ur-PK', ISO639: 'ur', ISO3166: 'pk' },
|
||
palauan: { IETF: 'pau-PW', ISO639: 'pau', ISO3166: 'pw' },
|
||
pali: { IETF: 'pi-IN', ISO639: 'pi', ISO3166: 'in' },
|
||
pangasinan: { IETF: 'pag-PH', ISO639: 'pag', ISO3166: 'ph' },
|
||
papiamentu: { IETF: 'pap-CW', ISO639: 'pap', ISO3166: 'cw' },
|
||
pashto: { IETF: 'ps-PK', ISO639: 'ps', ISO3166: 'pk' },
|
||
persian: { IETF: 'fa-IR', ISO639: 'fa', ISO3166: 'ir' },
|
||
pijin: { IETF: 'pis-SB', ISO639: 'pis', ISO3166: 'sb' },
|
||
'plateau malagasy': { IETF: 'plt-MG', ISO639: 'plt', ISO3166: 'mg' },
|
||
polish: { IETF: 'pl-PL', ISO639: 'pl', ISO3166: 'pl' },
|
||
portuguese: { IETF: 'pt-PT', ISO639: 'pt', ISO3166: 'pt' },
|
||
'portuguese brazil': { IETF: 'pt-BR', ISO639: 'pt', ISO3166: 'br' },
|
||
potawatomi: { IETF: 'pot-US', ISO639: 'pot', ISO3166: 'us' },
|
||
punjabi: { IETF: 'pa-IN', ISO639: 'pa', ISO3166: 'in' },
|
||
'punjabi (pakistan)': { IETF: 'pnb-PK', ISO639: 'pnb', ISO3166: 'pk' },
|
||
quechua: { IETF: 'qu-PE', ISO639: 'qu', ISO3166: 'pe' },
|
||
rohingya: { IETF: 'rhg-MM', ISO639: 'rhg', ISO3166: 'mm' },
|
||
rohingyalish: { IETF: 'rhl-MM', ISO639: 'rhl', ISO3166: 'mm' },
|
||
romanian: { IETF: 'ro-RO', ISO639: 'ro', ISO3166: 'ro' },
|
||
romansh: { IETF: 'roh-CH', ISO639: 'roh', ISO3166: 'ch' },
|
||
rundi: { IETF: 'run-BI', ISO639: 'run', ISO3166: 'bi' },
|
||
'saint lucian creole french': { IETF: 'acf-LC', ISO639: 'acf', ISO3166: 'lc' },
|
||
samoan: { IETF: 'sm-WS', ISO639: 'sm', ISO3166: 'ws' },
|
||
sango: { IETF: 'sg-CF', ISO639: 'sg', ISO3166: 'cf' },
|
||
sanskrit: { IETF: 'sa-IN', ISO639: 'sa', ISO3166: 'in' },
|
||
santali: { IETF: 'sat-IN', ISO639: 'sat', ISO3166: 'in' },
|
||
sardinian: { IETF: 'sc-IT', ISO639: 'sc', ISO3166: 'it' },
|
||
'scots gaelic': { IETF: 'gd-GB', ISO639: 'gd', ISO3166: 'gb-sct' },
|
||
sena: { IETF: 'seh-ZW', ISO639: 'seh', ISO3166: 'zw' },
|
||
'serbian cyrillic': { IETF: 'sr-Cyrl-RS', ISO639: 'sr', ISO3166: 'rs' },
|
||
'serbian latin': { IETF: 'sr-Latn-RS', ISO639: 'sr', ISO3166: 'rs' },
|
||
'seselwa creole french': { IETF: 'crs-SC', ISO639: 'crs', ISO3166: 'sc' },
|
||
'setswana (south africa)': { IETF: 'tn-ZA', ISO639: 'tn', ISO3166: 'za' },
|
||
shan: { IETF: 'shn-MM', ISO639: 'shn', ISO3166: 'mm' },
|
||
shona: { IETF: 'sn-ZW', ISO639: 'sn', ISO3166: 'zw' },
|
||
sicilian: { IETF: 'scn-IT', ISO639: 'scn', ISO3166: 'it' },
|
||
silesian: { IETF: 'szl-PL', ISO639: 'szl', ISO3166: 'pl' },
|
||
'sindhi snd': { IETF: 'snd-PK', ISO639: 'snd', ISO3166: 'pk' },
|
||
'sindhi sd': { IETF: 'sd-PK', ISO639: 'sd', ISO3166: 'pk' },
|
||
sinhala: { IETF: 'si-LK', ISO639: 'si', ISO3166: 'lk' },
|
||
slovak: { IETF: 'sk-SK', ISO639: 'sk', ISO3166: 'sk' },
|
||
slovenian: { IETF: 'sl-SI', ISO639: 'sl', ISO3166: 'si' },
|
||
somali: { IETF: 'so-SO', ISO639: 'so', ISO3166: 'so' },
|
||
'sotho southern': { IETF: 'st-LS', ISO639: 'st', ISO3166: 'ls' },
|
||
'south azerbaijani': { IETF: 'azb-AZ', ISO639: 'azb', ISO3166: 'az' },
|
||
'southern pashto': { IETF: 'pbt-PK', ISO639: 'pbt', ISO3166: 'pk' },
|
||
'southwestern dinka': { IETF: 'dik-SS', ISO639: 'dik', ISO3166: 'ss' },
|
||
'spanish argentina': { IETF: 'es-AR', ISO639: 'es', ISO3166: 'ar' },
|
||
'spanish colombia': { IETF: 'es-CO', ISO639: 'es', ISO3166: 'co' },
|
||
'spanish latin america': { IETF: 'es-419', ISO639: 'es', ISO3166: 'do' },
|
||
'spanish mexico': { IETF: 'es-MX', ISO639: 'es', ISO3166: 'mx' },
|
||
'spanish united states': { IETF: 'es-US', ISO639: 'es', ISO3166: 'es' },
|
||
'sranan tongo': { IETF: 'srn-SR', ISO639: 'srn', ISO3166: 'sr' },
|
||
'standard latvian': { IETF: 'lvs-LV', ISO639: 'lvs', ISO3166: 'lv' },
|
||
'standard malay': { IETF: 'zsm-MY', ISO639: 'zsm', ISO3166: 'my' },
|
||
sundanese: { IETF: 'su-ID', ISO639: 'su', ISO3166: 'id' },
|
||
swahili: { IETF: 'sw-KE', ISO639: 'sw', ISO3166: 'ke' },
|
||
swati: { IETF: 'ss-SZ', ISO639: 'ss', ISO3166: 'sz' },
|
||
swedish: { IETF: 'sv-SE', ISO639: 'sv', ISO3166: 'se' },
|
||
'swiss german': { IETF: 'de-CH', ISO639: 'de', ISO3166: 'ch' },
|
||
'syriac (aramaic)': { IETF: 'syc-TR', ISO639: 'syc', ISO3166: 'tr' },
|
||
tagalog: { IETF: 'tl-PH', ISO639: 'tl', ISO3166: 'ph' },
|
||
tahitian: { IETF: 'ty-PF', ISO639: 'ty', ISO3166: 'pf' },
|
||
tajik: { IETF: 'tg-TJ', ISO639: 'tg', ISO3166: 'tj' },
|
||
'tamashek (tuareg)': { IETF: 'tmh-DZ', ISO639: 'tmh', ISO3166: 'dz' },
|
||
tamasheq: { IETF: 'taq-ML', ISO639: 'taq', ISO3166: 'ml' },
|
||
'tamil india': { IETF: 'ta-IN', ISO639: 'ta', ISO3166: 'in' },
|
||
'tamil sri lanka': { IETF: 'ta-LK', ISO639: 'ta', ISO3166: 'lk' },
|
||
taroko: { IETF: 'trv-TW', ISO639: 'trv', ISO3166: 'tw' },
|
||
tatar: { IETF: 'tt-RU', ISO639: 'tt', ISO3166: 'ru' },
|
||
telugu: { IETF: 'te-IN', ISO639: 'te', ISO3166: 'in' },
|
||
tetum: { IETF: 'tet-TL', ISO639: 'tet', ISO3166: 'tl' },
|
||
thai: { IETF: 'th-TH', ISO639: 'th', ISO3166: 'th' },
|
||
tibetan: { IETF: 'bo-CN', ISO639: 'bo', ISO3166: 'cn' },
|
||
tigrinya: { IETF: 'ti-ET', ISO639: 'ti', ISO3166: 'et' },
|
||
'tok pisin': { IETF: 'tpi-PG', ISO639: 'tpi', ISO3166: 'pg' },
|
||
tokelauan: { IETF: 'tkl-TK', ISO639: 'tkl', ISO3166: 'tk' },
|
||
tongan: { IETF: 'to-TO', ISO639: 'to', ISO3166: 'to' },
|
||
'tosk albanian': { IETF: 'als-AL', ISO639: 'als', ISO3166: 'al' },
|
||
tsonga: { IETF: 'ts-ZA', ISO639: 'ts', ISO3166: 'za' },
|
||
tswa: { IETF: 'tsc-MZ', ISO639: 'tsc', ISO3166: 'mz' },
|
||
tswana: { IETF: 'tn-BW', ISO639: 'tn', ISO3166: 'bw' },
|
||
tumbuka: { IETF: 'tum-MW', ISO639: 'tum', ISO3166: 'mw' },
|
||
turkmen: { IETF: 'tk-TM', ISO639: 'tk', ISO3166: 'tm' },
|
||
tuvaluan: { IETF: 'tvl-TV', ISO639: 'tvl', ISO3166: 'tv' },
|
||
twi: { IETF: 'tw-GH', ISO639: 'tw', ISO3166: 'gh' },
|
||
udmurt: { IETF: 'udm-RU', ISO639: 'udm', ISO3166: 'xx' },
|
||
ukrainian: { IETF: 'uk-UA', ISO639: 'uk', ISO3166: 'ua' },
|
||
uma: { IETF: 'ppk-ID', ISO639: 'ppk', ISO3166: 'id' },
|
||
umbundu: { IETF: 'umb-AO', ISO639: 'umb', ISO3166: 'ao' },
|
||
'uyghur uig': { IETF: 'uig-CN', ISO639: 'uig', ISO3166: 'cn' },
|
||
'uyghur ug': { IETF: 'ug-CN', ISO639: 'ug', ISO3166: 'cn' },
|
||
uzbek: { IETF: 'uz-UZ', ISO639: 'uz', ISO3166: 'uz' },
|
||
venetian: { IETF: 'vec-IT', ISO639: 'vec', ISO3166: 'it' },
|
||
vietnamese: { IETF: 'vi-VN', ISO639: 'vi', ISO3166: 'vn' },
|
||
'vincentian creole english': { IETF: 'svc-VC', ISO639: 'svc', ISO3166: 'vc' },
|
||
'virgin islands creole english': { IETF: 'vic-US', ISO639: 'vic', ISO3166: 'vi' },
|
||
wallisian: { IETF: 'wls-WF', ISO639: 'wls', ISO3166: 'wf' },
|
||
'waray (philippines)': { IETF: 'war-PH', ISO639: 'war', ISO3166: 'ph' },
|
||
welsh: { IETF: 'cy-GB', ISO639: 'cy', ISO3166: 'gb-wls' },
|
||
'west central oromo': { IETF: 'gaz-ET', ISO639: 'gaz', ISO3166: 'et' },
|
||
'western persian': { IETF: 'pes-IR', ISO639: 'pes', ISO3166: 'ir' },
|
||
wolof: { IETF: 'wo-SN', ISO639: 'wo', ISO3166: 'sn' },
|
||
xhosa: { IETF: 'xh-ZA', ISO639: 'xh', ISO3166: 'za' },
|
||
yiddish: { IETF: 'yi-YD', ISO639: 'yi', ISO3166: 'il' },
|
||
yoruba: { IETF: 'yo-NG', ISO639: 'yo', ISO3166: 'ng' },
|
||
zulu: { IETF: 'zu-ZA', ISO639: 'zu', ISO3166: 'za' }
|
||
};
|
||
|
||
module.exports = { languages };
|