UNPKG

@benshi.ai/js-sdk

Version:

Benshi SDK

236 lines (225 loc) 6.93 kB
const codes = ` case .ab: return "Abkhazian" case .aa: return "Afar" case .af: return "Afrikaans" case .ak: return "Akan" case .sq: return "Albanian" case .am: return "Amharic" case .ar: return "Arabic" case .an: return "Aragonese" case .hy: return "Armenian" case .as: return "Assamese" case .av: return "Avaric" case .ae: return "Avestan" case .ay: return "Aymara" case .az: return "Azerbaijani" case .bm: return "Bambara" case .ba: return "Bashkir" case .eu: return "Basque" case .be: return "Belarusian" case .bn: return "Bengali" case .bh: return "Bihari languages" case .bi: return "Bislama" case .bs: return "Bosnian" case .br: return "Breton" case .bg: return "Bulgarian" case .my: return "Burmese" case .ca: return "Catalan, Valencian" case .ch: return "Chamorro" case .ce: return "Chechen" case .ny: return "Chichewa, Chewa, Nyanja" case .zh: return "Chinese" case .cv: return "Chuvash" case .kw: return "Cornish" case .co: return "Corsican" case .cr: return "Cree" case .hr: return "Croatian" case .cs: return "Czech" case .da: return "Danish" case .dv: return "Divehi, Dhivehi, Maldivian" case .nl: return "Dutch, Flemish" case .dz: return "Dzongkha" case .en: return "English" case .eo: return "Esperanto" case .et: return "Estonian" case .ee: return "Ewe" case .fo: return "Faroese" case .fj: return "Fijian" case .fi: return "Finnish" case .fr: return "French" case .ff: return "Fulah" case .gl: return "Galician" case .ka: return "Georgian" case .de: return "German" case .el: return "Greek (modern)," case .gn: return "Guaraní" case .gu: return "Gujarati" case .ht: return "Haitian, Haitian Creole" case .ha: return "Hausa" case .he: return "Hebrew (modern)," case .hz: return "Herero" case .hi: return "Hindi" case .ho: return "Hiri Motu" case .hu: return "Hungarian" case .ia: return "Interlingua" case .id: return "Indonesian" case .ie: return "Interlingue" case .ga: return "Irish" case .ig: return "Igbo" case .ik: return "Inupiaq" case .io: return "Ido" case .is: return "Icelandic" case .it: return "Italian" case .iu: return "Inuktitut" case .ja: return "Japanese" case .jv: return "Javanese" case .kl: return "Kalaallisut, Greenlandic" case .kn: return "Kannada" case .kr: return "Kanuri" case .ks: return "Kashmiri" case .kk: return "Kazakh" case .km: return "Central Khmer" case .ki: return "Kikuyu, Gikuyu" case .rw: return "Kinyarwanda" case .ky: return "Kirghiz, Kyrgyz" case .kv: return "Komi" case .kg: return "Kongo" case .ko: return "Korean" case .ku: return "Kurdish" case .kj: return "Kuanyama, Kwanyama" case .la: return "Latin" case .lb: return "Luxembourgish, Letzeburgesch" case .lg: return "Ganda" case .li: return "Limburgan, Limburger, Limburgish" case .ln: return "Lingala" case .lo: return "Lao" case .lt: return "Lithuanian" case .lu: return "Luba-Katanga" case .lv: return "Latvian" case .gv: return "Manx" case .mk: return "Macedonian" case .mg: return "Malagasy" case .ms: return "Malay" case .ml: return "Malayalam" case .mt: return "Maltese" case .mi: return "Maori" case .mr: return "Marathi" case .mh: return "Marshallese" case .mn: return "Mongolian" case .na: return "Nauru" case .nv: return "Navajo, Navaho" case .nd: return "North Ndebele" case .ne: return "Nepali" case .ng: return "Ndonga" case .nb: return "Norwegian Bokmål" case .nn: return "Norwegian Nynorsk" case .no: return "Norwegian" case .ii: return "Sichuan Yi, Nuosu" case .nr: return "South Ndebele" case .oc: return "Occitan" case .oj: return "Ojibwa" case .cu: return "Church Slavic, Church Slavonic, Old Church Slavonic, Old Slavonic, Old Bulgarian" case .om: return "Oromo" case .or: return "Oriya" case .os: return "Ossetian, Ossetic" case .pa: return "Panjabi, Punjabi" case .pi: return "Pali" case .fa: return "Persian" case .pox: return "Polabian" case .pl: return "Polish" case .ps: return "Pashto, Pushto" case .pt: return "Portuguese" case .qu: return "Quechua" case .rm: return "Romansh" case .rn: return "Rundi" case .ro: return "Romanian, Moldavian, Moldovan" case .ru: return "Russian" case .sa: return "Sanskrit" case .sc: return "Sardinian" case .sd: return "Sindhi" case .se: return "Northern Sami" case .sm: return "Samoan" case .sg: return "Sango" case .sr: return "Serbian" case .gd: return "Gaelic, Scottish Gaelic" case .sn: return "Shona" case .si: return "Sinhala, Sinhalese" case .sk: return "Slovak" case .sl: return "Slovenian" case .so: return "Somali" case .st: return "Southern Sotho" case .es: return "Spanish, Castilian" case .su: return "Sundanese" case .sw: return "Swahili" case .ss: return "Swati" case .sv: return "Swedish" case .ta: return "Tamil" case .te: return "Telugu" case .tg: return "Tajik" case .th: return "Thai" case .ti: return "Tigrinya" case .bo: return "Tibetan" case .tk: return "Turkmen" case .tl: return "Tagalog" case .tn: return "Tswana" case .to: return "Tonga (Tonga Islands)," case .tr: return "Turkish" case .ts: return "Tsonga" case .tt: return "Tatar" case .tw: return "Twi" case .ty: return "Tahitian" case .ug: return "Uighur, Uyghur" case .uk: return "Ukrainian" case .ur: return "Urdu" case .uz: return "Uzbek" case .ve: return "Venda" case .vi: return "Vietnamese" case .vo: return "Volapük" case .wa: return "Walloon" case .cy: return "Welsh" case .wo: return "Wolof" case .fy: return "Western Frisian" case .xh: return "Xhosa" case .yi: return "Yiddish" case .yo: return "Yoruba" case .za: return "Zhuang, Chuang" case .zu: return "Zulu" ` let tsCodes = {} tsCodes['Hebrew'] = 'he'.toUpperCase() tsCodes['Greek'] = 'el'.toUpperCase() tsCodes['Slavonic'] = 'cu'.toUpperCase() tsCodes['Slavic'] = 'cu'.toUpperCase() tsCodes['Tonga'] = 'to'.toUpperCase() tsCodes['Polabian'] = 'pox'.toUpperCase() const result = codes .split('\n') .map(line => line.split(' ')) .map(fields => [fields[1], fields.slice(3)]) .filter(([country, languages]) => languages.length === 1) .forEach(([country, languages]) => { if (!country) return // languages[0] -> '"Thai"' ] tsCodes[languages[0].slice(1, -1)] = country.slice(1, 3).toUpperCase() }) const multiple = codes .split('\n') .map(line => [line.slice(0, "case .ab: return".length), line.slice("case .ab: return".length)]) .filter(([short, large]) => short.length !== 0) .forEach(([fixedPart, countries]) => { if (!fixedPart.length) return const countryInitials = fixedPart.split(' ')[1].slice(1, -1) const multipleCountries = countries.trim().split(',') .map(country => country.replace('"', '').trim()) if (multipleCountries.length === 1) { return } if (['el', 'he', 'cu', 'to'].includes(countryInitials)) { return } for (let country of multipleCountries) { console.warn('country: ', country) tsCodes[country.split(' ').join('')] = countryInitials.toUpperCase() } }) console.warn(tsCodes)