google-translate-api-x
Version:
A free and unlimited API for Google Translate
303 lines (295 loc) • 6.27 kB
JavaScript
;
/**
*
* Generated from https://translate.google.com
*
* In tools/updatelanguages.mjs
*
* The languages that Google Translate supports (as of 5/15/16) alongside with their ISO 639-1 codes
* See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
*/
const langs = {
'auto': 'Detect language',
'auto': 'Automatic',
'ab': 'Abkhaz',
'ace': 'Acehnese',
'ach': 'Acholi',
'aa': 'Afar',
'af': 'Afrikaans',
'sq': 'Albanian',
'alz': 'Alur',
'am': 'Amharic',
'ar': 'Arabic',
'hy': 'Armenian',
'as': 'Assamese',
'av': 'Avar',
'awa': 'Awadhi',
'ay': 'Aymara',
'az': 'Azerbaijani',
'ban': 'Balinese',
'bal': 'Baluchi',
'bm': 'Bambara',
'bci': 'Baoulé',
'ba': 'Bashkir',
'eu': 'Basque',
'btx': 'Batak Karo',
'bts': 'Batak Simalungun',
'bbc': 'Batak Toba',
'be': 'Belarusian',
'bem': 'Bemba',
'bn': 'Bengali',
'bew': 'Betawi',
'bho': 'Bhojpuri',
'bik': 'Bikol',
'bs': 'Bosnian',
'br': 'Breton',
'bg': 'Bulgarian',
'bua': 'Buryat',
'yue': 'Cantonese',
'ca': 'Catalan',
'ceb': 'Cebuano',
'ch': 'Chamorro',
'ce': 'Chechen',
'ny': 'Chichewa',
'zh-CN': 'Chinese (Simplified)',
'zh-TW': 'Chinese (Traditional)',
'chk': 'Chuukese',
'cv': 'Chuvash',
'co': 'Corsican',
'crh': 'Crimean Tatar (Cyrillic)',
'crh-Latn': 'Crimean Tatar (Latin)',
'hr': 'Croatian',
'cs': 'Czech',
'da': 'Danish',
'fa-AF': 'Dari',
'dv': 'Dhivehi',
'din': 'Dinka',
'doi': 'Dogri',
'dov': 'Dombe',
'nl': 'Dutch',
'dyu': 'Dyula',
'dz': 'Dzongkha',
'en': 'English',
'eo': 'Esperanto',
'et': 'Estonian',
'ee': 'Ewe',
'fo': 'Faroese',
'fj': 'Fijian',
'tl': 'Filipino',
'fi': 'Finnish',
'fon': 'Fon',
'fr': 'French',
'fr-CA': 'French (Canada)',
'fy': 'Frisian',
'fur': 'Friulian',
'ff': 'Fulani',
'gaa': 'Ga',
'gl': 'Galician',
'ka': 'Georgian',
'de': 'German',
'el': 'Greek',
'gn': 'Guarani',
'gu': 'Gujarati',
'ht': 'Haitian Creole',
'cnh': 'Hakha Chin',
'ha': 'Hausa',
'haw': 'Hawaiian',
'he': 'Hebrew',
'iw': 'Hebrew',
'hil': 'Hiligaynon',
'hi': 'Hindi',
'hmn': 'Hmong',
'hu': 'Hungarian',
'hrx': 'Hunsrik',
'iba': 'Iban',
'is': 'Icelandic',
'ig': 'Igbo',
'ilo': 'Ilocano',
'id': 'Indonesian',
'iu-Latn': 'Inuktut (Latin)',
'iu': 'Inuktut (Syllabics)',
'ga': 'Irish',
'it': 'Italian',
'jam': 'Jamaican Patois',
'ja': 'Japanese',
'jw': 'Javanese',
'kac': 'Jingpo',
'kl': 'Kalaallisut',
'kn': 'Kannada',
'kr': 'Kanuri',
'pam': 'Kapampangan',
'kk': 'Kazakh',
'kha': 'Khasi',
'km': 'Khmer',
'cgg': 'Kiga',
'kg': 'Kikongo',
'rw': 'Kinyarwanda',
'ktu': 'Kituba',
'trp': 'Kokborok',
'kv': 'Komi',
'gom': 'Konkani',
'ko': 'Korean',
'kri': 'Krio',
'ku': 'Kurdish (Kurmanji)',
'ckb': 'Kurdish (Sorani)',
'ky': 'Kyrgyz',
'lo': 'Lao',
'ltg': 'Latgalian',
'la': 'Latin',
'lv': 'Latvian',
'lij': 'Ligurian',
'li': 'Limburgish',
'ln': 'Lingala',
'lt': 'Lithuanian',
'lmo': 'Lombard',
'lg': 'Luganda',
'luo': 'Luo',
'lb': 'Luxembourgish',
'mk': 'Macedonian',
'mad': 'Madurese',
'mai': 'Maithili',
'mak': 'Makassar',
'mg': 'Malagasy',
'ms': 'Malay',
'ms-Arab': 'Malay (Jawi)',
'ml': 'Malayalam',
'mt': 'Maltese',
'mam': 'Mam',
'gv': 'Manx',
'mi': 'Maori',
'mr': 'Marathi',
'mh': 'Marshallese',
'mwr': 'Marwadi',
'mfe': 'Mauritian Creole',
'chm': 'Meadow Mari',
'mni-Mtei': 'Meiteilon (Manipuri)',
'min': 'Minang',
'lus': 'Mizo',
'mn': 'Mongolian',
'my': 'Myanmar (Burmese)',
'nhe': 'Nahuatl (Eastern Huasteca)',
'ndc-ZW': 'Ndau',
'nr': 'Ndebele (South)',
'new': 'Nepalbhasa (Newari)',
'ne': 'Nepali',
'bm-Nkoo': 'NKo',
'no': 'Norwegian',
'nus': 'Nuer',
'oc': 'Occitan',
'or': 'Odia (Oriya)',
'om': 'Oromo',
'os': 'Ossetian',
'pag': 'Pangasinan',
'pap': 'Papiamento',
'ps': 'Pashto',
'fa': 'Persian',
'pl': 'Polish',
'pt': 'Portuguese',
'pt': 'Portuguese (Brazil)',
'pt-PT': 'Portuguese (Portugal)',
'pa': 'Punjabi',
'pa': 'Punjabi (Gurmukhi)',
'pa-Arab': 'Punjabi (Shahmukhi)',
'qu': 'Quechua',
'kek': 'Qʼeqchiʼ',
'rom': 'Romani',
'ro': 'Romanian',
'rn': 'Rundi',
'ru': 'Russian',
'se': 'Sami (North)',
'sm': 'Samoan',
'sg': 'Sango',
'sa': 'Sanskrit',
'sat-Latn': 'Santali (Latin)',
'sat': 'Santali (Ol Chiki)',
'gd': 'Scots Gaelic',
'nso': 'Sepedi',
'sr': 'Serbian',
'st': 'Sesotho',
'crs': 'Seychellois Creole',
'shn': 'Shan',
'sn': 'Shona',
'scn': 'Sicilian',
'szl': 'Silesian',
'sd': 'Sindhi',
'si': 'Sinhala',
'sk': 'Slovak',
'sl': 'Slovenian',
'so': 'Somali',
'es': 'Spanish',
'su': 'Sundanese',
'sus': 'Susu',
'sw': 'Swahili',
'ss': 'Swati',
'sv': 'Swedish',
'ty': 'Tahitian',
'tg': 'Tajik',
'ber-Latn': 'Tamazight',
'ber': 'Tamazight (Tifinagh)',
'ta': 'Tamil',
'tt': 'Tatar',
'te': 'Telugu',
'tet': 'Tetum',
'th': 'Thai',
'bo': 'Tibetan',
'ti': 'Tigrinya',
'tiv': 'Tiv',
'tpi': 'Tok Pisin',
'to': 'Tongan',
'lua': 'Tshiluba',
'ts': 'Tsonga',
'tn': 'Tswana',
'tcy': 'Tulu',
'tum': 'Tumbuka',
'tr': 'Turkish',
'tk': 'Turkmen',
'tyv': 'Tuvan',
'ak': 'Twi',
'udm': 'Udmurt',
'uk': 'Ukrainian',
'ur': 'Urdu',
'ug': 'Uyghur',
'uz': 'Uzbek',
've': 'Venda',
'vec': 'Venetian',
'vi': 'Vietnamese',
'war': 'Waray',
'cy': 'Welsh',
'wo': 'Wolof',
'xh': 'Xhosa',
'sah': 'Yakut',
'yi': 'Yiddish',
'yo': 'Yoruba',
'yua': 'Yucatec Maya',
'zap': 'Zapotec',
'zu': 'Zulu',
};
/**
* Returns the ISO 639-1 code of the desiredLang – if it is supported by Google Translate
* @param {string} desiredLang – the name or the code (case sensitive) of the desired language
* @returns {string|null} The ISO 639-1 code of the language or null if the language is not supported
*/
function getCode(desiredLang) {
if (typeof desiredLang !== 'string') {
return null;
}
if (langs[desiredLang]) {
return desiredLang;
}
const keys = Object.keys(langs).filter(function (key) {
if (typeof langs[key] !== 'string') {
return false;
}
return langs[key].toLowerCase() === desiredLang.toLowerCase();
});
return keys[0] ?? null;
}
/**
* Returns true if the desiredLang is supported by Google Translate and false otherwise
* @param desiredLang – the ISO 639-1 code or the name of the desired language
* @returns {boolean}
*/
function isSupported(desiredLang) {
return getCode(desiredLang) !== null;
}
module.exports = { langs, isSupported, getCode };