bcp47-helper
Version:
A lightweight TypeScript library for parsing, validating, and managing BCP 47 language tags in Node.js and browser environments.
3 lines (2 loc) • 8.14 kB
JavaScript
!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((a="undefined"!=typeof globalThis?globalThis:a||self).BCP47Helper={})}(this,(function(a){"use strict";function e(a){var e=a.trim().split("-");return 2===e.length?"".concat(e[0].toLowerCase(),"-").concat(e[1].toUpperCase()):a.toLowerCase()}var n={"af-ZA":{code:"af-ZA",fullName:"Afrikaans South Africa",language:"Afrikaans",region:"South Africa",description:"South African Afrikaans"},"am-ET":{code:"am-ET",fullName:"Amharic Ethiopia",language:"Amharic",region:"Ethiopia",description:"Ethiopian Amharic"},"ar-XA":{code:"ar-XA",fullName:"Arabic Standard",language:"Arabic",region:"Standard",description:"Modern Standard Arabic"},"bg-BG":{code:"bg-BG",fullName:"Bulgarian Bulgaria",language:"Bulgarian",region:"Bulgaria",description:"Bulgarian"},"bn-BD":{code:"bn-BD",fullName:"Bengal Bangladesh",language:"Bengali",region:"Bangladesh",description:"Bangladeshi Bengali"},"bn-IN":{code:"bn-IN",fullName:"Bengal India",language:"Bengali",region:"India",description:"Indian Bengali"},"ca-ES":{code:"ca-ES",fullName:"Catalan Spain",language:"Catalan",region:"Spain",description:"Catalan"},"cmn-CN":{code:"cmn-CN",fullName:"Chinese Mainland",language:"Chinese",region:"China",description:"Mandarin Chinese (Simplified)"},"cmn-TW":{code:"cmn-TW",fullName:"Chinese Taiwan",language:"Chinese",region:"Taiwan",description:"Mandarin Chinese (Traditional)"},"cs-CZ":{code:"cs-CZ",fullName:"Czech Czechia",language:"Czech",region:"Czechia",description:"Czech"},"da-DK":{code:"da-DK",fullName:"Danish Denmark",language:"Danish",region:"Denmark",description:"Danish"},"de-DE":{code:"de-DE",fullName:"German Germany",language:"German",region:"Germany",description:"Standard German"},"el-GR":{code:"el-GR",fullName:"Greek Greece",language:"Greek",region:"Greece",description:"Modern Greek"},"en-AU":{code:"en-AU",fullName:"English Australia",language:"English",region:"Australia",description:"Australian English"},"en-GB":{code:"en-GB",fullName:"English GB",language:"English",region:"United Kingdom",description:"British English"},"en-IN":{code:"en-IN",fullName:"English India",language:"English",region:"India",description:"Indian English"},"en-US":{code:"en-US",fullName:"English US",language:"English",region:"United States",description:"US English"},"es-ES":{code:"es-ES",fullName:"Spanish Spain",language:"Spanish",region:"Spain",description:"European Spanish"},"es-US":{code:"es-US",fullName:"Spanish US",language:"Spanish",region:"United States",description:"US Spanish"},"eu-ES":{code:"eu-ES",fullName:"Basque Spain",language:"Basque",region:"Spain",description:"Basque"},"fi-FI":{code:"fi-FI",fullName:"Finnish Finland",language:"Finnish",region:"Finland",description:"Finnish"},"fil-PH":{code:"fil-PH",fullName:"Filipino Philippines",language:"Filipino",region:"Philippines",description:"Filipino"},"fr-CA":{code:"fr-CA",fullName:"French Canada",language:"French",region:"Canada",description:"Canadian French"},"fr-FR":{code:"fr-FR",fullName:"French France",language:"French",region:"France",description:"European French"},"gl-ES":{code:"gl-ES",fullName:"Galician Spain",language:"Galician",region:"Spain",description:"Galician"},"gu-IN":{code:"gu-IN",fullName:"Gujarati India",language:"Gujarati",region:"India",description:"Gujarati"},"hi-IN":{code:"hi-IN",fullName:"Hindi India",language:"Hindi",region:"India",description:"Indian Hindi"},"hu-HU":{code:"hu-HU",fullName:"Hungarian Hungary",language:"Hungarian",region:"Hungary",description:"Hungarian"},"id-ID":{code:"id-ID",fullName:"Indonesian Indonesia",language:"Indonesian",region:"Indonesia",description:"Indonesian"},"is-IS":{code:"is-IS",fullName:"Icelandic Iceland",language:"Icelandic",region:"Iceland",description:"Icelandic"},"it-IT":{code:"it-IT",fullName:"Italian Italy",language:"Italian",region:"Italy",description:"Standard Italian"},"ja-JP":{code:"ja-JP",fullName:"Japanese Japan",language:"Japanese",region:"Japan",description:"Standard Japanese"},"kn-IN":{code:"kn-IN",fullName:"Kannada India",language:"Kannada",region:"India",description:"Kannada"},"ko-KR":{code:"ko-KR",fullName:"Korean South Korea",language:"Korean",region:"South Korea",description:"Standard Korean"},"lt-LT":{code:"lt-LT",fullName:"Lithuanian Lithuania",language:"Lithuanian",region:"Lithuania",description:"Lithuanian"},"lv-LV":{code:"lv-LV",fullName:"Latvian Latvia",language:"Latvian",region:"Latvia",description:"Latvian"},"ml-IN":{code:"ml-IN",fullName:"Malayalam India",language:"Malayalam",region:"India",description:"Malayalam"},"mr-IN":{code:"mr-IN",fullName:"Marathi India",language:"Marathi",region:"India",description:"Marathi"},"ms-MY":{code:"ms-MY",fullName:"Malay Malaysia",language:"Malay",region:"Malaysia",description:"Malay"},"nb-NO":{code:"nb-NO",fullName:"Norwegian Norway",language:"Norwegian",region:"Norway",description:"Norwegian Bokmål"},"nl-BE":{code:"nl-BE",fullName:"Dutch Belgium",language:"Dutch",region:"Belgium",description:"Belgian Dutch"},"nl-NL":{code:"nl-NL",fullName:"Dutch Netherlands",language:"Dutch",region:"Netherlands",description:"Standard Dutch"},"pa-IN":{code:"pa-IN",fullName:"Punjabi India",language:"Punjabi",region:"India",description:"Punjabi"},"pl-PL":{code:"pl-PL",fullName:"Polish Poland",language:"Polish",region:"Poland",description:"Polish"},"pt-BR":{code:"pt-BR",fullName:"Portuguese Brazil",language:"Portuguese",region:"Brazil",description:"Brazilian Portuguese"},"pt-PT":{code:"pt-PT",fullName:"Portuguese Portugal",language:"Portuguese",region:"Portugal",description:"European Portuguese"},"ro-RO":{code:"ro-RO",fullName:"Romanian Romania",language:"Romanian",region:"Romania",description:"Romanian"},"ru-RU":{code:"ru-RU",fullName:"Russian Russia",language:"Russian",region:"Russia",description:"Standard Russian"},"sk-SK":{code:"sk-SK",fullName:"Slovak Slovakia",language:"Slovak",region:"Slovakia",description:"Slovak"},"sr-RS":{code:"sr-RS",fullName:"Serbian Serbia",language:"Serbian",region:"Serbia",description:"Serbian"},"sv-SE":{code:"sv-SE",fullName:"Swedish Sweden",language:"Swedish",region:"Sweden",description:"Swedish"},"ta-IN":{code:"ta-IN",fullName:"Tamil India",language:"Tamil",region:"India",description:"Tamil"},"te-IN":{code:"te-IN",fullName:"Telugu India",language:"Telugu",region:"India",description:"Telugu"},"th-TH":{code:"th-TH",fullName:"Thai Thailand",language:"Thai",region:"Thailand",description:"Thai"},"tr-TR":{code:"tr-TR",fullName:"Turkish Turkey",language:"Turkish",region:"Turkey",description:"Turkish"},"uk-UA":{code:"uk-UA",fullName:"Ukrainian Ukraine",language:"Ukrainian",region:"Ukraine",description:"Ukrainian"},"ur-IN":{code:"ur-IN",fullName:"Urdu India",language:"Urdu",region:"India",description:"Urdu"},"vi-VN":{code:"vi-VN",fullName:"Vietnamese Vietnam",language:"Vietnamese",region:"Vietnam",description:"Vietnamese"},"yue-HK":{code:"yue-HK",fullName:"Cantonese Hong Kong",language:"Cantonese",region:"Hong Kong",description:"Cantonese"}};a.getAvailableVariants=function(a){var e={};return("string"==typeof a?[a]:a).forEach((function(a){for(var i=0,l=Object.entries(n);i<l.length;i++){var r=l[i],o=r[0],g=r[1];o.toLowerCase().startsWith(a.toLowerCase())&&(e[o]=g.fullName)}})),e},a.getLanguageInfo=function(a){var i=e(a);return n[i]||null},a.groupByLanguage=function(){for(var a={},e=0,i=Object.keys(n);e<i.length;e++){var l=i[e],r=l.split("-")[0];a[r]||(a[r]=[]),a[r].push(l)}return a},a.listAllLanguages=function(){for(var a={},e=0,i=Object.entries(n);e<i.length;e++){var l=i[e],r=l[0],o=l[1];a[r]=o.fullName}return a},a.mapLanguages=function(a){var i={};return a.forEach((function(a){var l=e(a);n[l]&&(i[l]=n[l].fullName)})),i},a.searchByName=function(a){for(var e={},i=a.toLowerCase(),l=0,r=Object.entries(n);l<r.length;l++){var o=r[l],g=o[0],u=o[1];(u.fullName.toLowerCase().includes(i)||u.language.toLowerCase().includes(i)||u.region.toLowerCase().includes(i))&&(e[g]=u.fullName)}return e},a.validateCode=function(a){var i=e(a);return!!n[i]},Object.defineProperty(a,"__esModule",{value:!0})}));
//# sourceMappingURL=bcp47-helper.min.js.map