latvian-grammar
Version:
Latvian grammar library
3 lines (2 loc) • 3.58 kB
JavaScript
!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports):"function"==typeof define&&define.amd?define(["exports"],s):s((e=e||self).latvianGrammar={})}(this,function(e){var s=e=>i.includes(e),i="aAāĀeEēĒiIīĪoOōŌuUūŪ",n="bBcCčČdDfFgGģĢhHjJkKķĶlLļĻmMnNņŅpPrRŗŖsSšŠtTvVzZžŽ",a={masculine:"masculine",feminine:"feminine"},t=function(e,s){void 0===s&&(s=a.masculine);var i=e.substr(-1),n=e.substr(-2);if(s===a.masculine){if(o.includes(e))return r(2,"s",!0);if("ļaudis"===e)return r(6,"is",!0)}var t=s===a.masculine?u:l,m=t[n]?n:i;if(!t[m])throw Error("invalid word: "+e);return r(t[m],m)},r=function(e,s,i){return void 0===i&&(i=!1),{declensionCase:e,suffix:s,exception:i}},u={s:1,"š":1,is:2,us:3,a:4,e:5},l={a:4,e:5,s:6},o=["mēness","akmens","asmens","ūdens","rudens","zibens","suns","sāls"],m=(e,s)=>{var{declensionCase:i,suffix:n}=s,a=e.slice(0,-n.length);if(!c[i]||f[i].includes(e)||d[i].some(s=>e.endsWith(s)))return a;for(var[t,r]of v[i])if(a.endsWith(t))return""+a.slice(0,-t.length)+r},c={2:{dz:"dž",sn:"šņ",zn:"žņ",sl:"šļ",zl:"žļ",ln:"ļņ",b:"bj",m:"mj",p:"pj",v:"vj",t:"š",d:"ž",c:"č",s:"š",z:"ž",n:"ņ",l:"ļ"},5:{sn:"šņ",zn:"žņ",dz:"dž",kst:"kp",b:"bj",m:"mj",p:"pj",v:"vj",c:"č",t:"š",d:"ž",s:"š",z:"ž",n:"ņ",l:"ļ"},6:{sn:"šņ",st:"š",v:"vj",t:"š",d:"ž",s:"š",z:"ž",n:"ņ",l:"ļ"}},v=Object.fromEntries(Object.entries(c).map(e=>{var[s,i]=e;return[s,Object.entries(i)]})),d={2:["astis","jis","ķis","ģis","ris","skatis"],5:["aste","fe","ģe","ķe","mate","pēde","ste"]},f={2:["tētis","viesis"],5:["apaļmute","apšaude","balamute","balle (mērvienība)","bāze","bise","bote","brīze","flote","fronte","gāze (vielas stāvoklis)","gide","kase","kušete","mise","mute","pase","piešaude","planšete","rase","sarakste","šprote","takse","tirāde"],6:["acs","aktis","ass","auss","balss","brokastis","Cēsis","dakts","debess","dzelzs","kūts","maksts","pirts","šalts","takts (mūzikā)","uts","uzacs","valsts","vēsts","zoss","žults"]};for(var p of Array.from({length:6},(e,s)=>s+1))d[p]||(d[p]=[]),f[p]||(f[p]=[]);var b=(e,s)=>Object.fromEntries(Object.entries(e).map(s)),z=(e,s,i,n,a,t,r)=>({nominative:e,genitive:s,dative:i,accusative:n,instrumental:a,locative:t,vocative:r}),j=["nominative","genitive","dative","accusative","instrumental","locative","vocative"],g={2:["genitive-singular",...j.map(e=>e+"-plural")],5:["genitive-plural"],6:["genitive-plural"]};for(var k of Array.from({length:6},(e,s)=>s+1))g[k]||(g[k]=[]);var h={1:z("s","a","am","u","u","ā","s"),2:z("is","a","im","i","i","ī","i"),3:z("us","us","um","u","u","ū","us"),4:z("a","as","ai","u","u","ā","a"),5:z("e","es","ei","i","i","ē","e"),6:z("s","s","ij","i","i","ī","s")},x=z("i","u","iem","us","iem","os","i"),y={1:x,2:x,3:x,4:z("as","u","ām","as","ām","ās","as"),5:z("es","u","ēm","es","ēm","ēs","es"),6:z("is","u","īm","is","īm","īs","is")};e.Declension=r,e.consonants=n,e.countSyllables=e=>{var i=[...e].map(s),n=i[0]?1:0;return i.reduce((e,s)=>(!e&&s&&(n+=1),s)),n},e.decline=t,e.genders=a,e.inflect=function(e,s){void 0===s&&(s=a.masculine);var i=t(e,s),{suffix:n,declensionCase:r}=i,u=e.slice(0,-n.length),l=m(e,i),o=(e,s,i)=>{var n=g[r].includes(e+"-"+s)?l:u;return"instrumental"===e&&(n="ar "+n),[e,""+n+i]};return{declension:i,inflections:{plural:b(y[r],e=>{var[s,i]=e;return o(s,"plural",i)}),singular:b(h[r],e=>{var[s,i]=e;return o(s,"singular",i)})}}},e.inflections=j,e.isConsonant=e=>n.includes(e),e.isVowel=s,e.palatalize=m,e.vowels=i});
//# sourceMappingURL=latvian-grammar.umd.js.map