diff --git a/scripts/all-namespaces.py b/scripts/all-namespaces.py index 1bb5cdb33..40cd62b9d 100644 --- a/scripts/all-namespaces.py +++ b/scripts/all-namespaces.py @@ -7,7 +7,7 @@ results: dict[str, list[str]] = {} # XXX_LOCALES -locales = ("ca", "da", "de", "el", "en", "eo", "es", "fr", "it", "ja", "no", "pt", "ro", "ru", "sv", "zh") +locales = ("ca", "da", "de", "el", "en", "eo", "es", "fr", "it", "ja", "lt", "no", "pt", "ro", "ru", "sv", "zh") for locale in locales: result_discard_last: list[str] = [] diff --git a/tests/data/lt/Antigva ir Barbuda.wiki b/tests/data/lt/Antigva ir Barbuda.wiki new file mode 100644 index 000000000..68733e098 --- /dev/null +++ b/tests/data/lt/Antigva ir Barbuda.wiki @@ -0,0 +1,88 @@ +[[Image:LocationAntiguaAndBarbuda.png|thumb|250px|[[Antigva ir Barbuda]]]] +{{vikipedija|Antigva ir Barbuda}} +== {{ltv}} == +=== ''Daiktavardis'' === +{{ltdkt}} {{f}} + +'''[[Antigva ir Barbuda]]''' +# {{Kategorija|Valstybės|zodis=Antigva ir Barbuda}} - salų valstybė rytinėje [[Karibų jūra|Karibų jūros]] dalyje, [[Mažųjų Antilų salynas|Mažųjų Antilų salyne]], šalia [[Atlanto vandenynas|Atlanto vandenyno]]. + + +==== Etimologija ==== +{{Žodžiai|jung}} +*[[Antigva]] +*[[Barbuda]] + +
+==== Vertimai ==== + +{{trans-top|vardas=Antigva ir Barbuda|kalba=lt|kt=Šalys Šiaurės Amerikoje}} +{{afv1}} {{t+|af|Antigua en Barbuda}} +{{sqv1}} {{t+|sq|Antigua dhe Barbuda}} +{{env1}} {{t+|en|Antigua and Barbuda}} +{{arv1}} {{t+|ar|أنتيغوا وبربودا|tr='antiighwaa wa-barbuudaa|sc=Arab}} +{{hyv1}} {{t+|hy|Անտիգուա Բարբուդա|tr=Antigua Barbuda|sc=Armn}} +{{bev1}} {{t+|be|Антыгуа і Барбуда|f|tr=Antýhua i Barbúda}} +{{bnv1}} {{t+|bn|এন্টিগুয়া এবং বার্বুডা|sc=Beng}} +{{bsv1}} {{t+|bs|Antigva i Barbuda|f}} +{{brv1}} {{t+|br|Antigua ha Barbuda}} +{{bgv1}} {{t+|bg|Антигуа и Барбуда|tr=Antigua i Barbuda}} +{{wov1}} {{t+|wo|Antigua ak Barbuda}} +{{csv1}} {{t+|cs|Antigua a Barbuda}} +{{dav1}} {{t+|da|Antigua og Barbuda}} +{{eov1}} {{t+|eo|Antigvo-Barbudo}} +{{etv1}} {{t+|et|Antigua ja Barbuda}} +{{glv1}} {{t+|gl|Antiga e Barbuda}} +{{elv1}} {{t+|el|Αντίγκουα και Μπαρμπούντα|tr=Antígoua kai Barboúda|f|sc=Grek}} +{{guv1}} {{t+|gu|એંટિગુવા અને બર્બુડા|sc=Gujr}} +{{hev1}} {{t+|he|אנטיגואה וברבודה|tr=antigvah ve-barbudah|sc=Hebr}} +{{hiv1}} {{t+|hi|एन्टिगुवा और बर्बुडा|tr=enṭiguvā aur barbuḍā|sc=Deva}} +{{idv1}} {{t+|id|Antigua dan Barbuda}} +{{iav1}} {{t+|ia|Antigua e Barbuda}} +{{isv1}} {{t+|is|Antígva og Barbúda}} +{{esv1}} {{t+|es|Antigua y Barbuda|f}} +{{itv1}} {{t+|it|Antigua e Barbuda}} +{{jav1}} {{t+|ja|アンティグア・バーブーダ|tr=Antigua Bābūda}} +{{cav1}} {{t+|ca|Antigua i Barbuda}} +{{zhv1}} +{{cmnv1}} {{t+|cmn|安提瓜島和巴布達|sc=Hani}}, {{t+|cmn|安提瓜岛和巴布达|tr=Āntíguā hé Bābùdá|sc=Hani}} +{{kov1}} {{t+|ko|앤티가 바부다|tr=Aentiga Babuda|sc=Kore}} +{{trans-mid}} +{{hrv1}} {{t+|hr|Antigva i Barbuda}} +{{lvv1}} {{t+|lv|Antigva un Barbuda}} +{{plv1}} {{t+|pl|Antigua i Barbuda|f}} +{{mkv1}} {{t+|mk|Антигва и Барбуда|f|tr=Antígva i Barbúda}} +{{msv1}} {{t+|ms|Antigua dan Barbuda}} +{{mtv1}} {{t+|mt|Antigwa u Barbuda}} +{{mrv1}} {{t+|mr|एन्टिगुवा आणि बर्बूडा|tr=enṭiguvā āṇi barbūḍā|sc=Deva}} +{{nav1}} {{t+|na|Antigua me Barbuda}} +{{nvv1}} {{tø|nv|Antíígwa dóó Hashkʼaan Bikéyah Yázhí}} +{{nov1}} {{t+|no|Antigua og Barbuda}} +{{nlv1}} {{t+|nl|Antigua en Barbuda}} +{{fav1}} {{t+|fa|آنتیگوا و باربودا|tr=Ântigvâ va Bârbudâ|sc=fa-Arab}} +{{ptv1}} {{t+|pt|Antígua e Barbuda}} +{{frv1}} {{t+|fr|Antigua-et-Barbuda}} +{{rov1}} {{t+|ro|Antigua și Barbuda|f}} +{{ruv1}} {{t+|ru|Антигуа и Барбуда|f|tr=Antígua i Barbúda}} +{{shv1}} +*:Kirilica: {{t+|sh|Антигва и Барбуда|sc=Cyrl}} +*:Lotyniškai: {{t+|sh|Antigva i Barbuda}} +{{skv1}} {{t+|sk|Antigua a Barbuda}} +{{slv1}} {{t+|sl|Antigva in Barbuda}} +{{fiv1}} {{t+|fi|Antigua ja Barbuda}} +{{swv1}} {{t+|sw|Antigua na Barbuda}} +{{gdv1}} {{t+|gd|Antigua agus Barbuda}} +{{svv1}} {{t+|sv|Antigua och Barbuda}} +{{tlv1}} {{t+|tl|Antigua at Barbuda}} +{{trv1}} {{t+|tr|Antigua ve Barbuda}} +{{ukv1}} {{t+|uk|Антигуа і Барбуда|f|tr=Antýhua i Barbúda}} +{{huv1}} {{t+|hu|Antigua és Barbuda}} +{{dev1}} {{t+|de|Antigua und Barbuda|n}} +{{ruev1}} {{t+|rue|Антіґуа і Барбуда|f|tr=Antig'ua i Barbuda|sc=Cyrl}} +{{extv1}} {{t+|ext|Antígua i Barbua}} +{{trans-bottom}} + +=== Taip pat žiūrėkite === + +{{Amerika}} +{{Commons|Antigua and Barbuda|no=T}} diff --git a/tests/data/lt/abalienacija.wiki b/tests/data/lt/abalienacija.wiki new file mode 100644 index 000000000..4e4676144 --- /dev/null +++ b/tests/data/lt/abalienacija.wiki @@ -0,0 +1,36 @@ +{{see|abalienaciją}} +== {{ltv}} == + +=== ''Daiktavardis'' === +{{ltdkt|forma=f-mot-6l-a|šakn=abalienacij|pform=[[abalienacija]]|skiem=a-ba-lie-na-ci-ja}} + +'''abalienãcija''': + +# {{Kategorija|Ekonomika}} - [[turtas|turto]] [[nusavinimas]] arba [[perleidimas]]. + +==== Etimologija ==== + +{{la|abalienatio}} + +[[Category:Lotyniškos kilmės žodžiai/Lietuvių kalba]] + +
+==== Vertimai ==== + +{{trans-top|kalba=lt|vardas=abalienacija|kt=Ekonomika}} +{{env1}} {{t+|en|transfer of property}} +{{versk|et|abalienacija}} +{{versk|es|abalienacija}} +{{versk|it|abalienacija}} +{{versk|lv|abalienacija}} +{{versk|pl|abalienacija}} +{{trans-mid}} +{{lav1}} {{t+|la|abalienatio}} +{{versk|pt|abalienacija}} +{{versk|fr|abalienacija}} +{{versk|ru|abalienacija}} +{{versk|de|abalienacija}} +{{trans-bottom}} + +
+---- diff --git a/tests/data/lt/dengti.wiki b/tests/data/lt/dengti.wiki new file mode 100644 index 000000000..fbc7496ca --- /dev/null +++ b/tests/data/lt/dengti.wiki @@ -0,0 +1,96 @@ +== {{ltv}} == +=== ''Veiksmažodis'' === +{{ltvks|forma=f-1a-gti-ia-ė +|bšakn=den|eslšakn=deng|btklšakn=deng +|pform=[[dengti]] +|pform1=[[dengia]] +|pform2=[[dengė]] +|dalyviai=t +|skiem=deng-ti}} + +'''[[dengti]]''' +# [[dėti]], [[kloti]] ant viršaus +#* '''''Dengė''' puodą (su) dangčiu. Stalas baltai '''dengtas'''.'' +# [[traukti]], [[gobti]] +#* ''Debesys '''dengia''' dangų. Sniegas '''dengė''' žemę.'' +# [[dėti]] (stogą), [[stiegti]] +#* ''Stogas čerpėmis '''dengtas'''. Dangumi '''dengtas''' (be stogo).'' +# [[aprūpinti]] drabužiais, [[rengti]] +#* ''Jį giminės '''dengia''' ir maitina.'' +# {{p}} [[ginti]], [[užstoti]], [[slėpti]] +#* ''Kas nusikaltėlį '''dengia'''? Kulkosvaidžiu '''dengė''' atsitraukiantį dalinį.'' +# {{Kategorija|Sportas}} - [[neleisti]] laisvai [[veikti]] varžovų puolėjui +#* ''Puolė gerai, bet '''dengė''' prastai.'' +# {{š}} greitai, smarkiai ką [[daryti]] ([[eiti]], [[bėgti]], [[važiuoti]]; [[mušti]], [[trenkti]], [[rėžti]]; [[valgyti]], [[gerti]]) + +
+==== Sinonimai ==== + +{{sin-top|kalba=lt|vardas=dengti|tipas=bendrai}} +* {{t+|lt|bėgti}} +* {{t+|lt|kloti}} +* {{t+|lt|pleikti|t}} +* {{t+|lt|rengti}} +{{sin-mid}} +* {{t+|lt|smogti }} +* {{t+|lt|stiegti}} +* {{t+|lt|tiesti}} +{{sin-bottom}} + +==== Antonimai ==== + +{{ant-top|kalba=lt|vardas=dengti|tipas=bendrai}} +* {{t+|lt|nedengti}} +{{ant-mid}} +{{ant-bottom}} + +==== Išvestiniai žodžiai ==== + +{{rel-top|kalba=lt|vardas=dengti|tipas=Išvestiniai žodžiai}} +* {{t+|lt|antdengti}} +* {{t+|lt|apdengti}} +* {{t+|lt|atidengti}} +* {{t+|lt|dengikas}} +* {{t+|lt|dengikė}} +* {{t+|lt|dengimasis}} +* {{t+|lt|dengimas}} +* {{t+|lt|dengtis}} +* {{t+|lt|dengėjas}} +* {{t+|lt|dengėja}} +{{rel-mid}} +* {{t+|lt|išdengti}} +* {{t+|lt|nedengti}} +* {{t+|lt|nudengti}} +* {{t+|lt|padengti}} +* {{t+|lt|pardengti}} +* {{t+|lt|perdengti}} +* {{t+|lt|pradengti}} +* {{t+|lt|pridengti}} +* {{t+|lt|sudengti}} +* {{t+|lt|uždengti}} +{{rel-bottom}} + +==== Vertimai ==== + +{{trans-top|kalba=lt|vardas=dengti|tipas=bendrai}} +{{env1}} {{t+|en|lay|pst=stalą}}, {{t+|en|enshroud}}, {{t+|en|shroud}}, {{t+|en|clothe}}, {{t+|en|bury}}, {{t+|en|cloak}}, {{t+|en|coat}}, {{t+|en|cap}}, {{t+|en|screen|pst=apsaugojant}}, {{t+|en|cover}}, {{t+|en|mark}} +{{trans-mid}} +{{trans-bottom}} + + +
+---- +=== ''Dalyvis'' === +{{ltdlv|tipas=įvard|forma=f-as|dalis=[[būt. l.]] [[neveik. dlv.]]|šakn=dengt +|pform=[[dengtas]] +|pformm=[[dengta]] +|skiem=deng-ti}} + +'''[[dengti]]''' +# tas kurį [[dengė]] + +==== Etimologija ==== +<= [[dengti]], [[dengia]], [[dengė]] + +
+---- diff --git a/tests/data/lt/informatikos.wiki b/tests/data/lt/informatikos.wiki new file mode 100644 index 000000000..62ac04f10 --- /dev/null +++ b/tests/data/lt/informatikos.wiki @@ -0,0 +1,4 @@ +== {{ltv}} == +=== ''Daiktavardis'' === +{{ltdkt|forma=f-mot-6l-a|šakn=informatik|šakn2=informatik|šakn3=informatik|šakn4=informatik +|pform=[[informatika]]}} diff --git a/tests/data/lt/informatyvus.wiki b/tests/data/lt/informatyvus.wiki new file mode 100644 index 000000000..4a2929f00 --- /dev/null +++ b/tests/data/lt/informatyvus.wiki @@ -0,0 +1,15 @@ +== {{ltv}} == +=== ''Būdvardis'' === +{{ltbdv|tipas=įvard-laips|forma=f-us|šakn=informatyv +|pform=[[informatyvus]] +|pformm=[[informatyvi]] +|skiem=in-for-ma-ty-vus}} + +'''[[informatyvus]]''' +# teikiantis daug [[informacija|informacijos]] + +==== Etimologija ==== +[[informuoti]] + [[-atyv]] + +
+---- diff --git a/tests/data/lt/pasaulis.wiki b/tests/data/lt/pasaulis.wiki new file mode 100644 index 000000000..78a71f31f --- /dev/null +++ b/tests/data/lt/pasaulis.wiki @@ -0,0 +1,94 @@ +[[Image:The Blue Marble.jpg|thumb|250px|[[Žemė]]]] +{{vikipedija|Žemė}} +{{vikicitatos|Pasaulis}} +== {{ltv}} == +=== ''Daiktavardis'' === +{{ltdkt|forma=f-vyr-3l-is|šakn=pasaul|šakn2=pasaul}} +'''[[pasaulis]]''' +# visa žemė; [[Žemė]]s rutulys +# visi žmonės; aplinkiniai žmonės +# [[visata]] + +==== Simboliai ==== +* [[🜨]], [[♁]] + +==== Išraiškos arba posakiai ==== +*'''[[Pasaulio vandenynas]]''' {{Kategorija|Vandenynai}} + +==== Vertimai ==== +{{trans-top|vardas=pasaulis|kalba=lt|tipas=visa žemė}} +{{gav1}} {{t+|ga|domhan|m}} +{{akzv1}} {{t+|akz|ihaani onaami}} +{{amsv1}} {{t+|ams|シェかい|tr=sjexa'i}} +{{env1}} {{t+|en|world}} +{{arv1}} {{t+|ar|عالم|m|tr=3aalam}}, {{t+|ar|دنيا|tr=dunyaa}} +{{hyv1}} {{t+|hy|աշխարհ|tr=ašxarh}} +{{versk|ast|pasaulis}} +{{euv1}} {{t+|eu|mundu}}, {{t+|eu|lur}} +{{bnv1}} {{t+|bn|দুনিয়া|tr=duniya|sc=Beng|xs=Bengali}} +{{bsv1}} {{t+|bs|svijet|m}} +{{versk|dz|pasaulis}} +{{brv1}} {{t+|br|bed|m}} +{{csv1}} {{t+|cs|svět|m}} +{{dav1}} {{t+|da|verden|c}} +{{etv1}} {{t+|et|maakera}} +{{eev1}} {{t+|ee|xexeme}} +{{fyv1}} {{t+|fy|wrâld}}, {{t+|fy|ierde}} +{{elv1}} {{t+|el|κόσμος|m|tr=kósmos}} +{{hev1}} {{t+|he|עולם|m|tr=olám}} +{{hiv1}} {{t+|hi|दुनिया|f|tr=duniyā|xs=Hindi}} +{{idv1}} {{t+|id|Dunia}} +{{isv1}} {{t+|is|veröld|f}} +{{esv1}} {{t+|es|mundo|m}}, {{t+|es|globo|m}}, {{t+|es|tierra|f}} +{{itv1}} {{t+|it|mondo|m}} +{{jav1}} {{t+|ja|世界|sc=Jpan}} ({{t+|ja|せかい|sc=Jpan}}, sekai) +{{yiv1}} {{t+|yi|וועלט|sc=Hebr}} +{{sgsv1}} {{t+|sgs|sviets}} +{{versk|kn|pasaulis}} +{{versk|km|pasaulis}} +{{zhv1}} +{{cmnv1}} {{t+|cmn|世界|tr=shìjiè|sc=Hani}} +{{kov1}} {{t+|ko|세계|tr=segye|sc=Hang}} +{{hrv1}} {{t+|hr|svijet|m}} +{{xugv1}} {{t+|xug|シケー|tr=si↗kee|sc=Jpan}} +{{kuv1}} {{t+|ku|دنیا|sc=ku-Arab}}, {{t+|ku|dinya}} +{{ltgv1}} {{t+|ltg|pasauļs|m}} +{{lvv1}} {{t+|lv|pasaule|f}} +{{trans-mid}} +{{plv1}} {{t+|pl|świat|m}} +{{lav1}} {{t+|la|mundus|m}} +{{msv1}} {{t+|ms|dunia|xs=Malay}} +{{versk|my|pasaulis}} +{{nov1}} {{t+|no|verden|m}} +{{ryuv1}} {{t+|ryu|しけー|tr=sikee|sc=Jpan}} +{{versk|oc|pasaulis}} +* [[Old Frisian]]: [[wrald]] +{{nlv1}} {{t+|nl|aarde|f|m}}, {{t+|nl|wereld|m|f}} +{{fav1}} {{t+|fa|گیتی|tr=giti|xs=Persian}}, {{t+|fa|جهان|tr=jahân|xs=Persian}} +{{nanv1}} {{t+|nan|世界}} ({{t+|nan|sè-kài}}) +{{ptv1}} {{t+|pt|mundo|m}} +{{frv1}} {{t+|fr|monde|m}}, {{t+|fr|Terre|f}} +{{rmv1}} {{t+|rm|mund|m}} +{{rov1}} {{t+|ro|lume}}, {{t+|ro|pământ}} +{{ruv1}} {{t+|ru|мир|m|tr=mir}}, {{t+|ru|свет|m|tr=svet}} +{{cuv1}} {{t+|cu|миръ|m|tr=mirŭ|sc=Glag}}, {{t+|cu|ⰏⰉⰓⰟ|m|tr=mirŭ|sc=Glag}} +{{grcv1}} {{t+|grc|κόσμος|tr=kosmos|sc=polytonic}} +{{srv1}} {{t+|sr|свет|m|sc=Cyrl}}, {{t+|sr|svet|m}}, {{t+|sr|свијет|m|sc=Cyrl}}, {{t+|sr|svijet|m}} +{{scnv1}} {{t+|scn|munnu|m}}, {{t+|scn|terra|f}} +{{fiv1}} {{t+|fi|maailma}}, {{t+|fi|maapallo}}, {{t+|fi|maa}} +{{scov1}} {{t+|sco|warld}} +{{gdv1}} {{t+|gd|saoghal|m|xs=Scottish Gaelic}}, {{t+|gd|cruinne-cè|m|f}} +{{svv1}} {{t+|sv|värld|c}} +{{versk|th|pasaulis}} +{{versk|ta|pasaulis}} +{{versk|te|pasaulis}} +{{bov1}} {{t+|bo|འཛམ་གླིང་།|tr='dzam gling|sc=Tibt}} +{{trv1}} {{t+|tr|Dünya}}, {{t+|tr|acun}} +{{ukv1}} {{t+|uk|світ|m|xs=Ukrainian}} +{{urv1}} {{t+|ur|دنیا|f|xs=Urdu}} +{{cyv1}} {{t+|cy|byd|m}} +{{huv1}} {{t+|hu|világ}} +{{viv1}} {{t+|vi|thế giới}} +{{dev1}} {{t+|de|Welt|f}}, {{t+|de|Erde|f}} +{{trans-bottom}} +---- diff --git a/tests/data/lt/senas.wiki b/tests/data/lt/senas.wiki new file mode 100644 index 000000000..fa3c99704 --- /dev/null +++ b/tests/data/lt/senas.wiki @@ -0,0 +1,660 @@ +== {{ltv}} == +=== ''Būdvardis'' === +{{ltbdv|tipas=įvard-laips|forma=f-as +|šakn=sen +|pform=[[senas]] +|pformm=[[sena]] +|skiem=sẽ-nas}} + +'''[[senas]]''' + +#jau kuris [[laikas]] [[esantis]] +#ilgai [[vartotas]], [[palaikis]] +#anksčiau [[buvęs]], [[nedabartinis]], [[pasenęs]] +#prieš tai buvęs +#[[pabuvęs]], [[palaikytas]], [[pastovėjęs]] +
+ +=== Tarimas === +{{IPA|[ˈsʲæːnɐs]}} + +==== Etimologija ==== +Iš {{proto|indoeuropiečių|sénos}}. Plg. senovės graikų k. ''[[ἕνος]]'' (henos), sanskrito [[सन]] (sána) ir gotų k. [[𐍃𐌹𐌽𐌴𐌹𐌲𐍃]] (sineigs). + +
+==== Sinonimai ==== + +{{sin-top|kalba=lt|vardas=senas|tipas=bendrai}} +* {{t+|lt|archajiškas}} +{{sin-mid}} +* {{t+|lt|nejaunas}} +{{sin-bottom}} + +==== Antonimai ==== + +{{ant-top|kalba=lt|vardas=senas|tipas=bendrai}} +* {{t+|lt|jaunas}} +{{ant-mid}} +* {{t+|lt|naujas}} +{{ant-bottom}} + +==== Išraiškos arba posakiai ==== +{{rel-top|kalba=lt|vardas=senas|tipas=Kilę žodžiai}} +* [[apsenys]] +* [[apyseniai]] +* [[apysenis]] +* [[pasenas]] +* [[paseniai]] +* [[paseniūnis]] +* [[pasenokas]] +* [[pasenusiai]] +* [[pasenykščiom]] +* [[pasenys]] +* [[pasenėlis]] +* [[persena]] +* [[persenis]] +* [[persenėlis]] +* [[po senam]] +* [[po seno]] +* [[poseniai]] +* [[posenis]] +* [[posenolis]] +* [[prasenas]] +* [[prasenis]] +* [[prasenobė]] +* [[prasenoviškas]] +* [[prasenovė]] +* [[priesenis]] +* [[priešsenatvinis]] +* [[proprosenelis]] +* [[proprosenelė]] +* [[proproseniai]] +* [[proprosenolis]] +* [[proprosenolė]] +* [[prosenas]] +* [[proseneliai]] +* [[prosenelis]] +* [[proseneliškas]] +* [[proseniai]] +* [[prosenis]] +* [[prosenobinis]] +* [[prosenobiškas]] +* [[prosenobė]] +* [[prosenoliai]] +* [[prosenolis]] +* [[prosenovinis]] +* [[prosenoviškas]] +* [[prosenovė]] +* [[prosenutis]] +* [[prosenučiai]] +* [[pussenis]] +* [[sansenis]] +* [[sen]] +* [[sena galvelė]] +* [[sena lapė]], [[senas lapė]] +* [[senaamžis]] +* [[senabiškas]] +* [[senabuvys]] +* [[senabė]] +* [[senadienis]] +* [[senadorius]] +* [[senaduonis]] +* [[senadvaris]] +* [[senaesiai]] +* [[senagagas]] +* [[senagalas]] +* [[senagalvėlis]] +* [[senagalys]] +* [[senagirė]] +* [[senagulis]] +* [[senai]] +* [[senaip]] +* [[senakaimis]] +* [[senakapiai]] +* [[senakapis]] +* [[senakelis]] +* [[senakelė]] +* [[senakurys]] +* [[senalamstis]] +* [[senalietuviškas]] +* [[senalis]] +* [[senamadis]] +* [[senamadiškas]] +* [[senamadiškumas]] +* [[senamartė]] +* [[senamedis]] +* [[senamedė]] +* [[senamiestis]] +* [[senamiškis]] +* [[senamotė]] +* [[senamėžinis]] +* [[senamėžis]] +* [[senamėžymis]] +* [[senamėžė]] +* [[senapalaikis]] +* [[senapaukštis]] +* [[senapienė]] +* [[senapievė]] +* [[senapilis]] +* [[senapilė]] +* [[senaprūdė]] +* [[senaprūsiai]] +* [[senaprūsis]] +* [[senaprūsiškas]] +* [[senapušis]] +* [[senapušė]] +* [[senaryčiai]] +* [[senas]] +* [[Senasis Testamentas]] +* [[senasis vilkas]] +* [[senasis]] +* [[senasis įstatymas]] +* [[senaskynimis]] +* [[senasodis]] +* [[senasparniai]] +* [[senastis]] +* [[senasėdija]] +* [[senasėdis]] +* [[senata]] +* [[senatas]] +* [[senatikis]] +* [[senatikiškas]] +* [[senatis]] +* [[senatorybė]] +* [[senatuva]] +* [[senatuvė]] +* [[senatva]] +* [[senatvia]] +* [[senatvija]] +* [[senatvinis]] +* [[senatviškas]] +* [[senatvė]] +* [[senatėvis]] +* [[senauklė]] +* [[senaupis]] +* [[senaupė]] +* [[senauti]] +* [[senavadas]] +* [[senavagis]] +* [[senavedys]] +* [[senavedžiai]] +* [[senavietė]] +* [[senavikas]] +* [[senavimas]] +* [[senašilis]] +* [[senažiūris]] +* [[senažiūriškumas]] +* [[senažiūrumas]] +* [[senažydis]] +* [[senbabis]] +* [[senbajoris]] +* [[senbalė]] +* [[senbernauti]] +* [[senberniauti]] +* [[senberniavimas]] +* [[senbernis]] +* [[senberniškas]] +* [[senbernystė]] +* [[senbernėti]] +* [[senbezda]] +* [[senbiza]] +* [[senbizda]] +* [[senbizdis]] +* [[senbobinis]] +* [[senbobė]] +* [[senbočiai]] +* [[senbutelis]] +* [[senbutybė]] +* [[senbuvis]] +* [[senbuvybė]] +* [[sendaiktininkas]] +* [[sendaiktinė]] +* [[sendaiktis]] +* [[sendaržis]] +* [[sendavatkė]] +* [[sendinimas]] +* [[sendinti]] +* [[sendinėti]] +* [[sendirvis]] +* [[sendirvonis]] +* [[sendirvė]] +* [[sendrabužis]] +* [[sendraugis]] +* [[senduonė]] +* [[sendvaris]] +* [[sendvariškis]] +* [[sendyti]] +* [[sendzūkiai]] +* [[sendėdžius]] +* [[sendžiūvis]] +* [[senega]] +* [[seneikščias]] +* [[seneklis]] +* [[seneliai]] +* [[seneliausias]] +* [[seneliokas]] +* [[seneliotė]] +* [[senelis]] +* [[seneliukiškas]] +* [[seneliškas]] +* [[seneliūkštis]] +* [[seneluitis]] +* [[senenybė]] +* [[senesnybė]] +* [[senest]] +* [[senetva]] +* [[senežeris]] +* [[senežė]] +* [[sengalis]] +* [[sengalva]] +* [[sengalvis]] +* [[sengalvužėlis]] +* [[sengalvėjėlis]] +* [[sengalvėlis]] +* [[sengatvis]] +* [[sengeležis]] +* [[sengelžis]] +* [[sengentė]] +* [[sengiris]] +* [[sengirė]] +* [[sengobšis]] +* [[sengraikiai]] +* [[sengraikiškas]] +* [[sengriovis]] +* [[sengrybis]] +* [[sengudrystė]] +* [[sengūžis]] +* [[seniadie]] +* [[seniai]] +* [[seniaik]] +* [[seniapalakis]] +* [[senickai]] +* [[senickas]] +* [[senidien]] +* [[seniekas]] +* [[seniena]] +* [[senienininkas]] +* [[senieninkas]] +* [[senika]] +* [[senikas]] +* [[senikė]] +* [[senimas]] +* [[senina]] +* [[seninimas]] +* [[seninis]] +* [[seninteliai]] +* [[senintelis]] +* [[seninti]] +* [[seniokas]] +* [[seniokiškas]] +* [[seniokšlis]] +* [[seniotė]] +* [[senis]] +* [[senitelaitis]] +* [[senitelys]] +* [[senitkas]] +* [[seniuoti]] +* [[senius]] +* [[seniuvienė]] +{{rel-mid}} +* [[seniądien]] +* [[seniškas]] +* [[seniūga]] +* [[seniūgas]] +* [[seniūkštis]] +* [[seniūna]] +* [[seniūnas]] +* [[seniūnauti]] +* [[seniūnavimas]] +* [[seniūnienė]] +* [[seniūnija]] +* [[seniūninkauti]] +* [[seniūniokas]] +* [[seniūnis]] +* [[seniūniukas]] +* [[seniūnybė]] +* [[seniūnystė]] +* [[senkaimis]] +* [[senkalbė]] +* [[senkalkis]] +* [[senkalnis]] +* [[senkapiai]] +* [[senkapis]] +* [[senkarklis]] +* [[senkaršis]] +* [[senkatalikas]] +* [[senkatalikis]] +* [[senkatalikiškas]] +* [[senkatalikystė]] +* [[senkelis]] +* [[senkelmis]] +* [[senkeris]] +* [[senkiaulė]] +* [[senkietis]] +* [[senkinti]] +* [[senkis]] +* [[senklonis]] +* [[senknygės]] +* [[senkriaušė]] +* [[senkromis]] +* [[senkrėtinis]] +* [[senkrėtis]] +* [[senkunigis]] +* [[senlaikiai]] +* [[senlaikis]] +* [[senlatviai]] +* [[senlaukis]] +* [[senlenkiškas]] +* [[senlietuviai]] +* [[senlietuviškas]] +* [[senlizdis]] +* [[senmadiškas]] +* [[senmalis]] +* [[senmalžė]] +* [[senmarka]] +* [[senmartė]] +* [[senmatė]] +* [[senmedis]] +* [[senmerga]] +* [[senmergauti]] +* [[senmergiauti]] +* [[senmergiškas]] +* [[senmergysta]] +* [[senmergystė]] +* [[senmergė]] +* [[senmielės]] +* [[senmiestis]] +* [[senmiestiškas]] +* [[senmiestiškis]] +* [[senmilžė]] +* [[senmiškis]] +* [[senmotinė]] +* [[senmotė]] +* [[senmėšlis]] +* [[senniekis]] +* [[senobelė]] +* [[senobiausias]] +* [[senobinis]] +* [[senobinė]] +* [[senobiškas]] +* [[senobiškumas]] +* [[senobė]] +* [[senoji]] +* [[senokai]] +* [[senokas]] +* [[senoklis]] +* [[senoklė]] +* [[senokumas]] +* [[senoliai]] +* [[senolis]] +* [[senolius]] +* [[senoliškas]] +* [[senomis]] +* [[senomė]] +* [[senonis]] +* [[senopas]] +* [[senota]] +* [[senotaras]] +* [[senotariškas]] +* [[senotas]] +* [[senovesnis]] +* [[senoviausias]] +* [[senovininkas]] +* [[senovinis]] +* [[senoviniškas]] +* [[senovinti]] +* [[senovinė]] +* [[senoviškas]] +* [[senoviškis]] +* [[senoviškumas]] +* [[senovybinis]] +* [[senovybė]] +* [[senovystė]] +* [[senovė]] +* [[senpaikis]] +* [[senpaikšis]] +* [[senpalaikis]] +* [[senpanė]] +* [[senpenis]] +* [[senpirda]] +* [[senpjovis]] +* [[senplėšiniai]] +* [[senponis]] +* [[senpopieris]] +* [[senprūsiai]] +* [[senprūsis]] +* [[senprūsiškas]] +* [[senpuvis]] +* [[senpušynis]] +* [[senpušė]] +* [[senraistis]] +* [[senraštis]] +* [[senraštvietė]] +* [[senromėniškas]] +* [[senrūbiai]] +* [[senrūgis]] +* [[senrūsis]] +* [[sensausis]] +* [[sensena]] +* [[sensenis]] +* [[sensenovė]] +* [[senskolė]] +* [[senskrabis]] +* [[senslaviai]] +* [[senslovėniai]] +* [[senslovėniškas]] +* [[senslėnis]] +* [[sensniegis]] +* [[sensodis]] +* [[senstelėti]] +* [[sensterėti]] +* [[sensvietis]] +* [[sentakis]] +* [[sentaukiai]] +* [[sentelėti]] +* [[senterėti]] +* [[sentestamentiškas]] +* [[senti]] +* [[sentikis]] +* [[sentikiškas]] +* [[sentimentalinis]] +* [[sentimentalinti]] +* [[sentimentalistas]] +* [[sentimentalizmas]] +* [[sentimentališkas]] +* [[sentimentalumas]] +* [[sentimentalus]] +* [[sentimentas]] +* [[sentorpynė]] +* [[sentošis]] +* [[sentrobė]] +* [[senturgis]] +* [[sentėtis]] +* [[sentėvas]] +* [[sentėviai]] +* [[sentėvis]] +* [[senugalis]] +* [[senugalvis]] +* [[senugnis]] +* [[senukai]] +* [[senulis]] +* [[senulė]] +* [[senuma]] +* [[senumas]] +* [[senumet]] +* [[senumynai]] +* [[senumynas]] +* [[senumė]] +* [[senuoliai]] +* [[senuolis]] +* [[senuolius]] +* [[senuoliškas]] +* [[senuomenė]] +* [[senuoti]] +* [[senuotis]] +* [[senupis]] +* [[senupė]] +* [[senurvis]] +* [[senutis]] +* [[senučiai]] +* [[senučiokas]] +* [[senučiotė]] +* [[senvadaksnis]] +* [[senvaginis]] +* [[senvagis]] +* [[senvagė]] +* [[senvaikis]] +* [[senvaikiškas]] +* [[senvaikysta]] +* [[senvaikystė]] +* [[senvaitis]] +* [[senvežis]] +* [[senvietė]] +* [[senvieškelis]] +* [[senvotė]] +* [[senvyris]] +* [[senvyriškas]] +* [[senyba]] +* [[senybas]] +* [[senybietis]] +* [[senybininkas]] +* [[senybinis]] +* [[senybinė]] +* [[senybiškas]] +* [[senybiškumas]] +* [[senybė]] +* [[senykščia]] +* [[senykščias]] +* [[senyla]] +* [[senylis]] +* [[senynas]] +* [[senysis]] +* [[senysta]] +* [[senystva]] +* [[senystė]] +* [[senyti]] +* [[senyva]] +* [[senyvas]] +* [[senyvis]] +* [[senyviškas]] +* [[senyvokas]] +* [[senyvumas]] +* [[senyvė]] +* [[senądien]] +* [[senė]] +* [[senėjimas]] +* [[senėta]] +* [[senėti]] +* [[senšaknė]] +* [[senšena]] +* [[senšluotė]] +* [[senšunis]] +* [[senūmenė]] +* [[senžagariai]] +* [[senžmogis]] +* [[senžydis]] +* [[sąsenis]] +{{rel-bottom}} +{{rel-top|kalba=lt|vardas=senas|tipas=Išraiškos}} +* {{t+|lt|iš senų dienų}} +* {{t+|lt|iš senų metų}} +* {{t+|lt|senas dienas}}, {{t+|lt|seni dieni}} +{{rel-mid}} +* {{t+|lt|senos bėdos}} +* {{t+|lt|senos dienos}} +{{rel-bottom}} + +==== Vertimai ==== +{{trans-top|kalba=lt|vardas=senas|tipas=apie negyvus objektus: ilgai egzistavęs}} +{{versk|ay|senas}} +{{gav1}} {{t+|ga|sean|xs=Irish}} +{{amsv1}} {{t+|ams|フルサリ|tr=hurusari}}, {{t+|ams|フルー|tr=huruu}} +{{env1}} {{t+|en|old}} +{{arv1}} {{t+|ar|قديم|tr=qadīm|sc=Arab}} +{{anv1}} {{t+|an|biello}} +{{hyv1}} {{t+|hy|հին|tr=hin}} +{{euv1}} {{t+|eu|zahar}} +{{bsv1}} {{t+|bs|star}} +{{csv1}} {{t+|cs|starý}} +{{romv1}} {{t+|rom|phurano|m}}, {{t+|rom|phurane|p}} +{{dav1}} {{t+|da|gammel}} +{{versk|et|senas}} +{{eev1}} {{t+|ee|xoxo}} +{{fyv1}} {{t+|fy|âld|xs=West Frisian}} +{{glv1}} {{t+|gl|vello|xs=Galician}} +{{gotv1}} {{t+|got|𐍃𐌹𐌽𐌴𐌹𐌲𐍃|tr=sineigs}} +{{elv1}} {{t+|el|παλιός|m}} (paliós), {{t+|el|αρχαίος|m}} (archaíos) +{{hev1}} {{t+|he|ישן|tr=ya'shan}}, {{t+|he|יָשָׁן|tr=ya'shan}} +{{iov1}} {{t+|io|anciena}} +{{isv1}} {{t+|is|gamall}} +{{esv1}} {{t+|es|antiguo|m}}; {{t+|es|viejo|m}} +{{itv1}} {{t+|it|vecchio|m}}, vecchia {{f}}, vecchi {{p}}, vecchie {{f|p}} +{{jav1}} {{t+|ja|古い}} ({{t+|ja|ふるい}}, furui) +{{cav1}} {{t+|ca|vell|m}}, vella {{f}}, antic {{m}}, antiga {{f}} +{{zhv1}} +{{cmnv1}} {{t+|cmn|舊}}的, {{t+|cmn|旧}}的 (jiù de), 很{{t+|cmn|久}}的 (hěn jiǔ de), {{t+|cmn|古老}}的 (gǔlǎo de) +{{kov1}} {{t+|ko|낡다|tr=nakda}}, {{t+|ko|오래되다|tr=orae-doeda}} +{{hrv1}} {{t+|hr|star}} +{{xugv1}} {{t+|xug|プルセン|tr=puruseN}} +{{kuv1}} {{t+|ku|kevn}}, {{t+|ku|کۆن|sc=ku-Arab}} +{{ltgv1}} {{t+|ltg|senejs|m}} +{{lvv1}} {{t+|lv|sens|m}}, {{t+|lv|vecs|m}} +{{plv1}} {{t+|pl|stary|m}}, {{t+|pl|stare|n}} +{{trans-mid}} +{{livv1}} {{t+|liv|muini}} +{{mlv1}} {{t+|ml|പഴയ|tr=pazhaya}}, {{t+|ml|പഴയത്|tr=pazhayathu}} +{{versk|gv|senas}} +{{mviv1}} {{t+|mvi|フいーフい|tr=fuy:fuy}} +{{nov1}} {{t+|no|gammel}} +{{nlv1}} {{t+|nl|oud}} +{{ryuv1}} {{t+|ryu|ふるさん|tr=hurusaN}} +{{ocv1}} {{t+|oc|vièlh|m}} +{{fav1}} {{t+|fa|کهن|tr=kohan|xs=Persian}}, {{t+|fa|دیرین|tr=dirin|xs=Persian}} +{{ptv1}} {{t+|pt|velho}} +{{frv1}} {{t+|fr|vieux|m}}, {{t+|fr|vieil}} +{{rov1}} {{t+|ro|vechi|m}} +{{ruv1}} {{t+|ru|старый|tr=stáryj}} +{{sav1}} {{t+|sa|सन|tr=sána|sc=Deva}} +{{angv1}} {{t+|ang|eald|xs=Old English}}, {{t+|ang|gamol|xs=Old English}} +{{xclv1}} {{t+|xcl|հին|tr=hin}} +{{cuv1}} {{t+|cu|старъ|tr=starŭ|sc=Cyrs}} +{{srv1}} +*:Kirilica: {{t+|sr|стар|sc=Cyrl}} +*:Lotyniškai: {{r+|sr|star}} +{{skv1}} {{t+|sk|starý|m}} +{{slv1}} {{t+|sl|star|m}} +{{fiv1}} {{t+|fi|vanha}} +{{swv1}} {{t+|sw|mkongwe|xs=Swahili}}, {{t+|sw|ukale|xs=Swahili}} +{{gdv1}} {{t+|gd|sean}}, {{t+|gd|aosda}}, {{t+|gd|aosmhor}} +{{svv1}} {{t+|sv|använd}}, {{t+|sv|förlegad}}, {{t+|sv|gammal}}, {{t+|sv|utsliten}} +{{tlv1}} {{t+|tl|luma|xs=Tagalog}} +{{tev1}} {{t+|te|పాత}} (paata) +{{bov1}} {{t+|bo|རྙིང་པ་|tr=rnying pa|sc=Tibt}} +{{trv1}} {{t+|tr|eski}} +{{cyv1}} {{t+|cy|hen|xs=Welsh}} +{{huv1}} {{t+|hu|régi}} +{{dev1}} {{t+|de|alt}} +{{trans-bottom}} +{{trans-top|kalba=lt|vardas=senas|tipas=apie gyvus padarus: ilgai gyvenęs}} +{{env1}} {{t+|en|old}} +{{cccv1}} {{t+|ccc|shashaka}} +{{etv1}} {{t+|et|vana}} +{{esv1}} {{t+|es|viejo}}, {{t+|es|anciano}} +{{versk|it|senas}} +{{jav1}} {{t+|ja|年取った}} ({{t+|ja|としとった}}, toshitotta), {{t+|ja|老けた}} ({{t+|ja|ふけた}}, fuketa), {{t+|ja|年配の}} ({{t+|ja|ねんぱいの}}, nenpaino), {{t+|ja|年寄りの}} ({{t+|ja|としよりの}}, toshiyorino), {{t+|ja|老年の}} ({{t+|ja|ろうねんの}}, rounennno) +{{lvv1}} {{t+|lv|vecs|m}} +{{plv1}} {{t+|pl|stary|m}} +{{lav1}} {{t+|la|vetus|m}} +{{trans-mid}} +{{versk|pt|senas}} +{{versk|fr|senas}} +{{ruv1}} {{t+|ru|старый|tr=stáryj}} +{{angv1}} {{t+|ang|eald}}, {{t+|ang|gamol}} +{{cuv1}} {{t+|cu|старъ|tr=starŭ|sc=Cyrs}} +{{slv1}} {{t+|sl|star|m}} +{{fiv1}} {{t+|fi|vanha}} +{{trv1}} {{t+|tr|yaşlı}} +{{dev1}} {{t+|de|alt}} +{{trans-bottom}} +
+---- diff --git a/tests/test_lt.py b/tests/test_lt.py new file mode 100644 index 000000000..99038b07d --- /dev/null +++ b/tests/test_lt.py @@ -0,0 +1,506 @@ +from collections.abc import Callable +from pathlib import Path +from unittest.mock import patch + +import pytest + +from wikidict import context +from wikidict.render import parse_word +from wikidict.stubs import Definitions + + +@pytest.fixture(scope="module", autouse=True) +def setup_lua_ctx() -> None: + with patch.dict("os.environ", {"CWD": str(Path(context.__file__).parent.parent)}): + assert context.reset("lt") + + +@pytest.mark.parametrize( + "word, pronunciations, genders, etymology, definitions, variants, reverse_variants", + [ + ( + "abalienacija", + [], + ["f"], + ["(lot. abalienatio)"], + {"Daiktavardis": ["(Ekonomika) - turto nusavinimas arba perleidimas."]}, + [], + [ + "abalienacijai", + "abalienacijas", + "abalienacijoje", + "abalienacijomis", + "abalienacijoms", + "abalienacijos", + "abalienacijose", + "abalienaciją", + "abalienacijų", + ], + ), + ( + "Antigva ir Barbuda", + [], + ["f"], + [], + { + "Daiktavardis": [ + "(Valstybės) - salų valstybė rytinėje Karibų jūros dalyje, Mažųjų Antilų salyne, šalia Atlanto vandenyno." + ] + }, + [], + [], + ), + ( + "dengti", + [], + [], + ["<= dengti, dengia, dengė"], + { + "Veiksmažodis": [ + "dėti, kloti ant viršaus", + ("Dengė puodą (su) dangčiu. Stalas baltai dengtas.",), + "traukti, gobti", + ("Debesys dengia dangų. Sniegas dengė žemę.",), + "dėti (stogą), stiegti", + ("Stogas čerpėmis dengtas. Dangumi dengtas (be stogo).",), + "aprūpinti drabužiais, rengti", + ("Jį giminės dengia ir maitina.",), + "(prk.) ginti, užstoti, slėpti", + ("Kas nusikaltėlį dengia? Kulkosvaidžiu dengė atsitraukiantį dalinį.",), + "(Sportas) - neleisti laisvai veikti varžovų puolėjui", + ("Puolė gerai, bet dengė prastai.",), + "(šnek.) greitai, smarkiai ką daryti (eiti, bėgti, važiuoti; mušti, trenkti, rėžti; valgyti, gerti)", + ], + "Dalyvis": ["tas kurį dengė"], + }, + [], + [ + "dengdama", + "dengdamas", + "dengdavai", + "dengdavau", + "dengdavo", + "dengdavom", + "dengdavome", + "dengdavot", + "dengdavote", + "dengdavus", + "dengdavusi", + "dengdavęs", + "dengei", + "dengi", + "dengia", + "dengiam", + "dengiama", + "dengiamas", + "dengiame", + "dengiant", + "dengianti", + "dengiantis", + "dengiat", + "dengiate", + "dengiau", + "dengiu", + "dengiąs", + "dengs", + "dengsi", + "dengsiant", + "dengsianti", + "dengsiantis", + "dengsim", + "dengsima", + "dengsimas", + "dengsime", + "dengsit", + "dengsite", + "dengsiu", + "dengsiąs", + "dengta", + "dengtas", + "dengte", + "dengtina", + "dengtinai", + "dengtinas", + "dengtum", + "dengtume", + "dengtumei", + "dengtumėm", + "dengtumėme", + "dengtumėt", + "dengtumėte", + "dengtų", + "dengus", + "dengusi", + "dengčiau", + "dengė", + "dengėm", + "dengėme", + "dengėt", + "dengėte", + "dengęs", + "denk", + "denki", + "denkim", + "denkime", + "denkit", + "denkite", + "tedengia", + "tedengie", + ], + ), + ( + "informatyvus", + [], + ["m"], + ["informuoti + -atyv"], + {"Būdvardis": ["teikiantis daug informacijos"]}, + [], + [ + "informatyvaus", + "informatyvesne", + "informatyvesnei", + "informatyvesnes", + "informatyvesni", + "informatyvesniais", + "informatyvesniaisiais", + "informatyvesniajai", + "informatyvesniajam", + "informatyvesniajame", + "informatyvesniam", + "informatyvesniame", + "informatyvesnieji", + "informatyvesniems", + "informatyvesniesiems", + "informatyvesnio", + "informatyvesnioji", + "informatyvesniojo", + "informatyvesniojoje", + "informatyvesniosiomis", + "informatyvesniosioms", + "informatyvesniosios", + "informatyvesniosiose", + "informatyvesnis", + "informatyvesniu", + "informatyvesniuoju", + "informatyvesniuose", + "informatyvesniuosiuose", + "informatyvesniuosius", + "informatyvesnius", + "informatyvesniąja", + "informatyvesniąją", + "informatyvesniąsias", + "informatyvesnių", + "informatyvesniųjų", + "informatyvesnysis", + "informatyvesnė", + "informatyvesnėje", + "informatyvesnėmis", + "informatyvesnėms", + "informatyvesnės", + "informatyvesnėse", + "informatyvesnę", + "informatyvesnį", + "informatyvesnįjį", + "informatyvi", + "informatyvia", + "informatyviai", + "informatyviais", + "informatyviaisiais", + "informatyviajai", + "informatyviajam", + "informatyviajame", + "informatyviam", + "informatyviame", + "informatyvias", + "informatyviau", + "informatyviausi", + "informatyviausia", + "informatyviausiai", + "informatyviausiais", + "informatyviausiaisiais", + "informatyviausiajai", + "informatyviausiajam", + "informatyviausiajame", + "informatyviausiam", + "informatyviausiame", + "informatyviausias", + "informatyviausiasis", + "informatyviausieji", + "informatyviausiems", + "informatyviausiesiems", + "informatyviausio", + "informatyviausioje", + "informatyviausioji", + "informatyviausiojo", + "informatyviausiojoje", + "informatyviausiomis", + "informatyviausioms", + "informatyviausios", + "informatyviausiose", + "informatyviausiosiomis", + "informatyviausiosioms", + "informatyviausiosios", + "informatyviausiosiose", + "informatyviausiu", + "informatyviausiuoju", + "informatyviausiuose", + "informatyviausiuosiuose", + "informatyviausiuosius", + "informatyviausius", + "informatyviausią", + "informatyviausiąja", + "informatyviausiąją", + "informatyviausiąjį", + "informatyviausiąsias", + "informatyviausių", + "informatyviausiųjų", + "informatyvieji", + "informatyviem", + "informatyviems", + "informatyviesiem", + "informatyviesiems", + "informatyvioj", + "informatyvioje", + "informatyvioji", + "informatyviojo", + "informatyviojoj", + "informatyviojoje", + "informatyviom", + "informatyviomis", + "informatyvioms", + "informatyvios", + "informatyviose", + "informatyviosiom", + "informatyviosiomis", + "informatyviosioms", + "informatyviosios", + "informatyviosiose", + "informatyviu", + "informatyviuoju", + "informatyviuos", + "informatyviuose", + "informatyviuosiuos", + "informatyviuosiuose", + "informatyviuosius", + "informatyvius", + "informatyvią", + "informatyviąja", + "informatyviąją", + "informatyviąsias", + "informatyvių", + "informatyviųjų", + "informatyvu", + "informatyvusis", + "informatyvūs", + "informatyvų", + "informatyvųjį", + ], + ), + ( + "pasaulis", + [], + ["m"], + [], + { + "Daiktavardis": ["visa žemė; Žemės rutulys", "visi žmonės; aplinkiniai žmonės", "visata"], + "Simboliai": ["🜨, ♁"], + }, + [], + [ + "pasauli", + "pasauliai", + "pasauliais", + "pasauliams", + "pasaulio", + "pasauliu", + "pasauliui", + "pasauliuose", + "pasaulius", + "pasaulių", + "pasaulyje", + "pasaulį", + ], + ), + ( + "senas", + ["[ˈsʲæːnɐs]"], + ["f", "m"], + [ + "Iš Iš indoeuropiečių prokalbės *sénos. Plg. senovės graikų k. ἕνος (henos), sanskrito सन (sána) ir gotų k. 𐍃𐌹𐌽𐌴𐌹𐌲𐍃 (sineigs)." + ], + { + "Būdvardis": [ + "jau kuris laikas esantis", + "ilgai vartotas, palaikis", + "anksčiau buvęs, nedabartinis, pasenęs", + "prieš tai buvęs", + "pabuvęs, palaikytas, pastovėjęs", + ] + }, + [], + [ + "sena", + "senai", + "senais", + "senaisiais", + "senajai", + "senajam", + "senajame", + "senam", + "sename", + "senasis", + "senesne", + "senesnei", + "senesnes", + "senesni", + "senesniais", + "senesniaisiais", + "senesniajai", + "senesniajam", + "senesniajame", + "senesniam", + "senesniame", + "senesnieji", + "senesniems", + "senesniesiems", + "senesnio", + "senesnioji", + "senesniojo", + "senesniojoje", + "senesniosiomis", + "senesniosioms", + "senesniosios", + "senesniosiose", + "senesnis", + "senesniu", + "senesniuoju", + "senesniuose", + "senesniuosiuose", + "senesniuosius", + "senesnius", + "senesniąja", + "senesniąją", + "senesniąsias", + "senesnių", + "senesniųjų", + "senesnysis", + "senesnė", + "senesnėje", + "senesnėmis", + "senesnėms", + "senesnės", + "senesnėse", + "senesnę", + "senesnį", + "senesnįjį", + "seni", + "seniau", + "seniausi", + "seniausia", + "seniausiai", + "seniausiais", + "seniausiaisiais", + "seniausiajai", + "seniausiajam", + "seniausiajame", + "seniausiam", + "seniausiame", + "seniausias", + "seniausiasis", + "seniausieji", + "seniausiems", + "seniausiesiems", + "seniausio", + "seniausioje", + "seniausioji", + "seniausiojo", + "seniausiojoje", + "seniausiomis", + "seniausioms", + "seniausios", + "seniausiose", + "seniausiosiomis", + "seniausiosioms", + "seniausiosios", + "seniausiosiose", + "seniausiu", + "seniausiuoju", + "seniausiuose", + "seniausiuosiuose", + "seniausiuosius", + "seniausius", + "seniausią", + "seniausiąja", + "seniausiąją", + "seniausiąjį", + "seniausiąsias", + "seniausių", + "seniausiųjų", + "senieji", + "seniem", + "seniems", + "seniesiem", + "seniesiems", + "seno", + "senoj", + "senoje", + "senoji", + "senojo", + "senojoj", + "senojoje", + "senom", + "senomis", + "senoms", + "senos", + "senose", + "senosiom", + "senosiomis", + "senosioms", + "senosios", + "senosiose", + "senu", + "senuoju", + "senuos", + "senuose", + "senuosiuos", + "senuosiuose", + "senuosius", + "senus", + "seną", + "senąja", + "senąją", + "senąjį", + "senąsias", + "senų", + "senųjų", + ], + ), + ], +) +def test_parse_word( + word: str, + pronunciations: list[str], + genders: list[str], + etymology: list[Definitions], + definitions: list[Definitions], + variants: list[str], + reverse_variants: list[str], + page: Callable[[str, str], str], +) -> None: + """Test the sections finder and definitions getter.""" + code = page(word, "lt") + details = parse_word(word, code, "lt", force=True) + assert details + assert pronunciations == details.pronunciations + assert genders == details.genders + assert etymology == details.etymology + assert definitions == details.definitions + assert variants == details.variants + assert reverse_variants == details.reverse_variants + + +def test_skip_variant(page: Callable[[str, str], str]) -> None: + word = "informatikos" + code = page(word, "lt") + details = parse_word(word, code, "lt", force=True) + assert not details diff --git a/wikidict/caches/svg.gz b/wikidict/caches/svg.gz index 82357fa25..0ff57d1bb 100644 Binary files a/wikidict/caches/svg.gz and b/wikidict/caches/svg.gz differ diff --git a/wikidict/lang/lt/__init__.py b/wikidict/lang/lt/__init__.py new file mode 100644 index 000000000..1a38d7d23 --- /dev/null +++ b/wikidict/lang/lt/__init__.py @@ -0,0 +1,219 @@ +"""Lithuanian language.""" + +import re +from collections import defaultdict + +from ... import lang, utils +from . import variant_handlers as variant_handlers_mod +from .template_adapters import adapters as template_adapters # noqa: F401 +from .variant_handlers import handlers as variant_handlers # noqa: F401 + +random_word_url = "https://lt.wiktionary.org/wiki/Specialus:Atsitiktinis_puslapis" + +template_trans = "Šablonas" + +float_separator = "," + +section_patterns = ("#", r"\*") +sublist_patterns = ("#", r"\*") +section_sublevels = (3, 4) +head_sections = ("{{ltv}}",) +etyl_section = ("etimologija",) +sections = ( + *etyl_section, + "artikelis", # article + "būdvardis", # adjective + "būdinys", # adverb + "daiktavardis", # noun + "dalyvis", # participle + "dalelytė", # particle + # "išraiškos arba posakiai", # expressions or sayings + "įvardis", # pronoun + "jaustukas", # emoticon + "padalyvis", # participle + "prielinksnis", # preposition + "prieveiksmis", # adverb + "pusdalyvis", # participle + "raidė", # letter + "simboliai", # symbols + "skaitvardis", # numerical + "veiksmažodis", # verb + "žodžių junginys", # phrase +) + +variant_titles = sections +variant_templates = ("{{flexion",) + +reverse_variant_titles = ( + "{{ltbdv", + "{{ltbdn", + "{{ltdkt", + "{{ltdlv", + "{{ltpdlv", + "{{ltpsdlv", + "{{ltvks", +) +reverse_variant_templates = ("{{rev-flexion",) + + +def find_genders(code: str, locale: str) -> list[str]: + """ + >>> find_genders("", "lt") + [] + + >>> find_genders("{{ltdkt}} {{f}}", "lt") + ['f'] + >>> find_genders("{{ltdkt}} {{m}}", "lt") + ['m'] + + >>> find_genders("(mot. g.)", "lt") + ['f'] + >>> find_genders("(vyr. g.)", "lt") + ['m'] + """ + res: list[str] = re.compile(r"\{\{([fm]+)\}\}").findall(code) + if "(mot. g.)" in code: + res.append("f") + if "(vyr. g.)" in code: + res.append("m") + return utils.unique(res) + + +def find_pronunciations( + code: str, locale: str, *, pattern: re.Pattern[str] = re.compile(r"\{IPA\|([^}]+)") +) -> list[str]: + """ + >>> find_pronunciations("", "lt") + [] + >>> find_pronunciations("{{IPA|[ˈsʲæːnɐs]}}", "lt") + ['[ˈsʲæːnɐs]'] + """ + return utils.unique(utils.flatten(pattern.findall(code))) + + +def adjust_wikicode( + code: str, + locale: str, + *, + templates_status: list[tuple[str, str]] | None = None, + word: str = "", +) -> str: + r""" + >>> adjust_wikicode("
", "lt") + '' + >>> adjust_wikicode("
", "lt") + '' + >>> adjust_wikicode("
", "lt") + '' + >>> adjust_wikicode("
", "lt") + '' + + >>> adjust_wikicode("----", "lt") + '' + + >>> adjust_wikicode("'''[[foo]]'''", "lt", word="foo") + '' + + >>> adjust_wikicode("== {{ltv}} ==\n=== ''Daiktavardis'' ===\n==== Etimologija ====\n{{Žodžiai|jung}}\n*[[Antigva]]\n*[[Barbuda]]", "lt", word="foo") + "== {{ltv}} ==\n=== ''Daiktavardis'' ===\n==== Etimologija ====" + + >>> adjust_wikicode("== {{ltv}} ==\n=== ''Daiktavardis'' ===\n'''Žodžių junginį sudaro žodžiai:'''\n* {{t+|lt|būtasis}}\n* {{t+|lt|laikas}}", "lt", word="foo") + "== {{ltv}} ==\n=== ''Daiktavardis'' ===" + + >>> from ... import context + >>> _ = context.reset("lt") + + >>> context.new_word("Kvietkauskas") + >>> adjust_wikicode("== {{ltv}} ==\n=== ''Daiktavardis'' ===\n{{ltdkt|forma=f-{{{forma|vyr-1l-as}}}|tikr=tikr|šakn=Kvietkausk|šakn2={{{sakn2}}}}}", "lt", word="Kvietkauskas") + "== {{ltv}} ==\n=== ''Daiktavardis'' ===\n# {{rev-flexion|Kvietkauskai}}\n# {{rev-flexion|Kvietkauskais}}\n# {{rev-flexion|Kvietkauskams}}\n# {{rev-flexion|Kvietkauske}}\n# {{rev-flexion|Kvietkausko}}\n# {{rev-flexion|Kvietkausku}}\n# {{rev-flexion|Kvietkauskui}}\n# {{rev-flexion|Kvietkauskuose}}\n# {{rev-flexion|Kvietkauskus}}\n# {{rev-flexion|Kvietkauską}}\n# {{rev-flexion|Kvietkauskų}}\n{{m}}" + """ + + # Drop "see also" inline text + lines: list[str] = [] + in_section = False + for line in code.splitlines(): + if "{{Žodžiai" in line or "Žodžių junginį" in line: + in_section = True + continue + if in_section: + if line.startswith("*"): + continue + in_section = False + lines.append(line) + code = "\n".join(lines) + + # Remove uninteresting sections that would mess with genders finding + lines.clear() + in_section = False + for line in code.splitlines(): + if line.startswith("==== "): + in_section = "Sinonimai" in line or "Vertimai" in line or "Išraiškos" in line or "Antonimai" in line + elif line.startswith("
", "", code) + code = code.replace("----", "") + code = code.replace(f"'''[[{word}]]'''", "") + + # + # Reverse variants + # + + interesting_reverse_variant_titles = lang.reverse_variant_titles[locale] + interesting_reverse_variant_titles_alone = tuple(f"{t}}}}}" for t in interesting_reverse_variant_titles) + if any(tpl in code for tpl in interesting_reverse_variant_titles): + cleaned: list[str] = [] + in_tpl = False + tpl_code = "" + table_count = 0 + + for line in code.splitlines(): + if line.startswith(interesting_reverse_variant_titles) and not line.startswith( + interesting_reverse_variant_titles_alone + ): + in_tpl = True + + if in_tpl: + tpl_code += line + if tpl_code.count("{") == tpl_code.count("}"): + in_tpl = False + tpl_code = tpl_code.rsplit("}}", 1)[0] + tpl_code += "}}" + + if "{{{" in tpl_code: + forms = variant_handlers_mod.render_reverse_variant(tpl_code, [], defaultdict(str), word) + else: + tpl_name = tpl_code[2 : max(0, tpl_code.find("|")) or tpl_code.find("}")].strip() + variant_handlers_mod.append_to_reverse_variants(tpl_name) + forms = utils.process_templates( + word, + tpl_code, + locale, + templates_status=templates_status, + variant_only=True, + ) + + if forms: + # The gender can be derived from the reverse variants table + cleaned.extend( + form + if "g." in form or form.startswith("{{") or form == "SKIP WORD" + else f"# {{{{rev-flexion|{form}}}}}" + for form in sorted(forms.split("|")) + ) + tpl_code = "" + table_count += 1 + else: + cleaned.append(line) + + # We do not want to keep variants since they all are copy-paste of the base form + if table_count > 0 and cleaned.count("SKIP WORD") == table_count: + return "" + + code = "\n".join(cleaned) + + return code diff --git a/wikidict/lang/lt/template_adapters.py b/wikidict/lang/lt/template_adapters.py new file mode 100644 index 000000000..38d36b87b --- /dev/null +++ b/wikidict/lang/lt/template_adapters.py @@ -0,0 +1,5 @@ +import re + +adapters = { + "Šablonas:t+": lambda body: re.sub(r"(.+)", "", body, count=2), +} diff --git a/wikidict/lang/lt/variant_handlers.py b/wikidict/lang/lt/variant_handlers.py new file mode 100644 index 000000000..fd82fa8d9 --- /dev/null +++ b/wikidict/lang/lt/variant_handlers.py @@ -0,0 +1,67 @@ +import re +from collections import defaultdict + +from ... import context, utils + + +def render_variant(tpl: str, parts: list[str], data: defaultdict[str, str], word: str) -> str: + """ + >>> render_variant("flexion", ["ensimesmar"], defaultdict(str), "") + 'ensimesmar' + """ + return parts[0] + + +def render_reverse_variant(tpl: str, parts: list[str], data: defaultdict[str, str], word: str) -> str: + """ + >>> render_reverse_variant("rev-flexion", ["foo"], defaultdict(str), "") + 'foo' + """ + if tpl == "rev-flexion": + return parts[0] + + # We might pass the whole template code in `tpl` from `adjust_wikicode()` to workaround brackets parsing + template = tpl if tpl.startswith("{{") else utils.reconstruct_tpl(tpl, parts, data) + + table = context.expand(template, "lt") + table = table.replace(",
", "\n| ") + table = table.replace("| colspan=2 ", "") + + forms: set[str] = set() + for line in table.splitlines(): + # Guess the gender, when available + if line.startswith("'''"): + if "[[mot. g.]]" in line: + forms.add("{{f}}") + if "[[vyr. g.]]" in line: + forms.add("{{m}}") + + if line.startswith("* žr."): + # We want reverse variants for the original word only + if not line[line.find("'''") :].startswith(f"'''{word}'''"): + return "SKIP WORD" + elif line.startswith("* taip pat žr."): + forms.update(re.findall(r"\[\[([^\]]+)\]\]", line.split("'''")[1])) + elif line.startswith("| ") and "style=" not in line: + if "[[" in line: + forms.update(re.findall(r"\| \[\[([^\]]+)\]\]", line)) + else: + forms.add(line.lstrip("| ")) + + forms.discard(word) + forms.discard("-") + + return "|".join(sorted(forms)) + + +handlers = { + "flexion": render_variant, + "rev-flexion": render_reverse_variant, +} + + +def append_to_reverse_variants(tpl: str) -> None: + """Dynamically append a template to reverse variants templates.""" + if tpl in handlers: + return + handlers[tpl] = render_reverse_variant diff --git a/wikidict/namespaces.py b/wikidict/namespaces.py index dace99bd3..60c70899a 100644 --- a/wikidict/namespaces.py +++ b/wikidict/namespaces.py @@ -15,6 +15,7 @@ "fr": ["Catégorie", "Fichier", "Image"], "it": ["Categoria", "File", "Image", "Immagine"], "ja": ["Image", "カテゴリ", "ファイル", "画像"], + "lt": ["Image", "Kategorija", "Vaizdas"], "no": ["Bilde", "Fil", "Image", "Kategori"], "pt": ["Arquivo", "Categoria", "Ficheiro", "Image", "Imagem"], "ro": ["Categorie", "Fişier", "Fișier", "Image", "Imagine"], diff --git a/wikidict/part_of_speech.py b/wikidict/part_of_speech.py index dbcb0fa71..fa8df7ca1 100644 --- a/wikidict/part_of_speech.py +++ b/wikidict/part_of_speech.py @@ -61,6 +61,10 @@ # `名詞・田の実` → `名詞` re.compile(r"([^\d(::・・]+).*").sub, ], + "lt": [ + # `daiktavardis #1` → `daiktavardis` + re.compile(r"(.+) #\d").sub, + ], "no": [ # `verb 1` → `verb` re.compile(r"([^\s,]+),?\s+.*").sub, @@ -238,6 +242,9 @@ "慣用句": "成句", # idiom "名詞形": "名詞", # noun form }, + "lt": { + "top": "daiktavardis", + }, "no": { "forkortelser": "forkortelse", "top": "substantiv", diff --git a/wikidict/render.py b/wikidict/render.py index 47cf0eda4..6b92523d6 100644 --- a/wikidict/render.py +++ b/wikidict/render.py @@ -407,9 +407,12 @@ def find_sections(word: str, code: str, lang_src: str, lang_dst: str) -> tuple[l for title, section in all_sections: title = title.lower() - if lang_src == "de" and section.level == 3: - current_pos = "/".join(re.findall(r"\{\{\w+\|([^|]+)\|\w+\}\}", title)) - continue + if lang_src == "de": + if section.level == 3: + current_pos = "/".join(re.findall(r"\{\{\w+\|([^|]+)\|\w+\}\}", title)) + continue + elif lang_src == "lt": + title = title.strip("'") # Filter on interesting sections if title.startswith(wanted): diff --git a/wikidict/utils.py b/wikidict/utils.py index 7942a7a63..af6b8d26e 100644 --- a/wikidict/utils.py +++ b/wikidict/utils.py @@ -246,6 +246,9 @@ def format_pos(locale: str, value: str) -> str: >>> format_pos("ja", "名詞・田の実") '名詞' + >>> format_pos("lt", "daiktavardis #1") + 'Daiktavardis' + >>> format_pos("no", "verb 1") 'Verb' >>> format_pos("no", "egennavn, toponym")