Wiktionary
svwiktionary
https://sv.wiktionary.org/wiki/Wiktionary:Huvudsida
MediaWiki 1.47.0-wmf.24
case-sensitive
Media
Special
Diskussion
Användare
Användardiskussion
Wiktionary
Wiktionarydiskussion
Fil
Fildiskussion
MediaWiki
MediaWiki-diskussion
Mall
Malldiskussion
Hjälp
Hjälpdiskussion
Kategori
Kategoridiskussion
Appendix
Appendixdiskussion
Rimord
Rimordsdiskussion
Transwiki
Transwikidiskussion
TimedText
TimedText talk
Modul
Moduldiskussion
Event
Event talk
konst
0
776
4155774
4141454
2026-10-15T13:45:00Z
R. Henrik Nilsson
44622
dyligt > dylikt
4155774
wikitext
text/x-wiki
{{wikipedia}}
{{wikiquote|Konst}}
==Svenska==
===Substantiv===
{{sv-subst-n-er}}
'''konst'''
#{{tagg|konst}} framställning och av något (musik, skönlitteratur, bild, koreograferad dans, teater och dylikt), vars [[verk]] är tänkta att frambringa en känslomässigt eller [[intellektuell]]t 'förhöjd' upplevelse; ''i en snävare betydelse'' bildkonst (måleri, skulptur, grafik)
#:{{besläktade ord|[[konstnär]], [[konstnärinna]], [[konstnärlig]], [[konstnärlighet]], [[konstnärskap]]}}
#:{{sammansättningar|[[bildkonst]], [[byggnadskonst]], [[danskonst]], [[gatukonst]], [[hötorgskonst]], [[konceptkonst]], [[konstakademi]], [[konstalster]], [[konstart]], [[konstbiennal]], [[konstbroderi]], [[konstform]], [[konstforskning]], [[konstfull]], [[konstföremål]], [[konstförening]], [[konstförståndig]], [[konstgalleri]], [[konstgjutning]], [[konstglas]], [[konsthall]], [[konsthantverk]], [[konsthistoria]], [[konstindustri]], [[konstkritik]], [[konstkritiker]], [[konstmecenat]], [[konstmuseum]], [[konstmusik]], [[konstmålare]], [[konstnärssjäl]], [[konstobjekt]], [[konstprodukt]], [[konstrunda]], [[konstsalong]], [[konstsamlare]], [[konstsim]], [[konstsimning]], [[konstskapelse]], [[konstskicklig]], [[konstskojare]], [[konstskola]], [[konstslinga]], [[konstslöjd]], [[konstsmide]], [[konstsyn]], [[konstteori]], [[konstterapi]], [[konstutställning]], [[konstverk]], [[konstvetenskap]], [[musikkonst]], [[målarkonst]], [[scenkonst]], [[textilkonst]], [[vardagskonst]]}}
#:{{fraser|[[de musiska konsterna]], [[de sköna konsterna]], [[konst för konstens skull]]}}
#:{{seäven|[[arkitektur]], [[modern konst]]}}
#(en enskild persons) [[praktisk]] [[färdighet]] som [[tillägna]]s genom [[studie]]r och [[övning]], hantverksmässigt kunnande
#:''Hon kan verkligen '''konsten''' att behärska en svår situation.''
#:''Det är få som behärskar '''konsten''' att hålla ett så engagerande föredrag.''
#:{{jämför|[[trick]]}}
#:{{sammansättningar|[[akrobatkonst]], [[framställningskonst]], [[galderkonst]], [[konstfärdig]], [[konstförfaren]], [[konstgrepp]], [[konstridning]], [[konstrik]], [[konstryttare]], [[konststycke]], [[konstur]], [[konståkning]], [[kortkonst]], [[levnadskonst]], [[svartkonst]], [[talarkonst]], [[talekonst]], [[trollkonst]], [[vattenkonst]]}}
#{{tagg|historia|text=i sammansättningar}} [[färdighet]] tillgänglig i samhället utvecklad genom historia
#:{{sammansättningar|[[boktryckarkonst]], [[krigföringskonst]], [[läkarkonst]], [[läkekonst]], [[skrivkonst]]}}
====Översättningar====
{{ö-topp|musik, skönlitteratur mm}}
*alemanniska: {{ö|als|Kunst}}
*belarusiska: {{ö+|be|мастацтва|n}}
*bokmål: {{ö+|no|kunst|m}}
*danska: {{ö+|da|kunst}}
*engelska: {{ö+|en|art}}
*finska: {{ö+|fi|taide}}
*franska: {{ö+|fr|art|m}}
*grekiska: {{ö+|el|τέχνη}}
*isländska: {{ö+|is|list|f}}
*latin: {{ö+|la|ars|f}}
*litauiska: {{ö+|lt|menas|m}}
*nederländska: {{ö+|nl|kunst|f}}
*polska: {{ö+|pl|sztuka|f}}
*portugisiska: {{ö+|pt|arte|f}}
*rumänska: {{ö+|ro|artă|f}}
*ryska: {{ö+|ru|искусство|f}}
*spanska: {{ö+|es|arte|mf}}
*tjeckiska: {{ö+|cs|umění|n}}
*tyska: {{ö+|de|Kunst|f}}
*ukrainska: {{ö+|uk|мистецтво|n}}
*ungerska: {{ö+|hu|művészet}}
{{ö-botten}}
{{ö-topp|en persons färdighet}}
*engelska: {{ö+|en|trick}}
*finska: {{ö+|fi|temppu}}
*franska: {{ö+|fr|astuce|f}}
*litauiska: {{ö|lt|gudrybė|f}}
*ryska: {{ö+|ru|искусство|f}}
*tyska: {{ö+|de|Kunst|f}}
{{ö-botten}}
6yep0n9tjdaetne7glpfi1j8vuz0kpn
lejon
0
1304
4155937
4100107
2026-10-15T23:13:29Z
Frodlekis
762
+az: [[aslan]] (assisterat)
4155937
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
{{media|Lion waiting in Namibia.jpg|lejon (djur)}}
{{media|Royal Arms of the Kingdom of Scotland.svg|lejon (heraldik)}}
'''lejon'''
#{{tagg|kat=däggdjursarter|kat2=kattdjur}} en [[art]] ''([[Panthera leo]])'' inom däggdjursfamiljen [[kattdjur]] ([[Felidae]]); [[individ]] av arten lejon
#:{{besläktade ord|lejoninna}}
#{{tagg|heraldik}} kan vara en [[beståndsdel]] av [[vapen]] eller [[flagga|flaggor]] {{?|är det inte ett vanligt lejon (1)?}}
#{{tagg|astrologi}} person född i [[Lejonet]]s stjärnbild
#[[man]] som [[bruka]]r [[lycka]]s i vissa [[sammanhang]] eller som ofta syns i [[framstående]] [[sammankomst]]er
#:{{sammansättningar|[[barlejon]], [[modelejon]], [[premiärlejon]], [[salongslejon]], [[societetslejon]]}}
:{{avgränsare}}
:{{etymologi|Av {{härledning|sv|gmq-fsv|leon, leion}}, som kommer från {{härledning|sv|la|leo}}. Ytterst av grekiska ''[[λέων]]'' (léon) av oklart ursprung.}}
:{{sammansättningar|[[grottlejon]], [[lejonapa]], [[lejondans]], [[lejondräkt]], [[lejonflock]], [[lejonfisk]], [[lejonfot]], [[lejongap]], [[lejonhane]], [[lejonhona]], [[lejonhund]], [[lejonhybrid]], [[lejonjakt]], [[lejonkanin]], [[lejonkula]], [[lejonman]], [[lejonpark]], [[lejonpart]], [[lejontamarin]], [[lejontass]], [[lejontämjare]], [[lejonunge]], [[lejonvrål]]}}
====Översättningar====
{{ö-topp|Panthera leo}}
*akan: {{ö|ak|gyata}}
*alemanniska: {{ö|als|Löi}}
*aragonska: {{ö|an|lión}}
*armeniska: {{ö+|hy|առյուծ}} (arjuts)
*asturiska: {{ö+|ast|lleón|m}}
*azerbajdzjanska: {{ö+|az|aslan}}
*baskiska: {{ö+|eu|lehoi}}
*belarusiska: {{ö|be|леў|m|tr=leŭ}}
*bengali: {{ö+|bn|সিংহ|tr=singha}}
*bokmål: {{ö+|no|løve|f}}
*bulgariska: {{ö+|bg|лъв}}
*burmesiska: {{ö+|my|ခြင်္သေ့|tr=hkrangse}}
*danska: {{ö+|da|løve|u}}
*engelska: {{ö+|en|lion}}
*esperanto: {{ö+|eo|leono}}
*estniska: {{ö+|et|lõvi}}
*feniciska: {{ö|phn|𐤀𐤓𐤅}}
*finska: {{ö+|fi|leijona}}
*franska: {{ö+|fr|lion|m}}
*frisiska: {{ö+|fy|liuw}}
*färöiska: {{ö|fo|leyva}}
*grönländska: {{ö+|kl|løveq}}, {{ö|kl|liiuveq}}
*hebreiska: {{ö+|he|אריה}}
*indonesiska: {{ö+|id|singa}}
*iriska: {{ö+|ga|leon}}
*isländska: {{ö+|is|ljón|n}}
*italienska: {{ö+|it|leone}}
*japanska: {{ö+|ja|ライオン|tr=raion}}, {{ö+|ja|獅子|tr=しし, shishi}}
*jiddisch: {{ö|yi|לייב|m|tr=leyb}}
*kannada: {{ö+|kn|ಸಿಂಹ|tr=siṃha}}
*kantonesiska: {{ö|yue|獅子}}, {{ö|yue|狮子|tr=si1 zi2}}
*katalanska: {{ö+|ca|lleó}}
*kazakiska: {{ö|kk|арыстан|tr=arıstan}}
*khmer: {{ö|km|សឹង្ហ|tr=seung}}, {{ö+|km|តោ|tr=dtao}}
*kinesiska: {{ö+|zh|獅子}}, {{ö+|zh|狮子|tr=shīzi}}
*koreanska: {{ö+|ko|사자}} ({{ö+|ko|獅子}})
*kroatiska: {{ö+|hr|lav|m}}
*kurdiska: {{ö+|ku|şer}}
*latin: {{ö+|la|leo|m}}, {{ö+|la|leaena|f}}
*lettiska: {{ö+|lv|lauva|f}}
*litauiska: {{ö+|lt|liūtas|m}}
*malajiska: {{ö+|ms|singa}}
*maltesiska: {{ö|mt|iljun}}
*min nan: {{ö+|zh-min-nan|獅子}}, {{ö|zh-min-nan|狮子|tr=sai-chú}}
*nederländska: {{ö+|nl|leeuw}}
*nordfrisiska: {{ö|frr|lööw}}
*nynorska: {{ö|nn|løve|f}}
*occitanska: {{ö+|oc|leon}}
*oriya: {{ö+|or|ସିଂହ|tr=sinha}}
*polska: {{ö+|pl|lew}}
*portugisiska: {{ö+|pt|leão|m}}
*rwanda: {{ö|rw|shumba}}
*ryska: {{ö+|ru|лев}}
*sesotho: {{ö+|st|tau}}
*slovenska: {{ö+|sl|lev}}
*somaliska: {{ö|so|libaax}}
*spanska: {{ö+|es|león}}
*swahili: {{ö+|sw|simba}}
*tibetanska: {{ö|bo|སེང}} (seng)
*tjeckiska: {{ö+|cs|lev}}
*tjuvasjiska: {{ö|cv|арӑслан|tr=arăslan}}
*tswana: {{ö|tn|tau}}
*turkiska: {{ö+|tr|aslan}}
*turkmeniska: {{ö+|tk|arslan}}
*tyska: {{ö+|de|Löwe|m}}
*ukrainska: {{ö+|uk|лев|m}}
*ungerska: {{ö+|hu|oroszlán}}
*vepsiska: {{ö|vep|lev}}
*vietnamesiska: {{ö+|vi|sư tử}} ({{ö|vi|獅子}})
{{ö-botten}}
{{ö-topp|person född i Lejonet}}
*engelska: {{ö+|en|Leonian}}
*katalanska: {{ö+|ca|lleó|mf}}
*tyska: {{ö+|de|Löwe}}
{{ö-botten}}
izle1etsi8qfysozxmi4k5dsd4b360b
soppa
0
1792
4156144
4148093
2026-10-16T10:30:46Z
Frodlekis
762
/* Översättningar */
4156144
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-or|betydelser=1-3.}}
'''soppa'''
*{{uttal|sv|ipa=ˈsɔˌpa}}
#{{tagg|mat|kat=maträtter}} maträtt som är mestadels flytande
#::''De åt '''soppa''' till varmrätt.''
#:{{synonymer|[[potage]]}}
#:{{etymologi|{{belagt|sv|1538}}<ref>2026: {{källa-so}}</ref> Som {{härledning|sv|gmq-fsv|suppa, soppa}}, av {{härledning|sv|gml|suppe, soppe}}.}}
#:{{besläktade ord|[[soppig]]}}
#:{{sammansättningar|[[blomkålssoppa]], [[blåbärssoppa]], [[bönsoppa]], [[fisksoppa]], [[gulaschsoppa]], [[grönsakssoppa]], [[kålsoppa]], [[köttsoppa]], [[laxsoppa]], [[linssoppa]], [[löksoppa]], [[nyponsoppa]], [[nässelsoppa]], [[potatissoppa]], [[pumpasoppa]], [[rotfruktssoppa]], [[soppkök]], [[sopprecept]], [[spottsoppa]], [[sagosoppa]], [[svampsoppa]], [[svartsoppa]], [[tomatsoppa]], [[ärtsoppa]]}}
#:{{fraser|[[koka soppa på en spik]] - göra eller producera något med små eller inga medel; sedan 1807 av känd folksaga}}
#{{tagg|text=överförd betydelse}} om något oordnat eller kaotiskt
#:''Deras skilsmässa blev en [[snaskig]] '''soppa'''.''
#{{tagg|vardagligt}} [[bensin]]; [[bränsle]] för [[motorfordon]], vanligt i kombination med [[torsk]]; ''[[soppatorsk]]''
#:''Vi är inte ens halvvägs och '''soppan''' är redan slut!''
====Översättningar====
{{ö-topp|mat}}
*amhariska: {{ö|am|ሾርባ}}
*baskiska: {{ö|eu|zopa}}
*belarusiska: {{ö|be|суп|m}}
*bokmål: {{ö+|no|suppe|mf}}
*bosniska: {{ö|bs|juha|f}}, {{ö|bs|supa|f}}
*danska: {{ö+|da|suppe|u}}
*engelska: {{ö+|en|soup}}
*estniska: {{ö+|et|supp}}
*finska: {{ö+|fi|keitto}}, {{ö+|fi|soppa}}
*franska: {{ö+|fr|potage}}, {{ö+|fr|soupe}}
*grönländska: {{ö|kl|qajoq}}
*hebreiska: {{ö+|he|מָרָק|m|tr=marák}}
*italienska: {{ö+|it|zuppa}}
*jiddisch: {{ö|yi|זופּ|f|tr=zup}}
*katalanska: {{ö+|ca|sopa|f}}
*kinesiska: {{ö+|zh|汤}} (tāng)
*koreanska: {{ö+|ko|국}} (kuk)
*kroatiska: {{ö+|hr|juha|f|s}}
*kvänska: {{ö|fkv|velli}}
*lakota: {{ö|lkt|waháŋpi}}
*nederländska: {{ö+|nl|soep|mf}}
*nordkurdiska: {{ö|kmr|şorbe|f}}
*nynorska: {{ö|nn|suppe|f}}
*polska: {{ö+|pl|zupa|f}}
*ryska: {{ö+|ru|суп}} (sup)
*slovakiska: {{ö+|sk|polievka|f}}
*somaliska: {{ö+|so|maraq}}
*spanska: {{ö+|es|sopa|f}}
*sydsamiska: {{ö|sma|joptse}}
*tyska: {{ö+|de|Suppe|f}}
*ukrainska: {{ö|uk|суп|m}}
{{ö-botten}}
{{ö-topp|något oordnat eller kaotiskt}}
*bokmål: {{ö+|no|suppe|mf}}
*danska: {{ö|da|suppedas|u}}
*finska: {{ö+|fi|soppa}}
*nynorska: {{ö|nn|suppe|f}}
{{ö-botten}}
==Källor==
<references/>
pmew462gz2vyhpvpjixeffz0nhyfqoz
naken
0
1842
4155773
3859089
2026-10-15T13:44:48Z
R. Henrik Nilsson
44622
dyligt > dylikt
4155773
wikitext
text/x-wiki
==Svenska==
===Adjektiv===
{{sv-adj-alt|pers=}}
'''naken'''
#utan kläder (på sig), som inte har på sig några [[kläder]] ''(även om kroppsdel)''
#:''I en scen uppträder de '''nakna''' på stranden.''
#:''Vi klädde av oss '''nakna''' och gick ut i solen.''
#:{{jämför|[[avklädd]], [[bar]], [[blottad]], [[i adamsdräkt]], [[i bara mässingen]], [[i evakostym]], [[i naturtillstånd]], [[i paradisdräkt]], [[in naturalibus]], [[nakot]], [[naturell]], [[näck]], [[oklädd]], som gud skapade en, [[spritt språngande]], [[strippad]], [[utan en tråd på kroppen]]}}
#:{{sammansättningar|[[halvnaken]], [[helnaken]], [[nakenaktion]], [[nakenbad]], [[nakenbada]], [[nakenbadande]], [[nakenbadare]], [[nakenbalett]], [[nakenbild]], [[nakenbrottning]], [[nakencamping]], [[nakenchock]], [[nakendans]], [[nakendansös]], [[nakenfis]], [[nakenfoto]], [[nakenfotografering]], [[nakenkamera]], [[nakenkultur]], [[nakenmodell]], [[nakenmåleri]], [[nakenpool]], [[nakenscen]], [[nakenskanner]], [[nakenskanning]], [[nakenstrand]], [[nakenstudie]]}}
#utan skyddande hölje eller dylikt
#:''Smörblomma och gullviva kan lättare ta plats om fröna får chans att gro i '''naken''' jord.''
#:''Hon avskydde våningens '''nakna''' väggar.''
#:''Fladdermusen var '''naken''' så när som på lite hår runt en körtel på halsen.''
#:''Hos de ännu nakna klibbalarna lyste deras brunröda hängen.
#:{{jämför|[[avlövad]], [[avskalad]], [[bar]], [[blottad]], [[hårlös]], illa försedd, illa utrustad, [[kal]], [[obetäckt]], [[obevuxen]], [[ofjädrad]], [[skallig]], [[skoglös]], [[tom]], utan fjädrar}}
#:{{sammansättningar|[[nakenfladdermus]], [[nakenfröig]], [[nakenhund]], [[nakenkindad]], [[nakenråtta]], [[nakensnäcka]], [[nakensvansad]], [[vinternaken]]}}
#{{tagg|text=bildligt}} utan oväsentligheter
#:{{jämför|[[avskalad]], [[enkel]], [[obeslöjad]], [[oförblommerad]], [[oförfalskad]], [[oförställd]], [[ohöljd]], [[osminkad]], [[osmyckad]], [[rena rama]], [[uppenbar]], [[öppen]]}}
{{avgränsare}}
:{{besläktade ord|[[nakenhet]]}}
====Översättningar====
{{ö-topp|utan kläder}}
*armeniska: {{ö+|hy|մերկ}} (merk), {{ö+|hy|տկլոր}} (tklor)
*azerbajdzjanska: {{ö+|az|çılpaq}}
*baskiska: {{ö|eu|biluzi}}
*bokmål: {{ö+|no|naken}}, {{ö+|no|bar}}
*bretonska: {{ö+|br|noazh}}
*danska: {{ö+|da|nøgen}}
*engelska: {{ö+|en|naked}}, {{ö+|en|nude}}
*esperanto: {{ö+|eo|nuda}}
*finsk romani: {{ö|rmf|nango}}, {{ö|rmf|uutan koola}}
*finska: {{ö+|fi|alaston}}
*franska: {{ö+|fr|nu}}
*färöiska: {{ö|fo|nakin}}
*georgiska: {{ö|ka|შიშველი}} (šišveli), {{ö|ka|ტიტველი}} (titveli)
*grekiska: {{ö+|el|γυμνός}} (gymnós)
*hebreiska: {{ö+|he|עירום}}
*hindi: {{ö+|hi|नंगा}} (nãṅgā), {{ö+|hi|नग्न}} (nagna)
*indonesiska: {{ö+|id|telanjang}}
*iriska: {{ö|ga|nocht}}
*isländska: {{ö+|is|nakinn}}, {{ö+|is|ber}}
*italienska: {{ö+|it|nudo}}
*japanska: {{ö+|ja|裸}} ({{ö+|ja|はだか}}, hadaka)
*jiddisch: {{ö|yi|נאַקעט}} (naket)
*kroatiska: {{ö+|hr|gol}}
*kymriska: {{ö+|cy|noeth}}
*latin: {{ö|la|nudus}}
*lettiska: {{ö+|lv|kails}}, {{ö+|lv|pliks}}
*litauiska: {{ö+|lt|nuogas}}
*makedonska: {{ö|mk|гол|tr=gol}}
*meänkieli: {{ö|fit|alasti}}
*mongoliska: {{ö+|mn|нүцгэн}} (nücgen)
*nynorska: {{ö|nn|naken}}
*polska: {{ö+|pl|nagi}}, {{ö+|pl|goły}}
*portugisiska: {{ö+|pt|pelado|m}}, {{ö+|pt|nu|m}}
*rumänska: {{ö+|ro|dezbrăcat}}, {{ö+|ro|gol}}
*ryska: {{ö+|ru|голый}} (gólyj), {{ö+|ru|нагой}} (nagój)
*slovenska: {{ö+|sl|gol}}, {{ö+|sl|nag}}
*tjeckiska: {{ö+|cs|nahý}}, {{ö|cs|nahatý}}, {{ö|cs|nezahalený}}, {{ö|cs|neoblečený}}
*turkiska: {{ö+|tr|çıplak}}
*tyska: {{ö+|de|nackt}}
*ungerska: {{ö+|hu|meztelen}}, {{ö+|hu|csupasz}}, {{ö|hu|pucér}}
{{ö-botten}}
k81n2eg1yx9ns1p5bjs5jrv5bkiwcff
at
0
3184
4155938
4155636
2026-10-15T23:15:38Z
Frodlekis
762
/* Turkiska */
4155938
wikitext
text/x-wiki
{{övrigt|de engelska definitionerna behöver utökas med exempel och sammanhang, prepositionsuppslag behöver ofta vara ganska utförliga eftersom det skiljer sig mycket mellan språk. att veta att "at" betyder "på" säger inte så mycket utan exempel och sammanhang}}
{{se även|AT|At|ät|åt|a:t}}
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
'''at'''
#{{tagg|kat=däggdjur|språk=az}} [[häst]]
==Bokmål==
===Konjunktion===
{{konj|no}}
'''at'''
#[[att]]
#:''det er helt korrekt '''at''' mange vil ha flyttet''
#::''det är helt korrekt '''att''' många kommer att ha flyttat''
#:''bidra til '''at''' vi undervurderer eventuelle effekter''
#::''bidra till '''att''' vi undervärderar eventuella effekter''
#:''enige i '''at''' det er viktig''
#::''eniga om '''att''' det är viktigt''
==Danska==
===Konjunktion===
{{konj|da}}
'''at'''
*{{uttal|da|ipa=æt}}
#[[att]]
==Engelska==
===Adverb===
{{adv|en}}
'''at'''
#{{tagg|text=som verbpartikel}} [[på]], [[åt]], [[vid]] ... {{?|fler fall?}}
#:''look '''at''', make an attempt '''at''', point '''at''', swear '''at''', jump '''at''', ...'' {{?|Bättre struktur behövs. Notera också att en:wikt klassar detta som preposition.}}
#{{tagg|vardagligt|amerikansk engelska|språk=en}} [[någonstans]], [[nånstans]]
#:''Where are you '''at'''?''
#:''Var är du '''nånstans'''?''
===Preposition===
{{prep|en}}
'''at'''
*{{uttal|en|ipa=æt}}
#''(uttrycker närhet)'' [[hos]] ''(en person, ordet [[place]] eller [[house]] eller dylikt måste användas)''
#:'''''at''' her parents' place''
#::'''''hos''' hennes föräldrar''
#[[vid]], i samband med; som en respons på {{?|kan vi klargöra detta?}}
#:{{citat|förf=[[w:Jane Austen|Jane Austen]], svensk översättning från 1920 av Carl Axel Ringenson|titel=[[w:Stolthet och fördom|Pride and Prejudice]]|år=1813|At length, however, Mrs. Bennet had no more to say; and Lady Lucas, who had been long yawning '''at''' the repetition of delights which she saw no likelihood of sharing, was left to the comforts of cold ham and chicken.|Till slut hade mrs Bennet emellertid ingenting mer att säga, och lady Lucas, som länge hade setat och gäspat vid åhörandet av härligheter, som hon icke såg någon möjlighet att få dela, fick i ro njuta av kall skinka och kyckling.}}
#''anger klockslag, ingen preposition på svenska''
#:'''''At''' 3 o'clock.''
#::''Klockan 3.''
#[[på]] ''(anger plats (i vissa fall) {{?|när?}})''
#:''at work'', ''at home'', ''at the office''
#''(uttrycker närhet)'' [[vid]], [[bredvid]], i närheten av
#:''He is already '''at''' the car.''
#::''Han är redan '''vid''' bilen.''
#:''We will wait '''at''' the train station.''
#::''Vi kommer att vänta '''vid''' järnvägsstationen.''
#[[till]]
#:''arrive '''at''''' {{?|eller verbpartikel?}}
#::''anlända till''
:{{avgränsare}}
:{{fraser|[[at no cost]]}}
===Substantiv===
{{subst|en}}
'''at'''
#namn på tecknet [[@]]; [[snabel-a]]
==Isländska==
===Substantiv===
{{is-subst-n-0|rot=at|omljudsrot=öt}}
'''at'''
#[[slagsmål]], [[strid]], [[kamp]]
#:{{synonymer|[[bardagi]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''at'''
*{{uttal|tr|ipa=ɑt}}
#{{tagg|däggdjur|språk=tr}} [[häst]]
#:{{hyponymer|[[aygır]], [[kısrak]], [[tay]]}}
#:{{besläktade ord|[[atbalığı]], [[atbaşı]], [[atçı]], [[atçık]], [[atken]], [[atkuyruğu]], [[atla]], [[atlanmak]], [[atlı]], [[atlıkarınca]], [[atsa]], [[atsız]], [[denizatı]], [[Kırat]], [[kırat]]}}
#{{tagg|schack|språk=tr}} [[springare]]
===Verb===
'''at'''
#{{böjning|tr|verb|atmak}}
==Älvdalska==
===Konjunktion===
{{konj|ovd}}
'''at'''
#[[att]]
t2uwcim1x7d0ahuc178bmhm657te6ei
4155939
4155938
2026-10-15T23:16:10Z
Frodlekis
762
/* Azerbajdzjanska */
4155939
wikitext
text/x-wiki
{{övrigt|de engelska definitionerna behöver utökas med exempel och sammanhang, prepositionsuppslag behöver ofta vara ganska utförliga eftersom det skiljer sig mycket mellan språk. att veta att "at" betyder "på" säger inte så mycket utan exempel och sammanhang}}
{{se även|AT|At|ät|åt|a:t}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''at'''
#{{tagg|kat=däggdjur|språk=az}} [[häst]]
==Bokmål==
===Konjunktion===
{{konj|no}}
'''at'''
#[[att]]
#:''det er helt korrekt '''at''' mange vil ha flyttet''
#::''det är helt korrekt '''att''' många kommer att ha flyttat''
#:''bidra til '''at''' vi undervurderer eventuelle effekter''
#::''bidra till '''att''' vi undervärderar eventuella effekter''
#:''enige i '''at''' det er viktig''
#::''eniga om '''att''' det är viktigt''
==Danska==
===Konjunktion===
{{konj|da}}
'''at'''
*{{uttal|da|ipa=æt}}
#[[att]]
==Engelska==
===Adverb===
{{adv|en}}
'''at'''
#{{tagg|text=som verbpartikel}} [[på]], [[åt]], [[vid]] ... {{?|fler fall?}}
#:''look '''at''', make an attempt '''at''', point '''at''', swear '''at''', jump '''at''', ...'' {{?|Bättre struktur behövs. Notera också att en:wikt klassar detta som preposition.}}
#{{tagg|vardagligt|amerikansk engelska|språk=en}} [[någonstans]], [[nånstans]]
#:''Where are you '''at'''?''
#:''Var är du '''nånstans'''?''
===Preposition===
{{prep|en}}
'''at'''
*{{uttal|en|ipa=æt}}
#''(uttrycker närhet)'' [[hos]] ''(en person, ordet [[place]] eller [[house]] eller dylikt måste användas)''
#:'''''at''' her parents' place''
#::'''''hos''' hennes föräldrar''
#[[vid]], i samband med; som en respons på {{?|kan vi klargöra detta?}}
#:{{citat|förf=[[w:Jane Austen|Jane Austen]], svensk översättning från 1920 av Carl Axel Ringenson|titel=[[w:Stolthet och fördom|Pride and Prejudice]]|år=1813|At length, however, Mrs. Bennet had no more to say; and Lady Lucas, who had been long yawning '''at''' the repetition of delights which she saw no likelihood of sharing, was left to the comforts of cold ham and chicken.|Till slut hade mrs Bennet emellertid ingenting mer att säga, och lady Lucas, som länge hade setat och gäspat vid åhörandet av härligheter, som hon icke såg någon möjlighet att få dela, fick i ro njuta av kall skinka och kyckling.}}
#''anger klockslag, ingen preposition på svenska''
#:'''''At''' 3 o'clock.''
#::''Klockan 3.''
#[[på]] ''(anger plats (i vissa fall) {{?|när?}})''
#:''at work'', ''at home'', ''at the office''
#''(uttrycker närhet)'' [[vid]], [[bredvid]], i närheten av
#:''He is already '''at''' the car.''
#::''Han är redan '''vid''' bilen.''
#:''We will wait '''at''' the train station.''
#::''Vi kommer att vänta '''vid''' järnvägsstationen.''
#[[till]]
#:''arrive '''at''''' {{?|eller verbpartikel?}}
#::''anlända till''
:{{avgränsare}}
:{{fraser|[[at no cost]]}}
===Substantiv===
{{subst|en}}
'''at'''
#namn på tecknet [[@]]; [[snabel-a]]
==Isländska==
===Substantiv===
{{is-subst-n-0|rot=at|omljudsrot=öt}}
'''at'''
#[[slagsmål]], [[strid]], [[kamp]]
#:{{synonymer|[[bardagi]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''at'''
*{{uttal|tr|ipa=ɑt}}
#{{tagg|däggdjur|språk=tr}} [[häst]]
#:{{hyponymer|[[aygır]], [[kısrak]], [[tay]]}}
#:{{besläktade ord|[[atbalığı]], [[atbaşı]], [[atçı]], [[atçık]], [[atken]], [[atkuyruğu]], [[atla]], [[atlanmak]], [[atlı]], [[atlıkarınca]], [[atsa]], [[atsız]], [[denizatı]], [[Kırat]], [[kırat]]}}
#{{tagg|schack|språk=tr}} [[springare]]
===Verb===
'''at'''
#{{böjning|tr|verb|atmak}}
==Älvdalska==
===Konjunktion===
{{konj|ovd}}
'''at'''
#[[att]]
mrx8r3pcw3dpkl79mrzdg44yabk60ds
alt
0
16825
4156179
3983234
2026-10-16T11:22:09Z
Frodlekis
762
/* Turkiska */
4156179
wikitext
text/x-wiki
{{se även|alt.|Alt}}
==Svenska==
===Substantiv===
{{sv-subst-n-ar}}
'''alt'''
#{{tagg|kat=musik}} musikalisk [[stämma]] lägre än [[sopran]] och högre än [[tenor]]; [[mörk]] goss- eller kvinnostämma
#:{{sammansättningar|[[altblockflöjt]], [[altfiol]], [[altflöjt]], [[althorn]], [[altröst]], [[altsax]], [[altsolo]], [[altstämma]]}}
#{{tagg|kat=musik}} person eller instrument som sjunger eller spelar altstämma
#{{tagg|datorspel|text=[[MMORPG]], MUD}} [[andrahands-|andrahand]]s[[rollfigur]], [[sido-|sido]][[rollfigur]]
#:{{etymologi|Av engelska ''[[#Engelska|alt]]'' med samma betydelse, en förkortning av ''[[alternate]] [[character]]''.}}
#:{{antonymer|[[main]]}}
:{{avgränsare}}
:{{etymologi|Från {{härledning|sv|de|alt}}, {{härledning|sv|it|alto}} och {{härledning|sv|la|altus}} (”hög”, ursprungligen den högsta stämman för män).}}
:{{seäven|[[baryton]], [[bas]], [[mezzosopran]], [[sopran]], [[sopranino]], [[tenor]]}}
:{{homofoner|allt}}
====Översättningar====
{{ö-topp|stämma}}
*albanska: {{ö+|sq|alto}}, {{ö|sq|kontraalto}}
*bokmål: {{ö+|no|alt}}
*engelska: {{ö+|en|alto}}
*franska: {{ö+|fr|alto|m}}
*nynorska: {{ö|nn|alt}}
*ryska: {{ö+|ru|альт|m}}
*tyska: {{ö+|de|Alt|m}}
{{ö-botten}}
{{ö-topp|person som sjunger alt}}
*bokmål: {{ö+|no|alt}}
*engelska: {{ö+|en|alto}}
*franska: {{ö+|fr|alto|m}}
*nynorska: {{ö|nn|alt}}
*ryska: {{ö+|ru|альт|m}}
*tyska: {{ö+|de|Alt|m}}
{{ö-botten}}
==Bokmål==
===Adverb===
{{adv|no}}
'''alt'''
#(''av [[all#Bokmål|all]] i betydelsen helt'') [[redan]]
#:{{synonymer|[[allerede]], [[ennå]]}}
===Substantiv===
{{no-subst|alt|alten|alter|altene}}
'''alt''' 1
#musikalisk stämma, mörk barn- eller kvinnostämma
#sångare som sjunger altstämma
#instrument som spelar altstämma
'''alt''' 2
#(''endast i bestämd form'') [[universum]], [[världsalltet]]
==Italienska==
===Interjektion===
{{interj|it}}
'''alt'''
#[[stopp]]
==Katalanska==
===Adjektiv===
{{ca-adj}}
'''alt'''
#[[hög]]
#:{{antonymer|[[baix]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''alt'''
#[[botten]]
#:{{antonymer|[[üst]]}}
==Tyska==
===Adjektiv===
{{de-adj|komprot=ält|suprot=ältest}}
'''alt'''
*{{uttal|de|ipa=alt|ljud=De-alt2.ogg}}
#{{tagg|kat=ä-omljud|språk=de}} [[gammal]], [[antikvarisk]]
#:{{sammansättningar|[[altnordisch]], [[Altpapier]], [[Altöl]], [[jahrhundertealt]], [[steinalt]], [[uralt]]}}
11x6pbyjcyncp3yzcqhzkfgm1tbkuo9
historia
0
22996
4155862
4039755
2026-10-15T21:05:43Z
Christoffre
6867
/* Svenska */ +La till 2026 citat.
4155862
wikitext
text/x-wiki
{{se även|história|historiá|historía|història}}
==Svenska==
===Substantiv===
{{sv-subst-n-oräkn|fog=|betydelser=2.}}
{{sv-subst-n-oräkn|rot=histori|förled=historie|betydelser=3.}}
{{sv-subst-n-er|rot=histori|förled=historie|2=[[historien]], <small><i>vard.</i></small> [[historian]]|6=[[historiens]], <small><i>vard.</i></small> [[historians]]|3=[[historier]], <small><i>vard.</i></small> [[historior]]|4=[[historierna]], <small><i>vard.</i></small> [[historiorna]]|7=[[historiers]], <small><i>vard.</i></small> [[historiors]]|8=[[historiernas]], <small><i>vard.</i></small> [[historiornas]]|betydelser=4-5.}}
'''historia'''
#{{tagg|kat=vetenskaper|historia}} en vetenskaplig [[disciplin]] som behandlar och forskar om vad som [[hända|hänt]] [[förut]], vid tidigare [[tidpunkt]]er
#:''Hon är professor i '''historia'''.''
#:{{synonymer|[[historievetenskap]]}}
#:{{fraser|[[skapa historia]]}}
#{{tagg|historia}} [[skolämne]] som behandlar historievetenskap
#:''Vi fick läxor på '''historian''' idag.''
#samlat för allt som hänt en person, organisation, föremål eller annan [[enhet]], eller om det inte anges, det som hänt i [[världen]]
#:''Detta har aldrig tidigare hänt i '''historien'''.''
#:{{citat|år=2001|datum=14 jan|titel=[[w:Göteborgsposten|GP]]|De två stora partierna har en lång '''historia''' av samarbete, och är fortfarande överens i många helt grundläggande frågor.}}
#:{{citat|år=2012|datum=29 okt|titel=[http://www.dn.se/ekonomi/svenskarna-har-aldrig-haft-storre-skulder/ Svenskarna har aldrig haft större skulder]|publ=[[w:Dagens Nyheter|DN]]|Aldrig tidigare i svensk '''historia''' har så många privatpersoner haft så stora skulder.}}
#[[berättelse]]
#:{{sammansättningar|[[bellmanhistoria]], [[bondhistoria]], [[jakthistoria]], [[kärlekshistoria]], [[lumparhistoria]], [[mirakelhistoria]], [[mordhistoria]], [[rötmånadshistoria]], [[rövarhistoria]], [[snuskhistoria]], [[snyfthistoria]], [[solskenshistoria]], [[spionhistoria]], [[spökhistoria]], [[svärmorshistoria]], [[vandringshistoria]], [[västgötahistoria]]}}
#:{{fraser|[[rolig historia]]}}
#[[ting]], [[föremål]], [[objekt]]
#:{{citat|år=2026|datum=14 jun|titel=[Så funkar en nöjespark! – Tekniken bakom Gröna Lund!]|publ=Raketforskar1, You Tube, 30:34|Och det här, det ser ut att vara någon slags... Ja men, det är någon hårdplast... '''historia'''?}}
:{{avgränsare}}
:{{besläktade ord|[[historicism]], [[historik]], [[historiker]], [[historielös]], [[historicitet]], [[historiett]], [[historisera]]}}
:{{sammansättningar|[[danshistoria]], [[förhistoria]], [[historiebok]], [[historieforskning]], [[historielektion]], [[historieskrivning]], [[historievetenskap]], [[idéhistoria]], [[konsthistoria]], [[kulturhistoria]], [[kyrkohistoria]], [[litteraturhistoria]], [[livshistoria]], [[lokalhistoria]], [[mediehistoria]], [[mentalitetshistoria]], [[militärhistoria]], [[musikhistoria]], [[naturhistoria]], [[religionshistoria]], [[rättshistoria]], [[släkthistoria]], [[språkhistoria]], [[världshistoria]]}}
:{{etymologi|Av {{härledning|sv|grc|ῐ̔στορῐ́ᾱ|tr={{tr|grc|ῐ̔στορῐ́ᾱ}}}}.<ref>{{källa-svetym|0326|historia|2024-06-17}}</ref>}}
====Översättningar====
{{ö-topp|vetenskap}}
*arabiska: {{ö+|ar|تَارِيخ|m|tr=tārīḵ}}
*asturiska: {{ö+|ast|historia}}
*belarusiska: {{ö+|be|гісторыя|f}}
*bokmål: {{ö+|no|historie|m}}
*danska: {{ö|da|historie|u}}
*engelska: {{ö+|en|history}}
*esperanto: {{ö+|eo|historio}}
*estniska: {{ö+|et|ajalugu}}
*extremaduriska: {{ö|ext|estória|f}}
*finska: {{ö+|fi|historia}}
*franska: {{ö+|fr|histoire|f}}
*färöiska: {{ö|fo|søgufrøði}}
*hebreiska: {{ö|he|הִיסְטוֹרְיָה|f|tr=história}}
*indonesiska: {{ö+|id|sejarah}}
*isländska: {{ö|is|saganfræði}}
*italienska: {{ö+|it|storia|f}}
*japanska: {{ö+|ja|歴史|tr=れきし, rekishi}}
*jiddisch: {{ö|yi|היסטאָריע|f|tr=historye}}, {{ö+|yi|געשיכטע|f|tr=geshikhte}}
*katalanska: {{ö+|ca|historia|f}}
*ladino: {{ö|lad|istoria|f}}
*lulesamiska: {{ö|smj|histårjjå}}
*meänkieli: {{ö|fit|histuuria}}
*polska: {{ö+|pl|historia}}, {{ö+|pl|dzieje|m}}
*portugisiska: {{ö+|pt|história|f}}
*ryska: {{ö+|ru|история|f}}
*spanska: {{ö+|es|historia|f}}
*swahili: {{ö+|sw|historia}}
*sydsamiska: {{ö|sma|histovrije}}
*turkiska: {{ö+|tr|tarih}}
*tyska: {{ö+|de|Geschichte|f}}, {{ö+|de|Geschichtswissenschaft|f}}
*ukrainska: {{ö+|uk|історія|f}}
*vietnamesiska: {{ö+|vi|lịch sử}}
{{ö-botten}}
{{ö-topp|det som har hänt}}
*baskiska: {{ö+|eu|historia}}
*bokmål: {{ö+|no|historie|m}}
*danska: {{ö|da|historie}}
*engelska: {{ö+|en|history}}
*finska: {{ö+|fi|historia}}
*franska: {{ö+|fr|histoire|f}}
*japanska: {{ö+|ja|歴史|tr=れきし, rekishi}}
*ladino: {{ö|lad|istoria|f}}
*spanska: {{ö+|es|historia|f}}
*tyska: {{ö+|de|Geschichte|f}}
*vietnamesiska: {{ö+|vi|lịch sử}}
{{ö-botten}}
{{ö-topp|berättelse}}
*arabiska: {{ö|ar|قِصَّة|f|tr=qiṣṣa}}
*bokmål: {{ö+|no|historie|m}}
*danska: {{ö|da|historie|u}}
*engelska: {{ö+|en|story}}
*finska: {{ö+|fi|tarina}}
*franska: {{ö+|fr|histoire|f}}
*hebreiska: {{ö+|he|סִפּוּר|m|tr=sipúr}}
*isländska: {{ö+|is|saga|f}}
*japanska: {{ö+|ja|物語|tr=ものがたり, monogatari}}
*ladino: {{ö|lad|istoria|f}}
*spanska: {{ö+|es|historia}}, {{ö+|es|cuento|m}}
*turkiska: {{ö+|tr|öykü}}, {{ö+|tr|hikâye}}
*tyska: {{ö+|de|Geschichte|f}}
{{ö-botten}}
==Asturiska==
===Substantiv===
{{subst|ast}}
'''historia''' {{f}}
#{{tagg|kat=vetenskaper|språk=ast}} [[#Svenska|historia]]
==Baskiska==
===Substantiv===
{{subst|eu}}
'''historia'''
#[[#Svenska|historia]]
==Finska==
===Substantiv===
{{subst|fi}}
'''historia'''
#[[#Svenska|historia]], [[historievetenskap]] och [[skolämne]]
#[[#Svenska|historia]], samlat för allt som hänt någon eller något, om inget anges, det som hänt i världen
#:{{synonymer|[[menneisyys]]}}
:{{avgränsare}}
:{{besläktade ord|[[historiallinen]], [[historiallisesti]], [[historiaton]]}}
:{{sammansättningar|[[historiakirja]], [[historiamaalari]], [[historiamaalaus]], [[historianfilosofia]], [[historiankirjoittaja]], [[historianopettaja]]}}
==Katalanska==
===Verb===
'''historia'''
#{{böjning|ca|verb|historiar}}
#:{{seäven|història}}
==Polska==
===Substantiv===
{{subst|pl}}
'''historia''' {{f}}
#[[#Svenska|historia]]
#:{{synonymer|[[dzieje]]}}
==Spanska==
===Interjektion===
{{interj|es}}
'''historia'''
#{{tagg|språk=es|bokstavering}} bokstaven [[H]] (gement: [[h]]) i det spanska [[bokstaveringsalfabet]]et
===Substantiv===
{{subst|es}}
'''historia''' {{f}}
#{{tagg|kat=vetenskaper|språk=es}} [[#Svenska|historia]]
#{{tagg|kat=litteratur|språk=es}} [[berättelse]]
:{{avgränsare}}
:{{besläktade ord|[[historial]], [[histórico]], [[históricamente]], [[historiador]][[historiadora|/-a]], [[historiar]]}}
:{{hyponymer|[[historia clínica]], [[historia de fantasmas]], [[historia natural]], [[historia universal]]}}
:{{fraser|[[de historia]], [[hacer historia]]}}
==Swahili==
===Substantiv===
{{subst|sw}}
'''historia'''
*{{uttal|sw|region=Kenya|ljud=Sw-ke-historia.flac}}
#{{tagg|kat=vetenskaper|språk=sw}} [[#Svenska|historia]]
==Källor==
<references/>
ghkaac9yafaqjhnda4f5kp74qavywpd
algoritm
0
25222
4156169
4101069
2026-10-16T11:05:26Z
Frodlekis
762
+ar: [[خَوَارِزْمِيَّة]] (assisterat)
4156169
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-n-er}}
{{media|LampFlowchart.svg|flödesschema som beskriver en algoritm för att åtgärda en icke-lysande lampa}}
'''algoritm''' {{u}}
#{{tagg|matematik|datavetenskap}} begränsad och [[väldefinierad]] [[uppsättning]] [[instruktion]]er för att lösa en [[uppgift]], ofta i flera steg, och ofta i [[beräkningssyfte]]; [[systematisk]] [[procedur]] utformad för att lösa ett visst [[problem]]
#:{{etymologi|{{belagt|sv|1903}}<ref>{{källa-so}}</ref> Ytterst av {{härledning|sv|la|algorismus}}, detta från namnet på en persisk astronom och matematiker från 800-talet: {{länk|fa|الخوارزمي}} (''al-Khwārizmī''), ordagrant "från Khwārizmī". Hans fullständiga namn var ''محمد بن موسى الخوارزميّ'' (''Muḥammad ibn Mūsā al-Khwārizmī''), Hans bok "Om den indiska metoden för addition och subtraktion" (översättningen av titel är osäker då originalet gått förlorat) översattes på 1200-talet till latin. Översättningen uppkallades efter sina inledningsord "Dixit algorizmi" ("så sade al-Khwārizmī"). Ordet algorizmi förändrades därefter, troligen under inverkan från det grekiska ordet: ἀριθμός (''arithmos'', "siffra/tal"), och övergick i västlig vetenskap till att beteckna en procedur för lösning av ett matematiskt problem.}}
#:{{sammansättningar|[[schackalgoritm]], [[sökalgoritm]]}}
====Översättningar====
{{ö-topp|uppsättning instruktioner}}
*alemanniska: {{ö|als|Algorithmus}}
*arabiska: {{ö+|ar|خَوَارِزْمِيَّة|f|tr=ḵawārizmiyya}}
*aragonska: {{ö|an|algorismo}}
*baskiska: {{ö|eu|algoritmo}}
*belarusiska: {{ö|be|алгарытм}}
*bokmål: {{ö+|no|algoritme}} {{?|bokmål?}}
*bulgariska: {{ö+|bg|алгоритъм}}
*engelska: {{ö+|en|algorithm}}
*esperanto: {{ö+|eo|algoritmo}}
*estniska: {{ö+|et|algoritm}}
*finska: {{ö+|fi|algoritmi}}
*franska: {{ö+|fr|algorithme|m}}
*grekiska: {{ö+|el|αλγόριθμος|m}}
*indonesiska: {{ö+|id|algoritma}}
*iriska: {{ö|ga|algartam}}
*isländska: {{ö|is|reiknirit}}
*italienska: {{ö+|it|algoritmo}}
*kinesiska: {{ö+|zh|算术|tr=suànshù}}
*kurdiska: {{ö+|ku|algorîtma}}
*lettiska: {{ö|lv|algoritms}}
*litauiska: {{ö+|lt|algoritmas}}
*meänkieli: {{ö|fit|algoritmi}}, {{ö|fit|alkuritmi}}
*nederländska: {{ö+|nl|algoritme}}
*nynorska: {{ö|nn|algoritme}}
*polska: {{ö+|pl|algorytm|m}}
*portugisiska: {{ö+|pt|algoritmo|m}}
*rumänska: {{ö+|ro|algoritm|m}}
*ryska: {{ö+|ru|алгоритм|m}}
*slovakiska: {{ö|sk|algoritmus|m}}
*slovenska: {{ö|sl|algoritem}}
*spanska: {{ö+|es|algoritmo}}
*tjeckiska: {{ö+|cs|algoritmus|m}}
*turkiska: {{ö+|tr|algoritma}}
*tyska: {{ö+|de|Algorithmus|m}}
*ukrainska: {{ö+|uk|алгоритм}}
*ungerska: {{ö+|hu|algoritmus}}
{{ö-botten}}
==Källor==
<references/>
kk61tehzopqfjb7als7hx01hewd42zd
4156170
4156169
2026-10-16T11:06:30Z
Frodlekis
762
/* Översättningar */
4156170
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-n-er}}
{{media|LampFlowchart.svg|flödesschema som beskriver en algoritm för att åtgärda en icke-lysande lampa}}
'''algoritm''' {{u}}
#{{tagg|matematik|datavetenskap}} begränsad och [[väldefinierad]] [[uppsättning]] [[instruktion]]er för att lösa en [[uppgift]], ofta i flera steg, och ofta i [[beräkningssyfte]]; [[systematisk]] [[procedur]] utformad för att lösa ett visst [[problem]]
#:{{etymologi|{{belagt|sv|1903}}<ref>{{källa-so}}</ref> Ytterst av {{härledning|sv|la|algorismus}}, detta från namnet på en persisk astronom och matematiker från 800-talet: {{länk|fa|الخوارزمي}} (''al-Khwārizmī''), ordagrant "från Khwārizmī". Hans fullständiga namn var ''محمد بن موسى الخوارزميّ'' (''Muḥammad ibn Mūsā al-Khwārizmī''), Hans bok "Om den indiska metoden för addition och subtraktion" (översättningen av titel är osäker då originalet gått förlorat) översattes på 1200-talet till latin. Översättningen uppkallades efter sina inledningsord "Dixit algorizmi" ("så sade al-Khwārizmī"). Ordet algorizmi förändrades därefter, troligen under inverkan från det grekiska ordet: ἀριθμός (''arithmos'', "siffra/tal"), och övergick i västlig vetenskap till att beteckna en procedur för lösning av ett matematiskt problem.}}
#:{{sammansättningar|[[schackalgoritm]], [[sökalgoritm]]}}
====Översättningar====
{{ö-topp|uppsättning instruktioner}}
*alemanniska: {{ö|als|Algorithmus}}
*arabiska: {{ö+|ar|خَوَارِزْمِيَّة|f|tr=ḵawārizmiyya}}
*aragonska: {{ö|an|algorismo}}
*baskiska: {{ö|eu|algoritmo}}
*belarusiska: {{ö|be|алгарытм}}
*bokmål: {{ö+|no|algoritme}} {{?|bokmål?}}
*bulgariska: {{ö+|bg|алгоритъм}}
*engelska: {{ö+|en|algorithm}}
*esperanto: {{ö+|eo|algoritmo}}
*estniska: {{ö+|et|algoritm}}
*finska: {{ö+|fi|algoritmi}}
*franska: {{ö+|fr|algorithme|m}}
*grekiska: {{ö+|el|αλγόριθμος|m}}
*indonesiska: {{ö+|id|algoritma}}
*iriska: {{ö|ga|algartam}}
*isländska: {{ö|is|reiknirit}}
*italienska: {{ö+|it|algoritmo}}
*kinesiska: {{ö+|zh|算术|tr=suànshù}}
*lettiska: {{ö|lv|algoritms}}
*litauiska: {{ö+|lt|algoritmas}}
*meänkieli: {{ö|fit|algoritmi}}, {{ö|fit|alkuritmi}}
*nederländska: {{ö+|nl|algoritme}}
*nordkurdiska: {{ö|kmr|algorîtma}}
*nynorska: {{ö|nn|algoritme}}
*polska: {{ö+|pl|algorytm|m}}
*portugisiska: {{ö+|pt|algoritmo|m}}
*rumänska: {{ö+|ro|algoritm|m}}
*ryska: {{ö+|ru|алгоритм|m}}
*slovakiska: {{ö|sk|algoritmus|m}}
*slovenska: {{ö|sl|algoritem}}
*spanska: {{ö+|es|algoritmo}}
*tjeckiska: {{ö+|cs|algoritmus|m}}
*turkiska: {{ö+|tr|algoritma}}
*tyska: {{ö+|de|Algorithmus|m}}
*ukrainska: {{ö+|uk|алгоритм}}
*ungerska: {{ö+|hu|algoritmus}}
{{ö-botten}}
==Källor==
<references/>
0lq1pynwhh8ckpwcds3w4st95vprmig
ana
0
25596
4156041
4137585
2026-10-16T01:08:20Z
Frodlekis
762
/* Turkiska */
4156041
wikitext
text/x-wiki
{{se även|Ana}}
==Svenska==
===Verb===
{{sv-verb-ar|rot=an|pret=[[anade]], [[ante]]<sup>1)</sup>|pret-pass=[[anades]]|pret-3-pers=anade|perfpart=|not=1) Ante är en ålderdomlig form som endast lever kvar i den fasta frasen "det ante mig".}}
'''ana'''
#{{tagg|kat=palindrom}} ha en känsla (av något); [[förnimma]], [[skönja]]; föreställa sig
#[[tro]], [[misstänka]], [[gissa]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|sv|nds|anen}}.}}
:{{besläktade ord|[[aning]]}}
:{{fraser|[[det ante mig]], [[ana oråd]], [[ana ugglor i mossen]], [[intet ont anande]]}}
====Översättningar====
{{ö-topp|}}
*bokmål: {{ö+|no|ane}}
*engelska: {{ö+|en|suspect}}, {{ö|en|have a feeling}}, {{ö+|en|imagine}}
*finska: {{ö+|fi|aavistaa}}, {{ö+|fi|epäillä}}, {{ö+|fi|arvata}}
*franska: {{ö+|fr|pressentir}}
*isländska: {{ö|is|gruna}}
*nynorska: {{ö|nn|ane}}
*polska: {{ö+|pl|przeczuwać|impf}}
*portugisiska: {{ö+|pt|pressentir}}, {{ö+|pt|suspeitar}}
*ryska: {{ö+|ru|предчу́вствовать|impf}}
*tyska: {{ö+|de|ahnen}}
{{ö-botten}}
===Substantiv===
{{sv-subst-n-or}}
'''ana'''
#{{tagg|kat=genealogi}} [[förfader]]
#:{{användning|Används främst inom släktforskning.}}
#:{{etymologi|Av samma ursprung som verbet ''ana''. Singularformen uppkommen senare än pluralformen ''anor''.<ref>{{källa-so}}</ref>}}
====Översättningar====
{{ö-topp|förfader}}
*bokmål: {{ö+|no|ane}}
*isländska: {{ö|is|gruna}}
{{ö-botten}}
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
'''ana'''
#{{tagg|släktingar|språk=az}} [[mor]]
==Hawaiiska==
===Substantiv===
{{subst|haw}}
'''ana'''
#{{tagg|kat=palindrom|språk=haw}} [[grotta]]
==Maori==
===Substantiv===
{{subst|mi}}
'''ana'''
#{{tagg|kat=palindrom|språk=mi}} [[grotta]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''ana'''
#{{tagg|kat=släktingar|kat2=palindrom|språk=tr}} [[mamma]]
==Källor==
<references/>
jf47p2aqdoaelxt70wwe6fclsokl5zb
4156042
4156041
2026-10-16T01:08:44Z
Frodlekis
762
/* Azerbajdzjanska */
4156042
wikitext
text/x-wiki
{{se även|Ana}}
==Svenska==
===Verb===
{{sv-verb-ar|rot=an|pret=[[anade]], [[ante]]<sup>1)</sup>|pret-pass=[[anades]]|pret-3-pers=anade|perfpart=|not=1) Ante är en ålderdomlig form som endast lever kvar i den fasta frasen "det ante mig".}}
'''ana'''
#{{tagg|kat=palindrom}} ha en känsla (av något); [[förnimma]], [[skönja]]; föreställa sig
#[[tro]], [[misstänka]], [[gissa]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|sv|nds|anen}}.}}
:{{besläktade ord|[[aning]]}}
:{{fraser|[[det ante mig]], [[ana oråd]], [[ana ugglor i mossen]], [[intet ont anande]]}}
====Översättningar====
{{ö-topp|}}
*bokmål: {{ö+|no|ane}}
*engelska: {{ö+|en|suspect}}, {{ö|en|have a feeling}}, {{ö+|en|imagine}}
*finska: {{ö+|fi|aavistaa}}, {{ö+|fi|epäillä}}, {{ö+|fi|arvata}}
*franska: {{ö+|fr|pressentir}}
*isländska: {{ö|is|gruna}}
*nynorska: {{ö|nn|ane}}
*polska: {{ö+|pl|przeczuwać|impf}}
*portugisiska: {{ö+|pt|pressentir}}, {{ö+|pt|suspeitar}}
*ryska: {{ö+|ru|предчу́вствовать|impf}}
*tyska: {{ö+|de|ahnen}}
{{ö-botten}}
===Substantiv===
{{sv-subst-n-or}}
'''ana'''
#{{tagg|kat=genealogi}} [[förfader]]
#:{{användning|Används främst inom släktforskning.}}
#:{{etymologi|Av samma ursprung som verbet ''ana''. Singularformen uppkommen senare än pluralformen ''anor''.<ref>{{källa-so}}</ref>}}
====Översättningar====
{{ö-topp|förfader}}
*bokmål: {{ö+|no|ane}}
*isländska: {{ö|is|gruna}}
{{ö-botten}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''ana'''
#{{tagg|släktingar|språk=az}} [[mor]]
==Hawaiiska==
===Substantiv===
{{subst|haw}}
'''ana'''
#{{tagg|kat=palindrom|språk=haw}} [[grotta]]
==Maori==
===Substantiv===
{{subst|mi}}
'''ana'''
#{{tagg|kat=palindrom|språk=mi}} [[grotta]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''ana'''
#{{tagg|kat=släktingar|kat2=palindrom|språk=tr}} [[mamma]]
==Källor==
<references/>
ietcol555q6vqkag0y38w6r43jwwygs
üst
0
25641
4156180
3629942
2026-10-16T11:22:51Z
Frodlekis
762
/* Turkiska */
4156180
wikitext
text/x-wiki
==Ungerska==
===Substantiv===
{{subst|hu}}
'''üst'''
#[[kittel]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''üst'''
#[[övre del]], [[topp]]
#:{{antonymer|[[alt]]}}
scetaokl20oeo5yqws67rb08be6ax68
betonggris
0
27886
4156071
4087545
2026-10-16T07:57:51Z
~2026-55485-04
62322
4156071
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-ar}}
'''[[betong]][[gris]]''' {{u}}
#{{tagg|kat=transport}} hinder av betong som ofta används för att spärra av gator för genomfartstrafik
#:{{synonymer|[[betongsugga]]}}
#:{{etymologi|{{belagt|sv|1979}}<ref>{{källa-so}}</ref>}}
====Översättningar====
{{ö-topp|hinder av betong som ofta används för att spärra av gator för genomfartstrafik}}
*bokmål: {{ö|no|betonggris|m}}
{{ö-botten}}
==Bokmål==
===Substantiv===
{{no-subst-m-er}}
'''betonggris''' {{m}}
#[[betonggris]]
==Källor==
<references/>
sp3am6vxvzvja34clmo5sb36llpc9ih
hela
0
41347
4155926
4127000
2026-10-15T22:57:23Z
Frodlekis
762
/* Turkiska */
4155926
wikitext
text/x-wiki
{{se även|HeLa|Hela|Helą|hela|helá|héla|helą}}
==Svenska==
===Verb===
{{sv-verb-ar|rot=hel|perfpart=}}
'''hela'''
*{{uttal|sv|enkel=he:la|ljud=Sv-hela.ogg}}
#göra någon [[frisk]], ofta med [[magi]] eller liknande
#:{{besläktade ord|[[hel]], [[helbragd]], [[helning]]}}
====Översättningar====
{{ö-topp|göra någon frisk, ofta med magi eller liknande}}
*engelska: {{ö+|en|heal}}
*polska: {{ö+|pl|uzdrawiać}}, {{ö+|pl|leczyć}}
{{ö-botten}}
===Adjektiv===
'''hela'''
#{{böjning|sv|adj|hel}}
===Adverb===
{{adv|sv}}
'''hela'''
#[[så mycket som]]
#:'''''Hela''' 300 misstänkta personer granskades av polisen efter det senaste inbrottet i guldsmedsbutiken.''
===Substantiv===
{{sv-subst-n-or}}
'''hela'''
#[[helbutelj]]
==Esperanto==
===Adjektiv===
{{eo-adj}}
'''hela'''
#[[ljus#Adjektiv|ljus]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''hela'''
#{{tagg|slang|mindre brukligt|språk=tr}} [[toalett]]
#:{{synonymer|[[abdesthane]], [[ayakyolu]], [[kenef]], [[tuvalet]], [[yüznumara]]}}
pf77nilqxiy09ri4x9j1zn4xqjrb3s4
Användare:Frodlekis
2
65878
4156178
4154089
2026-10-16T11:20:39Z
Frodlekis
762
4156178
wikitext
text/x-wiki
{{DISPLAYTITLE:<font style="white-space:nowrap;text-shadow:#171614 0em 0em 0.4em,#171614 0.6em 0.6em 0.5em;color:#b4773f"><span style="font-family:Old English Text MT;color:#b4773f"><big>Användare:Frodlekis</big></span></font>}}
<div style="max-width:100%; overflow-x:auto;">
{| cellspacing="0" cellpadding="0" style="margin:0 auto; white-space:nowrap; border-collapse:separate; border-spacing:5px 0; font-family:'Trebuchet MS','Segoe UI',sans-serif;"
|-
| style="border:1px solid #171614; border-bottom:0; border-radius:12px 12px 0 0; background:#202b2a; padding:0.55em 1.1em; text-align:center;" |
[[w:Användare:Frodlekis|<span style="color:#dfe2d5;">'''WIKIHEM'''</span>]]
| style="border:1px solid #171614; border-bottom:0; border-radius:12px 12px 0 0; background:#302824; padding:0.55em 1.1em; text-align:center;" |
[[Användare:Frodlekis/Prisskåp|<span style="color:#dfe2d5;">'''PRISER'''</span>]]
| style="border:1px solid #171614; border-bottom:0; border-radius:12px 12px 0 0; background:#292531; padding:0.55em 1.1em; text-align:center;" |
[[Användare:Frodlekis/Citat|<span style="color:#dfe2d5;">'''SAGT'''</span>]]
| style="border:1px solid #171614; border-bottom:0; border-radius:12px 12px 0 0; background:#26332d; padding:0.55em 1.1em; text-align:center;" |
[[Användare:Frodlekis/Lekis|<span style="color:#dfe2d5;">'''SANDLÅDA'''</span>]]
| style="border:1px solid #c66b32; border-bottom:0; border-radius:12px 12px 0 0; background:#344d43; padding:0.55em 1.1em; text-align:center;" |
[[wikt:Användare:Frodlekis|<span style="color:#edf0e5;">'''WIKIORDBOK'''</span>]]
| style="border:1px solid #171614; border-bottom:0; border-radius:12px 12px 0 0; background:#252a2d; padding:0.55em 1.1em; text-align:center;" |
[[:commons:User:Frodlekis|<span style="color:#dfe2d5;">'''BILDER'''</span>]]
|}
<div style="background:#344d43; color:#edf0e5; border:1px solid #c66b32; border-top:0; border-radius:16px; padding:1.3em 1.5em; margin:0 0 1.2em 0; box-shadow:0 0 8px rgba(198,107,50,0.45), 0 4px 14px rgba(0,0,0,0.18); text-align:center;">
<span style="font-family:Georgia,'Times New Roman',serif; font-size:1.55em; color:#d08a52;">'''Frodlekis'''</span>
<div style="max-width:100%; overflow-x:auto; margin-top:0.7em; margin-bottom:0.6em;">
{| cellspacing="0" cellpadding="0" style="margin:0 auto; white-space:nowrap; border-collapse:separate; border-spacing:4px; font-family:'Trebuchet MS','Segoe UI',sans-serif; font-size:90%;"
|-
| style="background:#263d35; border:1px solid #b4773f; border-radius:8px; padding:0.35em 0.7em; text-align:center;" |
[[Användare:Frodlekis|<span style="color:#dfe2d5;">'''SVENSKA'''</span>]]
| style="background:#263d35; border:1px solid #b4773f; border-radius:8px; padding:0.35em 0.7em; text-align:center;" |
[[:en:User:Frodlekis|<span style="color:#dfe2d5;">'''ENGLISH'''</span>]]
| style="background:#263d35; border:1px solid #b4773f; border-radius:8px; padding:0.35em 0.7em; text-align:center;" |
[[:es:Usuario:Frodlekis|<span style="color:#dfe2d5;">'''ESPAÑOL'''</span>]]
| style="background:#263d35; border:1px solid #b4773f; border-radius:8px; padding:0.35em 0.7em; text-align:center;" |
[[:ca:Usuari:Frodlekis|<span style="color:#dfe2d5;">'''CATALÀ'''</span>]]
| style="background:#263d35; border:1px solid #b4773f; border-radius:8px; padding:0.35em 0.7em; text-align:center;" |
[[:yi:User:Frodlekis|<span style="color:#dfe2d5;">'''ייִדיש'''</span>]]
|}
</div>
<div style="margin-top:0.3em; color:#dfe2d5;">
[[Fil:Peace dove.svg|100px]] ''Aktiv på Wikipedia sedan 2006 och på Wiktionary sedan 2007. Administratör på svenska Wikipedia och Wiktionary.''
</div>
</div>
<div style="text-align:center; margin:1.4em 0;">
[[Fil:Dancing Fairies (August Malmström) - Nationalmuseum - 18226.tif|1205px|center]]
</div>
<!-- PRESENTATION -->
<div style="background:#171f1d; color:#dfe2d5; border:1px solid #8a6848; border-radius:18px; padding:1.3em 1.5em; margin:0 0 1.2em 0; box-shadow:0 0 10px rgba(180,119,63,0.20), 0 5px 16px rgba(0,0,0,0.30);">
<div style="font-family:Georgia,'Times New Roman',serif; font-size:1.05em; line-height:1.6;">
Jag är '''Frodlekis''', en av administratörerna på svenska Wiktionary och svenska Wikipedia. Jag började redigera Wikipedia 2006 och Wiktionary 2007. Mitt arbete på Wiktionary vilar på ledorden ''respekt'', ''öppenhet'' och ''samarbete''.
De artiklar jag petar i ska helst passera ett granskande öga av ''faktualitet'', ''normmedveten inkludering'' och något som kittlar ''nyfikenheten''. Jag är intresserad av språkhistoria, icke-latinsk skrift, egennamn, ordrikedomens nyanser och grammatisk briljans. Av det forntida, samtida och framtida språket, vetenskapligt liksom folkligt.
De googlande Wiktionary-besökarna behöver mötas av '''lättförstådd information''', men jag vill också tro att folk under läsningen uppskattar att finna fördjupning, och att det som står på Wiktionary baseras på fakta, med källhänvisning där så krävs.
I bästa fall innehåller våra uppslag allt detta – något för både nörd och novis. [[Fil:Face-smile.svg|20px|link=]]
</div>
<div style="text-align:center; margin:1.4em 0;">
[[Fil:John Bauer-Då och då tog tomten tag i tyglarna.jpg|1205px|center]]
</div>
<div style="margin-top:0.8em; text-align:right; font-size:90%; color:#aebbd2;">
''[[Användare:Frodlekis/Prövosida|1]] · [[Användare:Frodlekis/Folkvisor|2]] · [[Användare:Frodlekis/Favoriter|3]]''
</div>
</div>
<!-- STOR SPRÅKSEKTION -->
<div style="display:flex; flex-wrap:nowrap; gap:1.2em; align-items:flex-start; margin:0 0 1.2em 0;">
<!-- VÄNSTER: SPRÅKBOXAR -->
<div style="flex:1 1 auto; min-width:0; background:#111614; border:1px solid #38483d; border-radius:18px; padding:1em; box-shadow:0 0 12px rgba(50,70,57,0.30), 0 5px 18px rgba(0,0,0,0.35);">
<div style="display:flex; flex-wrap:wrap; gap:1em; align-items:stretch;">
<!-- SVENSKA -->
<div style="box-sizing:border-box; flex:1 1 26em; background:#1b2721; border:1px solid #506052; border-radius:16px; padding:1.3em 1.5em; box-shadow:0 3px 12px rgba(0,0,0,0.28);">
<div style="margin-bottom:0.8em; color:#eef0e7; font-size:1.1em;">
'''Svenska'''
</div>
[https://svenska.se Svenska.se] ·
[https://www.isof.se/utforska/sprak/sprak-i-sverige Språken i Sverige]
<div style="margin-top:0.8em;">
'''Språkhistoria'''
* [https://www.isof.se/utforska/sprak/svenska-spraket/fornsvenska/fornsvensk-textbank Fornsvensk textbank]
* [https://runeberg.org/svmtsprk/ Ordbok öfver svenska medeltids-språket]
</div>
</div>
<!-- NAMN -->
<div style="box-sizing:border-box; flex:1 1 26em; background:#29231d; border:1px solid #62513e; border-radius:16px; padding:1.3em 1.5em; box-shadow:0 3px 12px rgba(0,0,0,0.28);">
<div style="margin-bottom:0.8em; color:#eef0e7; font-size:1.1em;">
'''Namn och namnhistoria'''
</div>
* [https://www.isof.se/utforska/namn/personnamn/urnordiska-personnamn Lexikon över urnordiska personnamn]
* [https://www.isof.se/utforska/publikationer/publikationer/2007-01-01-nordiskt-runnamnslexikon Nordiskt runnamnslexikon]
* [https://www.isof.se/utforska/namn/ortnamn/svenskt-ortnamnslexikon Svenskt ortnamnslexikon]
* [https://www.isof.se/utforska/namn/personnamn/sveriges-medeltida-personnamn Sveriges medeltida personnamn]
* [https://historiska.se/upptack-historien/lexikon/nomina/ Nomina]
* [https://www.isof.se/utforska/namn/personnamn/namnens-ursprung-och-betydelse Namnens ursprung och betydelse]
</div>
<!-- SAMISKA -->
<div style="box-sizing:border-box; flex:1 1 26em; background:#1c2923; border:1px solid #506355; border-radius:16px; padding:1.3em 1.5em; box-shadow:0 3px 12px rgba(0,0,0,0.28);">
<div style="margin-bottom:0.8em; color:#eef0e7; font-size:1.1em;">
'''Samiska språk'''
</div>
* [https://www.sametinget.se/lexikon Sametingets ordböcker]
* [https://sanat.oahpa.no/ Davvi]
* [https://lexin.osloskolen.no/ Lexin]
* [https://baakoeh.oahpa.no/ Nedtedigibaakoeh]
</div>
<!-- SPANSKA -->
<div style="box-sizing:border-box; flex:1 1 26em; background:#2a211d; border:1px solid #704d3b; border-radius:16px; padding:1.3em 1.5em; box-shadow:0 3px 12px rgba(0,0,0,0.28);">
<div style="margin-bottom:0.8em; color:#eef0e7; font-size:1.1em;">
'''Spanska'''
</div>
* [https://dle.rae.es/ Diccionario de la lengua española]
* [https://www.rae.es/recursos Real Academia Española]
* [https://www.upf.edu/web/reclic/diccionarios RECLIC – Diccionarios]
* [https://spraakbanken.gu.se/lexin/ Svensk-spanskt lexikon]
* [https://spraakbanken.gu.se/lexin/ Spansk-svensk ordbok]
</div>
<!-- KATALANSKA -->
<div style="box-sizing:border-box; flex:1 1 26em; background:#28211c; border:1px solid #67503f; border-radius:16px; padding:1.3em 1.5em; box-shadow:0 3px 12px rgba(0,0,0,0.28);">
<div style="margin-bottom:0.8em; color:#eef0e7; font-size:1.1em;">
'''Katalanska'''
</div>
* [https://www.upf.edu/web/gabinet-linguistic/catala Gabinet Lingüístic – Català]
* [https://www.upf.edu/web/reclic/diccionarios RECLIC – Diccionaris]
* [https://www.verbix.com/languages/catalan.html Katalanska verb]
</div>
<!-- ARAGONSKA -->
<div style="box-sizing:border-box; flex:1 1 26em; background:#202820; border:1px solid #52614e; border-radius:16px; padding:1.3em 1.5em; box-shadow:0 3px 12px rgba(0,0,0,0.28);">
<div style="margin-bottom:0.8em; color:#eef0e7; font-size:1.1em;">
'''Aragonska'''
</div>
* [https://www.consello.org/ Consello d'a Fabla Aragonesa]
* [https://www.consello.org/consello/ Consello – om aragonska språket]
</div>
<!-- JIDDISCH -->
<div style="box-sizing:border-box; flex:1 1 26em; background:#242329; border:1px solid #55515b; border-radius:16px; padding:1.3em 1.5em; box-shadow:0 3px 12px rgba(0,0,0,0.28);">
<div style="margin-bottom:0.8em; color:#eef0e7; font-size:1.1em;">
'''Jiddisch'''
</div>
* [https://www.isof.se/utforska/publikationer/publikationer/2022-10-07-jiddisch-svensk-jiddisch-ordbok Jiddisch-svensk-jiddisch ordbok]
* [https://www.yivo.org/cimages/yivo_institute_-_yiddish_dictionaries.pdf YIVO:s jiddischordböcker]
* [https://www.yiddishbookcenter.org/educational-programs/learn-yiddish Lär dig jiddisch – Yiddish Book Center]
* [https://www.yiddishbookcenter.org/ Digitalt jiddischbibliotek – Yiddish Book Center]
* [https://www.yiddishweb.com/dictionnaire-yiddish-francais-en-ligne/ Jiddisch-fransk ordbok]
* [https://www.cs.uky.edu/~raphael/yiddish/dictionary.cgi Yiddish Dictionary Online]
* [https://www.yivo.org/ YIVO Institute for Jewish Research]
</div>
<!-- GRÖNLÄNDSKA -->
<div style="box-sizing:border-box; flex:1 1 26em; background:#1b2827; border:1px solid #49605b; border-radius:16px; padding:1.3em 1.5em; box-shadow:0 3px 12px rgba(0,0,0,0.28);">
<div style="margin-bottom:0.8em; color:#eef0e7; font-size:1.1em;">
'''Grönländska'''
</div>
* [https://oqaasileriffik.gl/ Oqaasileriffik – Grönlands språkkommissariat]
</div>
</div>
</div>
<!-- HÖGER: BABEL -->
<div style="flex:0 0 12em; background:#171f1d; border:1px solid #8a6848; border-radius:18px; padding:1em; box-shadow:0 0 10px rgba(180,119,63,0.20), 0 5px 16px rgba(0,0,0,0.30);">
<div style="text-align:center; margin-bottom:0.8em; color:#d08a52; font-family:Georgia,'Times New Roman',serif; font-size:1.1em;">
'''Språk'''
</div>
{{Babel|sv|en-4|es-2|ca-1|yi-1|fr-1|da-1|no-1|nn-1|lad-1}}
</div>
</div>
<div style="text-align:center; margin:1.4em 0;">
[[Fil:Kirchner - Akte an der Sonne - Moritzburg.jpg|1205px|center]]
</div>
<div style="background:#171f1d; color:#dfe2d5; border:1px solid #8a6848; border-radius:14px; padding:0.8em 1em; text-align:center; font-size:90%; box-shadow:0 0 8px rgba(180,119,63,0.18);">
[[ca:Usuari:Frodlekis]] ·
[[en:User:Frodlekis]] ·
[[es:Usuario:Frodlekis]] ·
[[yi:באַניצער:Frodlekis]] ·
</div>
[[Kategori:Wiktionary:Administratörer|Frodlekis]]
2itggb53xb4w64nt5a9fwls380lmxps
russin
0
66089
4156092
4153385
2026-10-16T09:04:21Z
~2026-55485-04
62322
+kmr: [[mêwîj]] (assisterat)
4156092
wikitext
text/x-wiki
{{wikipedia}}
{{se även|Russin}}
{{media|Single raisin.jpg|ett russin}}
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
'''russin'''
#{{tagg|kat=frukter|kat2=mat}} [[torkad]] [[vindruva]]
#:{{fraser|[[skrynklig som ett russin]]}}
#något särskilt bra, en liten bra eller värdefull del av något
#:{{fraser|[[plocka russinen ur kakan]]}}
#{{tagg|vardagligt|text=vanligen i plural}} [[pensionär]]; gammal människa (med rynkor som russin(1) har)
:{{avgränsare}}
:{{etymologi|{{belagt|sv|1300|t}}<ref>{{källa-so}}</ref> Som {{härledning|sv|gmq-fsv|rosiin, rusin}} av {{härledning|sv|gmq-fsv|rosin}}, av {{härledning|sv|la|racemus}}.}}
====Sammansättningar====
*[[russinhud]]
*[[russinknopp]]
====Översättningar====
{{ö-topp|frukt}}
*belarusiska: {{ö|be|разы́нкі|f|p}}
*bokmål: {{ö+|no|rosin}}
*bulgariska: {{ö|bg|стафида|f}}
*danska: {{ö+|da|rosin}}
*engelska: {{ö+|en|raisin}}
*esperanto: {{ö|eo|rosino}}, {{ö|eo|sekvinbero}}
*finska: {{ö+|fi|rusina}}
*franska: {{ö+|fr|raisin sec|m}}
*galiciska: {{ö+|gl|uva pasa}}
*grekiska: {{ö+|el|σταφίδα|f}} (stafída)
*kvänska: {{ö|fkv|rusina}}
*nederländska: {{ö+|nl|rozijn}}
*nordkurdiska: {{ö|kmr|mêwîj|f}}
*polska: {{ö+|pl|rodzynek|m}}
*portugisiska: {{ö|pt|uva passa|f}}
*ryska: {{ö+|ru|изюм|m|tr=iziúm}}, {{ö+|ru|изю́мина|f}}
*turkiska: {{ö+|tr|kuru üzüm}}, {{ö+|tr|kişmiş}}
*tyska: {{ö+|de|Rosine|f}}
*ukrainska: {{ö|uk|родзи́нки|f|p}}, {{ö|uk|родзи́нка|f}}, {{ö|uk|ізю́м|m}}
*ungerska: {{ö+|hu|mazsola}}
{{ö-botten}}
==Källor==
<references/>
fcrimdgvyjjpbe5opyla99xqg9j87hi
blåkråka
0
72250
4156195
3484866
2026-10-16T11:40:19Z
Frodlekis
762
+ka: [[ყაპყაპი]] (assisterat)
4156195
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-n-or}}
{{media|European roller.jpg|blåkråka (''Coracias garrulus'')}}
'''[[blå]][[kråka]]'''
#{{tagg|kat=fågelarter|kat2=fåglar}} en [[art]] ''([[Coracias garrulus]])'' inom [[fågelfamilj]]en [[blåkråkor]] ([[Coraciidae]]); [[individ]] av arten blåkråka
#:{{citat|år=1907|titel=[http://books.google.se/books?id=nD3xAAAAMAAJ Zoologiska studier]|förf=[[w:Tycho Tullberg|Tycho Tullberg]]|'''Blåkråkan''' var ännu på 1870-talet flerstädes i Sveriges östliga provinser från och med södra Skåne upp till Stockholm och Uppsalatrakten en tämligen vanlig fågel.}}
#{{tagg|kat=fåglar}} [[individ]] inom fågelfamiljen [[blåkråkor]]
#:{{hyponymer|[[fläckblåkråka]], [[#Coracias garrulus|blåkråka]], [[gräddhuvad blåkråka]], [[indisk blåkråka]], [[lilabröstad blåkråka]], [[savannblåkråka]], [[vimpelblåkråka]]/[[spatelstjärtad blåkråka]], [[sulawesiblåkråka]], [[gulnäbbad blåkråka]], [[rödnäbbad blåkråka]], [[mindre blåkråka]], [[azurblåkråka]]}}
====Översättningar====
{{ö-topp}}
*afrikaans: {{ö|af|europese troupant}}
*bokmål: {{ö|no|blåråke}}
*bulgariska: {{ö|bg|синявицата}}
*danska: {{ö+|da|ellekrage}}
*engelska: {{ö|en|european roller}}
*esperanto: {{ö|eo|koracio}}
*estniska: {{ö|et|siniraag}}
*finska: {{ö+|fi|sininärhi}}
*franska: {{ö+|fr|rollier d'Europe}}
*galiciska: {{ö+|gl|carraca}}, {{ö|gl|carraza europea}}
*georgiska: {{ö|ka|ყაპყაპი}}
*italienska: {{ö|it|ghiandaie marine europee}}
*japanska: {{ö|ja|ニシブッポウソウ}}, (''{{ö|ja|nishibuppousou}}'')
*litauiska: {{ö+|lt|žalvarnis}}
*polska: {{ö+|pl|kraska}}
*portugisiska: {{ö|pt|rolieiro}}, {{ö|pt|rolieiro-europeu}}
*ryska: {{ö+|ru|сизоворонка|f}}
*slovenska: {{ö|sl|zlatovranka}}, {{ö|sl|evropska zlatovranka}}
*spanska: {{ö|es|carraca europea}}, {{ö+|es|carraca|f}}
*turkiska: {{ö+|tr|gökkuzgun}}
*tyska: {{ö+|de|Blauracke}}, {{ö|de|Mandelkrähe}}
*ungerska: {{ö|hu|szalakató}}, {{ö|hu|európai szalakóta}}
{{ö-botten}}
3ktwqj1l3k0l826setqwj5my84wbchu
4156198
4156195
2026-10-16T11:43:15Z
Frodlekis
762
+kmr: [[qelaşînk]] (assisterat)
4156198
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-n-or}}
{{media|European roller.jpg|blåkråka (''Coracias garrulus'')}}
'''[[blå]][[kråka]]'''
#{{tagg|kat=fågelarter|kat2=fåglar}} en [[art]] ''([[Coracias garrulus]])'' inom [[fågelfamilj]]en [[blåkråkor]] ([[Coraciidae]]); [[individ]] av arten blåkråka
#:{{citat|år=1907|titel=[http://books.google.se/books?id=nD3xAAAAMAAJ Zoologiska studier]|förf=[[w:Tycho Tullberg|Tycho Tullberg]]|'''Blåkråkan''' var ännu på 1870-talet flerstädes i Sveriges östliga provinser från och med södra Skåne upp till Stockholm och Uppsalatrakten en tämligen vanlig fågel.}}
#{{tagg|kat=fåglar}} [[individ]] inom fågelfamiljen [[blåkråkor]]
#:{{hyponymer|[[fläckblåkråka]], [[#Coracias garrulus|blåkråka]], [[gräddhuvad blåkråka]], [[indisk blåkråka]], [[lilabröstad blåkråka]], [[savannblåkråka]], [[vimpelblåkråka]]/[[spatelstjärtad blåkråka]], [[sulawesiblåkråka]], [[gulnäbbad blåkråka]], [[rödnäbbad blåkråka]], [[mindre blåkråka]], [[azurblåkråka]]}}
====Översättningar====
{{ö-topp}}
*afrikaans: {{ö|af|europese troupant}}
*bokmål: {{ö|no|blåråke}}
*bulgariska: {{ö|bg|синявицата}}
*danska: {{ö+|da|ellekrage}}
*engelska: {{ö|en|european roller}}
*esperanto: {{ö|eo|koracio}}
*estniska: {{ö|et|siniraag}}
*finska: {{ö+|fi|sininärhi}}
*franska: {{ö+|fr|rollier d'Europe}}
*galiciska: {{ö+|gl|carraca}}, {{ö|gl|carraza europea}}
*georgiska: {{ö|ka|ყაპყაპი}}
*italienska: {{ö|it|ghiandaie marine europee}}
*japanska: {{ö|ja|ニシブッポウソウ}}, (''{{ö|ja|nishibuppousou}}'')
*litauiska: {{ö+|lt|žalvarnis}}
*nordkurdiska: {{ö|kmr|qelaşînk}}
*polska: {{ö+|pl|kraska}}
*portugisiska: {{ö|pt|rolieiro}}, {{ö|pt|rolieiro-europeu}}
*ryska: {{ö+|ru|сизоворонка|f}}
*slovenska: {{ö|sl|zlatovranka}}, {{ö|sl|evropska zlatovranka}}
*spanska: {{ö|es|carraca europea}}, {{ö+|es|carraca|f}}
*turkiska: {{ö+|tr|gökkuzgun}}
*tyska: {{ö+|de|Blauracke}}, {{ö|de|Mandelkrähe}}
*ungerska: {{ö|hu|szalakató}}, {{ö|hu|európai szalakóta}}
{{ö-botten}}
0hml8siloh2ai5uhncb6mkdo7yklzu0
gökkuzgun
0
73465
4156197
3572670
2026-10-16T11:42:18Z
Frodlekis
762
/* Turkiska */
4156197
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''gökkuzgun'''
#{{tagg|kat=fåglar|kat2=fågelarter|språk=tr}} [[blåkråka]]
g98s4sbv84scrgxcwbxdzfxk1vqw2cm
smide
0
73871
4156025
3940623
2026-10-16T00:54:13Z
Frodlekis
762
+tr: [[demircilik]] (assisterat)
4156025
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-t-oräkn|fog=}}
'''smide'''
#det att [[värma]] ett [[metall]]stycke så det går att böja, och sedan [[forma]] det
#:{{besläktade ord|[[smed]], [[smedja]], [[smida]]}}
#:{{sammansättningar|[[smideskonst]], [[smidesljusstake]], [[smidesstäd]], [[smidesverktyg]]}}
====Översättningar====
{{ö-topp|det att värma ett metallstycke så det går att böja, och sedan forma det}}
*bokmål: {{ö|no|smedarbeid|n}}
*finska: {{ö+|fi|taonta}}
*turkiska: {{ö+|tr|demircilik}}
*tyska: {{ö+|de|Schmieden|n}}
{{ö-botten}}
pj65o5mtblf8v9nubzgf4707k8pw56t
smedja
0
73873
4156016
4136472
2026-10-16T00:42:38Z
Frodlekis
762
4156016
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-or}}
{{media|Blacksmith man in Nishapur 16.JPG|en smed i sin '''smedja'''}}
'''smedja'''
#[[rum]] eller [[byggnad]] där man brukar eller kan [[smida]]
#:{{etymologi|{{belagt|sv|1300|t}}<ref>{{källa-so}}</ref> Som {{härledning|sv|gmq-fsv|smiþia, smedia}}.}}
#:{{besläktade ord|[[smed]], [[smida]], [[smide]]}}
#:{{sammansättningar|[[knivsmedja]]}}
====Översättningar====
{{ö-topp|}}
*bokmål: {{ö|no|smie|f}}
*engelska: {{ö+|en|forge}}
*finska: {{ö+|fi|paja}}
*franska: {{ö+|fr|forge|f}}
*isländska: {{ö+|is|smiðja|f}}
*nynorska: {{ö|nn|smie|f}}
*portugisiska: {{ö+|pt|forja|f}}
*spanska: {{ö+|es|forja|f}}
*tyska: {{ö+|de|Schmiede|f}}
{{ö-botten}}
==Källor==
<references/>
02icowtifvnxwem4z4in0gr1y07zzrx
4156017
4156016
2026-10-16T00:43:23Z
Frodlekis
762
+az: [[dəmirçixana]] (assisterat)
4156017
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-or}}
{{media|Blacksmith man in Nishapur 16.JPG|en smed i sin '''smedja'''}}
'''smedja'''
#[[rum]] eller [[byggnad]] där man brukar eller kan [[smida]]
#:{{etymologi|{{belagt|sv|1300|t}}<ref>{{källa-so}}</ref> Som {{härledning|sv|gmq-fsv|smiþia, smedia}}.}}
#:{{besläktade ord|[[smed]], [[smida]], [[smide]]}}
#:{{sammansättningar|[[knivsmedja]]}}
====Översättningar====
{{ö-topp|}}
*azerbajdzjanska: {{ö+|az|dəmirçixana}}
*bokmål: {{ö|no|smie|f}}
*engelska: {{ö+|en|forge}}
*finska: {{ö+|fi|paja}}
*franska: {{ö+|fr|forge|f}}
*isländska: {{ö+|is|smiðja|f}}
*nynorska: {{ö|nn|smie|f}}
*portugisiska: {{ö+|pt|forja|f}}
*spanska: {{ö+|es|forja|f}}
*tyska: {{ö+|de|Schmiede|f}}
{{ö-botten}}
==Källor==
<references/>
autynguxdxm95u8jpkdt6ww4uo4y7fj
банан
0
79913
4156065
3530313
2026-10-16T01:27:51Z
Frodlekis
762
4156065
wikitext
text/x-wiki
==Belarusiska==
===Substantiv===
{{subst|be}}
'''банан''' ({{tr|be|банан}}) {{m}}
#{{tagg|kat=frukter|språk=be|text=frukt}} [[banan]]
==Bulgariska==
===Substantiv===
{{subst|bg}}
'''банан'''
#{{tagg|kat=frukter|språk=bg|text=frukt}} [[banan]]
==Kirgiziska==
===Substantiv===
{{subst|ky}}
'''банан''' ({{tr|ky|банан}})
#{{tagg|kat=frukter|språk=ky|text=frukt}} [[banan]]
==Ryska==
===Substantiv===
{{subst|ru}}
'''банан''' (banán) {{m}}
#{{tagg|kat=frukter|språk=ru|text=frukt}} [[banan]]
#{{tagg|kat=örter|språk=ru|text=ört, växt}} [[bananplanta]]
:{{avgränsare}}
:{{besläktade ord|[[банановый]]}}
rzrha35gz3w3ts9hgzta9vjlz04ufa4
hala
0
85420
4156030
4145289
2026-10-16T00:58:21Z
Frodlekis
762
/* Turkiska */
4156030
wikitext
text/x-wiki
{{se även|håla|hála|halá|hâla|hâlâ}}
==Svenska==
===Adjektiv===
'''hala'''
#{{böjning|sv|adj|hal}}
===Verb===
{{sv-verb-ar|rot=hal}}
'''hala'''
#successivt [[dra]] till sig del efter del av [[lina]] e.d.
#:''Under [[sommarhalvår]]et '''halar''' man ned flaggan senast kl. 21.00.''
#:{{antonymer|[[fira]]}}
#:{{fraser|''(partikelverb)'' [[hala fram]], [[hala in]], [[hala igenom]], [[hala ned]], [[hala sig ned]], [[hala upp]], [[hala ut]]}}
#:{{fraser|[[hala dör]], [[hala hem]]}}
#:{{besläktade ord|[[förhala]]}}
#{{tagg|vardagligt}} att ta ner en [[flagga]]
#:{{antonymer|[[hissa]]}}
====Översättningar====
{{ö-topp|dra till sig del efter del av lina}}
*finska: {{ö+|fi|lappaa}}, {{ö+|fi|vetää}}, {{ö+|fi|kiskoa}}
*polska: {{ö+|pl|ciągnąć}}
*spanska: {{ö+|es|halar}}
*tyska: {{ö+|de|herunterlassen}}, {{ö+|de|einholen}}
{{ö-botten}}
==Franska==
===Verb===
'''hala'''
#{{böjning|fr|verb|haler}}
==Färöiska==
===Substantiv===
'''hala'''
#{{böjning|fo|subst|hali}}
#:{{seäven|[[hála]]}}
==Galiciska==
===Verb===
'''hala'''
#{{böjning|gl|verb|halar}}
==Isländska==
===Substantiv===
'''hala'''
#{{böjning|is|subst|hali}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''hala'''
#{{tagg|kat=släktingar|språk=tr}} [[faster]], pappas syster
#:{{synonymer|[[bibi]]}}
#:{{etymologi|Av {{härledning|tr|ar|خالة|tr=xaala}}.}}
#:{{jämför|[[teyze]]}}
kwiadp5ne0bujxnvjk8i4yjbtw59hse
abone
0
102128
4156085
3629050
2026-10-16T08:50:09Z
~2026-55485-04
62322
/* Turkiska */
4156085
wikitext
text/x-wiki
==Spanska==
===Verb===
'''abone'''
#{{böjning|es|verb|abonar}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abone'''
#[[abonnent]]
#:{{synonymer|[[sürdürümcü]]}}
h78bl1onn5cez77mv3rrdkvnujhqnbc
absorbe
0
124725
4156086
3777653
2026-10-16T08:50:55Z
~2026-55485-04
62322
/* Turkiska */
4156086
wikitext
text/x-wiki
==Spanska==
===Verb===
'''absorbe'''
#{{böjning|es|verb|absorber}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''absorbe'''
#{{tagg|fysik|språk=tr}} [[absorption]]
c17b1xxtybxk31ia44yomo2xy8va592
kitab
0
128481
4155949
4032582
2026-10-15T23:34:07Z
Frodlekis
762
/* Azerbajdzjanska */
4155949
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst|bruten=kütüb}}
'''kitab'''
#[[bok]]
#: {{az-besläktade-kitab}}
==Indonesiska==
===Substantiv===
{{subst|id}}
'''kitab'''
#[[bok]]
#:{{synonymer|[[buku]]}}
lox554wzkfs5mjbabknwfj0cts0a0xy
agronom
0
129229
4155997
3865194
2026-10-16T00:28:35Z
Frodlekis
762
/* Turkiska */
4155997
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-er}}
{{subst|sv}}
'''agronom''' {{u}}
#{{tagg|kat=yrken}} utbildad [[lantbrukare]] / [[jordbrukare]]; [[lantbrukskunnig]] person som ofta ger råd till och upplyser [[lantbrukare]]; person med examen från lantbrukslinje på högskola
#:''För att utbilda sig till '''agronom''' kan man t.ex. studera vid lantbruksuniversitet i Ultuna.''
#:{{etymologi|1=från grekiskan: agrosnomos, agros(ἀγϱός)=åker + nomos(νομος)= den som sysslar med}}
#:{{besläktade ord|[[agronomi]], [[agronomisk]]}}
====Översättningar====
{{ö-topp|person med lantbruksexamen}}
*albanska: {{ö+|sq|agronom}}
*bokmål: {{ö+|no|agronom}}
*bulgariska: {{ö+|bg|агроном}}
*danska: {{ö+|da|agronom}}
*engelska: {{ö+|en|agronomist}}
*finska: {{ö+|fi|agronomi}}
*franska: {{ö+|fr|agronome}}
*iriska: {{ö|ga|geilleagraí|m}}, {{ö|ga|talmhaíocht}}
*lettiska: {{ö|lv|agronoms|m}}, {{ö|lv|agronome|f}}
*makedonska: {{ö|mk|агроном|m}}
*nederländska: {{ö+|nl|agronoom}}, {{ö+|nl|landbouwkundige}}
*polska: {{ö+|pl|agronom}}
*portugisiska: {{ö+|pt|agrônomo}}
*ryska: {{ö+|ru|агроном|m}}
*slovakiska: {{ö|sk|agronóm}}
*spanska: {{ö+|es|agrónomo}}
*turkiska: {{ö+|tr|agronom}}
*tyska: {{ö+|de|Agronom|m}}, {{ö+|de|Agronomin|f}}, {{ö|de|Diplom-Landwirt|m}}, {{ö|de|Diplom-Landwirtin|f}}
*ukrainska: {{ö+|uk|агроном}}
*ungerska: {{ö+|hu|mezőgazdász}}, {{ö+|hu|agronómus}}
{{ö-botten}}
==Albanska==
===Substantiv===
{{subst|sq}}
'''agronom'''
#{{tagg|jordbruk|yrken|språk=sq}} [[#Svenska|agronom]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''agronom'''
#{{tagg|jordbruk|yrken|språk=tr}} [[#Svenska|agronom]]
tjh4ae2byoh1nfapqqt15ggn4y4jjse
kirpi
0
132365
4155934
3699654
2026-10-15T23:10:09Z
Frodlekis
762
4155934
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''kirpi'''
#{{tagg|däggdjur|språk=az}} [[igelkott]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''kirpi'''
#{{tagg|kat=däggdjur|språk=tr}} [[igelkott]]
mp541levngjy669ndwnc7kvtzd0gw85
ambassadör
0
133444
4155768
4142252
2026-10-15T13:41:36Z
R. Henrik Nilsson
44622
dylig > dylik
4155768
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-n-er}}
'''ambassadör'''
#{{tagg|diplomati|kat=yrken}} statens sändebud som är chef för en [[ambassad]]
#:''Vid ceremonin deltog bland andra Sveriges '''ambassadör'''.''
#:{{jämför|[[konsul]]}}
#{{tagg|text=mera allmänt}} ansikte utåt av en [[institution]], [[förening]], [[företag]] eller dylik
#:''Som '''ambassadörer''' för universitetet är det viktigt att vara en bra förebild.''
#{{tagg|text=handel|kat=fackspråk}} en [[kund]] som upprepade gånger rekommenderar en särskild butik, kedja, eller märke till andra personer
#:''Nöjda kunder blir '''ambassadörer''' och är viktiga för att snabbt kunna växa på marknaden.''
#:{{seäven|influencer}}
:{{avgränsare}}
:{{etymologi|Av {{härledning|sv|fr|ambassadeur}}.}}
:{{besläktade ord|[[ambassad]], [[ambassadris]]}}
:{{sammansättningar|[[ambassadörsfru]]}}
====Översättningar====
{{ö-topp|diplomatiskt sändebud}}
*bambara: {{ö|bm|lasigiden}}
*danska: {{ö+|da|ambassadør|u}}
*engelska: {{ö+|en|ambassador}}
*estniska: {{ö|et|suursadik}}
*finska: {{ö+|fi|suurlähettiläs}}
*franska: {{ö+|fr|ambassadeur|m}}, {{ö+|fr|ambassadrice|f}}
*italienska: {{ö+|it|ambasciatore|m}}, {{ö+|it|ambasciatrice|f}}
*jiddisch: {{ö|yi|אַמבאַסאַדאָר|m|tr=ambasador}}
*kroatiska: {{ö|hr|veleposlanik|m}}
*kurdiska: {{ö+|ku|balyoz}}
*lettiska: {{ö|lv|vēstnieks|m}}
*litauiska: {{ö|lt|ambasadorius|m}}
*nederländska: {{ö+|nl|ambassadeur}}
*polska: {{ö+|pl|ambasador|m}}
*portugisiska: {{ö+|pt|embaixador|m}}, {{ö+|pt|embaixadora|f}}
*rumänska: {{ö+|ro|ambasador|m}}
*ryska: {{ö+|ru|посол|m}}
*serbiska: {{ö+|sr|амбасадор|m}}
*slovenska: {{ö+|sl|veleposlanik|m}}
*spanska: {{ö+|es|embajador|m}}, {{ö+|es|embajadora|f}}
*tjeckiska: {{ö+|cs|velvyslanec}}
*tyska: {{ö+|de|Botschafter|m}}, {{ö+|de|Botschafterin|f}}
*ungerska: {{ö+|hu|nagykövet}}
{{ö-botten}}
{{ö-topp|ansikte utåt}}
*tyska: {{ö+|de|Botschafter|m}}, {{ö+|de|Botschafterin|f}}
{{ö-botten}}
ivbyrjighag86b3yysxdmguhewyzwl4
bulgur
0
135729
4156083
4153269
2026-10-16T08:48:17Z
~2026-55485-04
62322
/* Turkiska */
4156083
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-oräkn|2=[[bulguren]], [[bulgurn]]|4=[[bulgurens]], [[bulgurns]]}}
'''bulgur'''
#{{tagg|kat=mat}} förtorkat, [[torka]]t och [[krossa]]t [[matvete]] som används som [[matvara]]
#:{{etymologi|Av {{härledning|sv|tr|bulgur}}, av {{härledning|sv|ota|بورغول|tr=burğul}}, {{länk|ota|بلغور}} (''bulğur''), av {{härledning|sv|ar|بُرْغُل|tr=burḡul}}, av {{härledning|sv|fa|برغول|tr=barğūl}}, {{länk|fa|پرغول}} (''parğūl'').}}
====Översättningar====
{{ö-topp|förtorkat, torkat och krossat matvete som används som matvara}}
*armeniska: {{ö+|hy|բլղուր|tr=blłur}}
*finska: {{ö+|fi|bulgur}}
*isländska: {{ö|is|bulgur}}
*spanska: {{ö|es|bulgur|m}}
*turkiska: {{ö+|tr|bulgur}}
*tyska: {{ö+|de|Bulgur|m}}
{{ö-botten}}
==Isländska==
===Substantiv===
{{subst|is}}
'''bulgur'''
#{{tagg|kat=mat|språk=is}} [[#Svenska|bulgur]]
#:{{etymologi|Av {{härledning|is|tr|bulgur}}.}}
==Spanska==
===Substantiv===
{{es-subst-m-es}}
'''bulgur''' {{m}}
#{{tagg|kat=mat|språk=es}} [[#Svenska|bulgur]]
#:{{etymologi|Av {{härledning|es|tr|bulgur}}.}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''bulgur'''
*{{uttal|tr|ipa=buɫ.ˈɡuɾ}}
#{{tagg|kat=mat|språk=tr}} [[#Svenska|bulgur]]
#:{{etymologi|Från {{härledning|tr|ota|بورغول|tr=burğul}}, {{länk|ota|بلغور}} (''bulğur''), av {{härledning|tr|ar|بُرْغُل|tr=burḡul}}, av {{härledning|tr|fa|برغول|tr=barğūl}}, {{länk|fa|پرغول}} (''parğūl'').}}
75qxmz8jscdv4dor7nppeteintauxx4
4156105
4156083
2026-10-16T09:16:55Z
Frodlekis
762
+yi: [[בולגור]] (assisterat)
4156105
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-oräkn|2=[[bulguren]], [[bulgurn]]|4=[[bulgurens]], [[bulgurns]]}}
'''bulgur'''
#{{tagg|kat=mat}} förtorkat, [[torka]]t och [[krossa]]t [[matvete]] som används som [[matvara]]
#:{{etymologi|Av {{härledning|sv|tr|bulgur}}, av {{härledning|sv|ota|بورغول|tr=burğul}}, {{länk|ota|بلغور}} (''bulğur''), av {{härledning|sv|ar|بُرْغُل|tr=burḡul}}, av {{härledning|sv|fa|برغول|tr=barğūl}}, {{länk|fa|پرغول}} (''parğūl'').}}
====Översättningar====
{{ö-topp|förtorkat, torkat och krossat matvete som används som matvara}}
*armeniska: {{ö+|hy|բլղուր|tr=blłur}}
*finska: {{ö+|fi|bulgur}}
*isländska: {{ö|is|bulgur}}
*jiddisch: {{ö|yi|בולגור|m|tr=bulgur}}
*spanska: {{ö|es|bulgur|m}}
*turkiska: {{ö+|tr|bulgur}}
*tyska: {{ö+|de|Bulgur|m}}
{{ö-botten}}
==Isländska==
===Substantiv===
{{subst|is}}
'''bulgur'''
#{{tagg|kat=mat|språk=is}} [[#Svenska|bulgur]]
#:{{etymologi|Av {{härledning|is|tr|bulgur}}.}}
==Spanska==
===Substantiv===
{{es-subst-m-es}}
'''bulgur''' {{m}}
#{{tagg|kat=mat|språk=es}} [[#Svenska|bulgur]]
#:{{etymologi|Av {{härledning|es|tr|bulgur}}.}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''bulgur'''
*{{uttal|tr|ipa=buɫ.ˈɡuɾ}}
#{{tagg|kat=mat|språk=tr}} [[#Svenska|bulgur]]
#:{{etymologi|Från {{härledning|tr|ota|بورغول|tr=burğul}}, {{länk|ota|بلغور}} (''bulğur''), av {{härledning|tr|ar|بُرْغُل|tr=burḡul}}, av {{härledning|tr|fa|برغول|tr=barğūl}}, {{länk|fa|پرغول}} (''parğūl'').}}
mjl22lripjhrcyuh4ksrqdg1eff6sf2
4156128
4156105
2026-10-16T09:38:22Z
Frodlekis
762
+kmr: [[savar]] (assisterat)
4156128
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-oräkn|2=[[bulguren]], [[bulgurn]]|4=[[bulgurens]], [[bulgurns]]}}
'''bulgur'''
#{{tagg|kat=mat}} förtorkat, [[torka]]t och [[krossa]]t [[matvete]] som används som [[matvara]]
#:{{etymologi|Av {{härledning|sv|tr|bulgur}}, av {{härledning|sv|ota|بورغول|tr=burğul}}, {{länk|ota|بلغور}} (''bulğur''), av {{härledning|sv|ar|بُرْغُل|tr=burḡul}}, av {{härledning|sv|fa|برغول|tr=barğūl}}, {{länk|fa|پرغول}} (''parğūl'').}}
====Översättningar====
{{ö-topp|förtorkat, torkat och krossat matvete som används som matvara}}
*armeniska: {{ö+|hy|բլղուր|tr=blłur}}
*finska: {{ö+|fi|bulgur}}
*isländska: {{ö|is|bulgur}}
*jiddisch: {{ö|yi|בולגור|m|tr=bulgur}}
*nordkurdiska: {{ö|kmr|savar}}
*spanska: {{ö|es|bulgur|m}}
*turkiska: {{ö+|tr|bulgur}}
*tyska: {{ö+|de|Bulgur|m}}
{{ö-botten}}
==Isländska==
===Substantiv===
{{subst|is}}
'''bulgur'''
#{{tagg|kat=mat|språk=is}} [[#Svenska|bulgur]]
#:{{etymologi|Av {{härledning|is|tr|bulgur}}.}}
==Spanska==
===Substantiv===
{{es-subst-m-es}}
'''bulgur''' {{m}}
#{{tagg|kat=mat|språk=es}} [[#Svenska|bulgur]]
#:{{etymologi|Av {{härledning|es|tr|bulgur}}.}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''bulgur'''
*{{uttal|tr|ipa=buɫ.ˈɡuɾ}}
#{{tagg|kat=mat|språk=tr}} [[#Svenska|bulgur]]
#:{{etymologi|Från {{härledning|tr|ota|بورغول|tr=burğul}}, {{länk|ota|بلغور}} (''bulğur''), av {{härledning|tr|ar|بُرْغُل|tr=burḡul}}, av {{härledning|tr|fa|برغول|tr=barğūl}}, {{länk|fa|پرغول}} (''parğūl'').}}
74gue1pa5n0o1mgywi1luwurl2s2fah
aslan
0
135822
4155935
3728480
2026-10-15T23:12:19Z
Frodlekis
762
/* Turkiska */
4155935
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''aslan'''
#{{tagg|kat=däggdjur|språk=tr}} [[lejon]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''aslan'''
#{{tagg|kat=däggdjur|språk=tr}} [[lejon]]
rcpquqby95am0ir7dfp0c8ckbmnmeae
4155936
4155935
2026-10-15T23:12:32Z
Frodlekis
762
4155936
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''aslan'''
#{{tagg|kat=däggdjur|språk=az}} [[lejon]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''aslan'''
#{{tagg|kat=däggdjur|språk=tr}} [[lejon]]
0e6o06zx65l8dbnoqjbx554persx3sp
adam
0
139023
4156181
3854339
2026-10-16T11:24:11Z
Frodlekis
762
4156181
wikitext
text/x-wiki
{{se även|Adam}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''adam'''
*{{uttal|tr|ipa=ɑ.ˈdɑm}}
#[[man]]
8xhv8sdw06klwzme0q8z2yk1oaq8j8m
abla
0
139025
4156043
3558394
2026-10-16T01:09:52Z
Frodlekis
762
/* Turkiska */
4156043
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abla'''
#{{tagg|kat=släktingar|språk=tr}} [[storasyster]]
niarmvuxxkpykcjmqsilg1geq24pw4r
amca
0
139026
4155941
4155478
2026-10-15T23:18:36Z
Frodlekis
762
4155941
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-v}}
'''amca'''
#{{tagg|kat=släktingar|språk=tr}} [[farbror]]
30dxk9m3aza12hwvyxkc1obj465788y
torun
0
139027
4156038
3578404
2026-10-16T01:06:24Z
Frodlekis
762
/* Turkiska */
4156038
wikitext
text/x-wiki
{{se även|Toruń}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''torun'''
#{{tagg|kat=släktingar|språk=tr}} [[barnbarn]]
shx5exssv4apf0m41xx0f972tq0tioo
oğul
0
139028
4156048
3921338
2026-10-16T01:13:26Z
Frodlekis
762
4156048
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''oğul'''
#{{tagg|släktingar|språk=az}} [[son]]
#:{{besläktade ord|[[oğlan]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''oğul'''
#{{tagg|kat=släktingar|språk=tr}} [[son]]
0kbvt6h1rb7snduvsr4sclcfppg75yz
4156049
4156048
2026-10-16T01:15:27Z
Frodlekis
762
4156049
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst|rot=oğlu}}
{{az-skrift|оғул|اوغول}}
'''oğul'''
#{{tagg|släktingar|språk=az}} [[son]]
#:{{besläktade ord|[[oğlan]]}}
==Turkiska==
===Substantiv===
{{tr-subst|rot=oğlu}}
'''oğul'''
#{{tagg|kat=släktingar|språk=tr}} [[son]]
bgt7rpsy6t260q11jcixpm21mwhuw0w
4156050
4156049
2026-10-16T01:15:55Z
Frodlekis
762
4156050
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
{{az-skrift|оғул|اوغول}}
'''oğul'''
#{{tagg|släktingar|språk=az}} [[son]]
#:{{besläktade ord|[[oğlan]]}}
==Turkiska==
===Substantiv===
{subst|az}}
'''oğul'''
#{{tagg|kat=släktingar|språk=tr}} [[son]]
l27z6d2fxs0uos3yv5p80u111oinukw
4156051
4156050
2026-10-16T01:16:04Z
Frodlekis
762
/* Turkiska */
4156051
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
{{az-skrift|оғул|اوغول}}
'''oğul'''
#{{tagg|släktingar|språk=az}} [[son]]
#:{{besläktade ord|[[oğlan]]}}
==Turkiska==
===Substantiv===
{{subst|az}}
'''oğul'''
#{{tagg|kat=släktingar|språk=tr}} [[son]]
qyzv06nzl437j8n0sgvi9f404bvacxy
4156052
4156051
2026-10-16T01:16:11Z
Frodlekis
762
/* Turkiska */
4156052
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
{{az-skrift|оғул|اوغول}}
'''oğul'''
#{{tagg|släktingar|språk=az}} [[son]]
#:{{besläktade ord|[[oğlan]]}}
==Turkiska==
===Substantiv===
{{subst|tr}}
'''oğul'''
#{{tagg|kat=släktingar|språk=tr}} [[son]]
qj1c45ye024trta94sd6pj0n7ye8876
ada
0
139284
4156182
4022917
2026-10-16T11:25:14Z
Frodlekis
762
/* Turkiska */
4156182
wikitext
text/x-wiki
{{se även|Ada}}
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
'''ada'''
#{{tagg|kat=palindrom|språk=az}} [[ö]]
==Indonesiska==
===Verb===
{{verb|id}}
'''ada'''
#{{tagg|intransitivt|språk=id}} [[finnas]], [[existera]]
#:{{besläktade ord|[[adakan]], [[mengadakan]]}}
#{{tagg|kat=palindrom|språk=id}} [[ha]]
==Malajiska==
===Verb===
{{verb|ms}}
'''ada'''
#{{tagg|kat=palindrom|språk=ms}} [[ha]]
#[[finnas]]
==Rohingya==
===Substantiv===
{{subst|rhg}}
'''ada'''
#[[ingefära]]
==Swahili==
===Substantiv===
{{subst|sw}}
'''ada'''
*{{uttal|sw|region=Kenya|ljud=Sw-ke-ada.flac}}
#{{tagg|kat=palindrom|språk=sw}} [[avgift]]
#:{{etymologi|Av {{härledning|sw|ar|اداء~|adá, betalning}}.}}
==Tagalog==
===Substantiv===
{{subst|tl}}
'''ada'''
#{{tagg|kat=mytologi|kat2=palindrom|språk=tl}} [[fe]]
#:{{etymologi|Av {{härledning|tl|es|hada|fe}}, av vulgär-{{härledning|tl|la|Fāta|ödesgudinnan}}, från pluralformen av {{härledning|tl|la|fātum|öde}}.}}
#:{{seäven|[[diwata]], [[nimpa]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''ada'''
#{{tagg|kat=palindrom|språk=tr}} [[ö]]
al7jdo6skih7qy9w2lu8sldkilbmh8f
alın
0
141205
4155974
3699640
2026-10-16T00:03:21Z
Frodlekis
762
4155974
wikitext
text/x-wiki
{{se även|alin}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''alın'''
#{{tagg|anatomi|språk=az}} [[panna]]
==Turkiska==
===Substantiv===
{{az-subst}}
'''alın'''
#{{tagg|anatomi|språk=tr}} [[panna]]
ra8a6sy5uzwlcuv0rqlg69z7kncnpj4
4155975
4155974
2026-10-16T00:04:41Z
Frodlekis
762
/* Turkiska */
4155975
wikitext
text/x-wiki
{{se även|alin}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''alın'''
#{{tagg|anatomi|språk=az}} [[panna]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''alın'''
#{{tagg|anatomi|språk=tr}} [[panna]]
a6a9qh9zx6yjokcs5z8zsfjn2y7wzgr
4155976
4155975
2026-10-16T00:11:16Z
Frodlekis
762
/* Turkiska */
4155976
wikitext
text/x-wiki
{{se även|alin}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''alın'''
#{{tagg|anatomi|språk=az}} [[panna]]
==Turkiska==
===Substantiv===
{{tr-subst|rot=aln}}
'''alın'''
#{{tagg|anatomi|språk=tr}} [[panna]]
lxdtjnnv6vhdfwq8o707xwfa7h8jyjz
4155977
4155976
2026-10-16T00:11:49Z
Frodlekis
762
/* Azerbajdzjanska */
4155977
wikitext
text/x-wiki
{{se även|alin}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst|rot=aln}}
'''alın'''
#{{tagg|anatomi|språk=az}} [[panna]]
==Turkiska==
===Substantiv===
{{tr-subst|rot=aln}}
'''alın'''
#{{tagg|anatomi|språk=tr}} [[panna]]
5mk6nj9tevsalic850delpgx0jmc7sw
anne
0
141866
4156037
4128962
2026-10-16T01:05:47Z
Frodlekis
762
/* Turkiska */
4156037
wikitext
text/x-wiki
{{se även|Anne}}
==Pali==
===Substantiv===
'''anne'''
#{{böjning|pi|subst|anna}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''anne'''
*{{uttal|tr|ipa=ɑn.nɛ}}
#{{tagg|kat=släktingar|språk=tr}} [[mor]], [[mamma]]
a1rth4qk58aulpnxbuj221uyw9xujtr
avukat
0
141932
4155810
3572371
2026-10-15T19:59:21Z
Frodlekis
762
4155810
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-k|a}}
'''avukat'''
#{{tagg|kat=yrken|språk=tr}} [[advokat]]
aut1076rtv06g5uavh4jiwrg0k7bcjg
4155811
4155810
2026-10-15T20:00:57Z
Frodlekis
762
/* Turkiska */
4155811
wikitext
text/x-wiki
==Maltesiska==
===Substantiv===
{{subst|mt}}
'''avukat''' {{m}}
#{{tagg|kat=yrken|språk=mt}} [[advokat]]
==Turkiska==
===Substantiv===
{{tr-subst-k|a}}
'''avukat'''
#{{tagg|kat=yrken|språk=tr}} [[advokat]]
pctlskugwkjo9u3th2d3byigvt5qcvj
teckna
0
149822
4155769
4108783
2026-10-15T13:43:19Z
R. Henrik Nilsson
44622
dyligt > dylikt
4155769
wikitext
text/x-wiki
==Svenska==
===Verb===
{{sv-verb-ar|rot=teckn|perfpart=}}
'''teckna'''
#[[rita]] (en [[teckning]]) med [[penna]], [[krita]] eller dylikt
#:{{besläktade ord|[[tecken]], [[tecknad serie]], [[tecknare]], [[tecknerska]], [[teckning]]}}
#[[kommunicera]] genom [[signal]]er, [[kroppsspråk]] (rörelser med kroppsdelar som händerna) eller [[teckenspråk]]; ge [[tecken]]
#[[signera]] ett dokument, signera eller ingå ett [[kontrakt]] eller dylikt
#:''Hon '''tecknar''' en försäkring.''
:{{avgränsare}}
:{{sammansättningar|[[anteckna]], [[avteckna]], [[beteckna]], [[dubbelteckna]], [[nedteckna]]}}
====Översättningar====
{{ö-topp|rita}}
*danska: {{ö+|da|tegne}}
*engelska: {{ö+|en|draw}}
*franska: {{ö+|fr|dessiner}}
*isländska: {{ö+|is|teikna}}
*malajiska: {{ö|ms|melukis}}
*polska: {{ö+|pl|rysować}}
*ryska: {{ö+|ru|рисова́ть|impf}}, {{ö+|ru|нарисова́ть|impf}}
*tyska: {{ö+|de|zeichnen}}
{{ö-botten}}
{{ö-topp|kommunicera genom rörelser med händerna}}
*tyska: {{ö|de|Zeichen geben}}
{{ö-botten}}
{{ö-topp|signera ett dokument}}
*tyska: {{ö+|de|abschließen}}, {{ö+|de|zeichnen}}
{{ö-botten}}
fhka10rjlphsdeu7buzs6aluc95othf
ufologi
0
149903
4156070
4093202
2026-10-16T06:58:44Z
Mölli-Möllerö
41395
4156070
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-n-oräkn|en=}}
'''[[ufo]][[-logi|logi]]'''
#{{tagg|kat=vetenskaper|kat2=pseudovetenskaper}} [[studium|studiet]] av [[ufo]]n (oidentifierade flygande föremål) och andra relaterade [[fenomen]]
#:{{besläktade ord|[[ufolog]], [[ufologisk]]}}
====Översättningar====
{{ö-topp|studiet av ufon (oidentifierade flygande föremål) och andra relaterade fenomen}}
*belarusiska: {{ö|be|уфалогія|f}}
*danska: {{ö|da|ufologi|u}}
*engelska: {{ö+|en|ufology}}
*esperanto: {{ö+|eo|nifologio}}
*estniska: {{ö|et|ufoloogia}}
*finska: {{ö|fi|ufologia}}, {{ö|fi|ufotutkimus}}
*franska: {{ö+|fr|ufologie|f}}
*italienska: {{ö+|it|ufologia|f}}
*katalanska: {{ö|ca|ufologia|f}}
*litauiska: {{ö|lt|ufologija|f}}
*nederländska: {{ö|nl|ufologie}}
*polska: {{ö+|pl|ufologia|f}}
*portugisiska: {{ö+|pt|ufologia|f}}
*rumänska: {{ö+|ro|ufologie|f}}
*ryska: {{ö+|ru|уфология|f}}
*spanska: {{ö+|es|ufología|f}}
*tyska: {{ö|de|Ufologie|f}}
*ukrainska: {{ö+|uk|уфологія|f}}
*ungerska: {{ö|hu|ufológia}}
{{ö-botten}}
==Finska==
===Substantiv===
{{subst|fi}}
'''ufologi'''
#[[ufolog]]
duw9bd3f4ew9ke3fcdzj1whyze1dmrg
kısrak
0
164941
4155932
4155640
2026-10-15T23:07:55Z
Frodlekis
762
4155932
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst|rot=kısrağ}}
'''kısrak'''
#{{tagg|djurfamiljen|däggdjur|språk=tr}} [[sto]], [[märr]]
#:{{hyperonymer|[[at]]}}
19qjznh5iiuek20jqakq475kzwy3gge
consommé
0
169840
4156165
4069143
2026-10-16T10:56:35Z
Frodlekis
762
+yi: [[קאָנסאָמע]] (assisterat)
4156165
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-n-er|fog=}}
'''consommé'''
#{{tagg|kat=mat|gallicism}} slags klar [[soppa]] gjord på [[buljong]]
#:{{etymologi|Av {{härledning|sv|fr|consommé}}.<ref>{{källa-so}}</ref>}}
====Översättningar====
{{ö-topp|slags klar soppa gjord på buljong}}
*danska: {{ö|da|consommé|u}}, {{ö|da|consomme|u}}
*jiddisch: {{ö|yi|קאָנסאָמע|m|tr=konsome}}
*slovakiska: {{ö|sk|konsomé|n}}
*turkiska: {{ö+|tr|konsome}}
{{ö-botten}}
==Danska==
===Substantiv===
{{da-subst-n-er}}
'''consommé''' {{u}}
#{{tagg|kat=mat|kat2=gallicism|språk=da}} [[#Svenska|consommé]]
#:{{varianter|[[consomme]]}}
#:{{etymologi|Av {{härledning|da|fr|consommé}}.<ref>{{källa-ddo}}</ref>}}
==Källor==
<references/>
odh1es3ex3nw7wpyw6e8ob0kshkv42b
fikon
0
170335
4156098
3868816
2026-10-16T09:10:57Z
~2026-55485-04
62322
4156098
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
{{media|Breva ficus carica.jpg|'''fikon''' (frukt)}}
'''fikon'''
#{{tagg|kat=träd}} ett [[träd]] ''([[Ficus carica]])'', i familjen [[mullbärsväxter]] ''([[Moraceae]])''; exemplar av denna art
#:{{synonymer|[[fikonträd]]}}
#{{tagg|kat=frukter}} [[frukt]] från detta träd
:{{avgränsare}}
:{{sammansättningar|[[fikonblad]], [[fikonkaktus]], [[fikonlöv]], [[fikonmarmelad]], [[fikonspråk]], [[fikonträd]]}}
====Översättningar====
{{ö-se|fikonträd}}
{{ö-topp|frukt}}
*armeniska: {{ö+|hy|թուզ|tr=tuz|sc=Armn}}
*asturiska: {{ö+|ast|figu|m}}
*bokmål: {{ö+|no|fiken|m}}
*bosniska: {{ö|bs|smokva}}
*bulgariska: {{ö+|bg|смокиня|f}}
*danska: {{ö|da|figen|u}}
*engelska: {{ö+|en|fig}}
*esperanto: {{ö+|eo|figo}}
*estniska: {{ö+|et|viigimari}}
*finska: {{ö+|fi|viikuna}}
*franska: {{ö+|fr|figue|f}}
*färöiska: {{ö|fo|fika|f}}
*grekiska: {{ö+|el|σύκο|n|tr=syko|sc=Grek}}
*hebreiska: {{ö+|he|תאנה|f|tr=t'einá}}
*isländska: {{ö+|is|fíkja|f}}
*italienska: {{ö+|it|fico|m}}
*katalanska: {{ö+|ca|figa|f}}
*kroatiska: {{ö+|hr|smȍkva|f}}
*latin: {{ö|la|ficus|m}}
*lettiska: {{ö|lv|vīģe|f}}
*litauiska: {{ö|lt|figa|f}}
*makedonska: {{ö|mk|смоква}}
*nederländska: {{ö+|nl|vijg|f}}
*nynorska: {{ö|nn|fiken|m}}
*polska: {{ö+|pl|figa}}
*portugisiska: {{ö+|pt|figo|m}}
*rumänska: {{ö+|ro|smochină|f}}
*ryska: {{ö+|ru|инжи́р|m}}, {{ö+|ru|смо́ква|f}}, {{ö+|ru|фи́га|f}}
*serbiska: {{ö+|sr|смо̏ква|f}}
*slovakiska: {{ö+|sk|figa|f}}
*slovenska: {{ö+|sl|figa|f}}
*spanska: {{ö+|es|higo|m}}
*swahili: {{ö+|sw|tini}}
*tjeckiska: {{ö+|cs|fík|m}}
*turkiska: {{ö+|tr|incir}}
*tyska: {{ö+|de|Feige|f}}
*ukrainska: {{ö|uk|фі́га|f}}, {{ö+|uk|інжи́р|m}}
*ungerska: {{ö+|hu|füge}}
{{ö-botten}}
32143za9ntmzr2fi79y2s6hkro3uz12
4156099
4156098
2026-10-16T09:11:43Z
~2026-55485-04
62322
+kmr: [[hejîr]] (assisterat)
4156099
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
{{media|Breva ficus carica.jpg|'''fikon''' (frukt)}}
'''fikon'''
#{{tagg|kat=träd}} ett [[träd]] ''([[Ficus carica]])'', i familjen [[mullbärsväxter]] ''([[Moraceae]])''; exemplar av denna art
#:{{synonymer|[[fikonträd]]}}
#{{tagg|kat=frukter}} [[frukt]] från detta träd
:{{avgränsare}}
:{{sammansättningar|[[fikonblad]], [[fikonkaktus]], [[fikonlöv]], [[fikonmarmelad]], [[fikonspråk]], [[fikonträd]]}}
====Översättningar====
{{ö-se|fikonträd}}
{{ö-topp|frukt}}
*armeniska: {{ö+|hy|թուզ|tr=tuz|sc=Armn}}
*asturiska: {{ö+|ast|figu|m}}
*bokmål: {{ö+|no|fiken|m}}
*bosniska: {{ö|bs|smokva}}
*bulgariska: {{ö+|bg|смокиня|f}}
*danska: {{ö|da|figen|u}}
*engelska: {{ö+|en|fig}}
*esperanto: {{ö+|eo|figo}}
*estniska: {{ö+|et|viigimari}}
*finska: {{ö+|fi|viikuna}}
*franska: {{ö+|fr|figue|f}}
*färöiska: {{ö|fo|fika|f}}
*grekiska: {{ö+|el|σύκο|n|tr=syko|sc=Grek}}
*hebreiska: {{ö+|he|תאנה|f|tr=t'einá}}
*isländska: {{ö+|is|fíkja|f}}
*italienska: {{ö+|it|fico|m}}
*katalanska: {{ö+|ca|figa|f}}
*kroatiska: {{ö+|hr|smȍkva|f}}
*latin: {{ö|la|ficus|m}}
*lettiska: {{ö|lv|vīģe|f}}
*litauiska: {{ö|lt|figa|f}}
*makedonska: {{ö|mk|смоква}}
*nederländska: {{ö+|nl|vijg|f}}
*nordkurdiska: {{ö|kmr|hejîr|f}}
*nynorska: {{ö|nn|fiken|m}}
*polska: {{ö+|pl|figa}}
*portugisiska: {{ö+|pt|figo|m}}
*rumänska: {{ö+|ro|smochină|f}}
*ryska: {{ö+|ru|инжи́р|m}}, {{ö+|ru|смо́ква|f}}, {{ö+|ru|фи́га|f}}
*serbiska: {{ö+|sr|смо̏ква|f}}
*slovakiska: {{ö+|sk|figa|f}}
*slovenska: {{ö+|sl|figa|f}}
*spanska: {{ö+|es|higo|m}}
*swahili: {{ö+|sw|tini}}
*tjeckiska: {{ö+|cs|fík|m}}
*turkiska: {{ö+|tr|incir}}
*tyska: {{ö+|de|Feige|f}}
*ukrainska: {{ö|uk|фі́га|f}}, {{ö+|uk|інжи́р|m}}
*ungerska: {{ö+|hu|füge}}
{{ö-botten}}
te1lm6zr0yh1w49jycnh1xcrvwmy32b
4156100
4156099
2026-10-16T09:12:31Z
~2026-55485-04
62322
+yi: [[פֿײַג]] (assisterat)
4156100
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
{{media|Breva ficus carica.jpg|'''fikon''' (frukt)}}
'''fikon'''
#{{tagg|kat=träd}} ett [[träd]] ''([[Ficus carica]])'', i familjen [[mullbärsväxter]] ''([[Moraceae]])''; exemplar av denna art
#:{{synonymer|[[fikonträd]]}}
#{{tagg|kat=frukter}} [[frukt]] från detta träd
:{{avgränsare}}
:{{sammansättningar|[[fikonblad]], [[fikonkaktus]], [[fikonlöv]], [[fikonmarmelad]], [[fikonspråk]], [[fikonträd]]}}
====Översättningar====
{{ö-se|fikonträd}}
{{ö-topp|frukt}}
*armeniska: {{ö+|hy|թուզ|tr=tuz|sc=Armn}}
*asturiska: {{ö+|ast|figu|m}}
*bokmål: {{ö+|no|fiken|m}}
*bosniska: {{ö|bs|smokva}}
*bulgariska: {{ö+|bg|смокиня|f}}
*danska: {{ö|da|figen|u}}
*engelska: {{ö+|en|fig}}
*esperanto: {{ö+|eo|figo}}
*estniska: {{ö+|et|viigimari}}
*finska: {{ö+|fi|viikuna}}
*franska: {{ö+|fr|figue|f}}
*färöiska: {{ö|fo|fika|f}}
*grekiska: {{ö+|el|σύκο|n|tr=syko|sc=Grek}}
*hebreiska: {{ö+|he|תאנה|f|tr=t'einá}}
*isländska: {{ö+|is|fíkja|f}}
*italienska: {{ö+|it|fico|m}}
*jiddisch: {{ö|yi|פֿײַג|f}}
*katalanska: {{ö+|ca|figa|f}}
*kroatiska: {{ö+|hr|smȍkva|f}}
*latin: {{ö|la|ficus|m}}
*lettiska: {{ö|lv|vīģe|f}}
*litauiska: {{ö|lt|figa|f}}
*makedonska: {{ö|mk|смоква}}
*nederländska: {{ö+|nl|vijg|f}}
*nordkurdiska: {{ö|kmr|hejîr|f}}
*nynorska: {{ö|nn|fiken|m}}
*polska: {{ö+|pl|figa}}
*portugisiska: {{ö+|pt|figo|m}}
*rumänska: {{ö+|ro|smochină|f}}
*ryska: {{ö+|ru|инжи́р|m}}, {{ö+|ru|смо́ква|f}}, {{ö+|ru|фи́га|f}}
*serbiska: {{ö+|sr|смо̏ква|f}}
*slovakiska: {{ö+|sk|figa|f}}
*slovenska: {{ö+|sl|figa|f}}
*spanska: {{ö+|es|higo|m}}
*swahili: {{ö+|sw|tini}}
*tjeckiska: {{ö+|cs|fík|m}}
*turkiska: {{ö+|tr|incir}}
*tyska: {{ö+|de|Feige|f}}
*ukrainska: {{ö|uk|фі́га|f}}, {{ö+|uk|інжи́р|m}}
*ungerska: {{ö+|hu|füge}}
{{ö-botten}}
d1li1sb9plu18wqu0k7ylc8bug77ojw
4156101
4156100
2026-10-16T09:13:32Z
Frodlekis
762
/* Översättningar */
4156101
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
{{media|Breva ficus carica.jpg|'''fikon''' (frukt)}}
'''fikon'''
#{{tagg|kat=träd}} ett [[träd]] ''([[Ficus carica]])'', i familjen [[mullbärsväxter]] ''([[Moraceae]])''; exemplar av denna art
#:{{synonymer|[[fikonträd]]}}
#{{tagg|kat=frukter}} [[frukt]] från detta träd
:{{avgränsare}}
:{{sammansättningar|[[fikonblad]], [[fikonkaktus]], [[fikonlöv]], [[fikonmarmelad]], [[fikonspråk]], [[fikonträd]]}}
====Översättningar====
{{ö-se|fikonträd}}
{{ö-topp|frukt}}
*armeniska: {{ö+|hy|թուզ|tr=tuz|sc=Armn}}
*asturiska: {{ö+|ast|figu|m}}
*bokmål: {{ö+|no|fiken|m}}
*bosniska: {{ö|bs|smokva}}
*bulgariska: {{ö+|bg|смокиня|f}}
*danska: {{ö|da|figen|u}}
*engelska: {{ö+|en|fig}}
*esperanto: {{ö+|eo|figo}}
*estniska: {{ö+|et|viigimari}}
*finska: {{ö+|fi|viikuna}}
*franska: {{ö+|fr|figue|f}}
*färöiska: {{ö|fo|fika|f}}
*grekiska: {{ö+|el|σύκο|n|tr=syko|sc=Grek}}
*hebreiska: {{ö+|he|תאנה|f|tr=t'einá}}
*isländska: {{ö+|is|fíkja|f}}
*italienska: {{ö+|it|fico|m}}
*jiddisch: {{ö|yi|פֿײַג|f}}
*katalanska: {{ö+|ca|figa|f}}
*kroatiska: {{ö+|hr|smȍkva|f}}
*latin: {{ö|la|ficus|m}}
*lettiska: {{ö|lv|vīģe|f}}
*litauiska: {{ö|lt|figa|f}}
*makedonska: {{ö|mk|смоква}}
*nederländska: {{ö+|nl|vijg|f}}
*nordkurdiska: {{ö|kmr|hejîr|f}}
*nynorska: {{ö|nn|fiken|m}}
*polska: {{ö+|pl|figa}}
*portugisiska: {{ö+|pt|figo|m}}
*rumänska: {{ö+|ro|smochină|f}}
*ryska: {{ö+|ru|инжи́р|m}}, {{ö+|ru|смо́ква|f}}, {{ö+|ru|фи́га|f}}
*serbiska: {{ö+|sr|смо̏ква|f}}
*slovakiska: {{ö+|sk|figa|f}}
*slovenska: {{ö+|sl|figa|f}}
*spanska: {{ö+|es|higo|m}}
*swahili: {{ö+|sw|tini}}
*tjeckiska: {{ö+|cs|fík|m}}
*turkiska: {{ö+|tr|incir}}
*tyska: {{ö+|de|Feige|f}}
*ukrainska: {{ö|uk|фі́га|f}}, {{ö+|uk|інжи́р|m}}
*ungerska: {{ö+|hu|füge}}
{{ö-botten}}
8isq9lr4dtw08x4khqpz6en7g81q4p7
verbalsubstantiv
0
170920
4155900
4073253
2026-10-15T22:12:14Z
Frodlekis
762
+kmr: [[mesder]] (assisterat)
4155900
wikitext
text/x-wiki
{{se även|Verbalsubstantiv}}
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
'''[[verbal]][[substantiv]]'''
#{{tagg|lingvistik|kat=ordklasser}} [[substantiv]] bildat av ett [[verb]]
#:{{synonymer|[[verbalnomen]], [[substantiverat verb]]}}
#:{{jämför|[[substantivavledning]], [[substantivering]]}}
====Varianter====
*[[vbalsbst.]] ''(förkortning)''
====Översättningar====
{{ö-topp|verbalt substantiv}}
*engelska: {{ö+|en|verbal noun}}, {{ö+|en|verbal substantive}}
*nordkurdiska: {{ö|kmr|mesder}}
*polska: {{ö+|pl|rzeczownik odczasownikowy|m}}
*portugisiska: {{ö|pt|substantivo verbal|m}}
*rumänska: {{ö|ro|substantiv verbal|m}}
*spanska: {{ö|es|nombre verbal|m}}
*tyska: {{ö|de|Verbalsubstantiv|n}}
*vallonska: {{ö+|wa|svierba}}
{{ö-botten}}
nublxgzedyi8pum6vlpthwq3in6rikt
4155901
4155900
2026-10-15T22:12:25Z
Frodlekis
762
+ca: [[nom verbal]] (assisterat)
4155901
wikitext
text/x-wiki
{{se även|Verbalsubstantiv}}
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
'''[[verbal]][[substantiv]]'''
#{{tagg|lingvistik|kat=ordklasser}} [[substantiv]] bildat av ett [[verb]]
#:{{synonymer|[[verbalnomen]], [[substantiverat verb]]}}
#:{{jämför|[[substantivavledning]], [[substantivering]]}}
====Varianter====
*[[vbalsbst.]] ''(förkortning)''
====Översättningar====
{{ö-topp|verbalt substantiv}}
*engelska: {{ö+|en|verbal noun}}, {{ö+|en|verbal substantive}}
*katalanska: {{ö|ca|nom verbal|m}}
*nordkurdiska: {{ö|kmr|mesder}}
*polska: {{ö+|pl|rzeczownik odczasownikowy|m}}
*portugisiska: {{ö|pt|substantivo verbal|m}}
*rumänska: {{ö|ro|substantiv verbal|m}}
*spanska: {{ö|es|nombre verbal|m}}
*tyska: {{ö|de|Verbalsubstantiv|n}}
*vallonska: {{ö+|wa|svierba}}
{{ö-botten}}
80tkf32ejd9o0ydhq9tmrqyw09k0b9j
4155902
4155901
2026-10-15T22:12:57Z
Frodlekis
762
+da: [[verbalsubstantiv]]; +fi: [[teonnimi]] (assisterat)
4155902
wikitext
text/x-wiki
{{se även|Verbalsubstantiv}}
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
'''[[verbal]][[substantiv]]'''
#{{tagg|lingvistik|kat=ordklasser}} [[substantiv]] bildat av ett [[verb]]
#:{{synonymer|[[verbalnomen]], [[substantiverat verb]]}}
#:{{jämför|[[substantivavledning]], [[substantivering]]}}
====Varianter====
*[[vbalsbst.]] ''(förkortning)''
====Översättningar====
{{ö-topp|verbalt substantiv}}
*danska: {{ö|da|verbalsubstantiv|n}}
*engelska: {{ö+|en|verbal noun}}, {{ö+|en|verbal substantive}}
*finska: {{ö+|fi|teonnimi}}
*katalanska: {{ö|ca|nom verbal|m}}
*nordkurdiska: {{ö|kmr|mesder}}
*polska: {{ö+|pl|rzeczownik odczasownikowy|m}}
*portugisiska: {{ö|pt|substantivo verbal|m}}
*rumänska: {{ö|ro|substantiv verbal|m}}
*spanska: {{ö|es|nombre verbal|m}}
*tyska: {{ö|de|Verbalsubstantiv|n}}
*vallonska: {{ö+|wa|svierba}}
{{ö-botten}}
nr547m5376ih6tifegala5zfw4w3fd1
4155904
4155902
2026-10-15T22:15:13Z
Frodlekis
762
+ar: [[مَصْدَر]] (assisterat)
4155904
wikitext
text/x-wiki
{{se även|Verbalsubstantiv}}
==Svenska==
===Substantiv===
{{sv-subst-t-0}}
'''[[verbal]][[substantiv]]'''
#{{tagg|lingvistik|kat=ordklasser}} [[substantiv]] bildat av ett [[verb]]
#:{{synonymer|[[verbalnomen]], [[substantiverat verb]]}}
#:{{jämför|[[substantivavledning]], [[substantivering]]}}
====Varianter====
*[[vbalsbst.]] ''(förkortning)''
====Översättningar====
{{ö-topp|verbalt substantiv}}
*arabiska: {{ö+|ar|مَصْدَر|m|tr=maṣdar}}
*danska: {{ö|da|verbalsubstantiv|n}}
*engelska: {{ö+|en|verbal noun}}, {{ö+|en|verbal substantive}}
*finska: {{ö+|fi|teonnimi}}
*katalanska: {{ö|ca|nom verbal|m}}
*nordkurdiska: {{ö|kmr|mesder}}
*polska: {{ö+|pl|rzeczownik odczasownikowy|m}}
*portugisiska: {{ö|pt|substantivo verbal|m}}
*rumänska: {{ö|ro|substantiv verbal|m}}
*spanska: {{ö|es|nombre verbal|m}}
*tyska: {{ö|de|Verbalsubstantiv|n}}
*vallonska: {{ö+|wa|svierba}}
{{ö-botten}}
3ywo2fynmxksd4b975tvra42imor2vb
bab
0
183725
4156056
4023653
2026-10-16T01:19:37Z
Frodlekis
762
4156056
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-m}}
'''bab''' {{m}}
#{{tagg|kat=släktingar|språk=kmr}} [[pappa]]
#:{{synonymer|[[bav]]}}
==Vepsiska==
===Substantiv===
{{subst|vep}}
'''bab'''
#{{tagg|kat=släktingar|språk=vep}} [[mormor]]
#{{tagg|kat=släktingar|språk=vep}} [[farmor]]
3quofkn3gktfxqv4nv9nho6ic66xlh5
baba
0
187964
4156004
4022927
2026-10-16T00:34:56Z
Frodlekis
762
/* Turkiska */
4156004
wikitext
text/x-wiki
==Albanska==
===Substantiv===
{{subst|sq}}
'''baba''' {{m}}
*{{uttal|sq|ipa=baˈba|betydelser=1}}, {{uttal|sq|ipa=ˈbaba|betydelser=2|uttalslänk=-}}
#{{tagg|släktingar|språk=sq}} [[pappa]]
#:{{synonymer|[[babë]], [[atë]]}}
#:{{etymologi|Av {{härledning|sq|ota|بابا|tr=baba}}, liksom turkiska ''[[baba]]''.}}
#{{böjning|sq|subst|babë}}
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
'''baba'''
#{{tagg|kat=släktingar|språk=az}} [[farfar]] eller [[morfar]]; pappa till ens förälder
==Baskiska==
===Substantiv===
{{subst|eu}}
'''baba'''
#{{tagg|kat=mat|kat2=växter|språk=eu}} [[bondböna]]
#{{tagg|kat=mat|kat2=växter|språk=eu}} [[grön böna]], [[haricot vert]]
==Galiciska==
===Substantiv===
{{gl-subst-f}}
'''baba''' {{f}}
*{{uttal|gl|ipa=ˈba.βɐ}}
#[[dregel]]
==Hiligaynon==
===Substantiv===
{{subst|hil}}
'''baba'''
#{{tagg|anatomi|språk=hil}} [[mun]]
==Indonesiska==
===Substantiv===
{{subst|id}}
'''baba'''
#{{tagg|kat=släktingar|språk=id}} [[pappa]], [[far]]
==Kabyliska==
===Substantiv===
{{subst|kab}}
'''baba''' {{m}}
#{{tagg|kat=släktingar|språk=kab}} [[pappa]], [[far]]
==Katalanska==
===Substantiv===
{{ca-subst-f}}
'''baba''' {{f}}
*{{uttal|ca|ipa=ˈba.βə}}
#{{tagg|kat=släktingar|barnspråk|språk=ca}} [[mormor]] eller [[farmor]] (vanligen görs ingen språklig skillnad mellan dessa termer)
#:{{synonymer|[[àvia]]}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''baba'''
#{{tagg|kat=släktingar|språk=crh}} [[pappa]], [[far]]
==Polska==
===Substantiv===
{{subst|pl}}
'''baba''' {{f}}
*{{uttal|pl|ipa=ˈbaba|ljud=LL-Q809 (pol)-Olaf-baba.wav}}
#{{tagg|nedsättande|språk=pl}} gammal [[tant]], [[käring]], [[gumma]]
#:{{besläktade ord|[[babka]]}}
==Portugisiska==
===Substantiv===
{{pt-subst-f-s}}
'''baba''' {{f}}
*{{uttal|pt|ipa=ˈba.bɐ}}
#[[dregel]]
==Rumänska==
===Substantiv===
'''baba'''
#{{böjning|ro|subst|babă}}
==Spanska==
===Substantiv===
{{es-subst-f-s}}
'''baba''' {{f}}
*{{uttal|es|ipa=ˈba.βa}}
#[[dregel]]
==Swahili==
===Substantiv===
{{subst|sw}}
'''baba'''
*{{uttal|sw|region=Kenya|ljud=Sw-ke-baba.flac}}
#{{tagg|kat=släktingar|språk=sw}} [[pappa]], [[far]]
#:{{jämför|[[mama]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''baba'''
#{{tagg|kat=släktingar|språk=tr}} [[pappa]], [[far]]
==Ungerska==
===Substantiv===
{{subst|hu}}
'''baba'''
#[[docka]]
4tra9k5s6v9vlfxflkkegxg4r2sfhk2
4156005
4156004
2026-10-16T00:35:35Z
Frodlekis
762
/* Azerbajdzjanska */
4156005
wikitext
text/x-wiki
==Albanska==
===Substantiv===
{{subst|sq}}
'''baba''' {{m}}
*{{uttal|sq|ipa=baˈba|betydelser=1}}, {{uttal|sq|ipa=ˈbaba|betydelser=2|uttalslänk=-}}
#{{tagg|släktingar|språk=sq}} [[pappa]]
#:{{synonymer|[[babë]], [[atë]]}}
#:{{etymologi|Av {{härledning|sq|ota|بابا|tr=baba}}, liksom turkiska ''[[baba]]''.}}
#{{böjning|sq|subst|babë}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''baba'''
#{{tagg|kat=släktingar|språk=az}} [[farfar]] eller [[morfar]]; pappa till ens förälder
==Baskiska==
===Substantiv===
{{subst|eu}}
'''baba'''
#{{tagg|kat=mat|kat2=växter|språk=eu}} [[bondböna]]
#{{tagg|kat=mat|kat2=växter|språk=eu}} [[grön böna]], [[haricot vert]]
==Galiciska==
===Substantiv===
{{gl-subst-f}}
'''baba''' {{f}}
*{{uttal|gl|ipa=ˈba.βɐ}}
#[[dregel]]
==Hiligaynon==
===Substantiv===
{{subst|hil}}
'''baba'''
#{{tagg|anatomi|språk=hil}} [[mun]]
==Indonesiska==
===Substantiv===
{{subst|id}}
'''baba'''
#{{tagg|kat=släktingar|språk=id}} [[pappa]], [[far]]
==Kabyliska==
===Substantiv===
{{subst|kab}}
'''baba''' {{m}}
#{{tagg|kat=släktingar|språk=kab}} [[pappa]], [[far]]
==Katalanska==
===Substantiv===
{{ca-subst-f}}
'''baba''' {{f}}
*{{uttal|ca|ipa=ˈba.βə}}
#{{tagg|kat=släktingar|barnspråk|språk=ca}} [[mormor]] eller [[farmor]] (vanligen görs ingen språklig skillnad mellan dessa termer)
#:{{synonymer|[[àvia]]}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''baba'''
#{{tagg|kat=släktingar|språk=crh}} [[pappa]], [[far]]
==Polska==
===Substantiv===
{{subst|pl}}
'''baba''' {{f}}
*{{uttal|pl|ipa=ˈbaba|ljud=LL-Q809 (pol)-Olaf-baba.wav}}
#{{tagg|nedsättande|språk=pl}} gammal [[tant]], [[käring]], [[gumma]]
#:{{besläktade ord|[[babka]]}}
==Portugisiska==
===Substantiv===
{{pt-subst-f-s}}
'''baba''' {{f}}
*{{uttal|pt|ipa=ˈba.bɐ}}
#[[dregel]]
==Rumänska==
===Substantiv===
'''baba'''
#{{böjning|ro|subst|babă}}
==Spanska==
===Substantiv===
{{es-subst-f-s}}
'''baba''' {{f}}
*{{uttal|es|ipa=ˈba.βa}}
#[[dregel]]
==Swahili==
===Substantiv===
{{subst|sw}}
'''baba'''
*{{uttal|sw|region=Kenya|ljud=Sw-ke-baba.flac}}
#{{tagg|kat=släktingar|språk=sw}} [[pappa]], [[far]]
#:{{jämför|[[mama]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''baba'''
#{{tagg|kat=släktingar|språk=tr}} [[pappa]], [[far]]
==Ungerska==
===Substantiv===
{{subst|hu}}
'''baba'''
#[[docka]]
66uig4gt5ib5rhb6c4cbf3c29ao3vij
enerji
0
189829
4155781
3707213
2026-10-15T15:34:11Z
Frodlekis
762
/* Turkiska */
4155781
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-v|i}}
'''enerji'''
#[[energi]]
#:{{etymologi|Av {{härledning|tr|fr|énergie}}.}}
9x9nk7kkpmuwl6kgrizmnw49hh3r7bo
abiyogenez
0
213885
4156084
3580768
2026-10-16T08:49:07Z
~2026-55485-04
62322
/* Turkiska */
4156084
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abiyogenez'''
#{{tagg|kat=biologi|språk=tr}} [[abiogenes]]
onlz2g2m0cjea0jy0c1fd63mrk9tnmi
מיקראָפֿאָן
0
215549
4155831
3719177
2026-10-15T20:40:09Z
Frodlekis
762
4155831
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-m-en}}
'''מיקראָפֿאָן''' (mikrofon)
#{{tagg|akustik|elektronik|media|språk=yi}} [[mikrofon]]
n8c8dhwr1tg36a8p1sdkncrvw81oggt
millet
0
215565
4155981
4155678
2026-10-16T00:17:02Z
Frodlekis
762
4155981
wikitext
text/x-wiki
==Engelska==
===Substantiv===
{{subst|en}}
'''millet'''
#{{tagg|växter|mat|språk=en}} [[hirs]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''millet'''
#[[nation]], [[stat]]
#:{{synonymer|[[ulus]]}}
#:{{etymologi|Av {{härledning|tr|ar|مِلَّة|tr=milla}}.}}
#:{{sammansättningar|[[Birleşmiş Milletler]]}}
==Turkmeniska==
===Substantiv===
{{subst|trm}}
'''millet'''
#[[nation]], [[stat]]
#:{{etymologi|Av {{härledning|trm|ar|مِلَّة|tr=milla}}.}}
2ub3jsikn6uh5a929n27bx4yem9bmw9
4155982
4155981
2026-10-16T00:17:18Z
Frodlekis
762
/* Turkmeniska */
4155982
wikitext
text/x-wiki
==Engelska==
===Substantiv===
{{subst|en}}
'''millet'''
#{{tagg|växter|mat|språk=en}} [[hirs]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''millet'''
#[[nation]], [[stat]]
#:{{synonymer|[[ulus]]}}
#:{{etymologi|Av {{härledning|tr|ar|مِلَّة|tr=milla}}.}}
#:{{sammansättningar|[[Birleşmiş Milletler]]}}
==Turkmeniska==
===Substantiv===
{{subst|tk}}
'''millet'''
#[[nation]], [[stat]]
#:{{etymologi|Av {{härledning|trm|ar|مِلَّة|tr=milla}}.}}
elhh4o4ujyqth4klycgonjpuzi58n1t
4155983
4155982
2026-10-16T00:17:32Z
Frodlekis
762
/* Turkmeniska */
4155983
wikitext
text/x-wiki
==Engelska==
===Substantiv===
{{subst|en}}
'''millet'''
#{{tagg|växter|mat|språk=en}} [[hirs]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''millet'''
#[[nation]], [[stat]]
#:{{synonymer|[[ulus]]}}
#:{{etymologi|Av {{härledning|tr|ar|مِلَّة|tr=milla}}.}}
#:{{sammansättningar|[[Birleşmiş Milletler]]}}
==Turkmeniska==
===Substantiv===
{{subst|tk}}
'''millet'''
#[[nation]], [[stat]]
#:{{etymologi|Av {{härledning|tk|ar|مِلَّة|tr=milla}}.}}
j73n00d5pq3d4b412uevtngrjtnsxfr
maden
0
363279
4155928
4155723
2026-10-15T22:58:39Z
Frodlekis
762
/* Turkiska */
4155928
wikitext
text/x-wiki
==Danska==
===Substantiv===
'''maden'''
#{{böjning|da|subst|mad}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''maden'''
#[[brott]]
#:{{synonymer|[[taş ocağı]]}}
i1t6ac8trklg3i02h3r68f1qb2nz9fc
nan
0
393612
4156125
4027432
2026-10-16T09:35:42Z
Frodlekis
762
/* Kurdiska */
4156125
wikitext
text/x-wiki
{{se även|nån|NaN|naan|Nan}}
==Engelska==
===Substantiv===
{{en-subst}}
'''nan'''
#{{tagg|språk=en|brittisk engelska}} ''en kärleksfull benämning på'' [[mormor]] eller [[farmor]]
#:{{varianter|[[nana]], [[nanna]]}}
==Katalanska==
===Adjektiv===
{{ca-adj}}
'''nan'''
#[[dvärgvuxen]]
===Substantiv===
{{ca-subst-m}}
'''nan''' {{m}}
#[[dvärg]], kortväxt person
#{{tagg|språk=ca|folktro}} [[dvärg]]
==Nordkurdiska==
===Substantiv===
{{kmr-subst-m}}
'''nan''' {{m}}
#{{tagg|språk=kmr|mat}} [[bröd]]
jjgelueokqaeggxmpmhnvvsla4d7knk
4156126
4156125
2026-10-16T09:37:02Z
Frodlekis
762
/* Nordkurdiska */
4156126
wikitext
text/x-wiki
{{se även|nån|NaN|naan|Nan}}
==Engelska==
===Substantiv===
{{en-subst}}
'''nan'''
#{{tagg|språk=en|brittisk engelska}} ''en kärleksfull benämning på'' [[mormor]] eller [[farmor]]
#:{{varianter|[[nana]], [[nanna]]}}
==Katalanska==
===Adjektiv===
{{ca-adj}}
'''nan'''
#[[dvärgvuxen]]
===Substantiv===
{{ca-subst-m}}
'''nan''' {{m}}
#[[dvärg]], kortväxt person
#{{tagg|språk=ca|folktro}} [[dvärg]]
==Nordkurdiska==
===Substantiv===
{{kmr-subst-m}}
'''nan''' {{m}}
*{{uttal|kmr|ljud=LL-Q36163 (kmr)-Ebulfîda-nan.wav|ipa=nʌːn}}
#{{tagg|språk=kmr|mat}} [[bröd]]
nam32vpwgbhcgqbx3a678cvjubve96g
4156135
4156126
2026-10-16T10:05:55Z
Frodlekis
762
/* Nordkurdiska */
4156135
wikitext
text/x-wiki
{{se även|nån|NaN|naan|Nan}}
==Engelska==
===Substantiv===
{{en-subst}}
'''nan'''
#{{tagg|språk=en|brittisk engelska}} ''en kärleksfull benämning på'' [[mormor]] eller [[farmor]]
#:{{varianter|[[nana]], [[nanna]]}}
==Katalanska==
===Adjektiv===
{{ca-adj}}
'''nan'''
#[[dvärgvuxen]]
===Substantiv===
{{ca-subst-m}}
'''nan''' {{m}}
#[[dvärg]], kortväxt person
#{{tagg|språk=ca|folktro}} [[dvärg]]
==Nordkurdiska==
===Substantiv===
{{kmr-subst-m|10=nanî, nên}}
'''nan''' {{m}}
*{{uttal|kmr|ljud=LL-Q36163 (kmr)-Ebulfîda-nan.wav|ipa=nʌːn}}
#{{tagg|språk=kmr|mat}} [[bröd]]
p5v44s4tmknxmpgdtqbs17dp0961dxs
bibi
0
403641
4156027
4103801
2026-10-16T00:57:01Z
Frodlekis
762
/* Turkiska */
4156027
wikitext
text/x-wiki
==Engelska==
===Substantiv===
{{en-subst}}
'''bibi'''
#{{tagg|indisk engelska|språk=en|kat=släktingar}} [[farmor]] eller [[mormor]]
#:{{etymologi|Av {{härledning|en|hi|बीबी|tr=bībī}}.<ref>{{källa-wikt|en}}</ref> {{belagt|en|1816}}<ref>{{källa-oed}}</ref>}}
#:{{besläktade ord|[[bibiji]]}}
==Franska==
===Adjektiv===
{{adj|fr}}
'''bibi'''
*{{uttal|fr|ipa=bi.bi}}
#[[bimodal]]
===Pronomen===
{{pron|fr}}
'''bibi'''
*{{uttal|fr|ipa=bi.bi}}
#{{tagg|vardagligt|språk=fr}} [[jag]], [[mig]]
===Substantiv===
{{fr-subst-m}}
{{media|Jaguar Style Stakes - 2014 Dubai World Cup (13506809113).jpg|kvinna iförd '''bibi'''}}
'''bibi''' {{m}}
*{{uttal|fr|ipa=bi.bi}}
#[[liten]] [[damhatt]]
==Swahili==
===Substantiv===
{{subst|sw}}
'''bibi'''
*{{uttal|sw|region=Kenya|ljud=Sw-ke-bibi.flac}}
#[[dam]]
#[[Fru]], ''titel''
#{{tagg|kat=släktingar|språk=sw}} [[farmor]], [[mormor]]
#:{{jämför|babu}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''bibi'''
#{{tagg|kat=släktingar|språk=tr}} [[faster]], pappas syster
#:{{synonymer|[[hala]]}}
#:{{jämför|[[teyze]]}}
==Källor==
<references/>
swwb7w7k5wsws7wzqriqd6hl5sigav2
4156028
4156027
2026-10-16T00:57:37Z
Frodlekis
762
/* Turkiska */
4156028
wikitext
text/x-wiki
==Engelska==
===Substantiv===
{{en-subst}}
'''bibi'''
#{{tagg|indisk engelska|språk=en|kat=släktingar}} [[farmor]] eller [[mormor]]
#:{{etymologi|Av {{härledning|en|hi|बीबी|tr=bībī}}.<ref>{{källa-wikt|en}}</ref> {{belagt|en|1816}}<ref>{{källa-oed}}</ref>}}
#:{{besläktade ord|[[bibiji]]}}
==Franska==
===Adjektiv===
{{adj|fr}}
'''bibi'''
*{{uttal|fr|ipa=bi.bi}}
#[[bimodal]]
===Pronomen===
{{pron|fr}}
'''bibi'''
*{{uttal|fr|ipa=bi.bi}}
#{{tagg|vardagligt|språk=fr}} [[jag]], [[mig]]
===Substantiv===
{{fr-subst-m}}
{{media|Jaguar Style Stakes - 2014 Dubai World Cup (13506809113).jpg|kvinna iförd '''bibi'''}}
'''bibi''' {{m}}
*{{uttal|fr|ipa=bi.bi}}
#[[liten]] [[damhatt]]
==Swahili==
===Substantiv===
{{subst|sw}}
'''bibi'''
*{{uttal|sw|region=Kenya|ljud=Sw-ke-bibi.flac}}
#[[dam]]
#[[Fru]], ''titel''
#{{tagg|kat=släktingar|språk=sw}} [[farmor]], [[mormor]]
#:{{jämför|babu}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''bibi'''
#{{tagg|kat=släktingar|vardagligt|språk=tr}} [[faster]], pappas syster
#:{{synonymer|[[hala]]}}
#:{{jämför|[[teyze]]}}
==Källor==
<references/>
aow7tlqzjlz0sucvqxn7a1t8w508gk2
teyze
0
403642
4156029
3580799
2026-10-16T00:57:50Z
Frodlekis
762
4156029
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''teyze'''
#{{tagg|kat=släktingar|språk=tr}} [[moster]], mammas syster
#:{{jämför|[[hala]], [[bibi]]}}
1lfcq3om7f3qzhp2gtm9eoqjasf1se5
dragoman
0
409465
4155999
4008273
2026-10-16T00:31:21Z
Frodlekis
762
+he: [[תֻּרְגְּמָן]] (assisterat)
4155999
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-er}}
'''dragoman'''
#{{tagg|historiskt}} [[österländsk]] [[tolk]], tolk från vanligen arabiska eller turkiska
#:{{etymologi|Av {{härledning|sv|ar|تُرْجُمَان|tr=tarjumān|tolk, översättare}}.}}
====Översättningar====
{{ö-topp|österländsk tolk, tolk från vanligen arabiska eller turkiska}}
*franska: {{ö+|fr|drogman|m}}
*hebreiska: {{ö+|he|תֻּרְגְּמָן|m|tr=turg'mán}}
*katalanska: {{ö|ca|drogman|m}}
{{ö-botten}}
==Engelska==
===Substantiv===
{{en-subst}}
'''dragoman'''
#{{tagg|historiskt|språk=en}} [[#Svenska|dragoman]]
#:{{etymologi|Av {{härledning|en|ar|تُرْجُمَان|tr=tarjumān|tolk, översättare}}.}}
==Rumänska==
===Substantiv===
{{subst|ro}}
'''dragoman''' {{m}}
#{{tagg|historiskt|språk=ro}} [[#Svenska|dragoman]]
#:{{etymologi|Av {{härledning|ro|ar|تُرْجُمَان|tr=tarjumān|tolk, översättare}}.}}
==Tjeckiska==
===Substantiv===
{{subst|cs}}
'''dragoman''' {{m}}
#{{tagg|historiskt|språk=cs}} [[#Svenska|dragoman]]
#:{{etymologi|Av {{härledning|cs|ar|تُرْجُمَان|tr=tarjumān|tolk, översättare}}.}}
e6nmp7prwyyeluhdm1ortdp3a4ym1m0
4156000
4155999
2026-10-16T00:32:29Z
Frodlekis
762
4156000
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{sv-subst-n-er}}
{{media|The Persian Envoy Mirza Mohammed Reza Qazvini Finkenstein Castle 27 Avril 1807 by Francois Mulard detail.jpg|en '''dragoman'''}}
'''dragoman'''
#{{tagg|historiskt}} [[österländsk]] [[tolk]], tolk från vanligen arabiska eller turkiska
#:{{etymologi|Av {{härledning|sv|ar|تُرْجُمَان|tr=tarjumān|tolk, översättare}}.}}
====Översättningar====
{{ö-topp|österländsk tolk, tolk från vanligen arabiska eller turkiska}}
*franska: {{ö+|fr|drogman|m}}
*hebreiska: {{ö+|he|תֻּרְגְּמָן|m|tr=turg'mán}}
*katalanska: {{ö|ca|drogman|m}}
{{ö-botten}}
==Engelska==
===Substantiv===
{{en-subst}}
'''dragoman'''
#{{tagg|historiskt|språk=en}} [[#Svenska|dragoman]]
#:{{etymologi|Av {{härledning|en|ar|تُرْجُمَان|tr=tarjumān|tolk, översättare}}.}}
==Rumänska==
===Substantiv===
{{subst|ro}}
'''dragoman''' {{m}}
#{{tagg|historiskt|språk=ro}} [[#Svenska|dragoman]]
#:{{etymologi|Av {{härledning|ro|ar|تُرْجُمَان|tr=tarjumān|tolk, översättare}}.}}
==Tjeckiska==
===Substantiv===
{{subst|cs}}
'''dragoman''' {{m}}
#{{tagg|historiskt|språk=cs}} [[#Svenska|dragoman]]
#:{{etymologi|Av {{härledning|cs|ar|تُرْجُمَان|tr=tarjumān|tolk, översättare}}.}}
7ha4tr6asjruxgcw8v8bk58b4bitvep
hormon
0
414299
4155788
4131688
2026-10-15T15:52:20Z
Frodlekis
762
/* Indonesiska */
4155788
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-t-er}}
'''hormon'''
#{{tagg|medicin|fysiologi}} kemiskt ämne som bildas av vissa [[cell]]er i kroppen (ofta i en [[endokrin]] [[körtel]]) och sedan transporteras genom hela kroppen med blodet och orsakar biologiskt svar på [[målcell]]er med [[receptor]]er för ämnet
#:{{sammansättningar|[[hormonproduktion]], [[hormonrubbning]], [[hormonstyrd]], [[hormonstörande]]}}
#:{{besläktade ord|[[hormonell]]}}
#:{{seäven|:Kategori:Svenska/Hormoner}}
#{{tagg|vardagligt}} [[könshormon]]
#:{{sammansättningar|[[hormonstinn]]}}
#{{tagg|vardagligt}} [[testosteron]]
#:{{sammansättningar|[[hormonstinn]]}}
:{{avgränsare}}
:{{användning|Vardaglig användning av ordet "hormon" för att avse bara könshormoner, oftast testosteron, i fraser som "mycket hormoner" eller "inga hormoner", beror på bristande kunskap kring hormoner och den stora vikten som tillskrivs könshormonerna, främst testosteron, jämfört med övriga hormoner.}}
====Översättningar====
{{ö-topp|ämne som bildas av celler i kroppen}}
*alemanniska: {{ö|als|Hormon}}
*engelska: {{ö+|en|hormone}}
*finska: {{ö+|fi|hormoni}}
*franska: {{ö+|fr|hormone|f}}
*indonesiska: {{ö+|id|hormon}}
*isländska: {{ö|is|hormón|n}}, {{ö|is|vaki|m}}
*japanska: {{ö|ja|ホルモン|tr=horumon}}
*ryska: {{ö+|ru|гормон|m}}
*turkiska: {{ö+|tr|hormon}}
*tyska: {{ö+|de|Hormon|n}}
*vietnamesiska: {{ö|vi|hoóc môn}}
{{ö-botten}}
==Indonesiska==
===Substantiv===
{{subst|id}}
'''hormon'''
#{{tagg|medicin|fysiologi|språk=id}} [[#Svenska|hormon]]
#:{{fraser|[[hormon seks]]}}
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''hormon''' {{f}}
#{{tagg|medicin|fysiologi|språk=kmr}} [[#Svenska|hormon]]
3b3pzviuiw6jjh2nibyb5d2jfvrd2mf
ლიმონი
0
437892
4156194
3534308
2026-10-16T11:37:16Z
Frodlekis
762
/* Georgiska */
4156194
wikitext
text/x-wiki
==Georgiska==
===Substantiv===
{{subst|ka}}
'''ლიმონი''' ({{tr|ka|ლიმონი}})
#{{tagg|kat=frukter|språk=ka}} [[citron]]
iexswxxn813u6xnqninz8bba96ni3vq
politika
0
442970
4156161
3820381
2026-10-16T10:53:09Z
Frodlekis
762
4156161
wikitext
text/x-wiki
==Bosniska==
===Substantiv===
{{bs-subst-f-a|rot=politik|datsing=politici|loksing=politici}}
'''politika''' {{f}}
*{{uttal|bs|ipa=polǐtika}}
#[[politik]]
#:{{besläktade ord|[[političar]], [[politički]]}}
==Esperanto==
===Adjektiv===
{{eo-adj|adv=}}
'''politika'''
#[[politisk]]
#:{{besläktade ord|[[politiko]], [[politikisto]]}}
#:{{fraser|politika sistemo, politika partio, politika povo}}
#:''La forbaritoj intecas fondi novan '''politikan''' partion.''
#::''De uteslutade planerar grunda ett nytt '''politiskt''' parti.''
==Turkiska==
===Substantiv===
{{tr-subst}}
'''politika'''
#[[politik]]
l9ys2yh5y4wlqjx8esukq236fhoxnjp
4156162
4156161
2026-10-16T10:53:23Z
Frodlekis
762
4156162
wikitext
text/x-wiki
==Bosniska==
===Substantiv===
{{bs-subst-f-a|rot=politik|datsing=politici|loksing=politici}}
'''politika''' {{f}}
*{{uttal|bs|ipa=polǐtika}}
#[[politik]]
#:{{besläktade ord|[[političar]], [[politički]]}}
==Esperanto==
===Adjektiv===
{{eo-adj|adv=}}
'''politika'''
#[[politisk]]
#:{{besläktade ord|[[politiko]], [[politikisto]]}}
#:{{fraser|politika sistemo, politika partio, politika povo}}
#:''La forbaritoj intecas fondi novan '''politikan''' partion.''
#::''De uteslutade planerar grunda ett nytt '''politiskt''' parti.''
==Turkiska==
===Substantiv===
{{tr-subst}}
'''politika'''
#[[politik]]
#:{{synonymer|[[siyaset]]}}
bl4vhxgdvfuh6kmpv499kvxdbfuj5ia
טאָג
0
474936
4155851
4154485
2026-10-15T20:57:41Z
Frodlekis
762
4155851
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-m-oreg|2=טעג}}
'''טאָג''' (tog) {{m}}
#{{tagg|kat=tidsuttryck|språk=yi}} [[dag]]
#:{{synonymer|{{länk|yi|יום}} (''yom'')}}
#:{{antonymer|{{länk|yi|נאַכט}} (''nakht'')}}
#:{{besläktade ord|{{länk|yi|בײַטאָג}} (''baytog'')}}
ogr009kzulys0n7l0fqfwxnwrgeuwzh
orman
0
477182
4155910
3822714
2026-10-15T22:25:02Z
Frodlekis
762
4155910
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''orman'''
#{{tagg|poetiskt|språk=az}} [[skog]]
#:{{synonymer|[[meşə]]}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''orman'''
#[[skog]]
nqrkimdhyqkfrugukz3bb68ynxdgsse
4155913
4155910
2026-10-15T22:34:00Z
Frodlekis
762
/* Krimtatariska */
4155913
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''orman'''
#{{tagg|poetiskt|språk=az}} [[skog]]
#:{{synonymer|[[meşə]]}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''orman'''
#[[skog]]
==Turkiska==
===Substantiv===
{{tr-subst-k|a}}
'''orman'''
#[[skog]]
hfpytw7mjsq7hwu277rz7r66dmxjxok
זופּ
0
478650
4156145
4021492
2026-10-16T10:32:44Z
Frodlekis
762
/* Jiddisch */
4156145
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-n}}
'''זופּ''' (zup) {{f}}
#{{tagg|kat=mat|språk=yi}} [[soppa]]
#:{{synonymer|{{länk|yi|יויך, יושקע}}}}
dgao876beu1k45kyef4neucerw1wb5n
dayik
0
498096
4156055
3813344
2026-10-16T01:18:58Z
Frodlekis
762
/* Kurdiska */
4156055
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''dayik''' {{f}}
*{{uttal|kmr|ipa=dɑːˈjɪk}}
#{{tagg|kat=släktingar|språk=kmr}} [[mamma]], [[mor]]
#:{{varianter|[[dayk]], [[dayîk]], [[deyik]], [[daja]]}}
hsgqznkl4ozg8078x2p8gzpm1qic348
grindsamhälle
0
498229
4155770
4136876
2026-10-15T13:43:42Z
R. Henrik Nilsson
44622
dyligt > dylikt
4155770
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{sv-subst-t-n}}
'''grindsamhälle'''
#bostadsområde eller stadsdel som omgärdas av staket, mur eller dylikt i avsikt att hålla obehöriga utanför
#:''Kritikerna hävdade att '''grindsamhällen''' bidrar till att göra staden till en tråkigare plats att röra sig på.''
#:{{etymologi|[[översättningslån]] från amerikansk engelska: [[gated community]]}}
====Översättningar====
{{ö-topp|bostadsområde eller stadsdel som omgärdas av staket, mur eller dylikt i avsikt att hålla obehöriga utanför}}
*bokmål: {{ö|no|inngjerdet boligområde}}
*engelska: {{ö+|en|gated community}}, {{ö+|en|walled community}}
*kinesiska: {{ö|zh|門禁社區}}
*portugisiska: {{ö|pt|condomínio fechado}}
*spanska: {{ö|es|urbanización cerrada|f}}, {{ö|es|barrio privado|m}}, {{ö|es|barrio cerrado|m}}, {{ö|es|urbanización privada|f}}
{{ö-botten}}
2hbedw7rnacoh868uqj7w98h7p33x4r
xwarin
0
504487
4156114
3801210
2026-10-16T09:32:20Z
Frodlekis
762
4156114
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-verb-f}}
'''xwarin''' {{f}}
# [[ätande]], det att äta
# [[mat]]
===Verb===
{{verb|ku}}
'''xwarin'''
*{{uttal|ku|ipa=xwɑ.'rɯn}}
#[[äta]]
5jqtnk45x82m8r47w1jltn7tvfd7buj
4156115
4156114
2026-10-16T09:32:36Z
Frodlekis
762
/* Nordkurdiska */
4156115
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''xwarin''' {{f}}
# [[ätande]], det att äta
# [[mat]]
===Verb===
{{verb|kmr}}
'''xwarin'''
*{{uttal|kmr|ipa=xwɑ.'rɯn}}
#[[äta]]
91mn0aawfqzs3r3g5txvjvrjv8633hu
hejîr
0
505670
4156094
3564210
2026-10-16T09:07:53Z
~2026-55485-04
62322
/* Kurdiska */
4156094
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''hejîr''' {{f}}
#{{tagg|kat=växter|språk=kmr}} [[fikus]]
#{{tagg|kat=frukter|språk=kmr}} [[fikon]]
pr9nevkytlndc8qi04vrc5zhsybuyth
baş
0
508369
4155920
4155628
2026-10-15T22:48:51Z
Frodlekis
762
4155920
wikitext
text/x-wiki
{{se även|bas|bås|bás}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''baş'''
#{{tagg|anatomi|språk=az}} [[huvud]]
==Kurdiska==
===Adjektiv===
{{adj|ku}}
'''baş''' (''komparativ [[baştir]], superlativ [[baştirîn]]'')
#[[bra]]
#:{{besläktade ord|[[başî]]}}
==Turkiska==
===Substantiv===
{{tr-subst-k|a}}
'''baş''' 1
#{{tagg|kat=anatomi|språk=tr}} [[huvud]]
#[[ledare]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|tr|otk|baş}}, av {{härledning|tr|trk-utr|*baĺč|huvud}}.}}
'''baş''' 2
#{{tagg|dialektalt|språk=tr}} [[sår]]
#:{{etymologi|Av {{härledning|tr|trk-utr|*biāĺč|sår}}.}}
8ya503odr9zdi4berguchez4vm74599
4155924
4155920
2026-10-15T22:55:49Z
Frodlekis
762
/* Turkiska */
4155924
wikitext
text/x-wiki
{{se även|bas|bås|bás}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''baş'''
#{{tagg|anatomi|språk=az}} [[huvud]]
==Kurdiska==
===Adjektiv===
{{adj|ku}}
'''baş''' (''komparativ [[baştir]], superlativ [[baştirîn]]'')
#[[bra]]
#:{{besläktade ord|[[başî]]}}
==Turkiska==
===Substantiv===
{{tr-subst-k}}
'''baş''' 1
#{{tagg|kat=anatomi|språk=tr}} [[huvud]]
#[[ledare]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|tr|otk|baş}}, av {{härledning|tr|trk-utr|*baĺč|huvud}}.}}
'''baş''' 2
#{{tagg|dialektalt|språk=tr}} [[sår]]
#:{{etymologi|Av {{härledning|tr|trk-utr|*biāĺč|sår}}.}}
c2vftnzd6hs2ca67z8h3r3jqdgo3tyl
4155929
4155924
2026-10-15T23:02:10Z
Frodlekis
762
/* Turkiska */
4155929
wikitext
text/x-wiki
{{se även|bas|bås|bás}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''baş'''
#{{tagg|anatomi|språk=az}} [[huvud]]
==Kurdiska==
===Adjektiv===
{{adj|ku}}
'''baş''' (''komparativ [[baştir]], superlativ [[baştirîn]]'')
#[[bra]]
#:{{besläktade ord|[[başî]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''baş''' 1
#{{tagg|kat=anatomi|språk=tr}} [[huvud]]
#[[ledare]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|tr|otk|baş}}, av {{härledning|tr|trk-utr|*baĺč|huvud}}.}}
'''baş''' 2
#{{tagg|dialektalt|språk=tr}} [[sår]]
#:{{etymologi|Av {{härledning|tr|trk-utr|*biāĺč|sår}}.}}
j8lxo0ogqvlorfh2dwa4lk7997wcw9w
4155930
4155929
2026-10-15T23:04:17Z
Frodlekis
762
/* Turkiska */
4155930
wikitext
text/x-wiki
{{se även|bas|bås|bás}}
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''baş'''
#{{tagg|anatomi|språk=az}} [[huvud]]
==Kurdiska==
===Adjektiv===
{{adj|ku}}
'''baş''' (''komparativ [[baştir]], superlativ [[baştirîn]]'')
#[[bra]]
#:{{besläktade ord|[[başî]]}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''baş'''
#{{tagg|kat=anatomi|språk=crh}} [[huvud]]
#[[ledare]]
==Tatariska==
===Substantiv===
{{subst|tt}}
'''baş'''
#{{tagg|kat=anatomi|språk=tt}} [[huvud]]
#[[ledare]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''baş''' 1
#{{tagg|kat=anatomi|språk=tr}} [[huvud]]
#[[ledare]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|tr|otk|baş}}, av {{härledning|tr|trk-utr|*baĺč|huvud}}.}}
'''baş''' 2
#{{tagg|dialektalt|språk=tr}} [[sår]]
#:{{etymologi|Av {{härledning|tr|trk-utr|*biāĺč|sår}}.}}
6rmjxcz7c16hax287ef913zmz6edq44
sêv
0
508834
4155783
3545071
2026-10-15T15:46:06Z
Frodlekis
762
/* Kurdiska */
4155783
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''sêv''' {{f}}
#{{tagg|kat=frukter|språk=ku}} [[äpple]]
3l673n8t4q5cu0rslldujnhzqrvedod
4155784
4155783
2026-10-15T15:46:33Z
Frodlekis
762
4155784
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''sêv''' {{f}}
#{{tagg|kat=frukter|språk=kmr}} [[äpple]]
4m8g0dmxug8o7blrqk5n8v6778zn2ht
4155785
4155784
2026-10-15T15:47:34Z
Frodlekis
762
4155785
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''sêv''' {{f}}
#{{tagg|kat=frukter|språk=kmr}} [[äpple]]
#:{{etymologi|Kognat med {{kognat|ckb|سێو}} (''sêw'').}}
8fugdsjqthq35r8nrtrqeu63q15sgh7
gog
0
525289
4156075
3547840
2026-10-16T08:32:43Z
Frodlekis
762
/* Kurdiska */
4156075
wikitext
text/x-wiki
==Kurdiska==
===Substantiv===
{{kmr-subst-f}}
'''gog''' {{f}}
#{{tagg|kat=palindrom|språk=ku}} [[boll]]
#:{{varianter|[[gok]], [[go]]}}
tgf9en67b9zlftzcqeqtuwjelmx1iwj
bahîv
0
525755
4156090
3549746
2026-10-16T09:01:12Z
~2026-55485-04
62322
/* Kurdiska */
4156090
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''bahîv''' {{f}}
#{{tagg|kat=träd|kat2=mat|språk=kmr}} [[mandel]]
#:{{varianter|[[behîv]], [[behîvok]]}}
okql3z4dki999dhmnilxxpgvs54h3nx
badem
0
525756
4155793
3572475
2026-10-15T19:39:26Z
Frodlekis
762
/* Turkiska */
4155793
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-k|e}}
'''badem'''
#{{tagg|kat=mat|kat2=träd|språk=tr}} [[mandel]]
fw4ottw93750bpy3n67kvwqld68gg57
gûz
0
525788
4156088
3589571
2026-10-16T08:59:20Z
~2026-55485-04
62322
/* Kurdiska */
4156088
wikitext
text/x-wiki
==Kurdiska==
===Substantiv===
{{ku-subst-f}}
'''gûz''' {{f}}
#{{tagg|kat=mat|språk=ku}} [[valnöt]]
#:{{varianter|[[goz]], [[gwîz]]}}
gsqwwo3y7s5oojtzlqtbr9hvi9p1hna
4156089
4156088
2026-10-16T08:59:52Z
~2026-55485-04
62322
/* Kurdiska */
4156089
wikitext
text/x-wiki
==Kurdiska==
===Substantiv===
{{kmr-subst-f}}
'''gûz''' {{f}}
#{{tagg|kat=mat|språk=kmr}} [[valnöt]]
#:{{varianter|[[goz]], [[gwîz]]}}
34x1no9ilz2oz203xppa8u6xp5dcvg6
4156091
4156089
2026-10-16T09:02:51Z
~2026-55485-04
62322
/* Kurdiska */
4156091
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''gûz''' {{f}}
#{{tagg|kat=mat|språk=kmr}} [[valnöt]]
#:{{varianter|[[goz]], [[gwîz]]}}
fg1ljby2xxxmzo6u7mb2l3g9ywpac8d
zeytûn
0
525801
4156110
3566898
2026-10-16T09:28:17Z
Frodlekis
762
/* Kurdiska */
4156110
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''zeytûn''' {{f}}
#{{tagg|kat=frukter|språk=kmr}} [[oliv]]
#{{tagg|kat=träd|språk=kmr}} [[olivträd]]
#:{{synonymer|[[darzeytûn]]}}
5yqqurmhh8hznldfe8kli3s8lzd65xs
4156111
4156110
2026-10-16T09:29:28Z
Frodlekis
762
/* Nordkurdiska */
4156111
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''zeytûn''' {{f}}
#{{tagg|kat=frukter|språk=kmr}} [[oliv]]
#{{tagg|kat=träd|språk=kmr}} [[olivträd]]
#:{{synonymer|[[darzeytûn]]}}
:{{avgränsare}}
#:{{etymologi|Inlånat från {{härledning|kmr|ar|زَيْتُون|tr=zaytūn}}. Kognat med bl.a. {{kognat|es|aceituna}}.}}
e7qiyj14dmxtopsj6okzlvb5nxrti8c
4156112
4156111
2026-10-16T09:29:35Z
Frodlekis
762
/* Nordkurdiska */
4156112
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''zeytûn''' {{f}}
#{{tagg|kat=frukter|språk=kmr}} [[oliv]]
#{{tagg|kat=träd|språk=kmr}} [[olivträd]]
#:{{synonymer|[[darzeytûn]]}}
:{{avgränsare}}
:{{etymologi|Inlånat från {{härledning|kmr|ar|زَيْتُون|tr=zaytūn}}. Kognat med bl.a. {{kognat|es|aceituna}}.}}
s6eyu3b12flju1mo95fl168cvbrp7a5
darzeytûn
0
525802
4156113
3544694
2026-10-16T09:30:39Z
Frodlekis
762
/* Kurdiska */
4156113
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''darzeytûn''' {{f}}
#{{tagg|kat=träd|språk=kmr}} [[olivträd]]
#:{{synonymer|[[zeytûn]]}}
34qr4utk298gimavny3vrz8hkesdx3s
penîr
0
525820
4156097
3584914
2026-10-16T09:10:06Z
~2026-55485-04
62322
/* Kurdiska */
4156097
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-m}}
'''penîr''' {{m}}
#{{tagg|kat=mat|språk=kmr}} [[ost]]
#:{{varianter|[[panîr]]}}
3mc0upmyh3j591tnccgkkt0eu7p4tgu
მა
0
535831
4156192
2871179
2026-10-16T11:34:01Z
Frodlekis
762
/* Laziska */
4156192
wikitext
text/x-wiki
==Laziska==
===Pronomen===
{{pron|lzz}}
'''მა''' ({{tr|lzz|მა}})
#[[jag]]
cw4buy15fnt1hbbpkjhzgtqlofsfuve
ვა
0
535832
4156191
2871170
2026-10-16T11:33:17Z
Frodlekis
762
/* Laziska */
4156191
wikitext
text/x-wiki
==Laziska==
===Interjektion===
{{interj|lzz}}
'''ვა''' ({{tr|lzz|ვა}})
#[[ja]]
o3siujlknrfjypjmeln0i95dx51cwbu
სუპარა
0
535833
4156190
2871204
2026-10-16T11:32:42Z
Frodlekis
762
/* Laziska */
4156190
wikitext
text/x-wiki
==Laziska==
===Substantiv===
{{subst|lzz}}
'''სუპარა''' ({{tr|lzz|სუპარა}})
#[[bok]]
i4avnzf1yu8ruprrimust7rqqegpiry
დიდა
0
589985
4156188
3561171
2026-10-16T11:30:40Z
Frodlekis
762
/* Laziska */
4156188
wikitext
text/x-wiki
==Laziska==
===Substantiv===
{{subst|lzz}}
'''დიდა''' (({{tr|lzz|დიდა}})
#{{tagg|kat=släktingar|språk=lzz}} [[mamma]]
r8550gdncl0ni7ljkhlbcs75z1q2lqz
4156189
4156188
2026-10-16T11:32:26Z
Frodlekis
762
/* Laziska */
4156189
wikitext
text/x-wiki
==Laziska==
===Substantiv===
{{subst|lzz}}
'''დიდა''' ({{tr|lzz|დიდა}})
#{{tagg|kat=släktingar|språk=lzz}} [[mamma]]
dws680llqlpz4envapmf5dewb4e8wqo
bav
0
590007
4156059
3567067
2026-10-16T01:21:02Z
Frodlekis
762
/* Kurdiska */
4156059
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-m}}
'''bav''' {{m}}
#{{tagg|kat=släktingar|språk=kmr}} [[pappa]]
2plqxhh9t96w2fubf0f96q5hfyov6l1
dayı
0
592427
4156044
3564054
2026-10-16T01:10:20Z
Frodlekis
762
/* Turkiska */
4156044
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''dayı'''
#{{tagg|kat=släktingar|språk=tr}} [[morbror]]
t2kn5822z9xzyscc4o6pl41baggfp6l
4156045
4156044
2026-10-16T01:12:02Z
Frodlekis
762
/* Turkiska */
4156045
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
{{az-skrift|дајы|دایی}}
'''dayı'''
#{{tagg|kat=släktingar|språk=tr}} [[morbror]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''dayı'''
#{{tagg|kat=släktingar|språk=tr}} [[morbror]]
r1g5oejk6ic3mxz8gmfjx0mw62zmgye
4156046
4156045
2026-10-16T01:12:16Z
Frodlekis
762
4156046
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
{{az-skrift|дајы|دایی}}
'''dayı'''
#{{tagg|kat=släktingar|språk=az}} [[morbror]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''dayı'''
#{{tagg|kat=släktingar|språk=tr}} [[morbror]]
8bngccdn3gpayp7swxsx7acx1t2ngzs
kuzen
0
592434
4156047
3581833
2026-10-16T01:12:38Z
Frodlekis
762
4156047
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''kuzen'''
#{{tagg|kat=släktingar|språk=tr}} [[kusin]]
46o3zi3yvajjolib4tdi4op3qnb0t14
babo
0
651654
4156058
3549338
2026-10-16T01:20:11Z
Frodlekis
762
4156058
wikitext
text/x-wiki
==Albanska==
===Substantiv===
{{subst|sq}}
'''babo'''
#{{tagg|ålderdomligt|språk=sq}} [[barnmorska]]
==Nordkurdiska==
===Substantiv===
'''babo'''
#{{böjning|kmr|subst|bab}}
ccbx2qy9bbu9ibo01wsl8e74xjat8rr
Abazaca
0
655531
4156080
3544895
2026-10-16T08:42:12Z
~2026-55485-04
62322
/* Turkiska */
4156080
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-oräkn}}
'''Abazaca'''
#{{tagg|språk|språk=tr}} [[abazinska]]
cl0ejk8s93qjo8yzxwc8zyyb91k89zh
abdest
0
657775
4156081
3631474
2026-10-16T08:43:20Z
~2026-55485-04
62322
/* Turkiska */
4156081
wikitext
text/x-wiki
==Albanska==
===Substantiv===
{{subst|sq}}
'''abdest'''
#''variant av'' [[avdes]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abdest'''
#[[tvagning]], [[handtvagning]], rituell tvättning
hbolw1wd552wmo4gpl9gg35agmekecj
4156082
4156081
2026-10-16T08:46:58Z
~2026-55485-04
62322
/* Turkiska */
4156082
wikitext
text/x-wiki
==Albanska==
===Substantiv===
{{subst|sq}}
'''abdest'''
#''variant av'' [[avdes]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abdest'''
#[[tvagning]], [[handtvagning]], rituell tvättning
#:{{etymologi|Av {{härledning|tr|ota|آبدست|tr=abdest}}, av {{härledning|tr|fa|آبدست|tr=âbdest}}.}}
41qzh49phckib41g9p3jch4kqju25fe
baldız
0
662291
4156003
3732739
2026-10-16T00:34:18Z
Frodlekis
762
/* Turkiska */
4156003
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''baldız'''
#{{tagg|kat=släktingar|språk=tr}} [[svägerska]]
gl70nohogoso1cnlu6z7fu45ulpj6x9
Player
0
680770
4155771
3852860
2026-10-15T13:44:19Z
R. Henrik Nilsson
44622
dyligt > dylikt
4155771
wikitext
text/x-wiki
==Tyska==
===Substantiv===
{{de-subst-m}}
'''Player''' {{m}}
#{{tagg|anglicism|text=mest i sammansättningar|språk=de}} tekniskt apparat som kan spela skivor, cd:skivor eller dylikt; [[spelare]]
#:{{synonymer|[[Spieler]]}}
#:{{sammansättningar|[[Teamplayer]]}}
ksl5wjg8va20txq3fklzp2ujbzasx9f
4155772
4155771
2026-10-15T13:44:32Z
R. Henrik Nilsson
44622
: > -
4155772
wikitext
text/x-wiki
==Tyska==
===Substantiv===
{{de-subst-m}}
'''Player''' {{m}}
#{{tagg|anglicism|text=mest i sammansättningar|språk=de}} tekniskt apparat som kan spela skivor, cd-skivor eller dylikt; [[spelare]]
#:{{synonymer|[[Spieler]]}}
#:{{sammansättningar|[[Teamplayer]]}}
qegz1z6ku7wmqlumjjvoavih28aplhp
piramit
0
685482
4155986
3089876
2026-10-16T00:18:57Z
Frodlekis
762
/* Turkiska */
4155986
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''piramit'''
#{{tagg|kat=geometri|språk=tr}} [[pyramid]]
bbl5vifpf2xi372kelmmp54dlh87z1c
4155987
4155986
2026-10-16T00:20:40Z
Frodlekis
762
/* Turkiska */
4155987
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst|rot=piramid}}
'''piramit'''
#{{tagg|kat=geometri|språk=tr}} [[pyramid]]
9bqhn5pjjssx2ty9l2pzt8fearonu7l
algorîtma
0
686707
4156171
3093937
2026-10-16T11:07:42Z
Frodlekis
762
/* Kurdiska */
4156171
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''algorîtma'''
#[[algoritm]]
#:{{varianter|[[algorîtm]]
r5ngfu8zz0fd46eznmz1tgc3ep9elsn
4156172
4156171
2026-10-16T11:07:59Z
Frodlekis
762
/* Nordkurdiska */
4156172
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''algorîtma'''
#[[algoritm]]
#:{{varianter|[[algorîtm]]}}
fwagiipjpv6gglo9zl6bkzf1shijmo9
4156173
4156172
2026-10-16T11:08:17Z
Frodlekis
762
4156173
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''algorîtma'''
#{{tagg|matematik|språk=kmr}} [[algoritm]]
#:{{varianter|[[algorîtm]]}}
r1gx7eao18zioyjndravcaw62vsvh1r
tay
0
708083
4155933
4155642
2026-10-15T23:08:22Z
Frodlekis
762
/* Turkiska */
4155933
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''tay'''
#{{tagg|däggdjur|djurfamiljen|språk=tr}} [[föl]]
#:{{hyperonymer|[[at]]}}
jrrq2widlyjdeth7azvx26u734aih1c
aba
0
731544
4156076
3785247
2026-10-16T08:37:21Z
~2026-55485-04
62322
/* Turkiska */
4156076
wikitext
text/x-wiki
==Svenska==
===Substantiv===
{{subst|sv}}
'''aba'''
#ytterplagg av naturfärgad fårull eller kamelhår, eventuellt av svart silke; med eller utan ärmar är det ett vanligt plagg i den arabiska världen
====Översättningar====
{{ö-topp|ytterplagg av naturfärgad fårull eller kamelhår, eventuellt av svart silke}}
*franska: {{ö+|fr|aba|m}}
*slovakiska: {{ö+|sk|aba|f}}
*tjeckiska: {{ö|cs|aba|f}}
*turkiska: {{ö+|tr|aba}}
*tyska: {{ö+|de|Aba|f}}
{{ö-botten}}
==Franska==
===Substantiv===
{{subst|fr}}
'''aba'''
#[[#Svenska|aba]]; ytterplagg av naturfärgad fårull eller kamelhår, eventuellt av svart silke; med eller utan ärmar är det ett vanligt plagg i den arabiska världen
==Turkiska==
===Substantiv===
{{tr-subst}}
'''aba'''
#{{tagg|kläder|språk=tr}} [[cape]], [[kappa]], [[#Svenska|aba]], (arabiskt) [[ytterplagg]]
2brjqpjkryuxzxw8b0e6nlmdd4o7p4x
tercüman
0
761119
4155998
4008271
2026-10-16T00:29:08Z
Frodlekis
762
4155998
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''tercüman'''
#{{tagg|kat=yrken|språk=tr}} [[tolk]]
#:{{etymologi|Av {{härledning|tr|ar|تُرْجُمَان|tr=turjumān}}. Dublett till ''[[dragoman#Turkiska|dragoman]]''.}}
5966b7da0ht0a3rlewpjg7mzjknfmli
nene
0
768161
4156002
3801795
2026-10-16T00:33:44Z
Frodlekis
762
/* Turkiska */
4156002
wikitext
text/x-wiki
{{se även|nënë}}
==Engelska==
===Substantiv===
{{en-subst}}
'''nene'''
#{{tagg|kat=fåglar|kat2=fågelarter|språk=en}} [[Hawaiigås]]
#:{{synonymer|[[Hawaiian goose]]}}
==Spanska==
===Substantiv===
{{es-subst-var|3=nena}}
'''nene'''
#liten [[pojke]], [[småpojke]]; litet [[barn]]
#:{{jämför|[[niño]]}}
#{{tagg|vardagligt|smeksamt|språk=es}} (ömsint benämning på man) [[raring]], [[sötnos]], [[ponken]]
:{{avgränsare}}
:{{etymologi|Av barnspråk,<ref>{{källa-dle|nene}}</ref> antagligen från ''[[niño]]''.}}
:{{besläktade ord|[[nena]]}}
:{{fraser|[[nene de mamá]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''nene'''
#{{tagg|kat=släktingar|vardagligt|språk=tr}} [[farmor]]/[[mormor]]
#:{{varianter|[[nine]]}}
==Källor==
<references/>
n2di5an004atvk7jd80ipaenlvsjaqm
abur cubur
0
770202
4156087
3292150
2026-10-16T08:51:52Z
~2026-55485-04
62322
/* Turkiska */
4156087
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''[[abur]] [[cubur]]'''
#{{tagg|kat=mat|språk=tr}} [[skräpmat]]
3o2lht6kvfczuz0dp6po012i9bw94y5
dələduz
0
778306
4156054
3306145
2026-10-16T01:18:00Z
Frodlekis
762
/* Azerbajdzjanska */
4156054
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''dələduz'''
#[[bedragare]]
rnmofp0oz7bp2qjdp42426eie5tdkl0
bala
0
801363
4156011
4080637
2026-10-16T00:39:55Z
Frodlekis
762
/* Azerbajdzjanska */
4156011
wikitext
text/x-wiki
==Svenska==
===Verb===
{{verb|sv}}
'''bala'''
#{{tagg|västgötska}} prata [[livligt]], [[skvallra]]
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''bala'''
#{{tagg|släktingar|språk=az}} [[barn]], [[unge]]
#:{{synonymer|[[uşaq]], [[övlad]]}}
==Katalanska==
===Substantiv===
{{ca-subst-f}}
'''bala''' {{f}}
#[[höbal]], [[bal]] (packe)
#{{tagg|text=till eldvapen}} [[kula]], [[skott]]
==Sesotho==
===Verb===
{{verb|st}}
'''bala'''
#[[läsa]]
==Spanska==
===Substantiv===
{{es-subst-f-s}}
'''bala''' {{f}}
#{{tagg|text=till eldvapen}} [[kula]], [[skott]]
#:{{sammansättningar|[[antibalas]]}}
#[[höbal]], [[bal]] (packe)
===Verb===
'''bala'''
#{{böjning|es|verb|balar}}
==Tswana==
===Verb===
{{verb|tn}}
'''bala'''
#[[läsa]]
km3q2zl2vgdn4c7l39xe6yeafdmcvut
ביבליאָטעק
0
818831
4155849
3638200
2026-10-15T20:56:14Z
Frodlekis
762
4155849
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-n|tr=}}
'''ביבליאָטעק''' (biblyotek) {{f}}
#[[bibliotek]]
#:{{besläktade ord|[[ביבליאָטעקער]] (''biblyoteker''), {{länk|yi|ביבליאָטעקעראין}} (''biblyotekerin'')}}
56yq3lc3zuwhuo2glvd8u1an3yblinr
hingiv
0
826170
4156127
3412476
2026-10-16T09:37:47Z
Frodlekis
762
/* Kurdiska */
4156127
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''hingiv''' {{f}}
#{{tagg|kat=mat|språk=kmr}} [[honung]]
cl6fuxmb9ok3vjzcpi49b4j3bncn7y5
akademisyen
0
836209
4155780
3705858
2026-10-15T15:32:09Z
Frodlekis
762
/* Turkiska */
4155780
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-k|e}}
'''akademisyen'''
#[[akademiker]]
#:{{etymologi|Av {{härledning|tr|fr|académicien}}.}}
0yqfn2xy966mel5zqzj6bt65zzb669l
damar
0
837071
4155896
3441161
2026-10-15T22:03:30Z
Frodlekis
762
/* Turkiska */
4155896
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
'''damar'''
#{{tagg|kat=anatomi|kat2=fysiologi|språk=az}} [[ven]], [[blodåder]]
#:{{synonymer|[[vena]]}}
==Turkiska==
===Substantiv===
{{tr-subst-k|a|d}}
'''damar'''
#{{tagg|kat=anatomi|kat2=fysiologi|språk=tr}} [[ven]], [[blodåder]]
e74wxf2wx22d90hefls750ctrf1vvsg
4155972
4155896
2026-10-16T00:02:42Z
Frodlekis
762
/* Azerbajdzjanska */
4155972
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''damar'''
#{{tagg|kat=anatomi|kat2=fysiologi|språk=az}} [[ven]], [[blodåder]]
#:{{synonymer|[[vena]]}}
==Turkiska==
===Substantiv===
{{tr-subst-k|a|d}}
'''damar'''
#{{tagg|kat=anatomi|kat2=fysiologi|språk=tr}} [[ven]], [[blodåder]]
lsgynoyzjt1tvf5mfkf5efi0hg8k13l
Mall:tr-subst-v
10
853252
4155942
4155748
2026-10-15T23:18:47Z
Frodlekis
762
4155942
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Turkiska|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:tr-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|tr|subst}}
</includeonly>
9jtch2j7oak0wi0v26lii4tf9rn40dj
abajur
0
864978
4155940
4155724
2026-10-15T23:17:21Z
Frodlekis
762
/* Turkiska */
4155940
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{subst|az}}
'''abajur'''
#[[lampskärm]]
#:{{etymologi|Av {{härledning|az|fr|abat-jour}}.}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''abajur'''
#[[lampskärm]]
#:{{etymologi|Av {{härledning|crh|fr|abat-jour}}.}}
==Portugisiska==
===Substantiv===
{{subst|pt}}
'''abajur''' {{m}}
#[[lampskärm]]
#:{{etymologi|Av {{härledning|pt|fr|abat-jour}}.}}
==Rumänska==
===Substantiv===
{{subst|ro}}
'''abajur''' {{n}}
#[[lampskärm]]
#:{{etymologi|Av {{härledning|ro|fr|abat-jour}}.}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abajur'''
#[[lampskärm]]
j8flxhttgvismck8jqxt55d6e77p78h
borderline
0
868479
4155775
3497857
2026-10-15T15:20:21Z
Frodlekis
762
4155775
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{subst|sv}}
'''borderline''' {{u}}
#{{tagg|kat=psykologi}} emotionellt instabil [[personlighetsstörning]]
#:{{etymologi|{{belagt|sv|1980}}<ref>2026: {{källa-so}}</ref>}}
==Källor==
<references/>
gy3lpl5n4d888wm4hmpmy0961ft3p83
4155776
4155775
2026-10-15T15:21:11Z
Frodlekis
762
4155776
wikitext
text/x-wiki
{{wikipedia}}
==Svenska==
===Substantiv===
{{subst|sv}}
'''borderline''' {{u}}
#{{tagg|kat=psykologi}} emotionellt instabil [[personlighetsstörning]]
#:{{synonymer|[[emotionellt instabilt personlighetssyndrom]]}}
#:{{etymologi|{{belagt|sv|1980}}<ref>2026: {{källa-so}}</ref>}}
==Källor==
<references/>
5tli97uijaf3rqti3lhh10cf2olbmmc
4155777
4155776
2026-10-15T15:21:21Z
Frodlekis
762
4155777
wikitext
text/x-wiki
{{wikipedia|Emotionellt instabilt personlighetssyndrom}}
==Svenska==
===Substantiv===
{{subst|sv}}
'''borderline''' {{u}}
#{{tagg|kat=psykologi}} emotionellt instabil [[personlighetsstörning]]
#:{{synonymer|[[emotionellt instabilt personlighetssyndrom]]}}
#:{{etymologi|{{belagt|sv|1980}}<ref>2026: {{källa-so}}</ref>}}
==Källor==
<references/>
9r9yqcky62wkfbn4yzzn14alzlg5vww
שוועבעלע
0
885405
4155863
3601989
2026-10-15T21:06:11Z
Frodlekis
762
4155863
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-n-kh}}
'''שוועבעלע''' (shvebele) {{n}}
*{{uttal|yi|ipa=ʃvɛbɛlɛ}}
#[[tändsticka]]
#:{{besläktade ord|{{länk|yi|שוועבל}}}}
eelbdi1btrfl5b52tjcm8xgaz3jc7wq
חזיר
0
887203
4155840
3854471
2026-10-15T20:50:38Z
Frodlekis
762
4155840
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-m-im|tr=khazer}}
'''חזיר''' (khazer) {{m}}
*{{uttal|yi|ipa=ˈχazəʁ}}
#{{tagg|kat=däggdjur|språk=yi}} [[gris]]
#:{{etymologi|Av {{härledning|yi|he|חֲזִיר|tr=khazír}}.}}
76cqqf94n5fd2t1ada7m312j9npj7y4
4155841
4155840
2026-10-15T20:51:09Z
Frodlekis
762
4155841
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-m-em|tr=khazer|tr2=khazeyrem}}
'''חזיר''' (khazer) {{m}}
*{{uttal|yi|ipa=ˈχazəʁ}}
#{{tagg|kat=däggdjur|språk=yi}} [[gris]]
#:{{etymologi|Av {{härledning|yi|he|חֲזִיר|tr=khazír}}.}}
sxw4idfc1xhlpbsbuzwmqppxqd7q2pf
Mall:yi-subst-m-n
10
887395
4155837
4154848
2026-10-15T20:49:15Z
Frodlekis
762
4155837
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-f-s
10
887402
4155858
4154468
2026-10-15T21:02:52Z
Frodlekis
762
4155858
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-m-s
10
887403
4155844
4154482
2026-10-15T20:52:23Z
Frodlekis
762
4155844
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-n-n
10
887414
4155867
4154604
2026-10-15T21:07:26Z
Frodlekis
762
4155867
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-n-ekh
10
887418
4155861
4154592
2026-10-15T21:04:23Z
Frodlekis
762
4155861
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-f-n
10
887532
4155857
4154561
2026-10-15T21:02:45Z
Frodlekis
762
4155857
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-m-en
10
887867
4155827
4154491
2026-10-15T20:37:50Z
Frodlekis
762
4155827
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-n-s
10
888350
4155868
4154517
2026-10-15T21:07:33Z
Frodlekis
762
4155868
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
ביבליאָטעקערין
0
888451
4155847
3610770
2026-10-15T20:55:42Z
Frodlekis
762
4155847
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-s}}
'''ביבליאָטעקערין''' (biblyotekerin) {{f}}
#{{tagg|kat=yrken|språk=yi}} kvinnlig [[bibliotekarie]]
#:{{hyperonymer|{{länk|yi|ביבליאָטעקער}} (''biblyoteker'')}}
#:{{besläktade ord|{{länk|yi|ביבליאָטעק}} (''biblyotek'')}}
rxh8fz52cz19p7xn9miwum9zib5f3o5
4155848
4155847
2026-10-15T20:56:03Z
Frodlekis
762
4155848
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-s|tr=}}
'''ביבליאָטעקערין''' (biblyotekerin) {{f}}
#{{tagg|kat=yrken|språk=yi}} kvinnlig [[bibliotekarie]]
#:{{hyperonymer|{{länk|yi|ביבליאָטעקער}} (''biblyoteker'')}}
#:{{besläktade ord|{{länk|yi|ביבליאָטעק}} (''biblyotek'')}}
5g9jqr9xpab9gat7ezy42d48jj7ddem
Mall:yi-subst-f-en
10
888915
4155853
4154566
2026-10-15T21:01:17Z
Frodlekis
762
4155853
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
görünüş
0
893702
4155992
3776694
2026-10-16T00:23:51Z
Frodlekis
762
/* Turkiska */
4155992
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''görünüş'''
#[[vy]], [[utsikt]]
#{{tagg|lingvistik|språk=tr}} [[aspekt]]
8r34zgz7n9oagfsnt097gka1rc63wij
4155993
4155992
2026-10-16T00:25:30Z
Frodlekis
762
4155993
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''görünüş'''
#[[utseende]]
#:{{synonymer|[[görkəm]], [[yöndəm]]}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''görünüş'''
#[[vy]], [[utsikt]]
#[[utseende]]
#{{tagg|lingvistik|språk=tr}} [[aspekt]]
fp6fu58fxlk6objw74murp4tfnhwibr
mutfak
0
893739
4155799
3734655
2026-10-15T19:48:15Z
Frodlekis
762
4155799
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-k|a}}
'''mutfak'''
#{{tagg|matlagning|språk=tr}} [[kök]] (rum, kokkonst)
8wd3xv8s9fra8hlnwx2wvgxsf3hr4pb
4155800
4155799
2026-10-15T19:48:45Z
Frodlekis
762
/* Turkiska */
4155800
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-k|a|rot=mutfağ}}
'''mutfak'''
#{{tagg|matlagning|språk=tr}} [[kök]] (rum, kokkonst)
8gzu33jcuxrrss8yp4ilh61mp16hszu
altıgen
0
894024
4155984
3629940
2026-10-16T00:18:00Z
Frodlekis
762
/* Turkiska */
4155984
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''[[altı]][[-gen|gen]]'''
#[[hexagon]], [[sexhörning]]
hdjnammnm0u88gwo412dyypybscbzd7
4155985
4155984
2026-10-16T00:18:39Z
Frodlekis
762
/* Turkiska */
4155985
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''[[altı]][[-gen|gen]]'''
#{{tagg|geometri|språk=tr}} [[hexagon]], [[sexhörning]]
qfdlbczimemos10jaxnlsv1k876rta1
abaküs
0
894585
4156077
3728472
2026-10-16T08:38:03Z
~2026-55485-04
62322
/* Turkiska */
4156077
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abaküs'''
#{{tagg|matematik|språk=tr}} [[abakus]]
04hch21kai2df9ugovv2a3gh98wfiuw
abanık
0
894586
4155990
3729374
2026-10-16T00:22:38Z
Frodlekis
762
/* Turkiska */
4155990
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abanık'''
#{{tagg|lingvistik|språk=tr}} [[konsonant]]
t4aiz6r5keyzv4e7ow16j1yhtu79944
4155991
4155990
2026-10-16T00:23:02Z
Frodlekis
762
/* Turkiska */
4155991
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst|rot=abanığ}}
'''abanık'''
#{{tagg|lingvistik|språk=tr}} [[konsonant]]
lmvpmuaeyyw996eti0bbhjzvxwsrn3j
abartma
0
894589
4156079
3631468
2026-10-16T08:39:41Z
~2026-55485-04
62322
/* Turkiska */
4156079
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abartma'''
#[[överdrift]]
#:{{synonymer|[[abartı]]}}
#:{{besläktade ord|[[abartmak]]}}
7ccjycvv3dwdpuq89vlp1phocosgw1e
abartı
0
894590
4156078
3631470
2026-10-16T08:38:55Z
~2026-55485-04
62322
/* Turkiska */
4156078
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''abartı'''
#[[överdrift]]
#:{{synonymer|[[abartma]]}}
#:{{besläktade ord|[[abartmak]]}}
9x7avhhwmdb95b5l7zitwt0a6sw13kc
teğet
0
894711
4155989
3728347
2026-10-16T00:22:15Z
Frodlekis
762
/* Turkiska */
4155989
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''teğet'''
#{{tagg|geometri|språk=tr}} [[tangent]]
ak455nhid5mwb4f6vy1hydp5ad5qqtd
çevirmen
0
894746
4155996
4034574
2026-10-16T00:27:18Z
Frodlekis
762
/* Turkiska */
4155996
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''çevirmen'''
#{{tagg|yrken|språk=tr}} [[tolk]]
#{{tagg|lingvistik|yrken|språk=tr}} [[översättare]]
hrr0f5q519026m70rdpxnxnefspnma4
karı
0
894900
4156031
3728154
2026-10-16T00:58:56Z
Frodlekis
762
/* Turkiska */
4156031
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''karı'''
#{{tagg|släktingar|språk=tr}} [[fru]]
lsqe7x1r14l8xu20j696lv3zjty7j30
Mall:tr-subst
10
894997
4155925
3632449
2026-10-15T22:57:03Z
Frodlekis
762
4155925
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Turkiska|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:tr-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|tr|subst}}
</includeonly>
9jtch2j7oak0wi0v26lii4tf9rn40dj
Wiktionary:Stilguide/Grammatik/Turkiska
4
894998
4155943
4155753
2026-10-15T23:23:38Z
Frodlekis
762
4155943
wikitext
text/x-wiki
==Substantiv==
{{topp|Tillgängliga mallar}}
*{{mall|tr-subst}} ''används för alla nya uppslag, både substantiv som slutar på vokal och substantiv som slutar på konsonant''
*{{mall|tr-subst-v}} ''äldre mall, håller på att fasas ut; använd inte för nya uppslag''
*{{mall|tr-subst-k}} ''äldre mall, håller på att fasas ut; använd inte för nya uppslag''
{{botten}}
Possessivformer visas automatiskt. Befintliga uppslag med {{mall|tr-subst-v}} eller {{mall|tr-subst-k}} kan tills vidare ligga kvar, men bör bytas till {{mall|tr-subst}} när de gås igenom.
==={{mall|tr-subst-v}}===
Äldre mall för substantiv som slutar på vokal. Den håller på att fasas ut och ska inte användas för nya uppslag. Använd {{mall|tr-subst}} i stället. Beskrivningen nedan finns kvar som stöd när befintliga uppslag migreras. Mallen tar en numrerad parameter.
{{parameterschema|tr-subst-v|{{tr-subst-v|a}}}}
*'''1=''' anger vokalharmonin: '''a, â, e, ı, i, î, o, ö, u, û''' eller '''ü'''. Om parametern utelämnas försöker modulen hitta harmonin från ordet. Ange den vid avvikande vokalharmoni; för ''hayal'' används exempelvis vokalen e.
*'''poss=1''' används när substantivets slutvokal är en possessivändelse, som i ''tereyağı''. Parametern gör att böjningen bildas från stammen ''tereyağ-'', så att former som ''tereyağını'' och ''tereyağları'' bildas korrekt.
*'''rot=''' anger en alternativ stam framför vokalsuffix. '''stam=''' är ett äldre alias; använd helst '''rot='''.
Exempel:
*{{mall|tr-subst-v|a}} för ''[[rüya]]''
*{{mall|tr-subst-v|ı|poss=1}} för ''[[tereyağı]]''
==={{mall|tr-subst-k}}===
Äldre mall för substantiv som slutar på konsonant. Den håller på att fasas ut och ska inte användas för nya uppslag. Använd {{mall|tr-subst}} i stället. Beskrivningen nedan finns kvar som stöd när befintliga uppslag migreras. Mallen tar två numrerade parametrar.
{{parameterschema|tr-subst-k|{{tr-subst-k|a|d}}}}
*'''1=''' anger vokalharmonin: '''a, â, e, ı, i, î, o, ö, u, û''' eller '''ü'''. Om parametern utelämnas försöker modulen hitta harmonin från ordet.
*'''2=''' kan anges som '''d''' eller '''t''' för lokativ och ablativ. Om parametern utelämnas väljs konsonanten utifrån uppslagsordets slut.
*'''rot=''' anger en alternativ stam framför vokalsuffix, exempelvis '''rot=özgürlüğ''' för ''özgürlük''.
*'''poss=1''' används när uppslagsordet slutar på en possessivändelse. '''stam=''' fungerar som äldre alias för '''rot='''.
Exempel:
*{{mall|tr-subst-k|ü|t}} för ''[[düş]]''
*{{mall|tr-subst-k|e|d}} för ''[[hayal]]''
*{{mall|tr-subst-k|ü|t|rot=özgürlüğ}} för ''[[özgürlük]]''
==={{mall|tr-subst}}===
Den gemensamma mallen för turkiska substantiv och den mall som ska användas framöver i stället för {{mall|tr-subst-v}} och {{mall|tr-subst-k}}. Den räknar ut kasus- och possessivformer automatiskt. Den kan hantera alternativa stammar och vokalharmoni med parametrarna nedan, men tar inte emot tolv manuellt angivna böjningsformer. Om ett substantiv har former som inte kan bildas med modulens regler behöver modulen utökas.
{{parameterschema|tr-subst|{{tr-subst|a|t|rot=kısrağ}}}}
*'''1=''' anger vokalharmonin: '''a, â, e, ı, i, î, o, ö, u, û''' eller '''ü'''. Om den utelämnas försöker modulen hitta den från ordet.
*'''2=''' kan anges som '''d''' eller '''t''' för lokativ och ablativ. Om den utelämnas väljs konsonanten utifrån uppslagsordets slut.
*'''rot=''' anger en alternativ stam framför vokalsuffix. Exempelvis ger '''rot=kısrağ''' formerna ''kısrağı'', ''kısrağa'' och ''kısrağın'' för ''kısrak''.
*'''poss=1''' används när uppslagsordets slutvokal är en possessivändelse, som i ''tereyağı''.
*'''stam=''' accepteras som äldre alias för '''rot='''.
*'''grundform=''' anger uppslagsordet som böjningen ska utgå från, om det skiljer sig från sidans namn.
*[[Wiktionary:Stilguide/Grammatik/Allmänna parametrar|Allmänna parametrar]] kan också användas.
==Pronomen==
{{topp|Tillgängliga mallar}}
*{{mall|tr-pron-pers}} ''infogas för alla personliga pronomen''
{{botten}}
{{parameterschema|tr-pron-pers|{{tr-pron-pers}}}}
1mukdgmtb706gw4eafpbze8wostz0tn
4156022
4155943
2026-10-16T00:50:32Z
Frodlekis
762
/* Substantiv */
4156022
wikitext
text/x-wiki
==Substantiv==
{{topp|Tillgängliga mallar}}
*{{mall|tr-subst}} ''används för alla nya uppslag''
*{{mall|tr-subst-oräkn}} ''för oräkneliga substantiv; visar bara singularformer''
*{{mall|tr-subst-v}} ''äldre mall, håller på att fasas ut; använd inte för nya uppslag''
*{{mall|tr-subst-k}} ''äldre mall, håller på att fasas ut; använd inte för nya uppslag''
{{botten}}
Possessivformer visas automatiskt. Befintliga uppslag med {{mall|tr-subst-v}} eller {{mall|tr-subst-k}} kan tills vidare ligga kvar, men bör bytas till {{mall|tr-subst}} när de gås igenom.
==={{mall|tr-subst-v}}===
Äldre mall för substantiv som slutar på vokal. Den håller på att fasas ut och ska inte användas för nya uppslag. Använd {{mall|tr-subst}} i stället. Beskrivningen nedan finns kvar som stöd när befintliga uppslag migreras. Mallen tar en numrerad parameter.
{{parameterschema|tr-subst-v|{{tr-subst-v|a}}}}
*'''1=''' anger vokalharmonin: '''a, â, e, ı, i, î, o, ö, u, û''' eller '''ü'''. Om parametern utelämnas försöker modulen hitta harmonin från ordet. Ange den vid avvikande vokalharmoni; för ''hayal'' används exempelvis vokalen e.
*'''poss=1''' används när substantivets slutvokal är en possessivändelse, som i ''tereyağı''. Parametern gör att böjningen bildas från stammen ''tereyağ-'', så att former som ''tereyağını'' och ''tereyağları'' bildas korrekt.
*'''rot=''' anger en alternativ stam framför vokalsuffix. '''stam=''' är ett äldre alias; använd helst '''rot='''.
Exempel:
*{{mall|tr-subst-v|a}} för ''[[rüya]]''
*{{mall|tr-subst-v|ı|poss=1}} för ''[[tereyağı]]''
==={{mall|tr-subst-k}}===
Äldre mall för substantiv som slutar på konsonant. Den håller på att fasas ut och ska inte användas för nya uppslag. Använd {{mall|tr-subst}} i stället. Beskrivningen nedan finns kvar som stöd när befintliga uppslag migreras. Mallen tar två numrerade parametrar.
{{parameterschema|tr-subst-k|{{tr-subst-k|a|d}}}}
*'''1=''' anger vokalharmonin: '''a, â, e, ı, i, î, o, ö, u, û''' eller '''ü'''. Om parametern utelämnas försöker modulen hitta harmonin från ordet.
*'''2=''' kan anges som '''d''' eller '''t''' för lokativ och ablativ. Om parametern utelämnas väljs konsonanten utifrån uppslagsordets slut.
*'''rot=''' anger en alternativ stam framför vokalsuffix, exempelvis '''rot=özgürlüğ''' för ''özgürlük''.
*'''poss=1''' används när uppslagsordet slutar på en possessivändelse. '''stam=''' fungerar som äldre alias för '''rot='''.
Exempel:
*{{mall|tr-subst-k|ü|t}} för ''[[düş]]''
*{{mall|tr-subst-k|e|d}} för ''[[hayal]]''
*{{mall|tr-subst-k|ü|t|rot=özgürlüğ}} för ''[[özgürlük]]''
==={{mall|tr-subst}}===
Den gemensamma mallen för turkiska substantiv och den mall som ska användas framöver i stället för {{mall|tr-subst-v}} och {{mall|tr-subst-k}}. Den räknar ut kasus- och possessivformer automatiskt. Den kan hantera alternativa stammar och vokalharmoni med parametrarna nedan, men tar inte emot tolv manuellt angivna böjningsformer. Om ett substantiv har former som inte kan bildas med modulens regler behöver modulen utökas.
{{parameterschema|tr-subst|{{tr-subst|a|t|rot=kısrağ}}}}
*'''1=''' anger vokalharmonin: '''a, â, e, ı, i, î, o, ö, u, û''' eller '''ü'''. Om den utelämnas försöker modulen hitta den från ordet.
*'''2=''' kan anges som '''d''' eller '''t''' för lokativ och ablativ. Om den utelämnas väljs konsonanten utifrån uppslagsordets slut.
*'''rot=''' anger en alternativ stam framför suffix. Exempelvis ger '''rot=kısrağ''' formerna ''kısrağı'', ''kısrağa'' och ''kısrağın'' för ''kısrak''. För ''alın'' används '''rot=aln'''; då bildas possessivformer som ''alnım'' och ''alnınız'', medan pluralformerna fortfarande bildas från ''alın'' (''alınlarım'', ''alınlarınız'').
*'''poss=1''' används när uppslagsordets slutvokal är en possessivändelse, som i ''tereyağı''.
*'''stam=''' accepteras som äldre alias för '''rot='''.
*'''grundform=''' anger uppslagsordet som böjningen ska utgå från, om det skiljer sig från sidans namn.
*[[Wiktionary:Stilguide/Grammatik/Allmänna parametrar|Allmänna parametrar]] kan också användas.
==={{mall|tr-subst-oräkn}}===
Används för oräkneliga substantiv. Mallen visar endast singularböjningen; pluralformer visas inte. Possessivtabellen visar fortfarande singularformer för respektive ägare.
{{parameterschema|tr-subst-oräkn|{{tr-subst-oräkn|a}}}}
*'''1=''' anger vokalharmonin och '''2=''' kan anges som '''d''' eller '''t''' för lokativ och ablativ. Om de utelämnas försöker modulen härleda formerna från uppslagsordet.
*'''rot=''' anger en alternativ stam framför vokalsuffix. '''stam=''' accepteras som äldre alias.
*[[Wiktionary:Stilguide/Grammatik/Allmänna parametrar|Allmänna parametrar]] kan också användas.
==Pronomen==
{{topp|Tillgängliga mallar}}
*{{mall|tr-pron-pers}} ''infogas för alla personliga pronomen''
{{botten}}
{{parameterschema|tr-pron-pers|{{tr-pron-pers}}}}
==Pronomen==
{{topp|Tillgängliga mallar}}
*{{mall|tr-pron-pers}} ''infogas för alla personliga pronomen''
{{botten}}
{{parameterschema|tr-pron-pers|{{tr-pron-pers}}}}
474y53m12cx59jlfjwhc22ovj0017bj
kavram
0
895144
4156001
4155672
2026-10-16T00:33:16Z
Frodlekis
762
4156001
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''kavram'''
#{{tagg|filosofi|språk=tr}} [[begrepp]], [[koncept]], [[term]]
#:{{synonymer|[[mefhum]], [[nosyon]]}}
#:{{besläktade ord|[[kavramak]]}}
#{{tagg|vardagligt|anatomi|språk=tr}} [[bukhinna]]
#{{tagg|vardagligt|språk=tr}} [[nypa]], [[grepp]], [[handfull]]
td22kzz07r2q27p4ywmok9tc7vegdj1
zarf
0
895742
4155995
4155646
2026-10-16T00:26:54Z
Frodlekis
762
4155995
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
{{media|01464 vintage Russian Soviet silver cup tea holder.jpg|zarf [1]}}
'''zarf'''
#[[mugghållare]] ([[glashållare]], [[kopphållare]]), för koppar utan eget handtag, zarf
#{{tagg|postväsen|språk=tr}} [[kuvert]]
#:{{sammansättningar|[[viral zarf]]}}
#{{tagg|lingvistik|språk=tr}} [[adverb]]
#:{{synonymer|[[belirteç]]}}
#:{{användning|Zarf är ett arabiskt lånord och det som oftast används om adverb, till exempel [[w:tr:Zarf (dilbilgisi)|i Wikipedia]]. Turkiska Wiktionary använder emellertid synonymen belirteç, ett ord av turkiskt ursprung.}}
:{{avgränsare}}
:{{besläktade ord|[[zarflamak]]}}
kri7hs11ssxeikkxvrttxm6t7686wb6
belirteç
0
895755
4155994
4155645
2026-10-16T00:26:31Z
Frodlekis
762
4155994
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst|rot=belirtec}}
'''belirteç'''
#{{tagg|lingvistik|språk=tr}} [[adverb]]
#:{{synonymer|[[zarf]]}}
#{{tagg|kemi|språk=tr}} [[reagens]]
:{{avgränsare}}
:{{besläktade ord|[[belirteççe]], [[belirteççi]], [[belirteççik]], [[belirteçken]], [[belirteçle]], [[belirteçli]], [[belirteçse]], [[belirteçsiz]]}}
1agq53cp4xd8g5jq7xh99w1uijbql2q
Mall:yi-subst-m-es
10
896720
4155836
4154506
2026-10-15T20:47:40Z
Frodlekis
762
4155836
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
פּולסאָדער
0
898058
4155833
3639428
2026-10-15T20:42:57Z
Frodlekis
762
4155833
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-m-n|tr=}}
'''פּולסאָדער''' (pulsoder) {{m}}
#{{tagg|kat=anatomi|språk=yi}} [[pulsåder]], [[artär]]
mspavpeyiiu723vn854ynm2lvllpdyg
Mall:yi-subst-n-kh
10
898210
4155864
4154605
2026-10-15T21:06:50Z
Frodlekis
762
4155864
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
bacı
0
904441
4156007
3653083
2026-10-16T00:36:48Z
Frodlekis
762
/* Azerbajdzjanska */
4156007
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''bacı'''
#{{tagg|släktingar|språk=az}} [[syster]]
hp7061t496aj8m0ynxu7l25o2p0mzsz
gəlin
0
904457
4156008
3823730
2026-10-16T00:38:22Z
Frodlekis
762
/* Azerbajdzjanska */
4156008
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''gəlin'''
#[[brud]] (kvinna på sin bröllopsdag)
#{{tagg|släktingar|språk=az}} [[svärdotter]]
3p0wkr55dip79wqe9ht2la7268j5bc0
qız
0
904486
4156010
3921312
2026-10-16T00:39:04Z
Frodlekis
762
/* Azerbajdzjanska */
4156010
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''qız'''
#{{tagg|släktingar|språk=az}} [[dotter]]
#{{tagg|släktingar|språk=az}} [[flicka]], [[tjej]]
#:{{sammansättningar|[[qızlıq pərdəsi]]}}
ltskupjedd5toadsn5snwaq92176gtx
katib
0
904512
4155951
3921355
2026-10-15T23:37:26Z
Frodlekis
762
/* Azerbajdzjanska */
4155951
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''katib'''
#{{tagg|yrken|språk=az}} [[sekreterare]]
#:{{besläktade ord|[[katibə]], [[kitab]], [[məktub]], [[məktəb]], [[kitabxana]]}}
ghc0bdl2g2maglaxz4jjfue07i6tly3
algoritma
0
914744
4156168
3821243
2026-10-16T11:02:01Z
Frodlekis
762
/* Turkiska */
4156168
wikitext
text/x-wiki
==Indonesiska==
===Substantiv===
{{subst|id}}
'''algoritma'''
#{{tagg|matematik|datavetenskap|språk=id}} [[algoritm]]
==Nordsamiska==
===Substantiv===
{{subst|se}}
'''algoritma'''
#{{tagg|matematik|datavetenskap|språk=se}} [[algoritm]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''algoritma'''
#{{tagg|matematik|datavetenskap|språk=tr}} [[algoritm]]
2mq4tx4lce44qi6amgh3961yn9mivip
mansana
0
919291
4155782
3681784
2026-10-15T15:43:41Z
Frodlekis
762
4155782
wikitext
text/x-wiki
==Ladino==
===Substantiv===
{{subst|lad}}
'''mansana''' ({{länk|lad|מאנסאנה}}) {{f}}
#{{tagg|kat=frukter|språk=lad}} [[äpple]]
#:{{synonymer|[[pom]]}}
17l4vrvvguv75j2nlzwa1dqfrrqq1yp
plaj
0
919314
4155778
3681844
2026-10-15T15:28:32Z
Frodlekis
762
4155778
wikitext
text/x-wiki
==Haitisk kreol==
===Substantiv===
{{subst|ht}}
'''plaj'''
#{{tagg|kat=naturgeografi|språk=ht}} [[strand]]
==Ladino==
===Substantiv===
{{subst|lad}}
'''plaj'''
#{{tagg|kat=naturgeografi|språk=lad}} [[strand]]
==Turkiska==
===Substantiv===
{{tr-subst-k}}
'''plaj'''
#{{tagg|kat=naturgeografi|språk=lad}} [[strand]]
#:{{synonymer|{{länk|tr|kıyı, kumsal, sahil}}}}
#[[badstrand]]
mzm88fcjugm3c10j2jfjnjxu8h84f2j
4155779
4155778
2026-10-15T15:29:58Z
Frodlekis
762
/* Turkiska */
4155779
wikitext
text/x-wiki
==Haitisk kreol==
===Substantiv===
{{subst|ht}}
'''plaj'''
#{{tagg|kat=naturgeografi|språk=ht}} [[strand]]
==Ladino==
===Substantiv===
{{subst|lad}}
'''plaj'''
#{{tagg|kat=naturgeografi|språk=lad}} [[strand]]
==Turkiska==
===Substantiv===
{{tr-subst-k}}
'''plaj'''
#{{tagg|kat=naturgeografi|språk=lad}} [[strand]]
#:{{synonymer|{{länk|tr|kıyı, kumsal, sahil}}}}
#[[badstrand]]
:{{avgränsare}}
:{{etymologi|Inlånat från {{härledning|tr|fr|plage}}.}}
0yblnr3ustudf7p6s0cl8zq7ymem76z
Mall:yi-subst-m-im
10
933152
4155838
4154483
2026-10-15T20:49:31Z
Frodlekis
762
4155838
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-f-es
10
933882
4155855
4154617
2026-10-15T21:01:48Z
Frodlekis
762
4155855
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-n-en
10
934415
4155865
4154453
2026-10-15T21:07:08Z
Frodlekis
762
4155865
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
אַזיאַטיש
0
963161
4155873
3913154
2026-10-15T21:19:02Z
Frodlekis
762
4155873
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
{{yi-adj-okomp}}
'''אַזיאַטיש''' (azyatish)
*{{uttal|yi|ipa=azˈjatɪʃ}}
#[[asiatisk]]
r6b7xkb2hm48ajkqyrzk4fwx5zr0wfs
oğlan
0
976526
4156053
4032618
2026-10-16T01:16:50Z
Frodlekis
762
4156053
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''oğlan'''
#[[pojke]]
==Turkiska==
===Substantiv===
{{tr-subst}}
'''oğlan'''
#[[pojke]]
nzpe0pnuu1jweowibrub44vp0ldnawr
ריכטערין
0
989305
4155850
3962599
2026-10-15T20:56:42Z
Frodlekis
762
4155850
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-s|tr=}}
'''ריכטערין''' (rikhterin) {{f}}
#{{tagg|kat=juridik|kat2=yrken|språk=yi}} kvinnlig [[domare]]
#:{{besläktade ord|{{länk|y|ריכטער}} (''rikhter'')}}
c6ojtxbfxulqs7hkhabrxf8jxliple7
millət
0
1007692
4155966
4002842
2026-10-15T23:51:43Z
Frodlekis
762
/* Azerbajdzjanska */
4155966
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-skrift|милләт|ملت}}
{{az-subst|arpl=miləl}}
'''millət'''
#[[nation]]
73yye53oxurz3eug58o8z0n6weyofm1
4155967
4155966
2026-10-15T23:52:05Z
Frodlekis
762
4155967
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst|arpl=miləl}}
{{az-skrift|милләт|ملت}}
'''millət'''
#[[nation]]
7akbwm7wchgct27ej6usvytq7rizfr2
Wiktionary:Stilguide/Grammatik/Azerbajdzjanska
4
1013341
4155882
4015713
2026-10-15T21:28:38Z
Frodlekis
762
4155882
wikitext
text/x-wiki
==Pronomen==
{{topp|Tillgängliga mallar}}
*{{mall|az-pron-pers}} ''infogas för alla personliga pronomen''
{{botten}}
{{parameterschema|az-pron-pers|{{az-pron-pers}}}}
==Skriftspråk==
{{topp|Tillgängliga mallar}}
*{{mall|az-skrift}} ''visar en azerbajdzjansk form med kyrillisk och arabisk skrift''
{{botten}}
{{parameterschema|az-skrift|{{az-skrift|јандырмаг|یاندیرماق}}}}
bjv3yeachy3h18jark1yyfozquqd9lo
4155944
4155882
2026-10-15T23:25:24Z
Frodlekis
762
4155944
wikitext
text/x-wiki
==Substantiv==
{{topp|Tillgängliga mallar}}
*{{mall|az-subst}} ''för azerbajdzjanska substantiv; visar kasusformer och possessiva former''
{{botten}}
{{parameterschema|az-subst|{{az-subst|a|c}}}}
*'''1=''' anger den sista vokalen i grundformen och styr vokalharmonin: ''a'', ''ə'', ''e'', ''i'', ''ı'', ''o'', ''ö'', ''u'' eller ''ü''. Om parametern utelämnas identifieras vokalen automatiskt.
*'''2=''' anger substantivets typ: '''c''' för konsonant, '''cc''' för dubbel konsonant, '''q''' för slut-q eller '''k''' för slut-k. Typen identifieras normalt automatiskt.
*'''stem=''' anger en alternativ stam för singularformer med vokalsuffix, till exempel accusativ, dativ och genitiv.
*'''broken=''' anger en bruten plural. '''broken-v=''' anger dess sista vokal om den inte kan identifieras automatiskt, och '''broken-type=''' anger dess sluttyp enligt samma koder som '''2='''.
*'''nb=no''' döljer ljudpluralen. '''sing=no''' döljer singularformerna.
*Possessiva former visas automatiskt.
==Pronomen==
{{topp|Tillgängliga mallar}}
*{{mall|az-pron-pers}} ''infogas för alla personliga pronomen''
{{botten}}
{{parameterschema|az-pron-pers|{{az-pron-pers}}}}
==Skriftspråk==
{{topp|Tillgängliga mallar}}
*{{mall|az-skrift}} ''visar en azerbajdzjansk form med kyrillisk och arabisk skrift''
{{botten}}
{{parameterschema|az-skrift|{{az-skrift|јандырмаг|یاندیرماق}}}}
5xg20ieuavw71gwfiia0zif8uot6jvx
4155946
4155944
2026-10-15T23:29:42Z
Frodlekis
762
4155946
wikitext
text/x-wiki
==Substantiv==
{{topp|Tillgängliga mallar}}
*{{mall|az-subst}} ''för azerbajdzjanska substantiv; visar kasusformer och possessiva former''
{{botten}}
{{parameterschema|az-subst|{{az-subst|a|c}}}}
*'''1=''' anger den sista vokalen i grundformen och styr vokalharmonin: ''a'', ''ə'', ''e'', ''i'', ''ı'', ''o'', ''ö'', ''u'' eller ''ü''. Om parametern utelämnas identifieras vokalen automatiskt.
*'''2=''' anger substantivets typ: '''c''' för konsonant, '''cc''' för dubbel konsonant, '''q''' för slut-q eller '''k''' för slut-k. Typen identifieras normalt automatiskt.
*'''rot=''' anger en alternativ stam för singularformer med vokalsuffix, till exempel ackusativ, dativ och genitiv.
*'''bruten=''' anger en arabisk bruten plural: en pluralform i arabiskt mönster som används i vissa arabiska lånord och där pluralen inte bildas med det vanliga azerbajdzjanska suffixet ''-lar/-lər''. Ange hela pluralformen. Modulen visar den i en separat kolumn och böjer den också i kasus och possessivformer.
**'''bruten-v=''' anger den sista vokalen i formen från '''bruten=''' om den inte kan identifieras automatiskt.
**'''bruten-typ=''' anger pluralformens sluttyp enligt samma koder som '''2='''.
*'''nb=no''' döljer ljudpluralen. '''sing=no''' döljer singularformerna.
*Possessiva former visas automatiskt.
De äldre parametrarna '''stem=''', '''broken=''', '''broken-v=''' och '''broken-type=''' godtas fortfarande som alias, men nya mallanrop bör använda de svenska parameternamnen ovan.
==Pronomen==
{{topp|Tillgängliga mallar}}
*{{mall|az-pron-pers}} ''infogas för alla personliga pronomen''
{{botten}}
{{parameterschema|az-pron-pers|{{az-pron-pers}}}}
==Skriftspråk==
{{topp|Tillgängliga mallar}}
*{{mall|az-skrift}} ''visar en azerbajdzjansk form med kyrillisk och arabisk skrift''
{{botten}}
{{parameterschema|az-skrift|{{az-skrift|јандырмаг|یاندیرماق}}}}
7hllr5udexiclnx39vxog3v5nsbfz46
4155947
4155946
2026-10-15T23:31:25Z
Frodlekis
762
/* Substantiv */
4155947
wikitext
text/x-wiki
==Substantiv==
{{topp|Tillgängliga mallar}}
*{{mall|az-subst}} ''för azerbajdzjanska substantiv; visar kasusböjningar och possessiva former''
{{botten}}
{{parameterschema|az-subst|{{az-subst|a|c}}}}
*'''1=''' anger den sista vokalen i grundformen och styr vokalharmonin: ''a'', ''ə'', ''e'', ''i'', ''ı'', ''o'', ''ö'', ''u'' eller ''ü''. Om parametern utelämnas identifieras vokalen automatiskt.
*'''2=''' anger substantivets typ: '''c''' för konsonant, '''cc''' för dubbel konsonant, '''q''' för slut-q eller '''k''' för slut-k. Typen identifieras normalt automatiskt.
*'''rot=''' anger en alternativ stam för singularformer med vokalsuffix, till exempel ackusativ, dativ och genitiv.
*'''bruten=''' anger en arabisk bruten plural: en pluralform i arabiskt mönster som används i vissa arabiska lånord och där pluralen inte bildas med det vanliga azerbajdzjanska suffixet ''-lar/-lər''. Ange hela pluralformen. Modulen visar den i en separat kolumn och böjer den också i kasus och possessivformer.
**'''bruten-v=''' anger den sista vokalen i formen från '''bruten=''' om den inte kan identifieras automatiskt.
**'''bruten-typ=''' anger pluralformens sluttyp enligt samma koder som '''2='''.
*'''nb=no''' döljer ljudpluralen. '''sing=no''' döljer singularformerna.
*Possessiva former visas automatiskt.
De äldre parametrarna '''stem=''', '''broken=''', '''broken-v=''' och '''broken-type=''' godtas fortfarande som alias, men nya mallanrop bör använda de svenska parameternamnen ovan.
==Pronomen==
{{topp|Tillgängliga mallar}}
*{{mall|az-pron-pers}} ''infogas för alla personliga pronomen''
{{botten}}
{{parameterschema|az-pron-pers|{{az-pron-pers}}}}
==Skriftspråk==
{{topp|Tillgängliga mallar}}
*{{mall|az-skrift}} ''visar en azerbajdzjansk form med kyrillisk och arabisk skrift''
{{botten}}
{{parameterschema|az-skrift|{{az-skrift|јандырмаг|یاندیرماق}}}}
467rs6a299to53iqyo9ngxgi5s7r787
4155948
4155947
2026-10-15T23:32:30Z
Frodlekis
762
/* Substantiv */
4155948
wikitext
text/x-wiki
==Substantiv==
{{topp|Tillgängliga mallar}}
*{{mall|az-subst}} ''för azerbajdzjanska substantiv; visar kasusböjningar och possessiva former''
{{botten}}
{{parameterschema|az-subst|{{az-subst|a|c}}}}
*'''1=''' anger den sista vokalen i grundformen och styr vokalharmonin: ''a'', ''ə'', ''e'', ''i'', ''ı'', ''o'', ''ö'', ''u'' eller ''ü''. Om parametern utelämnas identifieras vokalen automatiskt.
*'''2=''' anger substantivets typ: '''c''' för konsonant, '''cc''' för dubbel konsonant, '''q''' för slut-q eller '''k''' för slut-k. Typen identifieras normalt automatiskt.
*'''rot=''' anger en alternativ stam för singularformer med vokalsuffix, till exempel ackusativ, dativ och genitiv.
*'''bruten=''' anger en arabisk bruten plural: en pluralform i arabiskt mönster som används i vissa arabiska lånord och där pluralen inte bildas med det vanliga azerbajdzjanska suffixet ''-lar/-lər''. Ange hela pluralformen. Modulen visar den i en separat kolumn och böjer den också i kasus och possessivformer.
**'''bruten-v=''' anger den sista vokalen i formen från '''bruten=''' om den inte kan identifieras automatiskt.
**'''bruten-typ=''' anger pluralformens sluttyp enligt samma koder som '''2='''.
*'''nb=no''' döljer ljudpluralen. '''sing=no''' döljer singularformerna.
*Possessiva former visas automatiskt.
<!-- De äldre parametrarna '''stem=''', '''broken=''', '''broken-v=''' och '''broken-type=''' godtas fortfarande som alias, men nya mallanrop bör använda de svenska parameternamnen ovan. -->
==Pronomen==
{{topp|Tillgängliga mallar}}
*{{mall|az-pron-pers}} ''infogas för alla personliga pronomen''
{{botten}}
{{parameterschema|az-pron-pers|{{az-pron-pers}}}}
==Skriftspråk==
{{topp|Tillgängliga mallar}}
*{{mall|az-skrift}} ''visar en azerbajdzjansk form med kyrillisk och arabisk skrift''
{{botten}}
{{parameterschema|az-skrift|{{az-skrift|јандырмаг|یاندیرماق}}}}
8g9qtt2spu04k5g2vhr3cqtznqed6w9
qardaş
0
1021349
4156006
4031650
2026-10-16T00:36:11Z
Frodlekis
762
/* Azerbajdzjanska */
4156006
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''qardaş'''
# {{tagg|släktingar|språk=az}} [[bror]]
ipzuax0ek0qdeavw4af2czqlmhioidx
uşaq
0
1021663
4156012
4032090
2026-10-16T00:40:20Z
Frodlekis
762
/* Azerbajdzjanska */
4156012
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''uşaq'''
# [[barn]]
80uwrmd9kgqwigxrw519p8u2goqtfi1
dəmirçixana
0
1022010
4156015
4032551
2026-10-16T00:41:36Z
Frodlekis
762
/* Azerbajdzjanska */
4156015
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''dəmirçixana'''
# [[smedja]]
qhlckw0q8muorvobq9vw4oax1rljfg3
kitabxana
0
1022027
4155960
4032583
2026-10-15T23:45:21Z
Frodlekis
762
/* Azerbajdzjanska */
4155960
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''kitabxana'''
# [[bibliotek]]
#: {{az-besläktade-kitab}}
mom8t0ru3j6vd55zozmk40477gefr3d
kitabxanaçı
0
1022029
4155962
4032589
2026-10-15T23:46:19Z
Frodlekis
762
/* Azerbajdzjanska */
4155962
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''kitabxanaçı'''
# [[bibliotekarie]]
#: {{az-besläktade-kitab}}
4qr4wtdty50ygcy8irvpqwhqx8lya53
məktub
0
1022031
4155959
4032592
2026-10-15T23:44:11Z
Frodlekis
762
/* Azerbajdzjanska */
4155959
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''məktub'''
# [[brev]]
#: {{az-besläktade-kitab}}
44sx24xr226y7ibm5bzekzzb30p56hf
məktəb
0
1022032
4155954
4032593
2026-10-15T23:40:11Z
Frodlekis
762
/* Azerbajdzjanska */
4155954
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''məktəb'''
# [[skola]]
#: {{az-besläktade-kitab}}
4mwkwkuqgmypm7h97lsylbct7zlb65p
4155955
4155954
2026-10-15T23:42:38Z
Frodlekis
762
/* Azerbajdzjanska */
4155955
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst|arpl=məkatib}}
'''məktəb'''
# [[skola]]
#: {{az-besläktade-kitab}}
6cqtvzhedwrt7t9i5joh9lqmqn372q1
kitabə
0
1022033
4155953
4032596
2026-10-15T23:39:30Z
Frodlekis
762
/* Azerbajdzjanska */
4155953
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''kitabə'''
# [[inskription]], [[inskriven]] [[text]]
#: {{az-besläktade-kitab}}
iowryvhnn4wt5p1yt0psxleaxvtmr1o
katibə
0
1022034
4155952
4032598
2026-10-15T23:38:21Z
Frodlekis
762
/* Azerbajdzjanska */
4155952
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''katibə'''
# {{tagg|yrken|språk=az}} [[sekreterare]] (''kvinnlig'')
#: {{az-besläktade-kitab}}
j4148rii4u7dtzyjesi48rn468ckw9r
nəvə
0
1022043
4156040
4032615
2026-10-16T01:07:28Z
Frodlekis
762
/* Azerbajdzjanska */
4156040
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''nəvə'''
#{{tagg|kat=släktingar|språk=az}} [[barnbarn]]
nltng6zzgqtq0vp5w2lbe18wyn7br06
qadın
0
1022046
4156036
4032622
2026-10-16T01:04:55Z
Frodlekis
762
/* Azerbajdzjanska */
4156036
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''qadın'''
# [[kvinna]]
s7845i2gkd1j4i2pjx4uwz3xhjxm3o1
saat
0
1024449
4155968
4065764
2026-10-15T23:53:31Z
Frodlekis
762
/* Azerbajdzjanska */
4155968
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''saat'''
#{{tagg|tidsuttryck|språk=az}} [[tid]]
#{{tagg|tidsuttryck|språk=az}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Lånat från {{härledning|az|ar|سَاعَة|tr=sāʕa}}.}}
==Finska==
===Verb===
'''saat'''
#{{böjning|fi|verb|saada}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''saat'''
#{{tagg|tidsuttryck|språk=crh}} [[tid]]
#{{tagg|tidsuttryck|språk=crh}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Lånat från {{härledning|crh|ar|سَاعَة|tr=sāʕa}}.}}
==Turkiska==
===Substantiv===
{{subst|tr}}
'''saat'''
#{{tagg|tidsuttryck|språk=tr}} [[tid]]
#{{tagg|tidsuttryck|språk=tr}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|tr|ota|ساعت|tr=saʼat}}, lånat från {{härledning|tr|ar|سَاعَة|tr=sāʕa}}.<ref>{{källa-tr-nishanyan}}</ref>}}
==Källor==
<references/>
039ccxb637hubh5z5fpxbjjr2xp8duo
4155969
4155968
2026-10-15T23:53:44Z
Frodlekis
762
/* Turkiska */
4155969
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''saat'''
#{{tagg|tidsuttryck|språk=az}} [[tid]]
#{{tagg|tidsuttryck|språk=az}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Lånat från {{härledning|az|ar|سَاعَة|tr=sāʕa}}.}}
==Finska==
===Verb===
'''saat'''
#{{böjning|fi|verb|saada}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''saat'''
#{{tagg|tidsuttryck|språk=crh}} [[tid]]
#{{tagg|tidsuttryck|språk=crh}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Lånat från {{härledning|crh|ar|سَاعَة|tr=sāʕa}}.}}
==Turkiska==
===Substantiv===
{{tr-subst}}
'''saat'''
#{{tagg|tidsuttryck|språk=tr}} [[tid]]
#{{tagg|tidsuttryck|språk=tr}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|tr|ota|ساعت|tr=saʼat}}, lånat från {{härledning|tr|ar|سَاعَة|tr=sāʕa}}.<ref>{{källa-tr-nishanyan}}</ref>}}
==Källor==
<references/>
t12itdd30d145zybiden0gzlu03tsmf
4155970
4155969
2026-10-15T23:56:54Z
Frodlekis
762
/* Turkiska */
4155970
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''saat'''
#{{tagg|tidsuttryck|språk=az}} [[tid]]
#{{tagg|tidsuttryck|språk=az}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Lånat från {{härledning|az|ar|سَاعَة|tr=sāʕa}}.}}
==Finska==
===Verb===
'''saat'''
#{{böjning|fi|verb|saada}}
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''saat'''
#{{tagg|tidsuttryck|språk=crh}} [[tid]]
#{{tagg|tidsuttryck|språk=crh}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Lånat från {{härledning|crh|ar|سَاعَة|tr=sāʕa}}.}}
==Turkiska==
===Substantiv===
{{tr-subst|e}}
'''saat'''
#{{tagg|tidsuttryck|språk=tr}} [[tid]]
#{{tagg|tidsuttryck|språk=tr}} [[timme]]
#[[klocka]]
:{{avgränsare}}
:{{etymologi|Av {{härledning|tr|ota|ساعت|tr=saʼat}}, lånat från {{härledning|tr|ar|سَاعَة|tr=sāʕa}}.<ref>{{källa-tr-nishanyan}}</ref>}}
==Källor==
<references/>
7ovum4ui90y5164bniefhlhjokzra8t
Mall:az-skrift
10
1024476
4155881
4035960
2026-10-15T21:26:23Z
Frodlekis
762
4155881
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Azerbajdzjanska|Skriftspråk}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{grammatik-start|2|{{{fakta|X}}}|az-skrift|lang=az}}
!colspan=2 class="main min"|''{{länk|az|{{{grundform|{{PAGENAME}}}}}}} med [[w:Azerbajdzjanska#Alfabet|andra skriftspråk]]
|-
!Kyrillisk
|{{+cyrl|{{länk|az|{{{1|}}}}}}}
|-
!Abjad
|{{+fa-arab|{{länk|az|{{{2|}}}}}}}
{{grammatik-slut|2|{{{not|}}}}}
</includeonly>
iq6fvvher036jqxyk7uk78ozx5gmumt
סוריקאַטע
0
1064535
4155842
4113318
2026-10-15T20:51:39Z
Frodlekis
762
4155842
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-s|tr=}}
'''סוריקאַטע''' (surikate) {{f}}
#{{tagg|däggdjur|kat=däggdjursarter|språk=yi}} [[surikat]]
i45wcgwoves9isk554xrqvt423t8lek
אַלבאַניש
0
1064733
4155877
4114209
2026-10-15T21:19:48Z
Frodlekis
762
4155877
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
{{yi-adj-okomp}}
'''אַלבאַניש''' (albanish)
#[[albansk]]
===Substantiv===
{{subst|yi}}
'''אַלבאַניש''' (albanish) {{m}}
#{{tagg|språk|språk=yi}} [[albanska]]
e2oiubo041cxm59v2gtn9sfvgia9kpr
taş ocağı
0
1065093
4155927
4115762
2026-10-15T22:58:10Z
Frodlekis
762
4155927
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''taş ocağı'''
#[[brott]]
#:{{synonymer|[[maden]]}}
d2oapzsul0zr9wcgp65g0wph0xlgzqy
Modul:yi-adj
828
1069442
4155814
4154418
2026-10-15T20:06:27Z
Frodlekis
762
4155814
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local formArgs = setmetatable({}, { __mode = "k" })
local function clean(x)
if not x or x == "" then
return nil
end
return x
end
local function show(term, tr)
if not term then
return "–"
end
local link = '<div style="vertical-align:top">[[' .. term .. ']]'
if tr == false then
return link .. "</div>"
end
if tr == nil then
-- Undvik automatisk translitterering för semitiska ord.
if not yi_ortografi.is_semitic or not yi_ortografi.is_semitic(term) then
tr = yi_translit.tr(term)
end
end
if not tr or tr == "" then
tr = " "
end
return link .. "<br /><small>" .. tr .. "</small></div>"
end
local function nSuffixTranslit(stem)
local generated = yi_ortografi.add_n_suffix(stem)
local ending = mw.ustring.sub(generated, mw.ustring.len(stem) + 1)
local transliterations = {
["ן"] = "n",
["ען"] = "en",
["עם"] = "em",
}
return transliterations[ending] or "n"
end
local function decline(stem, args)
local forms = {}
forms.pred = stem
forms.er = clean(args.er) or (stem .. "ער")
forms.n = clean(args.n) or yi_ortografi.add_n_suffix(stem)
forms.e = clean(args.e) or (stem .. "ע")
forms.n_tr = nSuffixTranslit(stem)
return forms
end
local function getForms(lemma, args)
local forms = {}
local rot = clean(args.rot) or lemma
local stem = yi_ortografi.finalToMedial(rot)
forms.pos = decline(stem, args)
forms.pos.pred = rot
local comp = clean(args.komp)
local sup = clean(args.sup)
local komprot = clean(args.komprot)
if clean(args.mode) == "nocomp" then
return forms
end
if comp then
forms.comp = { pred = comp }
elseif komprot then
forms.comp = { pred = komprot .. "ער" }
else
forms.comp = { pred = stem .. "ער" }
end
if sup then
forms.sup = { pred = sup }
else
local base = komprot or stem
base = mw.ustring.gsub(base, "ס$", "")
forms.sup = { pred = base .. "סט" }
end
return forms
end
local function caseHeader()
return gt.getRow(
{'!', ""},
{'!colspan="4"', "Singular"},
{'!rowspan="2"', "Plural"}
)
.. gt.getRow(
{'!', "Kasus"},
{'!', "Maskulinum"},
{'!', "Neutrum obestämd"},
{'!', "Neutrum bestämd"},
{'!', "Femininum"}
)
end
local function caseRows(mask, neutInd, neutDef, fem, plur)
return gt.getRow(
{'!', "Nominativ"},
{'|', mask.nom},
{'|', neutInd.nom},
{'|', neutDef.nom},
{'|', fem.nom},
{'|', plur.nom}
)
.. gt.getRow(
{'!', "Ackusativ"},
{'|', mask.acc},
{'|', neutInd.acc},
{'|', neutDef.acc},
{'|', fem.acc},
{'|', plur.acc}
)
.. gt.getRow(
{'!', "Dativ"},
{'|', mask.dat},
{'|', neutInd.dat},
{'|', neutDef.dat},
{'|', fem.dat},
{'|', plur.dat}
)
end
local function renderTable(lemma, forms, args)
local trRoot = clean(args.tr)
local function showForm(term, ending)
if trRoot == "-" then
return show(term, false)
elseif trRoot then
return show(term, trRoot .. (ending or ""))
end
return show(term)
end
local str = ""
str = str
.. gt.getRow({'!colspan="6"', "Böjning av ''[[" .. lemma .. "]]''"})
.. gt.getRow({'!colspan="6" class="main"', "Attributiva former"})
.. caseHeader()
.. caseRows(
{
nom = showForm(forms.pos.er, "er"),
acc = showForm(forms.pos.n, forms.pos.n_tr),
dat = showForm(forms.pos.n, forms.pos.n_tr)
},
{
nom = showForm(forms.pos.pred, ""),
acc = showForm(forms.pos.pred, ""),
dat = showForm(forms.pos.pred, "")
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.n, forms.pos.n_tr)
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.er, "er")
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.e, "e")
}
)
if forms.comp or forms.sup then
str = str
.. gt.getRow({'!colspan="6" class="main"', "Komparation"})
.. gt.getRow(
{'!colspan="2"', "Positiv"},
{'!colspan="2"', "Komparativ"},
{'!colspan="2"', "Superlativ"}
)
.. gt.getRow(
{'|colspan="2"', showForm(forms.pos.pred, "")},
{'|colspan="2"', forms.comp and showForm(forms.comp.pred, "er") or "–"},
{'|colspan="2"', forms.sup and showForm(forms.sup.pred, "st") or "–"}
)
end
if forms.comp then
local compbase = mw.ustring.gsub(forms.comp.pred, "ער$", "")
str = str
.. gt.getRow({'!colspan="6"', "Komparativ"})
.. caseHeader()
.. caseRows(
{
nom = showForm(compbase .. "ערער", "erer"),
acc = showForm(compbase .. "ערן", "ern"),
dat = showForm(compbase .. "ערן", "ern")
},
{
nom = showForm(compbase .. "ער", "er"),
acc = showForm(compbase .. "ער", "er"),
dat = showForm(compbase .. "ער", "er")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערן", "ern")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערער", "erer")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערע", "ere")
}
)
end
if forms.sup then
local supbase = mw.ustring.gsub(forms.sup.pred, "סט$", "")
str = str
.. gt.getRow({'!colspan="6"', "Superlativ"})
.. caseHeader()
.. caseRows(
{
nom = showForm(supbase .. "סטער", "ster"),
acc = showForm(supbase .. "סטן", "stn"),
dat = showForm(supbase .. "סטן", "stn")
},
{
nom = showForm(supbase .. "סט", "st"),
acc = showForm(supbase .. "סט", "st"),
dat = showForm(supbase .. "סט", "st")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטן", "stn")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטער", "ster")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטע", "ste")
}
)
end
return str
end
function export.getWikitext(frame)
local lemma = frame.args.lemma or mw.title.getCurrentTitle().text
local forms = getForms(lemma, frame.args)
return renderTable(lemma, forms, frame.args)
end
-- Parametrar som mallen för yi-adjektiv får skicka till modulen.
function export._getAcceptedParameters()
return {
[0] = 0,
"rot", "komp", "sup", "komprot", "er", "n", "e", "tr", "mode",
}
end
function export._getForms(pagename, templatename, args, meta, format)
local forms = getForms(pagename, args)
formArgs[forms] = args
return forms
end
function export._getMeta(pagename, templatename, args)
return {
numbered_cells = 0,
named_cells = {},
templatename = templatename,
pagename = pagename,
}
end
function export._getWikitable(forms, meta)
local args = formArgs[forms] or {}
local containsQualityNotice = not not meta.quality_notice
gt.setLanguage("yi")
local str = gt.getStart(6, meta.templatename, containsQualityNotice, meta.pagename, meta.width)
str = str .. renderTable(meta.pagename, forms, args)
str = str .. gt.getEnd()
return str
end
function export._getCategories(forms, meta)
return ""
end
function export.test(lemma, args)
return getForms(lemma, args or {})
end
return export
i9pryh7glewzb2o6yxt2sifutxydefa
4155869
4155814
2026-10-15T21:12:59Z
Frodlekis
762
4155869
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local function clean(x)
if not x or x == "" then
return nil
end
return x
end
local function show(term, tr)
if not term then
return "–"
end
local link = '<div style="vertical-align:top">[[' .. term .. ']]'
if tr == false then
return link .. "</div>"
end
if tr == nil then
-- Undvik automatisk translitterering för semitiska ord.
if not yi_ortografi.is_semitic or not yi_ortografi.is_semitic(term) then
tr = yi_translit.tr(term)
end
end
if not tr or tr == "" then
tr = " "
end
return link .. "<br /><small>" .. tr .. "</small></div>"
end
local function nSuffixTranslit(stem)
local generated = yi_ortografi.add_n_suffix(stem)
local ending = mw.ustring.sub(generated, mw.ustring.len(stem) + 1)
local transliterations = {
["ן"] = "n",
["ען"] = "en",
["עם"] = "em",
}
return transliterations[ending] or "n"
end
local function decline(stem, args)
local forms = {}
forms.pred = stem
forms.er = clean(args.er) or (stem .. "ער")
forms.n = clean(args.n) or yi_ortografi.add_n_suffix(stem)
forms.e = clean(args.e) or (stem .. "ע")
forms.n_tr = nSuffixTranslit(stem)
return forms
end
local function getForms(lemma, args)
local forms = {}
local rot = clean(args.rot) or lemma
local stem = yi_ortografi.finalToMedial(rot)
forms.pos = decline(stem, args)
forms.pos.pred = rot
local comp = clean(args.komp)
local sup = clean(args.sup)
local komprot = clean(args.komprot)
local suprot = clean(args.suprot)
if clean(args.mode) == "nocomp" then
return forms
end
if comp then
forms.comp = { pred = comp }
elseif komprot then
forms.comp = { pred = komprot .. "ער" }
else
forms.comp = { pred = stem .. "ער" }
end
if sup then
forms.sup = { pred = sup }
else
local base = suprot or komprot or stem
base = mw.ustring.gsub(base, "ס$", "")
forms.sup = { pred = base .. "סט" }
end
return forms
end
local function caseHeader()
return gt.getRow(
{'!', ""},
{'!colspan="4"', "Singular"},
{'!rowspan="2"', "Plural"}
)
.. gt.getRow(
{'!', "Kasus"},
{'!', "Maskulinum"},
{'!', "Neutrum obestämd"},
{'!', "Neutrum bestämd"},
{'!', "Femininum"}
)
end
local function caseRows(mask, neutInd, neutDef, fem, plur)
return gt.getRow(
{'!', "Nominativ"},
{'|', mask.nom},
{'|', neutInd.nom},
{'|', neutDef.nom},
{'|', fem.nom},
{'|', plur.nom}
)
.. gt.getRow(
{'!', "Ackusativ"},
{'|', mask.acc},
{'|', neutInd.acc},
{'|', neutDef.acc},
{'|', fem.acc},
{'|', plur.acc}
)
.. gt.getRow(
{'!', "Dativ"},
{'|', mask.dat},
{'|', neutInd.dat},
{'|', neutDef.dat},
{'|', fem.dat},
{'|', plur.dat}
)
end
local function renderTable(lemma, forms, args)
local trRoot = clean(args.tr)
local function showForm(term, ending)
if trRoot == "-" then
return show(term, false)
elseif trRoot then
return show(term, trRoot .. (ending or ""))
end
return show(term)
end
local str = ""
str = str
.. gt.getRow({'!colspan="6"', "Böjning av ''[[" .. lemma .. "]]''"})
.. gt.getRow({'!colspan="6" class="main"', "Attributiva former"})
.. caseHeader()
.. caseRows(
{
nom = showForm(forms.pos.er, "er"),
acc = showForm(forms.pos.n, forms.pos.n_tr),
dat = showForm(forms.pos.n, forms.pos.n_tr)
},
{
nom = showForm(forms.pos.pred, ""),
acc = showForm(forms.pos.pred, ""),
dat = showForm(forms.pos.pred, "")
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.n, forms.pos.n_tr)
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.er, "er")
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.e, "e")
}
)
if forms.comp or forms.sup then
str = str
.. gt.getRow({'!colspan="6" class="main"', "Komparation"})
.. gt.getRow(
{'!colspan="2"', "Positiv"},
{'!colspan="2"', "Komparativ"},
{'!colspan="2"', "Superlativ"}
)
.. gt.getRow(
{'|colspan="2"', showForm(forms.pos.pred, "")},
{'|colspan="2"', forms.comp and showForm(forms.comp.pred, "er") or "–"},
{'|colspan="2"', forms.sup and showForm(forms.sup.pred, "st") or "–"}
)
end
if forms.comp then
local compbase = mw.ustring.gsub(forms.comp.pred, "ער$", "")
str = str
.. gt.getRow({'!colspan="6"', "Komparativ"})
.. caseHeader()
.. caseRows(
{
nom = showForm(compbase .. "ערער", "erer"),
acc = showForm(compbase .. "ערן", "ern"),
dat = showForm(compbase .. "ערן", "ern")
},
{
nom = showForm(compbase .. "ער", "er"),
acc = showForm(compbase .. "ער", "er"),
dat = showForm(compbase .. "ער", "er")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערן", "ern")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערער", "erer")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערע", "ere")
}
)
end
if forms.sup then
local supbase = mw.ustring.gsub(forms.sup.pred, "סט$", "")
str = str
.. gt.getRow({'!colspan="6"', "Superlativ"})
.. caseHeader()
.. caseRows(
{
nom = showForm(supbase .. "סטער", "ster"),
acc = showForm(supbase .. "סטן", "stn"),
dat = showForm(supbase .. "סטן", "stn")
},
{
nom = showForm(supbase .. "סט", "st"),
acc = showForm(supbase .. "סט", "st"),
dat = showForm(supbase .. "סט", "st")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטן", "stn")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטער", "ster")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטע", "ste")
}
)
end
return str
end
-- Parametrar som mallen för yi-adjektiv får skicka till modulen.
function export._getAcceptedParameters()
return {
"rot", "komp", "sup", "komprot", "suprot", "er", "n", "e", "tr", "mode",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
-- Keep the old positional 1= lemma override as an alias for grundform=.
local lemma = clean(args[1]) or pagename
local forms = getForms(lemma, args)
forms.lemma = lemma
forms.tr = clean(args.tr)
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
}
end
function export._getWikitable(forms, meta)
local containsQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
gt.setLanguage("yi")
local str = gt.getStart(6, "yi", "adj", containsQualityNotice)
str = str .. renderTable(forms.lemma, forms, { tr = forms.tr })
str = str .. gt.getEnd(6, meta.note, meta.as_first_part)
return str
end
function export._getCategories(_forms, _meta)
return ""
end
function export.test(lemma, args)
return getForms(lemma, args or {})
end
return export
216t000jxz5ht0k3pneub8c8dssomr8
4155872
4155869
2026-10-15T21:15:37Z
Frodlekis
762
4155872
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local function clean(x)
if not x or x == "" then
return nil
end
return x
end
local function show(term, tr)
if not term then
return "–"
end
local link = '<div style="vertical-align:top">[[' .. term .. ']]'
if tr == false then
return link .. "</div>"
end
if tr == nil then
-- Undvik automatisk translitterering för semitiska ord.
if not yi_ortografi.is_semitic or not yi_ortografi.is_semitic(term) then
tr = yi_translit.tr(term)
end
end
if not tr or tr == "" then
tr = " "
end
return link .. "<br /><small>" .. tr .. "</small></div>"
end
local function nSuffixTranslit(stem)
local generated = yi_ortografi.add_n_suffix(stem)
local ending = mw.ustring.sub(generated, mw.ustring.len(stem) + 1)
local transliterations = {
["ן"] = "n",
["ען"] = "en",
["עם"] = "em",
}
return transliterations[ending] or "n"
end
local function decline(stem, args)
local forms = {}
forms.pred = stem
forms.er = clean(args.er) or (stem .. "ער")
forms.n = clean(args.n) or yi_ortografi.add_n_suffix(stem)
forms.e = clean(args.e) or (stem .. "ע")
forms.n_tr = nSuffixTranslit(stem)
return forms
end
local function getForms(lemma, args, templateMode)
local forms = {}
local rot = clean(args.rot) or lemma
local stem = yi_ortografi.finalToMedial(rot)
forms.pos = decline(stem, args)
forms.pos.pred = rot
local comp = clean(args.komp)
local sup = clean(args.sup)
local komprot = clean(args.komprot)
local suprot = clean(args.suprot)
if clean(args.mode) == "nocomp" or templateMode == "nocomp" then
return forms
end
if comp then
forms.comp = { pred = comp }
elseif komprot then
forms.comp = { pred = komprot .. "ער" }
else
forms.comp = { pred = stem .. "ער" }
end
if sup then
forms.sup = { pred = sup }
else
local base = suprot or komprot or stem
base = mw.ustring.gsub(base, "ס$", "")
forms.sup = { pred = base .. "סט" }
end
return forms
end
local function caseHeader()
return gt.getRow(
{'!', ""},
{'!colspan="4"', "Singular"},
{'!rowspan="2"', "Plural"}
)
.. gt.getRow(
{'!', "Kasus"},
{'!', "Maskulinum"},
{'!', "Neutrum obestämd"},
{'!', "Neutrum bestämd"},
{'!', "Femininum"}
)
end
local function caseRows(mask, neutInd, neutDef, fem, plur)
return gt.getRow(
{'!', "Nominativ"},
{'|', mask.nom},
{'|', neutInd.nom},
{'|', neutDef.nom},
{'|', fem.nom},
{'|', plur.nom}
)
.. gt.getRow(
{'!', "Ackusativ"},
{'|', mask.acc},
{'|', neutInd.acc},
{'|', neutDef.acc},
{'|', fem.acc},
{'|', plur.acc}
)
.. gt.getRow(
{'!', "Dativ"},
{'|', mask.dat},
{'|', neutInd.dat},
{'|', neutDef.dat},
{'|', fem.dat},
{'|', plur.dat}
)
end
local function renderTable(lemma, forms, args)
local trRoot = clean(args.tr)
local function showForm(term, ending)
if trRoot == "-" then
return show(term, false)
elseif trRoot then
return show(term, trRoot .. (ending or ""))
end
return show(term)
end
local str = ""
str = str
.. gt.getRow({'!colspan="6"', "Böjning av ''[[" .. lemma .. "]]''"})
.. gt.getRow({'!colspan="6" class="main"', "Attributiva former"})
.. caseHeader()
.. caseRows(
{
nom = showForm(forms.pos.er, "er"),
acc = showForm(forms.pos.n, forms.pos.n_tr),
dat = showForm(forms.pos.n, forms.pos.n_tr)
},
{
nom = showForm(forms.pos.pred, ""),
acc = showForm(forms.pos.pred, ""),
dat = showForm(forms.pos.pred, "")
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.n, forms.pos.n_tr)
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.er, "er")
},
{
nom = showForm(forms.pos.e, "e"),
acc = showForm(forms.pos.e, "e"),
dat = showForm(forms.pos.e, "e")
}
)
if forms.comp or forms.sup then
str = str
.. gt.getRow({'!colspan="6" class="main"', "Komparation"})
.. gt.getRow(
{'!colspan="2"', "Positiv"},
{'!colspan="2"', "Komparativ"},
{'!colspan="2"', "Superlativ"}
)
.. gt.getRow(
{'|colspan="2"', showForm(forms.pos.pred, "")},
{'|colspan="2"', forms.comp and showForm(forms.comp.pred, "er") or "–"},
{'|colspan="2"', forms.sup and showForm(forms.sup.pred, "st") or "–"}
)
end
if forms.comp then
local compbase = mw.ustring.gsub(forms.comp.pred, "ער$", "")
str = str
.. gt.getRow({'!colspan="6"', "Komparativ"})
.. caseHeader()
.. caseRows(
{
nom = showForm(compbase .. "ערער", "erer"),
acc = showForm(compbase .. "ערן", "ern"),
dat = showForm(compbase .. "ערן", "ern")
},
{
nom = showForm(compbase .. "ער", "er"),
acc = showForm(compbase .. "ער", "er"),
dat = showForm(compbase .. "ער", "er")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערן", "ern")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערער", "erer")
},
{
nom = showForm(compbase .. "ערע", "ere"),
acc = showForm(compbase .. "ערע", "ere"),
dat = showForm(compbase .. "ערע", "ere")
}
)
end
if forms.sup then
local supbase = mw.ustring.gsub(forms.sup.pred, "סט$", "")
str = str
.. gt.getRow({'!colspan="6"', "Superlativ"})
.. caseHeader()
.. caseRows(
{
nom = showForm(supbase .. "סטער", "ster"),
acc = showForm(supbase .. "סטן", "stn"),
dat = showForm(supbase .. "סטן", "stn")
},
{
nom = showForm(supbase .. "סט", "st"),
acc = showForm(supbase .. "סט", "st"),
dat = showForm(supbase .. "סט", "st")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטן", "stn")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטער", "ster")
},
{
nom = showForm(supbase .. "סטע", "ste"),
acc = showForm(supbase .. "סטע", "ste"),
dat = showForm(supbase .. "סטע", "ste")
}
)
end
return str
end
-- Parametrar som mallen för yi-adjektiv får skicka till modulen.
function export._getAcceptedParameters()
return {
"rot", "komp", "sup", "komprot", "suprot", "er", "n", "e", "tr", "mode",
}
end
function export._getForms(pagename, templatename, args, _meta, _format)
-- Keep the old positional 1= lemma override as an alias for grundform=.
local lemma = clean(args[1]) or pagename
local templateMode = templatename == "yi-adj-okomp" and "nocomp" or nil
local forms = getForms(lemma, args, templateMode)
forms.lemma = lemma
forms.tr = clean(args.tr)
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
}
end
function export._getWikitable(forms, meta)
local containsQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
gt.setLanguage("yi")
local str = gt.getStart(6, "yi", "adj", containsQualityNotice)
str = str .. renderTable(forms.lemma, forms, { tr = forms.tr })
str = str .. gt.getEnd(6, meta.note, meta.as_first_part)
return str
end
function export._getCategories(_forms, _meta)
return ""
end
function export.test(lemma, args)
return getForms(lemma, args or {})
end
return export
tcauudjx9ltxupvcaktv8z213zxhzja
Mall:yi-adj
10
1069443
4155870
4154416
2026-10-15T21:13:21Z
Frodlekis
762
4155870
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Adjektiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-adj|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|adj}}
</includeonly>
db1cp8iaesrtw68fksbz4259xng6940
Mall:yi-adj-okomp
10
1069470
4155871
4154420
2026-10-15T21:15:12Z
Frodlekis
762
4155871
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Adjektiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-adj|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|adj}}
</includeonly>
db1cp8iaesrtw68fksbz4259xng6940
Mall:yi-subst-m-er
10
1069490
4155824
4154762
2026-10-15T20:24:34Z
Frodlekis
762
4155824
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Modul:yi-subst
828
1069500
4155822
4155173
2026-10-15T20:17:11Z
Frodlekis
762
4155822
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local OMITTED = "__UTELÄMNAD__"
local pluralEndings = {
im = { yi = "ים", tr = "im" },
em = { yi = "ים", tr = "em" },
s = { yi = "ס", tr = "s" },
er = { yi = "ער", tr = "er" },
n = { yi = "ן", tr = "n" },
en = { yi = "ען", tr = "en" },
kh = { yi = "ך", tr = "kh" },
ekh = { yi = "עך", tr = "ekh" },
}
local endingTransliterations = {}
for _, ending in pairs(pluralEndings) do
endingTransliterations[ending.yi] = ending.tr
end
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function getEnding(value)
if not value or value == "" then
return nil, nil
end
local known = pluralEndings[value]
if known then
return known.yi, known.tr
end
local transliteration = endingTransliterations[value] or yi_translit.tr(value)
return value, transliteration
end
local function autoTransliterate(term)
if yi_ortografi.is_semitic and yi_ortografi.is_semitic(term) then
return nil
end
return yi_translit.tr(term)
end
local function renderCell(term, trRoot, endingTr, fullForm, transliterationOverride, transliterationStem)
if not term or term == "" then
return "–"
end
local cell = '<div style="vertical-align:top">[[' .. term .. ']]'
local transliteration
if transliterationOverride and transliterationOverride ~= "" then
transliteration = transliterationOverride
elseif trRoot == OMITTED then
return cell .. "</div>"
elseif fullForm and endingTr and transliterationStem then
transliteration = transliterationStem .. endingTr
elseif trRoot == "" then
transliteration = autoTransliterate(term)
elseif fullForm and endingTr then
transliteration = trRoot .. endingTr
elseif fullForm then
transliteration = autoTransliterate(term)
else
transliteration = trRoot .. (endingTr or "")
end
if not transliteration or transliteration == "" then
transliteration = " "
end
return cell .. "<br /><small>" .. transliteration .. "</small></div>"
end
local function makeForms(lemma, args)
local singular = clean(args[1]) or lemma
-- 2= is the complete plural form.
local plural = clean(args[2])
local fullPlural = plural ~= nil
-- pluraländelse= supplies the generated plural ending and its transliteration.
local suffixYi, suffixTr = getEnding(clean(args["pluraländelse"]))
suffixTr = clean(args["pluraltr"]) or suffixTr
if not plural and suffixYi then
local pluralStem = yi_ortografi.finalToMedial(singular)
plural = pluralStem .. suffixYi
end
local trRoot = args.tr
if trRoot == nil then
trRoot = OMITTED
end
local pluralTrRoot = trRoot
if trRoot == "" then
pluralTrRoot = autoTransliterate(singular)
end
local genderNames = {
m = "Maskulinum",
f = "Femininum",
n = "Neutrum",
}
local gender = genderNames[args.gen] or genderNames.m
return {
lemma = lemma,
singular = singular,
plural = plural,
fullPlural = fullPlural,
suffixTr = suffixTr,
trRoot = trRoot,
pluralTrRoot = pluralTrRoot,
pluralTrOverride = clean(args["tr2"]),
gender = gender,
countable = args.countable ~= "no",
meaning = clean(args["betydelser"]),
note = clean(args["not"]),
prefix = clean(args["förled"]),
}
end
local function renderRows(forms)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]"
if forms.meaning then
title = title .. " " .. forms.meaning
end
title = title .. "''"
if forms.countable then
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, ""),
forms.plural and renderCell(
forms.plural,
forms.trRoot,
forms.suffixTr,
forms.fullPlural,
forms.pluralTrOverride,
forms.pluralTrRoot
) or "–"
)
end
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, "")
)
end
local function renderTable(lemma, args)
local forms = makeForms(lemma, args)
local columnCount = forms.countable and 3 or 2
local factValue = clean(args["fakta"])
local hasQualityNotice = factValue ~= nil and factValue ~= "X"
gt.setLanguage("yi")
local rows = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
rows = rows .. renderRows(forms)
if forms.note then
return rows .. gt.getEnd(columnCount, forms.note, forms.prefix)
end
return rows .. "|}"
end
-- Legacy entry point retained while callers are migrated to the grammar interface.
function export.getWikitext(frame)
local args = frame.args
local lemma = args.lemma or mw.title.getCurrentTitle().text
return renderTable(lemma, args)
end
function export._getAcceptedParameters()
return {
[0] = 2,
"gen", "countable", "pluraländelse", "pluraltr", "tr", "tr2",
"betydelser", "fakta", "förled", "not",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
return makeForms(pagename, args)
end
function export._getMeta(pagename, templatename, args)
local factValue = clean(args["fakta"])
return {
numbered_cells = args.countable == "no" and 1 or 2,
named_cells = {},
templatename = templatename,
pagename = pagename,
quality_notice = factValue ~= nil and factValue ~= "X",
}
end
function export._getWikitable(forms, meta)
local columnCount = forms.countable and 3 or 2
gt.setLanguage("yi")
local str = gt.getStart(columnCount, meta.templatename, not not meta.quality_notice, meta.pagename, meta.width)
str = str .. renderRows(forms)
if forms.note then
str = str .. gt.getEnd(columnCount, forms.note, forms.prefix)
else
str = str .. gt.getEnd()
end
return str
end
function export._getCategories(_forms, _meta)
return ""
end
function export.test(lemma, args)
return makeForms(lemma, args or {})
end
return export
6x072tk1s4wp8y6x0i3jr94qf0x2hkg
4155825
4155822
2026-10-15T20:34:45Z
Frodlekis
762
4155825
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local OMITTED = "__UTELÄMNAD__"
local pluralEndings = {
im = { yi = "ים", tr = "im" },
em = { yi = "ים", tr = "em" },
s = { yi = "ס", tr = "s" },
er = { yi = "ער", tr = "er" },
n = { yi = "ן", tr = "n" },
en = { yi = "ען", tr = "en" },
kh = { yi = "ך", tr = "kh" },
ekh = { yi = "עך", tr = "ekh" },
}
local endingTransliterations = {}
for _, ending in pairs(pluralEndings) do
endingTransliterations[ending.yi] = ending.tr
end
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function getEnding(value)
if not value or value == "" then
return nil, nil
end
local known = pluralEndings[value]
if known then
return known.yi, known.tr
end
local transliteration = endingTransliterations[value] or yi_translit.tr(value)
return value, transliteration
end
local function autoTransliterate(term)
if yi_ortografi.is_semitic and yi_ortografi.is_semitic(term) then
return nil
end
return yi_translit.tr(term)
end
local function renderCell(term, trRoot, endingTr, fullForm, transliterationOverride, transliterationStem)
if not term or term == "" then
return "–"
end
local cell = '<div style="vertical-align:top">[[' .. term .. ']]'
local transliteration
if transliterationOverride and transliterationOverride ~= "" then
transliteration = transliterationOverride
elseif trRoot == OMITTED then
return cell .. "</div>"
elseif fullForm and endingTr and transliterationStem then
transliteration = transliterationStem .. endingTr
elseif trRoot == "" then
transliteration = autoTransliterate(term)
elseif fullForm and endingTr then
transliteration = trRoot .. endingTr
elseif fullForm then
transliteration = autoTransliterate(term)
else
transliteration = trRoot .. (endingTr or "")
end
if not transliteration or transliteration == "" then
transliteration = " "
end
return cell .. "<br /><small>" .. transliteration .. "</small></div>"
end
local function makeForms(lemma, args, meta)
local singular = clean(args[1]) or lemma
-- 2= is the complete plural form.
local plural = clean(args[2])
local fullPlural = plural ~= nil
-- pluraländelse= supplies the generated plural ending and its transliteration.
local suffixYi, suffixTr = getEnding((meta and meta.plural_ending) or clean(args["pluraländelse"]))
suffixTr = clean(args["pluraltr"]) or suffixTr
if not plural and suffixYi then
local pluralStem = yi_ortografi.finalToMedial(singular)
plural = pluralStem .. suffixYi
end
local trRoot = args.tr
if trRoot == nil then
trRoot = meta and meta.tr_default
if trRoot == nil then
trRoot = OMITTED
end
end
local pluralTrRoot = trRoot
if trRoot == "" then
pluralTrRoot = autoTransliterate(singular)
end
local genderNames = {
m = "Maskulinum",
f = "Femininum",
n = "Neutrum",
}
local genderCode = (meta and meta.gender) or clean(args.gen)
local gender = genderNames[genderCode] or genderNames.m
local countable = args.countable ~= "no"
if meta and meta.countable ~= nil then
countable = meta.countable
end
return {
lemma = lemma,
singular = singular,
plural = plural,
fullPlural = fullPlural,
suffixTr = suffixTr,
trRoot = trRoot,
pluralTrRoot = pluralTrRoot,
pluralTrOverride = clean(args["tr2"]),
gender = gender,
countable = countable,
meaning = clean(args["betydelser"]),
note = clean(args["not"]),
prefix = clean(args["förled"]),
}
end
local function renderRows(forms)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]"
if forms.meaning then
title = title .. " " .. forms.meaning
end
title = title .. "''"
if forms.countable then
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, ""),
forms.plural and renderCell(
forms.plural,
forms.trRoot,
forms.suffixTr,
forms.fullPlural,
forms.pluralTrOverride,
forms.pluralTrRoot
) or "–"
)
end
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, "")
)
end
local function renderTable(lemma, args)
local forms = makeForms(lemma, args)
local columnCount = forms.countable and 3 or 2
local factValue = clean(args["fakta"])
local hasQualityNotice = factValue ~= nil and factValue ~= "X"
gt.setLanguage("yi")
local rows = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
rows = rows .. renderRows(forms)
if forms.note then
return rows .. gt.getEnd(columnCount, forms.note, forms.prefix)
end
return rows .. "|}"
end
-- Route the migrated template through Modul:grammar. Older templates that
-- still pass lemma= directly retain the previous call path during migration.
local grammarGetWikitext = export.getWikitext
function export.getWikitext(frame)
if frame.args.lemma == nil then
return grammarGetWikitext(frame)
end
local args = frame.args
local lemma = args.lemma or mw.title.getCurrentTitle().text
return renderTable(lemma, args)
end
function export._getAcceptedParameters()
return {
[0] = 2,
"gen", "countable", "pluraländelse", "pluraltr", "tr", "tr2",
}
end
function export._getForms(pagename, _templatename, args, meta, _format)
return makeForms(pagename, args, meta)
end
function export._getMeta(pagename, templatename, args)
-- Template-specific defaults belong in metadata because the grammar base
-- reads parameters from the calling template, not from #invoke arguments.
local templateDefaults = {
["yi-subst-m-er"] = {
gender = "m",
countable = true,
plural_ending = "ער",
tr_default = "",
},
}
local defaults = templateDefaults[templatename] or {}
local countable = defaults.countable
if countable == nil then
countable = args.countable ~= "no"
end
return {
numbered_cells = countable and 2 or 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
gender = defaults.gender,
countable = countable,
plural_ending = defaults.plural_ending,
tr_default = defaults.tr_default,
}
end
function export._getWikitable(forms, meta)
local columnCount = forms.countable and 3 or 2
gt.setLanguage("yi")
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local str = gt.getStart(columnCount, meta.templatename, hasQualityNotice, meta.pagename, meta.width)
str = str .. renderRows(forms)
return str .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
1q0v50zgcyakq6vvx1otqrbxhocz89x
4155826
4155825
2026-10-15T20:35:45Z
Frodlekis
762
4155826
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local OMITTED = "__UTELÄMNAD__"
local pluralEndings = {
im = { yi = "ים", tr = "im" },
em = { yi = "ים", tr = "em" },
s = { yi = "ס", tr = "s" },
er = { yi = "ער", tr = "er" },
n = { yi = "ן", tr = "n" },
en = { yi = "ען", tr = "en" },
kh = { yi = "ך", tr = "kh" },
ekh = { yi = "עך", tr = "ekh" },
}
local endingTransliterations = {}
for _, ending in pairs(pluralEndings) do
endingTransliterations[ending.yi] = ending.tr
end
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function getEnding(value)
if not value or value == "" then
return nil, nil
end
local known = pluralEndings[value]
if known then
return known.yi, known.tr
end
local transliteration = endingTransliterations[value] or yi_translit.tr(value)
return value, transliteration
end
local function autoTransliterate(term)
if yi_ortografi.is_semitic and yi_ortografi.is_semitic(term) then
return nil
end
return yi_translit.tr(term)
end
local function renderCell(term, trRoot, endingTr, fullForm, transliterationOverride, transliterationStem)
if not term or term == "" then
return "–"
end
local cell = '<div style="vertical-align:top">[[' .. term .. ']]'
local transliteration
if transliterationOverride and transliterationOverride ~= "" then
transliteration = transliterationOverride
elseif trRoot == OMITTED then
return cell .. "</div>"
elseif fullForm and endingTr and transliterationStem then
transliteration = transliterationStem .. endingTr
elseif trRoot == "" then
transliteration = autoTransliterate(term)
elseif fullForm and endingTr then
transliteration = trRoot .. endingTr
elseif fullForm then
transliteration = autoTransliterate(term)
else
transliteration = trRoot .. (endingTr or "")
end
if not transliteration or transliteration == "" then
transliteration = " "
end
return cell .. "<br /><small>" .. transliteration .. "</small></div>"
end
local function makeForms(lemma, args, meta)
local singular = clean(args[1]) or lemma
-- 2= is the complete plural form.
local plural = clean(args[2])
local fullPlural = plural ~= nil
-- pluraländelse= supplies the generated plural ending and its transliteration.
local suffixYi, suffixTr = getEnding((meta and meta.plural_ending) or clean(args["pluraländelse"]))
suffixTr = clean(args["pluraltr"]) or suffixTr
if not plural and suffixYi then
local pluralStem = yi_ortografi.finalToMedial(singular)
plural = pluralStem .. suffixYi
end
local trRoot = args.tr
if trRoot == nil then
trRoot = meta and meta.tr_default
if trRoot == nil then
trRoot = OMITTED
end
end
local pluralTrRoot = trRoot
if trRoot == "" then
pluralTrRoot = autoTransliterate(singular)
end
local genderNames = {
m = "Maskulinum",
f = "Femininum",
n = "Neutrum",
}
local genderCode = (meta and meta.gender) or clean(args.gen)
local gender = genderNames[genderCode] or genderNames.m
local countable = args.countable ~= "no"
if meta and meta.countable ~= nil then
countable = meta.countable
end
return {
lemma = lemma,
singular = singular,
plural = plural,
fullPlural = fullPlural,
suffixTr = suffixTr,
trRoot = trRoot,
pluralTrRoot = pluralTrRoot,
pluralTrOverride = clean(args["tr2"]),
gender = gender,
countable = countable,
meaning = clean(args["betydelser"]),
note = clean(args["not"]),
prefix = clean(args["förled"]),
}
end
local function renderRows(forms)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]"
if forms.meaning then
title = title .. " " .. forms.meaning
end
title = title .. "''"
if forms.countable then
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, ""),
forms.plural and renderCell(
forms.plural,
forms.trRoot,
forms.suffixTr,
forms.fullPlural,
forms.pluralTrOverride,
forms.pluralTrRoot
) or "–"
)
end
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, "")
)
end
local function renderTable(lemma, args)
local forms = makeForms(lemma, args)
local columnCount = forms.countable and 3 or 2
local factValue = clean(args["fakta"])
local hasQualityNotice = factValue ~= nil and factValue ~= "X"
gt.setLanguage("yi")
local rows = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
rows = rows .. renderRows(forms)
if forms.note then
return rows .. gt.getEnd(columnCount, forms.note, forms.prefix)
end
return rows .. "|}"
end
-- Route the migrated template through Modul:grammar. Older templates that
-- still pass lemma= directly retain the previous call path during migration.
local grammarGetWikitext = export.getWikitext
function export.getWikitext(frame)
if frame.args.lemma == nil then
return grammarGetWikitext(frame)
end
local args = frame.args
local lemma = args.lemma or mw.title.getCurrentTitle().text
return renderTable(lemma, args)
end
function export._getAcceptedParameters()
return {
[0] = 2,
"gen", "countable", "pluraländelse", "pluraltr", "tr", "tr2",
}
end
function export._getForms(pagename, _templatename, args, meta, _format)
return makeForms(pagename, args, meta)
end
function export._getMeta(pagename, templatename, args)
-- Template-specific defaults belong in metadata because the grammar base
-- reads parameters from the calling template, not from #invoke arguments.
local templateDefaults = {
["yi-subst-m-er"] = {
gender = "m",
countable = true,
plural_ending = "ער",
tr_default = "",
},
}
local defaults = templateDefaults[templatename] or {}
local countable = defaults.countable
if countable == nil then
countable = args.countable ~= "no"
end
return {
numbered_cells = countable and 2 or 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
gender = defaults.gender,
countable = countable,
plural_ending = defaults.plural_ending,
tr_default = defaults.tr_default,
}
end
function export._getWikitable(forms, meta)
local columnCount = forms.countable and 3 or 2
gt.setLanguage("yi")
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local str = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
str = str .. renderRows(forms)
return str .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
nvilwgnuiueb283raucm1nb10qp8cw6
4155828
4155826
2026-10-15T20:38:32Z
Frodlekis
762
4155828
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local OMITTED = "__UTELÄMNAD__"
local pluralEndings = {
im = { yi = "ים", tr = "im" },
em = { yi = "ים", tr = "em" },
s = { yi = "ס", tr = "s" },
er = { yi = "ער", tr = "er" },
n = { yi = "ן", tr = "n" },
en = { yi = "ען", tr = "en" },
kh = { yi = "ך", tr = "kh" },
ekh = { yi = "עך", tr = "ekh" },
}
local endingTransliterations = {}
for _, ending in pairs(pluralEndings) do
endingTransliterations[ending.yi] = ending.tr
end
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function getEnding(value)
if not value or value == "" then
return nil, nil
end
local known = pluralEndings[value]
if known then
return known.yi, known.tr
end
local transliteration = endingTransliterations[value] or yi_translit.tr(value)
return value, transliteration
end
local function autoTransliterate(term)
if yi_ortografi.is_semitic and yi_ortografi.is_semitic(term) then
return nil
end
return yi_translit.tr(term)
end
local function renderCell(term, trRoot, endingTr, fullForm, transliterationOverride, transliterationStem)
if not term or term == "" then
return "–"
end
local cell = '<div style="vertical-align:top">[[' .. term .. ']]'
local transliteration
if transliterationOverride and transliterationOverride ~= "" then
transliteration = transliterationOverride
elseif trRoot == OMITTED then
return cell .. "</div>"
elseif fullForm and endingTr and transliterationStem then
transliteration = transliterationStem .. endingTr
elseif trRoot == "" then
transliteration = autoTransliterate(term)
elseif fullForm and endingTr then
transliteration = trRoot .. endingTr
elseif fullForm then
transliteration = autoTransliterate(term)
else
transliteration = trRoot .. (endingTr or "")
end
if not transliteration or transliteration == "" then
transliteration = " "
end
return cell .. "<br /><small>" .. transliteration .. "</small></div>"
end
local function makeForms(lemma, args, meta)
local singular = clean(args[1]) or lemma
-- 2= is the complete plural form.
local plural = clean(args[2])
local fullPlural = plural ~= nil
-- pluraländelse= supplies the generated plural ending and its transliteration.
local suffixYi, suffixTr = getEnding((meta and meta.plural_ending) or clean(args["pluraländelse"]))
suffixTr = clean(args["pluraltr"]) or suffixTr
if not plural and suffixYi then
local pluralStem = yi_ortografi.finalToMedial(singular)
plural = pluralStem .. suffixYi
end
local trRoot = args.tr
if trRoot == nil then
trRoot = meta and meta.tr_default
if trRoot == nil then
trRoot = OMITTED
end
end
local pluralTrRoot = trRoot
if trRoot == "" then
pluralTrRoot = autoTransliterate(singular)
end
local genderNames = {
m = "Maskulinum",
f = "Femininum",
n = "Neutrum",
}
local genderCode = (meta and meta.gender) or clean(args.gen)
local gender = genderNames[genderCode] or genderNames.m
local countable = args.countable ~= "no"
if meta and meta.countable ~= nil then
countable = meta.countable
end
return {
lemma = lemma,
singular = singular,
plural = plural,
fullPlural = fullPlural,
suffixTr = suffixTr,
trRoot = trRoot,
pluralTrRoot = pluralTrRoot,
pluralTrOverride = clean(args["tr2"]),
gender = gender,
countable = countable,
meaning = clean(args["betydelser"]),
note = clean(args["not"]),
prefix = clean(args["förled"]),
}
end
local function renderRows(forms)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]"
if forms.meaning then
title = title .. " " .. forms.meaning
end
title = title .. "''"
if forms.countable then
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, ""),
forms.plural and renderCell(
forms.plural,
forms.trRoot,
forms.suffixTr,
forms.fullPlural,
forms.pluralTrOverride,
forms.pluralTrRoot
) or "–"
)
end
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, "")
)
end
local function renderTable(lemma, args)
local forms = makeForms(lemma, args)
local columnCount = forms.countable and 3 or 2
local factValue = clean(args["fakta"])
local hasQualityNotice = factValue ~= nil and factValue ~= "X"
gt.setLanguage("yi")
local rows = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
rows = rows .. renderRows(forms)
if forms.note then
return rows .. gt.getEnd(columnCount, forms.note, forms.prefix)
end
return rows .. "|}"
end
-- Route the migrated template through Modul:grammar. Older templates that
-- still pass lemma= directly retain the previous call path during migration.
local grammarGetWikitext = export.getWikitext
function export.getWikitext(frame)
if frame.args.lemma == nil then
return grammarGetWikitext(frame)
end
local args = frame.args
local lemma = args.lemma or mw.title.getCurrentTitle().text
return renderTable(lemma, args)
end
function export._getAcceptedParameters()
return {
[0] = 2,
"gen", "countable", "pluraländelse", "pluraltr", "tr", "tr2",
}
end
function export._getForms(pagename, _templatename, args, meta, _format)
return makeForms(pagename, args, meta)
end
function export._getMeta(pagename, templatename, args)
-- Template-specific defaults belong in metadata because the grammar base
-- reads parameters from the calling template, not from #invoke arguments.
local templateDefaults = {
["yi-subst-m-er"] = {
gender = "m",
countable = true,
plural_ending = "ער",
tr_default = "",
},
["yi-subst-m-en"] = {
gender = "m",
countable = true,
plural_ending = "ען",
tr_default = "",
},
}
local defaults = templateDefaults[templatename] or {}
local countable = defaults.countable
if countable == nil then
countable = args.countable ~= "no"
end
return {
numbered_cells = countable and 2 or 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
gender = defaults.gender,
countable = countable,
plural_ending = defaults.plural_ending,
tr_default = defaults.tr_default,
}
end
function export._getWikitable(forms, meta)
local columnCount = forms.countable and 3 or 2
gt.setLanguage("yi")
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local str = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
str = str .. renderRows(forms)
return str .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
dlqp9dvulcumi9klx54eevtkaz7cu50
4155835
4155828
2026-10-15T20:45:49Z
Frodlekis
762
4155835
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local OMITTED = "__UTELÄMNAD__"
local pluralEndings = {
im = { yi = "ים", tr = "im" },
em = { yi = "ים", tr = "em" },
s = { yi = "ס", tr = "s" },
er = { yi = "ער", tr = "er" },
n = { yi = "ן", tr = "n" },
en = { yi = "ען", tr = "en" },
kh = { yi = "ך", tr = "kh" },
ekh = { yi = "עך", tr = "ekh" },
}
local endingTransliterations = {}
for _, ending in pairs(pluralEndings) do
endingTransliterations[ending.yi] = ending.tr
end
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function getEnding(value)
if not value or value == "" then
return nil, nil
end
local known = pluralEndings[value]
if known then
return known.yi, known.tr
end
local transliteration = endingTransliterations[value] or yi_translit.tr(value)
return value, transliteration
end
local function autoTransliterate(term)
if yi_ortografi.is_semitic and yi_ortografi.is_semitic(term) then
return nil
end
return yi_translit.tr(term)
end
local function renderCell(term, trRoot, endingTr, fullForm, transliterationOverride, transliterationStem)
if not term or term == "" then
return "–"
end
local cell = '<div style="vertical-align:top">[[' .. term .. ']]'
local transliteration
if transliterationOverride and transliterationOverride ~= "" then
transliteration = transliterationOverride
elseif trRoot == OMITTED then
return cell .. "</div>"
elseif fullForm and endingTr and transliterationStem then
transliteration = transliterationStem .. endingTr
elseif trRoot == "" then
transliteration = autoTransliterate(term)
elseif fullForm and endingTr then
transliteration = trRoot .. endingTr
elseif fullForm then
transliteration = autoTransliterate(term)
else
transliteration = trRoot .. (endingTr or "")
end
if not transliteration or transliteration == "" then
transliteration = " "
end
return cell .. "<br /><small>" .. transliteration .. "</small></div>"
end
local function makeForms(lemma, args, meta)
local singular = clean(args[1]) or lemma
-- 2= is the complete plural form.
local plural = clean(args[2])
local fullPlural = plural ~= nil
-- pluraländelse= supplies the generated plural ending and its transliteration.
local suffixYi, suffixTr = getEnding((meta and meta.plural_ending) or clean(args["pluraländelse"]))
suffixTr = (meta and meta.plural_ending_tr) or clean(args["pluraltr"]) or suffixTr
if not plural and suffixYi then
local pluralStem = yi_ortografi.finalToMedial(singular)
plural = pluralStem .. suffixYi
end
local trRoot = args.tr
if trRoot == nil then
trRoot = meta and meta.tr_default
if trRoot == nil then
trRoot = OMITTED
end
end
local pluralTrRoot = trRoot
if trRoot == "" then
pluralTrRoot = autoTransliterate(singular)
end
local genderNames = {
m = "Maskulinum",
f = "Femininum",
n = "Neutrum",
}
local genderCode = (meta and meta.gender) or clean(args.gen)
local gender = genderNames[genderCode] or genderNames.m
local countable = args.countable ~= "no"
if meta and meta.countable ~= nil then
countable = meta.countable
end
return {
lemma = lemma,
singular = singular,
plural = plural,
fullPlural = fullPlural,
suffixTr = suffixTr,
trRoot = trRoot,
pluralTrRoot = pluralTrRoot,
pluralTrOverride = clean(args["tr2"]),
gender = gender,
countable = countable,
meaning = clean(args["betydelser"]),
note = clean(args["not"]),
prefix = clean(args["förled"]),
}
end
local function renderRows(forms)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]"
if forms.meaning then
title = title .. " " .. forms.meaning
end
title = title .. "''"
if forms.countable then
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, ""),
forms.plural and renderCell(
forms.plural,
forms.trRoot,
forms.suffixTr,
forms.fullPlural,
forms.pluralTrOverride,
forms.pluralTrRoot
) or "–"
)
end
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, "")
)
end
local function renderTable(lemma, args)
local forms = makeForms(lemma, args)
local columnCount = forms.countable and 3 or 2
local factValue = clean(args["fakta"])
local hasQualityNotice = factValue ~= nil and factValue ~= "X"
gt.setLanguage("yi")
local rows = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
rows = rows .. renderRows(forms)
if forms.note then
return rows .. gt.getEnd(columnCount, forms.note, forms.prefix)
end
return rows .. "|}"
end
-- Route the migrated template through Modul:grammar. Older templates that
-- still pass lemma= directly retain the previous call path during migration.
local grammarGetWikitext = export.getWikitext
function export.getWikitext(frame)
if frame.args.lemma == nil then
return grammarGetWikitext(frame)
end
local args = frame.args
local lemma = args.lemma or mw.title.getCurrentTitle().text
return renderTable(lemma, args)
end
function export._getAcceptedParameters()
return {
[0] = 2,
"gen", "countable", "pluraländelse", "pluraltr", "tr", "tr2",
}
end
function export._getForms(pagename, _templatename, args, meta, _format)
return makeForms(pagename, args, meta)
end
function export._getMeta(pagename, templatename, args)
-- Template-specific defaults belong in metadata because the grammar base
-- reads parameters from the calling template, not from #invoke arguments.
local templateDefaults = {
["yi-subst-m-er"] = {
gender = "m",
countable = true,
plural_ending = "ער",
tr_default = "",
},
["yi-subst-m-en"] = {
gender = "m",
countable = true,
plural_ending = "ען",
tr_default = "",
},
["yi-subst-m-em"] = {
gender = "m",
countable = true,
plural_ending = "ים",
plural_ending_tr = "em",
tr_default = "",
},
}
local defaults = templateDefaults[templatename] or {}
local countable = defaults.countable
if countable == nil then
countable = args.countable ~= "no"
end
return {
numbered_cells = countable and 2 or 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
gender = defaults.gender,
countable = countable,
plural_ending = defaults.plural_ending,
plural_ending_tr = defaults.plural_ending_tr,
tr_default = defaults.tr_default,
}
end
function export._getWikitable(forms, meta)
local columnCount = forms.countable and 3 or 2
gt.setLanguage("yi")
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local str = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
str = str .. renderRows(forms)
return str .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
e2o2owjg48lmt67ay7loi94t7ax5fzq
4155839
4155835
2026-10-15T20:49:50Z
Frodlekis
762
4155839
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local OMITTED = "__UTELÄMNAD__"
local pluralEndings = {
im = { yi = "ים", tr = "im" },
em = { yi = "ים", tr = "em" },
s = { yi = "ס", tr = "s" },
er = { yi = "ער", tr = "er" },
n = { yi = "ן", tr = "n" },
en = { yi = "ען", tr = "en" },
kh = { yi = "ך", tr = "kh" },
ekh = { yi = "עך", tr = "ekh" },
}
local endingTransliterations = {}
for _, ending in pairs(pluralEndings) do
endingTransliterations[ending.yi] = ending.tr
end
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function getEnding(value)
if not value or value == "" then
return nil, nil
end
local known = pluralEndings[value]
if known then
return known.yi, known.tr
end
local transliteration = endingTransliterations[value] or yi_translit.tr(value)
return value, transliteration
end
local function autoTransliterate(term)
if yi_ortografi.is_semitic and yi_ortografi.is_semitic(term) then
return nil
end
return yi_translit.tr(term)
end
local function renderCell(term, trRoot, endingTr, fullForm, transliterationOverride, transliterationStem)
if not term or term == "" then
return "–"
end
local cell = '<div style="vertical-align:top">[[' .. term .. ']]'
local transliteration
if transliterationOverride and transliterationOverride ~= "" then
transliteration = transliterationOverride
elseif trRoot == OMITTED then
return cell .. "</div>"
elseif fullForm and endingTr and transliterationStem then
transliteration = transliterationStem .. endingTr
elseif trRoot == "" then
transliteration = autoTransliterate(term)
elseif fullForm and endingTr then
transliteration = trRoot .. endingTr
elseif fullForm then
transliteration = autoTransliterate(term)
else
transliteration = trRoot .. (endingTr or "")
end
if not transliteration or transliteration == "" then
transliteration = " "
end
return cell .. "<br /><small>" .. transliteration .. "</small></div>"
end
local function makeForms(lemma, args, meta)
local singular = clean(args[1]) or lemma
-- 2= is the complete plural form.
local plural = clean(args[2])
local fullPlural = plural ~= nil
-- pluraländelse= supplies the generated plural ending and its transliteration.
local suffixYi, suffixTr = getEnding((meta and meta.plural_ending) or clean(args["pluraländelse"]))
suffixTr = (meta and meta.plural_ending_tr) or clean(args["pluraltr"]) or suffixTr
if not plural and suffixYi then
local pluralStem = yi_ortografi.finalToMedial(singular)
plural = pluralStem .. suffixYi
end
local trRoot = args.tr
if trRoot == nil then
trRoot = meta and meta.tr_default
if trRoot == nil then
trRoot = OMITTED
end
end
local pluralTrRoot = trRoot
if trRoot == "" then
pluralTrRoot = autoTransliterate(singular)
end
local genderNames = {
m = "Maskulinum",
f = "Femininum",
n = "Neutrum",
}
local genderCode = (meta and meta.gender) or clean(args.gen)
local gender = genderNames[genderCode] or genderNames.m
local countable = args.countable ~= "no"
if meta and meta.countable ~= nil then
countable = meta.countable
end
return {
lemma = lemma,
singular = singular,
plural = plural,
fullPlural = fullPlural,
suffixTr = suffixTr,
trRoot = trRoot,
pluralTrRoot = pluralTrRoot,
pluralTrOverride = clean(args["tr2"]),
gender = gender,
countable = countable,
meaning = clean(args["betydelser"]),
note = clean(args["not"]),
prefix = clean(args["förled"]),
}
end
local function renderRows(forms)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]"
if forms.meaning then
title = title .. " " .. forms.meaning
end
title = title .. "''"
if forms.countable then
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, ""),
forms.plural and renderCell(
forms.plural,
forms.trRoot,
forms.suffixTr,
forms.fullPlural,
forms.pluralTrOverride,
forms.pluralTrRoot
) or "–"
)
end
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, "")
)
end
local function renderTable(lemma, args)
local forms = makeForms(lemma, args)
local columnCount = forms.countable and 3 or 2
local factValue = clean(args["fakta"])
local hasQualityNotice = factValue ~= nil and factValue ~= "X"
gt.setLanguage("yi")
local rows = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
rows = rows .. renderRows(forms)
if forms.note then
return rows .. gt.getEnd(columnCount, forms.note, forms.prefix)
end
return rows .. "|}"
end
-- Route the migrated template through Modul:grammar. Older templates that
-- still pass lemma= directly retain the previous call path during migration.
local grammarGetWikitext = export.getWikitext
function export.getWikitext(frame)
if frame.args.lemma == nil then
return grammarGetWikitext(frame)
end
local args = frame.args
local lemma = args.lemma or mw.title.getCurrentTitle().text
return renderTable(lemma, args)
end
function export._getAcceptedParameters()
return {
[0] = 2,
"gen", "countable", "pluraländelse", "pluraltr", "tr", "tr2",
}
end
function export._getForms(pagename, _templatename, args, meta, _format)
return makeForms(pagename, args, meta)
end
function export._getMeta(pagename, templatename, args)
-- Template-specific defaults belong in metadata because the grammar base
-- reads parameters from the calling template, not from #invoke arguments.
local templateDefaults = {
["yi-subst-m-er"] = {
gender = "m",
countable = true,
plural_ending = "ער",
tr_default = "",
},
["yi-subst-m-en"] = {
gender = "m",
countable = true,
plural_ending = "ען",
tr_default = "",
},
["yi-subst-m-em"] = {
gender = "m",
countable = true,
plural_ending = "ים",
plural_ending_tr = "em",
tr_default = "",
},
["yi-subst-m-es"] = {
gender = "m",
countable = true,
plural_ending = "עס",
plural_ending_tr = "es",
tr_default = "",
},
["yi-subst-m-im"] = {
gender = "m",
countable = true,
plural_ending = "ים",
plural_ending_tr = "im",
tr_default = "",
},
["yi-subst-m-n"] = {
gender = "m",
countable = true,
plural_ending = "ן",
plural_ending_tr = "n",
tr_default = "",
},
}
local defaults = templateDefaults[templatename] or {}
local countable = defaults.countable
if countable == nil then
countable = args.countable ~= "no"
end
return {
numbered_cells = countable and 2 or 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
gender = defaults.gender,
countable = countable,
plural_ending = defaults.plural_ending,
plural_ending_tr = defaults.plural_ending_tr,
tr_default = defaults.tr_default,
}
end
function export._getWikitable(forms, meta)
local columnCount = forms.countable and 3 or 2
gt.setLanguage("yi")
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local str = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
str = str .. renderRows(forms)
return str .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
5tfdyjzz606ar3x48jtg179ju9u2yyb
4155846
4155839
2026-10-15T20:54:42Z
Frodlekis
762
4155846
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local OMITTED = "__UTELÄMNAD__"
local pluralEndings = {
im = { yi = "ים", tr = "im" },
em = { yi = "ים", tr = "em" },
s = { yi = "ס", tr = "s" },
er = { yi = "ער", tr = "er" },
n = { yi = "ן", tr = "n" },
en = { yi = "ען", tr = "en" },
kh = { yi = "ך", tr = "kh" },
ekh = { yi = "עך", tr = "ekh" },
}
local endingTransliterations = {}
for _, ending in pairs(pluralEndings) do
endingTransliterations[ending.yi] = ending.tr
end
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function getEnding(value)
if not value or value == "" then
return nil, nil
end
local known = pluralEndings[value]
if known then
return known.yi, known.tr
end
local transliteration = endingTransliterations[value] or yi_translit.tr(value)
return value, transliteration
end
local function autoTransliterate(term)
if yi_ortografi.is_semitic and yi_ortografi.is_semitic(term) then
return nil
end
return yi_translit.tr(term)
end
local function renderCell(term, trRoot, endingTr, fullForm, transliterationOverride, transliterationStem)
if not term or term == "" then
return "–"
end
local cell = '<div style="vertical-align:top">[[' .. term .. ']]'
local transliteration
if transliterationOverride and transliterationOverride ~= "" then
transliteration = transliterationOverride
elseif trRoot == OMITTED then
return cell .. "</div>"
elseif fullForm and endingTr and transliterationStem then
transliteration = transliterationStem .. endingTr
elseif trRoot == "" then
transliteration = autoTransliterate(term)
elseif fullForm and endingTr then
transliteration = trRoot .. endingTr
elseif fullForm then
transliteration = autoTransliterate(term)
else
transliteration = trRoot .. (endingTr or "")
end
if not transliteration or transliteration == "" then
transliteration = " "
end
return cell .. "<br /><small>" .. transliteration .. "</small></div>"
end
local function makeForms(lemma, args, meta)
local singular = clean(args[1]) or lemma
-- 2= is the complete plural form.
local plural = clean(args[2])
local fullPlural = plural ~= nil
-- pluraländelse= supplies the generated plural ending and its transliteration.
local suffixYi, suffixTr = getEnding((meta and meta.plural_ending) or clean(args["pluraländelse"]))
suffixTr = (meta and meta.plural_ending_tr) or clean(args["pluraltr"]) or suffixTr
if not plural and suffixYi then
local pluralStem = yi_ortografi.finalToMedial(singular)
plural = pluralStem .. suffixYi
end
local trRoot = args.tr
if trRoot == nil then
trRoot = meta and meta.tr_default
if trRoot == nil then
trRoot = OMITTED
end
end
local pluralTrRoot = trRoot
if trRoot == "" then
pluralTrRoot = autoTransliterate(singular)
end
local genderNames = {
m = "Maskulinum",
f = "Femininum",
n = "Neutrum",
}
local genderCode = (meta and meta.gender) or clean(args.gen)
local gender = genderNames[genderCode] or genderNames.m
local countable = args.countable ~= "no"
if meta and meta.countable ~= nil then
countable = meta.countable
end
return {
lemma = lemma,
singular = singular,
plural = plural,
fullPlural = fullPlural,
suffixTr = suffixTr,
trRoot = trRoot,
pluralTrRoot = pluralTrRoot,
pluralTrOverride = clean(args["tr2"]),
gender = gender,
countable = countable,
meaning = clean(args["betydelser"]),
note = clean(args["not"]),
prefix = clean(args["förled"]),
}
end
local function renderRows(forms)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]"
if forms.meaning then
title = title .. " " .. forms.meaning
end
title = title .. "''"
if forms.countable then
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, ""),
forms.plural and renderCell(
forms.plural,
forms.trRoot,
forms.suffixTr,
forms.fullPlural,
forms.pluralTrOverride,
forms.pluralTrRoot
) or "–"
)
end
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, "")
)
end
local function renderTable(lemma, args)
local forms = makeForms(lemma, args)
local columnCount = forms.countable and 3 or 2
local factValue = clean(args["fakta"])
local hasQualityNotice = factValue ~= nil and factValue ~= "X"
gt.setLanguage("yi")
local rows = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
rows = rows .. renderRows(forms)
if forms.note then
return rows .. gt.getEnd(columnCount, forms.note, forms.prefix)
end
return rows .. "|}"
end
-- Route the migrated template through Modul:grammar. Older templates that
-- still pass lemma= directly retain the previous call path during migration.
local grammarGetWikitext = export.getWikitext
function export.getWikitext(frame)
if frame.args.lemma == nil then
return grammarGetWikitext(frame)
end
local args = frame.args
local lemma = args.lemma or mw.title.getCurrentTitle().text
return renderTable(lemma, args)
end
function export._getAcceptedParameters()
return {
[0] = 2,
"gen", "countable", "pluraländelse", "pluraltr", "tr", "tr2",
}
end
function export._getForms(pagename, _templatename, args, meta, _format)
return makeForms(pagename, args, meta)
end
function export._getMeta(pagename, templatename, args)
-- Template-specific defaults belong in metadata because the grammar base
-- reads parameters from the calling template, not from #invoke arguments.
local templateDefaults = {
["yi-subst-m-er"] = {
gender = "m",
countable = true,
plural_ending = "ער",
tr_default = "",
},
["yi-subst-m-en"] = {
gender = "m",
countable = true,
plural_ending = "ען",
tr_default = "",
},
["yi-subst-m-em"] = {
gender = "m",
countable = true,
plural_ending = "ים",
plural_ending_tr = "em",
tr_default = "",
},
["yi-subst-m-es"] = {
gender = "m",
countable = true,
plural_ending = "עס",
plural_ending_tr = "es",
tr_default = "",
},
["yi-subst-m-im"] = {
gender = "m",
countable = true,
plural_ending = "ים",
plural_ending_tr = "im",
tr_default = "",
},
["yi-subst-m-n"] = {
gender = "m",
countable = true,
plural_ending = "ן",
plural_ending_tr = "n",
tr_default = "",
},
["yi-subst-m-s"] = {
gender = "m",
countable = true,
plural_ending = "ס",
plural_ending_tr = "s",
tr_default = "",
},
["yi-subst-m-oreg"] = {
gender = "m",
countable = true,
tr_default = "",
},
}
local defaults = templateDefaults[templatename] or {}
local countable = defaults.countable
if countable == nil then
countable = args.countable ~= "no"
end
return {
numbered_cells = countable and 2 or 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
gender = defaults.gender,
countable = countable,
plural_ending = defaults.plural_ending,
plural_ending_tr = defaults.plural_ending_tr,
tr_default = defaults.tr_default,
}
end
function export._getWikitable(forms, meta)
local columnCount = forms.countable and 3 or 2
gt.setLanguage("yi")
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local str = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
str = str .. renderRows(forms)
return str .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
7pj02ue2iiuum9nwn8qgpd3ups9mpsa
4155852
4155846
2026-10-15T21:00:35Z
Frodlekis
762
4155852
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local yi_translit = require("Modul:translit/yi")
local yi_ortografi = require("Modul:yi-ortografi")
local export = require("Modul:grammar")
local OMITTED = "__UTELÄMNAD__"
local pluralEndings = {
im = { yi = "ים", tr = "im" },
em = { yi = "ים", tr = "em" },
s = { yi = "ס", tr = "s" },
er = { yi = "ער", tr = "er" },
n = { yi = "ן", tr = "n" },
en = { yi = "ען", tr = "en" },
kh = { yi = "ך", tr = "kh" },
ekh = { yi = "עך", tr = "ekh" },
}
local endingTransliterations = {}
for _, ending in pairs(pluralEndings) do
endingTransliterations[ending.yi] = ending.tr
end
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function getEnding(value)
if not value or value == "" then
return nil, nil
end
local known = pluralEndings[value]
if known then
return known.yi, known.tr
end
local transliteration = endingTransliterations[value] or yi_translit.tr(value)
return value, transliteration
end
local function autoTransliterate(term)
if yi_ortografi.is_semitic and yi_ortografi.is_semitic(term) then
return nil
end
return yi_translit.tr(term)
end
local function renderCell(term, trRoot, endingTr, fullForm, transliterationOverride, transliterationStem)
if not term or term == "" then
return "–"
end
local cell = '<div style="vertical-align:top">[[' .. term .. ']]'
local transliteration
if transliterationOverride and transliterationOverride ~= "" then
transliteration = transliterationOverride
elseif trRoot == OMITTED then
return cell .. "</div>"
elseif fullForm and endingTr and transliterationStem then
transliteration = transliterationStem .. endingTr
elseif trRoot == "" then
transliteration = autoTransliterate(term)
elseif fullForm and endingTr then
transliteration = trRoot .. endingTr
elseif fullForm then
transliteration = autoTransliterate(term)
else
transliteration = trRoot .. (endingTr or "")
end
if not transliteration or transliteration == "" then
transliteration = " "
end
return cell .. "<br /><small>" .. transliteration .. "</small></div>"
end
local function makeForms(lemma, args, meta)
local singular = clean(args[1]) or lemma
-- 2= is the complete plural form.
local plural = clean(args[2])
local fullPlural = plural ~= nil
-- pluraländelse= supplies the generated plural ending and its transliteration.
local suffixYi, suffixTr = getEnding((meta and meta.plural_ending) or clean(args["pluraländelse"]))
suffixTr = (meta and meta.plural_ending_tr) or clean(args["pluraltr"]) or suffixTr
if not plural and suffixYi then
local pluralStem = yi_ortografi.finalToMedial(singular)
plural = pluralStem .. suffixYi
end
local trRoot = args.tr
if trRoot == nil then
trRoot = meta and meta.tr_default
if trRoot == nil then
trRoot = OMITTED
end
end
local pluralTrRoot = trRoot
if trRoot == "" then
pluralTrRoot = autoTransliterate(singular)
end
local genderNames = {
m = "Maskulinum",
f = "Femininum",
n = "Neutrum",
}
local genderCode = (meta and meta.gender) or clean(args.gen)
local gender = genderNames[genderCode] or genderNames.m
local countable = args.countable ~= "no"
if meta and meta.countable ~= nil then
countable = meta.countable
end
return {
lemma = lemma,
singular = singular,
plural = plural,
fullPlural = fullPlural,
suffixTr = suffixTr,
trRoot = trRoot,
pluralTrRoot = pluralTrRoot,
pluralTrOverride = clean(args["tr2"]),
gender = gender,
countable = countable,
meaning = clean(args["betydelser"]),
note = clean(args["not"]),
prefix = clean(args["förled"]),
}
end
local function renderRows(forms)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]"
if forms.meaning then
title = title .. " " .. forms.meaning
end
title = title .. "''"
if forms.countable then
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, ""),
forms.plural and renderCell(
forms.plural,
forms.trRoot,
forms.suffixTr,
forms.fullPlural,
forms.pluralTrOverride,
forms.pluralTrRoot
) or "–"
)
end
return gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
.. gt.getRow(
{'!', forms.gender},
renderCell(forms.singular, forms.trRoot, "")
)
end
local function renderTable(lemma, args)
local forms = makeForms(lemma, args)
local columnCount = forms.countable and 3 or 2
local factValue = clean(args["fakta"])
local hasQualityNotice = factValue ~= nil and factValue ~= "X"
gt.setLanguage("yi")
local rows = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
rows = rows .. renderRows(forms)
if forms.note then
return rows .. gt.getEnd(columnCount, forms.note, forms.prefix)
end
return rows .. "|}"
end
-- Route the migrated template through Modul:grammar. Older templates that
-- still pass lemma= directly retain the previous call path during migration.
local grammarGetWikitext = export.getWikitext
function export.getWikitext(frame)
if frame.args.lemma == nil then
return grammarGetWikitext(frame)
end
local args = frame.args
local lemma = args.lemma or mw.title.getCurrentTitle().text
return renderTable(lemma, args)
end
function export._getAcceptedParameters()
return {
[0] = 2,
"gen", "countable", "pluraländelse", "pluraltr", "tr", "tr2",
}
end
function export._getForms(pagename, _templatename, args, meta, _format)
return makeForms(pagename, args, meta)
end
function export._getMeta(pagename, templatename, args)
-- Template-specific defaults belong in metadata because the grammar base
-- reads parameters from the calling template, not from #invoke arguments.
local templateDefaults = {
["yi-subst-m-er"] = {
gender = "m",
countable = true,
plural_ending = "ער",
tr_default = "",
},
["yi-subst-m-en"] = {
gender = "m",
countable = true,
plural_ending = "ען",
tr_default = "",
},
["yi-subst-m-em"] = {
gender = "m",
countable = true,
plural_ending = "ים",
plural_ending_tr = "em",
tr_default = "",
},
["yi-subst-m-es"] = {
gender = "m",
countable = true,
plural_ending = "עס",
plural_ending_tr = "es",
tr_default = "",
},
["yi-subst-m-im"] = {
gender = "m",
countable = true,
plural_ending = "ים",
plural_ending_tr = "im",
tr_default = "",
},
["yi-subst-m-n"] = {
gender = "m",
countable = true,
plural_ending = "ן",
plural_ending_tr = "n",
tr_default = "",
},
["yi-subst-m-s"] = {
gender = "m",
countable = true,
plural_ending = "ס",
plural_ending_tr = "s",
tr_default = "",
},
["yi-subst-m-oreg"] = {
gender = "m",
countable = true,
tr_default = "",
},
["yi-subst-f-en"] = {
gender = "f",
countable = true,
plural_ending = "ען",
plural_ending_tr = "en",
tr_default = "",
},
["yi-subst-f-er"] = {
gender = "f",
countable = true,
plural_ending = "ער",
plural_ending_tr = "er",
tr_default = "",
},
["yi-subst-f-es"] = {
gender = "f",
countable = true,
plural_ending = "עס",
plural_ending_tr = "es",
tr_default = "",
},
["yi-subst-f-n"] = {
gender = "f",
countable = true,
plural_ending = "ן",
plural_ending_tr = "n",
tr_default = "",
},
["yi-subst-f-s"] = {
gender = "f",
countable = true,
plural_ending = "ס",
plural_ending_tr = "s",
tr_default = "",
},
["yi-subst-f-oreg"] = {
gender = "f",
countable = true,
tr_default = "",
},
["yi-subst-n-ekh"] = {
gender = "n",
countable = true,
plural_ending = "עך",
plural_ending_tr = "ekh",
tr_default = "",
},
["yi-subst-n-en"] = {
gender = "n",
countable = true,
plural_ending = "ען",
plural_ending_tr = "en",
tr_default = "",
},
["yi-subst-n-er"] = {
gender = "n",
countable = true,
plural_ending = "ער",
plural_ending_tr = "er",
tr_default = "",
},
["yi-subst-n-kh"] = {
gender = "n",
countable = true,
plural_ending = "ך",
plural_ending_tr = "kh",
tr_default = "",
},
["yi-subst-n-n"] = {
gender = "n",
countable = true,
plural_ending = "ן",
plural_ending_tr = "n",
tr_default = "",
},
["yi-subst-n-s"] = {
gender = "n",
countable = true,
plural_ending = "ס",
plural_ending_tr = "s",
tr_default = "",
},
["yi-subst-n-oreg"] = {
gender = "n",
countable = true,
tr_default = "",
},
}
local defaults = templateDefaults[templatename] or {}
local countable = defaults.countable
if countable == nil then
countable = args.countable ~= "no"
end
return {
numbered_cells = countable and 2 or 1,
named_cells = {},
templatename = templatename,
pagename = pagename,
gender = defaults.gender,
countable = countable,
plural_ending = defaults.plural_ending,
plural_ending_tr = defaults.plural_ending_tr,
tr_default = defaults.tr_default,
}
end
function export._getWikitable(forms, meta)
local columnCount = forms.countable and 3 or 2
gt.setLanguage("yi")
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local str = gt.getStart(columnCount, "yi", "subst", hasQualityNotice)
str = str .. renderRows(forms)
return str .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
ojm07cw30nzy191x6nt5xgnv0kk9x4s
Mall:yi-subst-m-oreg
10
1074016
4155845
4154475
2026-10-15T20:53:52Z
Frodlekis
762
4155845
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-f-oreg
10
1074018
4155859
4154486
2026-10-15T21:02:58Z
Frodlekis
762
4155859
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-n-oreg
10
1074020
4155860
4154489
2026-10-15T21:03:54Z
Frodlekis
762
4155860
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-n-er
10
1074021
4155866
4154490
2026-10-15T21:07:16Z
Frodlekis
762
4155866
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Mall:yi-subst-m-em
10
1074022
4155834
4154496
2026-10-15T20:45:09Z
Frodlekis
762
4155834
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
שטיינבאָק
0
1074048
4155829
4154590
2026-10-15T20:39:27Z
Frodlekis
762
4155829
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-m-oreg|tr=|2=שטיינבעק}}
'''שטיינבאָק''' ({{tr|yi|שטיינבאָק}}) {{m}}
#{{tagg|däggdjur|språk=yi}} [[stenbock]]
#{{tagg|astronomi|språk=yi}} [[Stenbocken]] (stjärnbild)
#{{tagg|astrologi|språk=yi}} [[stenbock]], person född i Stenbockens stjärntecken
#:{{kohyponymer|{{länk|yi|באַראַן, ביק, צווילינג, ראַק, לייב, בתולה, וואָג, סקאָרפּיאָן, שיסער, שטיינבאָק, וואַסער־טרעגער, פֿיש}}}}
1niywmb0rkjpvp64ikzzyoaerwlnp5h
Mall:yi-subst-f-er
10
1074054
4155854
4154610
2026-10-15T21:01:41Z
Frodlekis
762
4155854
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Jiddisch|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:yi-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|yi|subst}}
</includeonly>
rbkyykpjjh6i74why03qia2x9rtomfi
Modul:tr-subst
828
1074266
4155921
4155762
2026-10-15T22:49:44Z
Frodlekis
762
4155921
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function getPossessiveCell(forms, possessor, case, plural)
local formSets = {}
if plural then
if forms.has_sound_plural then
table.insert(formSets, forms.sound_plural.possessive[possessor.key])
end
if forms.has_broken_plural then
table.insert(formSets, forms.broken_plural.possessive[possessor.key])
end
elseif forms.has_singular then
table.insert(formSets, forms.singular.possessive[possessor.key])
end
local linkedForms = {}
for _, formSet in ipairs(formSets) do
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " eller " .. grammarLink(formSet.variant[case.key])
end
table.insert(linkedForms, linked)
end
local text = #linkedForms > 0 and table.concat(linkedForms, "<br />") or "–"
return '<span style="font-style:normal">' .. text .. "</span>"
end
local function renderPossessives(forms, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headingCells = {}
for _ = 1, 3 do
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headingCells[1], headingCells[2], headingCells[3],
headingCells[4], headingCells[5], headingCells[6],
headingCells[7], headingCells[8], headingCells[9]
))
for _, case in ipairs(cases) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5], cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
4krkv64hbc939zc1wx9ge0i8ihwh9vd
4155922
4155921
2026-10-15T22:53:37Z
Frodlekis
762
4155922
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["â"] = {high = "ı", low = "a"},
e = {high = "i", low = "e"},
["ı"] = {high = "ı", low = "a"},
i = {high = "i", low = "e"},
["î"] = {high = "i", low = "e"},
o = {high = "u", low = "a"},
["ö"] = {high = "ü", low = "e"},
u = {high = "u", low = "a"},
["û"] = {high = "u", low = "a"},
["ü"] = {high = "ü", low = "e"},
}
local vowelPattern = "aâeıiîoöuûü"
local voicelessFinals = {k = true, p = true, ["ç"] = true, t = true, f = true, h = true, s = true, ["ş"] = true}
local caseLabels = {
{key = "nom", label = "Nominativ (yalın)"},
{key = "acc", label = "Ackusativ (belirtme)"},
{key = "dat", label = "Dativ (yönelme)"},
{key = "loc", label = "Lokativ (bulunma)"},
{key = "abl", label = "Ablativ (ayrılma)"},
{key = "gen", label = "Genitiv (tamlayan)"},
}
local possessors = {
{id = "benim", label = "benim (min)", person = 1, number = "s"},
{id = "senin", label = "senin (din)", person = 2, number = "s"},
{id = "onun", label = "onun (hans/hennes)", person = 3, number = "s"},
{id = "bizim", label = "bizim (vår)", person = 1, number = "p"},
{id = "sizin", label = "sizin (er)", person = 2, number = "p"},
{id = "onların", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([" .. vowelPattern .. "])[^" .. vowelPattern .. "]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[" .. vowelPattern .. "]$") ~= nil
end
local function getLocativeConsonant(lemma, requested)
if requested == "d" or requested == "t" then
return requested
end
local final = mw.ustring.sub(lemma, -1)
return voicelessFinals[final] and "t" or "d"
end
local function applyPossessiveCase(form, caseKey, person, harmony, locativeConsonant)
local linker = person == 3 and "n" or ""
if caseKey == "nom" then
return form
elseif caseKey == "acc" then
return form .. linker .. harmony.high
elseif caseKey == "dat" then
return form .. linker .. harmony.low
elseif caseKey == "loc" then
return form .. linker .. locativeConsonant .. harmony.low
elseif caseKey == "abl" then
return form .. linker .. locativeConsonant .. harmony.low .. "n"
elseif caseKey == "gen" then
return form .. linker .. harmony.high .. "n"
end
return form
end
local function makePossessiveBases(vowelStem, stemHarmony, vowelStemEndsInVowel, pluralStem, pluralHarmony)
local consonantBuffer = vowelStemEndsInVowel and "" or stemHarmony.high
local singular = {
vowelStem .. consonantBuffer .. "m",
vowelStem .. consonantBuffer .. "n",
vowelStem .. (vowelStemEndsInVowel and "s" or "") .. stemHarmony.high,
vowelStem .. consonantBuffer .. "m" .. stemHarmony.high .. "z",
vowelStem .. consonantBuffer .. "n" .. stemHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
local plural = {
pluralStem .. pluralHarmony.high .. "m",
pluralStem .. pluralHarmony.high .. "n",
pluralStem .. pluralHarmony.high,
pluralStem .. pluralHarmony.high .. "m" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high .. "n" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
return singular, plural
end
local function makeForms(lemma, args)
local root = clean(args.grundform) or lemma
-- rot= is the documented parameter. stam= remains accepted for compatibility.
local vowelStem = clean(args.rot) or clean(args.stam) or root
local vowel = clean(args[1]) or lastVowel(vowelStem) or lastVowel(root)
local harmony = vowel and vowels[vowel]
if not harmony then
return nil, "Turkisk substantivböjning kräver en giltig sista vokal (a, â, e, ı, i, î, o, ö, u, û eller ü)."
end
local hasLexicalPossessive = args.poss == "1"
if hasLexicalPossessive and mw.ustring.sub(vowelStem, -1) ~= harmony.high then
return nil, "poss=1 kräver att uppslagsordet slutar på den harmoniska possessivvokalen."
end
local inflectionStem = hasLexicalPossessive and mw.ustring.sub(vowelStem, 1, -2) or vowelStem
local vowelStemEndsInVowel = endsInVowel(inflectionStem)
local pluralBase = hasLexicalPossessive and inflectionStem or root
local pluralStem = pluralBase .. "l" .. harmony.low .. "r"
local pluralHarmony = vowels[harmony.low]
local locativeConsonant = getLocativeConsonant(root, clean(args[2]))
local singular = {
nom = root,
acc = hasLexicalPossessive and (root .. "n" .. harmony.high)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.high),
dat = hasLexicalPossessive and (root .. "n" .. harmony.low)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.low),
loc = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low)
or (root .. locativeConsonant .. harmony.low),
abl = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low .. "n")
or (root .. locativeConsonant .. harmony.low .. "n"),
gen = hasLexicalPossessive and (root .. "n" .. harmony.high .. "n")
or (vowelStem .. (vowelStemEndsInVowel and "n" or "") .. harmony.high .. "n"),
}
local pluralNominative = hasLexicalPossessive and (pluralStem .. harmony.high) or pluralStem
local plural = {
nom = pluralNominative,
acc = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high)
or (pluralStem .. pluralHarmony.high),
dat = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.low)
or (pluralStem .. pluralHarmony.low),
loc = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low)
or (pluralStem .. "d" .. pluralHarmony.low),
abl = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low .. "n")
or (pluralStem .. "d" .. pluralHarmony.low .. "n"),
gen = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high .. "n")
or (pluralStem .. pluralHarmony.high .. "n"),
}
local singularBases, pluralBases = makePossessiveBases(
inflectionStem,
harmony,
vowelStemEndsInVowel,
pluralStem,
pluralHarmony
)
local possessive = {}
for _, possessor in ipairs(possessors) do
local index = possessor.person + (possessor.number == "p" and 3 or 0)
local singularBase = singularBases[index]
local pluralPossessiveBase = pluralBases[index]
if possessor.id == "onların" then
-- In a singular possessum, onların permits both the 3sg and plural-marked forms.
singularBase = singularBases[3]
end
local forms = {singular = {}, plural = {}}
if possessor.id == "onların" then
forms.singularVariant = {}
end
for _, case in ipairs(caseLabels) do
forms.singular[case.key] = applyPossessiveCase(
singularBase, case.key, possessor.person, harmony, "d"
)
forms.plural[case.key] = applyPossessiveCase(
pluralPossessiveBase, case.key, possessor.person, pluralHarmony, "d"
)
if forms.singularVariant then
forms.singularVariant[case.key] = applyPossessiveCase(
pluralBases[3], case.key, 3, pluralHarmony, "d"
)
end
end
possessive[possessor.id] = forms
end
return {
lemma = root,
singular = singular,
plural = plural,
possessive = possessive,
}
end
local function grammarLink(form)
local link = grammar_link.link(form, "infl", "tr")
-- Let green_links.js append the preload fragment to the URL. A #Turkiska
-- fragment before it prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Turkiska", "")
return link
end
local function renderPossessorTable(possessor, forms)
local possessorForms = forms.possessive[possessor.id]
local normal = '<span style="font-style:normal">'
local rows = gt.getStart(3, "tr", "subst", false)
rows = rows .. gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', normal .. possessor.label .. "</span>"}
)
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal .. "Kasus</span>"},
{'!style="font-style:normal"', normal .. "Singular</span>"},
{'!style="font-style:normal"', normal .. "Plural</span>"}
)
for _, case in ipairs(caseLabels) do
local singularForm = grammarLink(possessorForms.singular[case.key])
if possessorForms.singularVariant then
singularForm = singularForm .. " eller " .. grammarLink(possessorForms.singularVariant[case.key])
end
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal .. case.label .. "</span>"},
normal .. singularForm .. "</span>",
normal .. grammarLink(possessorForms.plural[case.key]) .. "</span>"
)
end
return rows .. "|}"
end
local function renderPossessiveRows(forms)
local rows = {}
for groupStart = 1, #possessors, 3 do
local first = renderPossessorTable(possessors[groupStart], forms)
local second = renderPossessorTable(possessors[groupStart + 1], forms)
local third = renderPossessorTable(possessors[groupStart + 2], forms)
table.insert(rows, gt.getRow(first, second, third))
end
return table.concat(rows, "\n")
end
local function getPossessiveCell(forms, possessor, case, plural)
local possessorForms = forms.possessive[possessor.id]
local form = plural and possessorForms.plural[case.key] or possessorForms.singular[case.key]
local linked = grammarLink(form)
if not plural and possessorForms.singularVariant then
linked = linked .. " eller " .. grammarLink(possessorForms.singularVariant[case.key])
end
return '<span style="font-style:normal">' .. linked .. "</span>"
end
local function renderPossessiveGrid(forms, meta, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headings = {}
for _ = 1, 3 do
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headings[1], headings[2], headings[3], headings[4], headings[5],
headings[6], headings[7], headings[8], headings[9]
))
for _, case in ipairs(caseLabels) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5],
cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "tr", "subst", false, meta.pagename, meta.width)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {[0] = 2, "rot", "stam", "poss"}
end
function export._getMeta(_pagename, templatename, _args)
local numberedCells = templatename == "tr-subst-k" and 2 or 1
return {
numbered_cells = numberedCells,
named_cells = {"rot", "stam", "poss"},
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
local title = "Böjningar av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
gt.setLanguage("")
local columnCount = 3
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(
columnCount,
"tr",
"subst",
hasQualityNotice,
meta.pagename,
meta.width
)
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
rows = rows .. renderPossessiveGrid(forms, meta, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
local function getTemplateData(frame)
local templateFrame = frame:getParent()
local args = {}
for key, value in pairs(templateFrame.args) do
args[key] = value
end
for key, value in pairs(frame.args) do
args[key] = value
end
local pagename = clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = makeForms(pagename, args)
return pagename, forms, err, args
end
function export.getMainRows(frame)
local pagename, forms, err, args = getTemplateData(frame)
gt.setLanguage("")
if err then
return gt.getRow({'!class="error" colspan="3"', err})
end
local title = "Böjningar av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''"
if clean(args.betydelser) then
title = title .. " " .. args.betydelser
end
local rows = gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
return rows
end
function export.getPossessiveRows(frame)
local _, forms, err = getTemplateData(frame)
gt.setLanguage("")
if err then
return ""
end
return renderPossessiveRows(forms)
end
return export
my8h1fpvj4mor7ocvrzz0ld4jr1nlct
4155923
4155922
2026-10-15T22:55:18Z
Frodlekis
762
4155923
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["â"] = {high = "ı", low = "a"},
e = {high = "i", low = "e"},
["ı"] = {high = "ı", low = "a"},
i = {high = "i", low = "e"},
["î"] = {high = "i", low = "e"},
o = {high = "u", low = "a"},
["ö"] = {high = "ü", low = "e"},
u = {high = "u", low = "a"},
["û"] = {high = "u", low = "a"},
["ü"] = {high = "ü", low = "e"},
}
local vowelPattern = "aâeıiîoöuûü"
local voicelessFinals = {k = true, p = true, ["ç"] = true, t = true, f = true, h = true, s = true, ["ş"] = true}
local caseLabels = {
{key = "nom", label = "Nominativ (yalın)"},
{key = "acc", label = "Ackusativ (belirtme)"},
{key = "dat", label = "Dativ (yönelme)"},
{key = "loc", label = "Lokativ (bulunma)"},
{key = "abl", label = "Ablativ (ayrılma)"},
{key = "gen", label = "Genitiv (tamlayan)"},
}
local possessors = {
{id = "benim", label = "benim (min)", person = 1, number = "s"},
{id = "senin", label = "senin (din)", person = 2, number = "s"},
{id = "onun", label = "onun (hans/hennes)", person = 3, number = "s"},
{id = "bizim", label = "bizim (vår)", person = 1, number = "p"},
{id = "sizin", label = "sizin (er)", person = 2, number = "p"},
{id = "onların", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([" .. vowelPattern .. "])[^" .. vowelPattern .. "]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[" .. vowelPattern .. "]$") ~= nil
end
local function getLocativeConsonant(lemma, requested)
if requested == "d" or requested == "t" then
return requested
end
local final = mw.ustring.sub(lemma, -1)
return voicelessFinals[final] and "t" or "d"
end
local function applyPossessiveCase(form, caseKey, person, harmony, locativeConsonant)
local linker = person == 3 and "n" or ""
if caseKey == "nom" then
return form
elseif caseKey == "acc" then
return form .. linker .. harmony.high
elseif caseKey == "dat" then
return form .. linker .. harmony.low
elseif caseKey == "loc" then
return form .. linker .. locativeConsonant .. harmony.low
elseif caseKey == "abl" then
return form .. linker .. locativeConsonant .. harmony.low .. "n"
elseif caseKey == "gen" then
return form .. linker .. harmony.high .. "n"
end
return form
end
local function makePossessiveBases(vowelStem, stemHarmony, vowelStemEndsInVowel, pluralStem, pluralHarmony)
local consonantBuffer = vowelStemEndsInVowel and "" or stemHarmony.high
local singular = {
vowelStem .. consonantBuffer .. "m",
vowelStem .. consonantBuffer .. "n",
vowelStem .. (vowelStemEndsInVowel and "s" or "") .. stemHarmony.high,
vowelStem .. consonantBuffer .. "m" .. stemHarmony.high .. "z",
vowelStem .. consonantBuffer .. "n" .. stemHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
local plural = {
pluralStem .. pluralHarmony.high .. "m",
pluralStem .. pluralHarmony.high .. "n",
pluralStem .. pluralHarmony.high,
pluralStem .. pluralHarmony.high .. "m" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high .. "n" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
return singular, plural
end
local function makeForms(lemma, args)
local root = clean(args.grundform) or lemma
-- rot= is the documented parameter. stam= remains accepted for compatibility.
local vowelStem = clean(args.rot) or clean(args.stam) or root
local vowel = clean(args[1]) or lastVowel(vowelStem) or lastVowel(root)
local harmony = vowel and vowels[vowel]
if not harmony then
return nil, "Turkisk substantivböjning kräver en giltig sista vokal (a, â, e, ı, i, î, o, ö, u, û eller ü)."
end
local hasLexicalPossessive = args.poss == "1"
if hasLexicalPossessive and mw.ustring.sub(vowelStem, -1) ~= harmony.high then
return nil, "poss=1 kräver att uppslagsordet slutar på den harmoniska possessivvokalen."
end
local inflectionStem = hasLexicalPossessive and mw.ustring.sub(vowelStem, 1, -2) or vowelStem
local vowelStemEndsInVowel = endsInVowel(inflectionStem)
local pluralBase = hasLexicalPossessive and inflectionStem or root
local pluralStem = pluralBase .. "l" .. harmony.low .. "r"
local pluralHarmony = vowels[harmony.low]
local locativeConsonant = getLocativeConsonant(root, clean(args[2]))
local singular = {
nom = root,
acc = hasLexicalPossessive and (root .. "n" .. harmony.high)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.high),
dat = hasLexicalPossessive and (root .. "n" .. harmony.low)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.low),
loc = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low)
or (root .. locativeConsonant .. harmony.low),
abl = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low .. "n")
or (root .. locativeConsonant .. harmony.low .. "n"),
gen = hasLexicalPossessive and (root .. "n" .. harmony.high .. "n")
or (vowelStem .. (vowelStemEndsInVowel and "n" or "") .. harmony.high .. "n"),
}
local pluralNominative = hasLexicalPossessive and (pluralStem .. harmony.high) or pluralStem
local plural = {
nom = pluralNominative,
acc = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high)
or (pluralStem .. pluralHarmony.high),
dat = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.low)
or (pluralStem .. pluralHarmony.low),
loc = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low)
or (pluralStem .. "d" .. pluralHarmony.low),
abl = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low .. "n")
or (pluralStem .. "d" .. pluralHarmony.low .. "n"),
gen = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high .. "n")
or (pluralStem .. pluralHarmony.high .. "n"),
}
local singularBases, pluralBases = makePossessiveBases(
inflectionStem,
harmony,
vowelStemEndsInVowel,
pluralStem,
pluralHarmony
)
local possessive = {}
for _, possessor in ipairs(possessors) do
local index = possessor.person + (possessor.number == "p" and 3 or 0)
local singularBase = singularBases[index]
local pluralPossessiveBase = pluralBases[index]
if possessor.id == "onların" then
-- In a singular possessum, onların permits both the 3sg and plural-marked forms.
singularBase = singularBases[3]
end
local forms = {singular = {}, plural = {}}
if possessor.id == "onların" then
forms.singularVariant = {}
end
for _, case in ipairs(caseLabels) do
forms.singular[case.key] = applyPossessiveCase(
singularBase, case.key, possessor.person, harmony, "d"
)
forms.plural[case.key] = applyPossessiveCase(
pluralPossessiveBase, case.key, possessor.person, pluralHarmony, "d"
)
if forms.singularVariant then
forms.singularVariant[case.key] = applyPossessiveCase(
pluralBases[3], case.key, 3, pluralHarmony, "d"
)
end
end
possessive[possessor.id] = forms
end
return {
lemma = root,
singular = singular,
plural = plural,
possessive = possessive,
}
end
local function grammarLink(form)
local link = grammar_link.link(form, "infl", "tr")
-- Let green_links.js append the preload fragment to the URL. A #Turkiska
-- fragment before it prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Turkiska", "")
return link
end
local function renderPossessorTable(possessor, forms)
local possessorForms = forms.possessive[possessor.id]
local normal = '<span style="font-style:normal">'
local rows = gt.getStart(3, "tr", "subst", false)
rows = rows .. gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', normal .. possessor.label .. "</span>"}
)
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal .. "Kasus</span>"},
{'!style="font-style:normal"', normal .. "Singular</span>"},
{'!style="font-style:normal"', normal .. "Plural</span>"}
)
for _, case in ipairs(caseLabels) do
local singularForm = grammarLink(possessorForms.singular[case.key])
if possessorForms.singularVariant then
singularForm = singularForm .. " eller " .. grammarLink(possessorForms.singularVariant[case.key])
end
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal .. case.label .. "</span>"},
normal .. singularForm .. "</span>",
normal .. grammarLink(possessorForms.plural[case.key]) .. "</span>"
)
end
return rows .. "|}"
end
local function renderPossessiveRows(forms)
local rows = {}
for groupStart = 1, #possessors, 3 do
local first = renderPossessorTable(possessors[groupStart], forms)
local second = renderPossessorTable(possessors[groupStart + 1], forms)
local third = renderPossessorTable(possessors[groupStart + 2], forms)
table.insert(rows, gt.getRow(first, second, third))
end
return table.concat(rows, "\n")
end
local function getPossessiveCell(forms, possessor, case, plural)
local possessorForms = forms.possessive[possessor.id]
local form = plural and possessorForms.plural[case.key] or possessorForms.singular[case.key]
local linked = grammarLink(form)
if not plural and possessorForms.singularVariant then
linked = linked .. " eller " .. grammarLink(possessorForms.singularVariant[case.key])
end
return '<span style="font-style:normal">' .. linked .. "</span>"
end
local function renderPossessiveGrid(forms, meta, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headings = {}
for _ = 1, 3 do
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headings[1], headings[2], headings[3], headings[4], headings[5],
headings[6], headings[7], headings[8], headings[9]
))
for _, case in ipairs(caseLabels) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5],
cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "tr", "subst", false, meta.pagename, meta.width)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {[0] = 2, "rot", "stam", "poss"}
end
function export._getMeta(_pagename, templatename, _args)
-- Keep the legacy k/v templates working while the unified template is
-- introduced. The k template and new general template accept two numbered
-- parameters; the legacy v template keeps its one-parameter contract.
local numberedCells = (templatename == "tr-subst-k" or templatename == "tr-subst") and 2 or 1
return {
numbered_cells = numberedCells,
named_cells = {"rot", "stam", "poss"},
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
local title = "Böjningar av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
gt.setLanguage("")
local columnCount = 3
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(
columnCount,
"tr",
"subst",
hasQualityNotice,
meta.pagename,
meta.width
)
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
rows = rows .. renderPossessiveGrid(forms, meta, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
local function getTemplateData(frame)
local templateFrame = frame:getParent()
local args = {}
for key, value in pairs(templateFrame.args) do
args[key] = value
end
for key, value in pairs(frame.args) do
args[key] = value
end
local pagename = clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = makeForms(pagename, args)
return pagename, forms, err, args
end
function export.getMainRows(frame)
local pagename, forms, err, args = getTemplateData(frame)
gt.setLanguage("")
if err then
return gt.getRow({'!class="error" colspan="3"', err})
end
local title = "Böjningar av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''"
if clean(args.betydelser) then
title = title .. " " .. args.betydelser
end
local rows = gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
return rows
end
function export.getPossessiveRows(frame)
local _, forms, err = getTemplateData(frame)
gt.setLanguage("")
if err then
return ""
end
return renderPossessiveRows(forms)
end
return export
dspjh733b4gwtdn88296lkzur5ruchh
4155931
4155923
2026-10-15T23:06:13Z
Frodlekis
762
4155931
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["â"] = {high = "ı", low = "a"},
e = {high = "i", low = "e"},
["ı"] = {high = "ı", low = "a"},
i = {high = "i", low = "e"},
["î"] = {high = "i", low = "e"},
o = {high = "u", low = "a"},
["ö"] = {high = "ü", low = "e"},
u = {high = "u", low = "a"},
["û"] = {high = "u", low = "a"},
["ü"] = {high = "ü", low = "e"},
}
local vowelPattern = "aâeıiîoöuûü"
local voicelessFinals = {k = true, p = true, ["ç"] = true, t = true, f = true, h = true, s = true, ["ş"] = true}
local caseLabels = {
{key = "nom", label = "Nominativ (yalın)"},
{key = "acc", label = "Ackusativ (belirtme)"},
{key = "dat", label = "Dativ (yönelme)"},
{key = "loc", label = "Lokativ (bulunma)"},
{key = "abl", label = "Ablativ (ayrılma)"},
{key = "gen", label = "Genitiv (tamlayan)"},
}
local possessors = {
{id = "benim", label = "benim (min)", person = 1, number = "s"},
{id = "senin", label = "senin (din)", person = 2, number = "s"},
{id = "onun", label = "onun (hans/hennes)", person = 3, number = "s"},
{id = "bizim", label = "bizim (vår)", person = 1, number = "p"},
{id = "sizin", label = "sizin (er)", person = 2, number = "p"},
{id = "onların", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([" .. vowelPattern .. "])[^" .. vowelPattern .. "]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[" .. vowelPattern .. "]$") ~= nil
end
local function getLocativeConsonant(lemma, requested)
if requested == "d" or requested == "t" then
return requested
end
local final = mw.ustring.sub(lemma, -1)
return voicelessFinals[final] and "t" or "d"
end
local function applyPossessiveCase(form, caseKey, person, harmony, locativeConsonant)
local linker = person == 3 and "n" or ""
if caseKey == "nom" then
return form
elseif caseKey == "acc" then
return form .. linker .. harmony.high
elseif caseKey == "dat" then
return form .. linker .. harmony.low
elseif caseKey == "loc" then
return form .. linker .. locativeConsonant .. harmony.low
elseif caseKey == "abl" then
return form .. linker .. locativeConsonant .. harmony.low .. "n"
elseif caseKey == "gen" then
return form .. linker .. harmony.high .. "n"
end
return form
end
local function makePossessiveBases(vowelStem, stemHarmony, vowelStemEndsInVowel, pluralStem, pluralHarmony)
local consonantBuffer = vowelStemEndsInVowel and "" or stemHarmony.high
local singular = {
vowelStem .. consonantBuffer .. "m",
vowelStem .. consonantBuffer .. "n",
vowelStem .. (vowelStemEndsInVowel and "s" or "") .. stemHarmony.high,
vowelStem .. consonantBuffer .. "m" .. stemHarmony.high .. "z",
vowelStem .. consonantBuffer .. "n" .. stemHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
local plural = {
pluralStem .. pluralHarmony.high .. "m",
pluralStem .. pluralHarmony.high .. "n",
pluralStem .. pluralHarmony.high,
pluralStem .. pluralHarmony.high .. "m" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high .. "n" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
return singular, plural
end
local function makeForms(lemma, args)
local root = clean(args.grundform) or lemma
-- rot= is the documented parameter. stam= remains accepted for compatibility.
local vowelStem = clean(args.rot) or clean(args.stam) or root
local vowel = clean(args[1]) or lastVowel(vowelStem) or lastVowel(root)
local harmony = vowel and vowels[vowel]
if not harmony then
return nil, "Turkisk substantivböjning kräver en giltig sista vokal (a, â, e, ı, i, î, o, ö, u, û eller ü)."
end
local hasLexicalPossessive = args.poss == "1"
if hasLexicalPossessive and mw.ustring.sub(vowelStem, -1) ~= harmony.high then
return nil, "poss=1 kräver att uppslagsordet slutar på den harmoniska possessivvokalen."
end
local inflectionStem = hasLexicalPossessive and mw.ustring.sub(vowelStem, 1, -2) or vowelStem
local vowelStemEndsInVowel = endsInVowel(inflectionStem)
local pluralBase = hasLexicalPossessive and inflectionStem or root
local pluralStem = pluralBase .. "l" .. harmony.low .. "r"
local pluralHarmony = vowels[harmony.low]
local locativeConsonant = getLocativeConsonant(root, clean(args[2]))
local singular = {
nom = root,
acc = hasLexicalPossessive and (root .. "n" .. harmony.high)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.high),
dat = hasLexicalPossessive and (root .. "n" .. harmony.low)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.low),
loc = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low)
or (root .. locativeConsonant .. harmony.low),
abl = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low .. "n")
or (root .. locativeConsonant .. harmony.low .. "n"),
gen = hasLexicalPossessive and (root .. "n" .. harmony.high .. "n")
or (vowelStem .. (vowelStemEndsInVowel and "n" or "") .. harmony.high .. "n"),
}
local pluralNominative = hasLexicalPossessive and (pluralStem .. harmony.high) or pluralStem
local plural = {
nom = pluralNominative,
acc = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high)
or (pluralStem .. pluralHarmony.high),
dat = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.low)
or (pluralStem .. pluralHarmony.low),
loc = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low)
or (pluralStem .. "d" .. pluralHarmony.low),
abl = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low .. "n")
or (pluralStem .. "d" .. pluralHarmony.low .. "n"),
gen = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high .. "n")
or (pluralStem .. pluralHarmony.high .. "n"),
}
local singularBases, pluralBases = makePossessiveBases(
inflectionStem,
harmony,
vowelStemEndsInVowel,
pluralStem,
pluralHarmony
)
local possessive = {}
for _, possessor in ipairs(possessors) do
local index = possessor.person + (possessor.number == "p" and 3 or 0)
local singularBase = singularBases[index]
local pluralPossessiveBase = pluralBases[index]
if possessor.id == "onların" then
-- In a singular possessum, onların permits both the 3sg and plural-marked forms.
singularBase = singularBases[3]
end
local forms = {singular = {}, plural = {}}
if possessor.id == "onların" then
forms.singularVariant = {}
end
for _, case in ipairs(caseLabels) do
forms.singular[case.key] = applyPossessiveCase(
singularBase, case.key, possessor.person, harmony, "d"
)
forms.plural[case.key] = applyPossessiveCase(
pluralPossessiveBase, case.key, possessor.person, pluralHarmony, "d"
)
if forms.singularVariant then
forms.singularVariant[case.key] = applyPossessiveCase(
pluralBases[3], case.key, 3, pluralHarmony, "d"
)
end
end
possessive[possessor.id] = forms
end
return {
lemma = root,
singular = singular,
plural = plural,
possessive = possessive,
}
end
local function grammarLink(form)
local link = grammar_link.link(form, "infl", "tr")
-- Let green_links.js append the preload fragment to the URL. A #Turkiska
-- fragment before it prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Turkiska", "")
return link
end
local function renderPossessorTable(possessor, forms)
local possessorForms = forms.possessive[possessor.id]
local normal = '<span style="font-style:normal">'
local rows = gt.getRow(
{'!class="main min" style="font-style:normal"', normal .. possessor.label .. "</span>"},
{'!style="font-style:normal"', normal .. "Singular</span>"},
{'!style="font-style:normal"', normal .. "Plural</span>"}
)
for _, case in ipairs(caseLabels) do
local singularForm = grammarLink(possessorForms.singular[case.key])
if possessorForms.singularVariant then
singularForm = singularForm .. " eller " .. grammarLink(possessorForms.singularVariant[case.key])
end
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal .. case.label .. "</span>"},
normal .. singularForm .. "</span>",
normal .. grammarLink(possessorForms.plural[case.key]) .. "</span>"
)
end
return rows
end
local function renderPossessiveRows(forms)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessorTable(possessor, forms))
end
return table.concat(rows, "\n")
end
local function getPossessiveCell(forms, possessor, case, plural)
local possessorForms = forms.possessive[possessor.id]
local form = plural and possessorForms.plural[case.key] or possessorForms.singular[case.key]
local linked = grammarLink(form)
if not plural and possessorForms.singularVariant then
linked = linked .. " eller " .. grammarLink(possessorForms.singularVariant[case.key])
end
return '<span style="font-style:normal">' .. linked .. "</span>"
end
local function renderPossessiveGrid(forms, meta, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headings = {}
for _ = 1, 3 do
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headings[1], headings[2], headings[3], headings[4], headings[5],
headings[6], headings[7], headings[8], headings[9]
))
for _, case in ipairs(caseLabels) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5],
cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "tr", "subst", false, meta.pagename, meta.width)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {[0] = 2, "rot", "stam", "poss"}
end
function export._getMeta(_pagename, templatename, _args)
-- Keep the legacy k/v templates working while the unified template is
-- introduced. The k template and new general template accept two numbered
-- parameters; the legacy v template keeps its one-parameter contract.
local numberedCells = (templatename == "tr-subst-k" or templatename == "tr-subst") and 2 or 1
return {
numbered_cells = numberedCells,
named_cells = {"rot", "stam", "poss"},
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
local title = "Böjningar av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
gt.setLanguage("")
local columnCount = 3
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(
columnCount,
"tr",
"subst",
hasQualityNotice,
meta.pagename,
meta.width
)
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
rows = rows .. renderPossessiveGrid(forms, meta, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
local function getTemplateData(frame)
local templateFrame = frame:getParent()
local args = {}
for key, value in pairs(templateFrame.args) do
args[key] = value
end
for key, value in pairs(frame.args) do
args[key] = value
end
local pagename = clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = makeForms(pagename, args)
return pagename, forms, err, args
end
function export.getMainRows(frame)
local pagename, forms, err, args = getTemplateData(frame)
gt.setLanguage("")
if err then
return gt.getRow({'!class="error" colspan="3"', err})
end
local title = "Böjningar av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''"
if clean(args.betydelser) then
title = title .. " " .. args.betydelser
end
local rows = gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
return rows
end
function export.getPossessiveRows(frame)
local _, forms, err = getTemplateData(frame)
gt.setLanguage("")
if err then
return ""
end
return renderPossessiveRows(forms)
end
return export
byot48m6217k2a65ir7mblzjmrp3b4o
4155979
4155931
2026-10-16T00:12:34Z
Frodlekis
762
4155979
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["â"] = {high = "ı", low = "a"},
e = {high = "i", low = "e"},
["ı"] = {high = "ı", low = "a"},
i = {high = "i", low = "e"},
["î"] = {high = "i", low = "e"},
o = {high = "u", low = "a"},
["ö"] = {high = "ü", low = "e"},
u = {high = "u", low = "a"},
["û"] = {high = "u", low = "a"},
["ü"] = {high = "ü", low = "e"},
}
local vowelPattern = "aâeıiîoöuûü"
local voicelessFinals = {k = true, p = true, ["ç"] = true, t = true, f = true, h = true, s = true, ["ş"] = true}
local caseLabels = {
{key = "nom", label = "Nominativ (yalın)"},
{key = "acc", label = "Ackusativ (belirtme)"},
{key = "dat", label = "Dativ (yönelme)"},
{key = "loc", label = "Lokativ (bulunma)"},
{key = "abl", label = "Ablativ (ayrılma)"},
{key = "gen", label = "Genitiv (tamlayan)"},
}
local possessors = {
{id = "benim", label = "benim (min)", person = 1, number = "s"},
{id = "senin", label = "senin (din)", person = 2, number = "s"},
{id = "onun", label = "onun (hans/hennes)", person = 3, number = "s"},
{id = "bizim", label = "bizim (vår)", person = 1, number = "p"},
{id = "sizin", label = "sizin (er)", person = 2, number = "p"},
{id = "onların", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([" .. vowelPattern .. "])[^" .. vowelPattern .. "]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[" .. vowelPattern .. "]$") ~= nil
end
local function getLocativeConsonant(lemma, requested)
if requested == "d" or requested == "t" then
return requested
end
local final = mw.ustring.sub(lemma, -1)
return voicelessFinals[final] and "t" or "d"
end
local function applyPossessiveCase(form, caseKey, person, harmony, locativeConsonant)
local linker = person == 3 and "n" or ""
if caseKey == "nom" then
return form
elseif caseKey == "acc" then
return form .. linker .. harmony.high
elseif caseKey == "dat" then
return form .. linker .. harmony.low
elseif caseKey == "loc" then
return form .. linker .. locativeConsonant .. harmony.low
elseif caseKey == "abl" then
return form .. linker .. locativeConsonant .. harmony.low .. "n"
elseif caseKey == "gen" then
return form .. linker .. harmony.high .. "n"
end
return form
end
local function makePossessiveBases(vowelStem, stemHarmony, vowelStemEndsInVowel, pluralStem, pluralHarmony)
local consonantBuffer = vowelStemEndsInVowel and "" or stemHarmony.high
local singular = {
vowelStem .. consonantBuffer .. "m",
vowelStem .. consonantBuffer .. "n",
vowelStem .. (vowelStemEndsInVowel and "s" or "") .. stemHarmony.high,
vowelStem .. consonantBuffer .. "m" .. stemHarmony.high .. "z",
vowelStem .. consonantBuffer .. "n" .. stemHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
local plural = {
pluralStem .. pluralHarmony.high .. "m",
pluralStem .. pluralHarmony.high .. "n",
pluralStem .. pluralHarmony.high,
pluralStem .. pluralHarmony.high .. "m" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high .. "n" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
return singular, plural
end
local function makeForms(lemma, args)
local root = clean(args.grundform) or lemma
-- rot= is the documented parameter. stam= remains accepted for compatibility.
local vowelStem = clean(args.rot) or clean(args.stam) or root
local vowel = clean(args[1]) or lastVowel(vowelStem) or lastVowel(root)
local harmony = vowel and vowels[vowel]
if not harmony then
return nil, "Turkisk substantivböjning kräver en giltig sista vokal (a, â, e, ı, i, î, o, ö, u, û eller ü)."
end
local hasLexicalPossessive = args.poss == "1"
if hasLexicalPossessive and mw.ustring.sub(vowelStem, -1) ~= harmony.high then
return nil, "poss=1 kräver att uppslagsordet slutar på den harmoniska possessivvokalen."
end
local inflectionStem = hasLexicalPossessive and mw.ustring.sub(vowelStem, 1, -2) or vowelStem
local vowelStemEndsInVowel = endsInVowel(inflectionStem)
local pluralBase = hasLexicalPossessive and inflectionStem or root
local pluralStem = pluralBase .. "l" .. harmony.low .. "r"
local pluralHarmony = vowels[harmony.low]
local locativeConsonant = getLocativeConsonant(root, clean(args[2]))
local singular = {
nom = root,
acc = hasLexicalPossessive and (root .. "n" .. harmony.high)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.high),
dat = hasLexicalPossessive and (root .. "n" .. harmony.low)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.low),
loc = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low)
or (root .. locativeConsonant .. harmony.low),
abl = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low .. "n")
or (root .. locativeConsonant .. harmony.low .. "n"),
gen = hasLexicalPossessive and (root .. "n" .. harmony.high .. "n")
or (vowelStem .. (vowelStemEndsInVowel and "n" or "") .. harmony.high .. "n"),
}
local pluralNominative = hasLexicalPossessive and (pluralStem .. harmony.high) or pluralStem
local plural = {
nom = pluralNominative,
acc = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high)
or (pluralStem .. pluralHarmony.high),
dat = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.low)
or (pluralStem .. pluralHarmony.low),
loc = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low)
or (pluralStem .. "d" .. pluralHarmony.low),
abl = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low .. "n")
or (pluralStem .. "d" .. pluralHarmony.low .. "n"),
gen = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high .. "n")
or (pluralStem .. pluralHarmony.high .. "n"),
}
local singularBases, pluralBases = makePossessiveBases(
inflectionStem,
harmony,
vowelStemEndsInVowel,
pluralStem,
pluralHarmony
)
local possessive = {}
for _, possessor in ipairs(possessors) do
local index = possessor.person + (possessor.number == "p" and 3 or 0)
local singularBase = singularBases[index]
local pluralPossessiveBase = pluralBases[index]
if possessor.id == "onların" then
-- Turkish uses the 3rd-person plural possessive form in both number
-- columns when the possessor is onlar (e.g. alınları).
singularBase = pluralBases[3]
end
local forms = {singular = {}, plural = {}}
for _, case in ipairs(caseLabels) do
forms.singular[case.key] = applyPossessiveCase(
singularBase, case.key, possessor.person, harmony, "d"
)
forms.plural[case.key] = applyPossessiveCase(
pluralPossessiveBase, case.key, possessor.person, pluralHarmony, "d"
)
end
possessive[possessor.id] = forms
end
return {
lemma = root,
singular = singular,
plural = plural,
possessive = possessive,
}
end
local function grammarLink(form)
local link = grammar_link.link(form, "infl", "tr")
-- Let green_links.js append the preload fragment to the URL. A #Turkiska
-- fragment before it prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Turkiska", "")
return link
end
local function renderPossessorTable(possessor, forms)
local possessorForms = forms.possessive[possessor.id]
local normal = '<span style="font-style:normal">'
local rows = gt.getRow(
{'!class="main min" style="font-style:normal"', normal .. possessor.label .. "</span>"},
{'!style="font-style:normal"', normal .. "Singular</span>"},
{'!style="font-style:normal"', normal .. "Plural</span>"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal .. case.label .. "</span>"},
normal .. grammarLink(possessorForms.singular[case.key]) .. "</span>",
normal .. grammarLink(possessorForms.plural[case.key]) .. "</span>"
)
end
return rows
end
local function renderPossessiveRows(forms)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessorTable(possessor, forms))
end
return table.concat(rows, "\n")
end
local function getPossessiveCell(forms, possessor, case, plural)
local possessorForms = forms.possessive[possessor.id]
local form = plural and possessorForms.plural[case.key] or possessorForms.singular[case.key]
local linked = grammarLink(form)
return '<span style="font-style:normal">' .. linked .. "</span>"
end
local function renderPossessiveGrid(forms, meta, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headings = {}
for _ = 1, 3 do
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headings[1], headings[2], headings[3], headings[4], headings[5],
headings[6], headings[7], headings[8], headings[9]
))
for _, case in ipairs(caseLabels) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5],
cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "tr", "subst", false, meta.pagename, meta.width)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {[0] = 2, "rot", "stam", "poss"}
end
function export._getMeta(_pagename, templatename, _args)
-- Keep the legacy k/v templates working while the unified template is
-- introduced. The k template and new general template accept two numbered
-- parameters; the legacy v template keeps its one-parameter contract.
local numberedCells = (templatename == "tr-subst-k" or templatename == "tr-subst") and 2 or 1
return {
numbered_cells = numberedCells,
named_cells = {"rot", "stam", "poss"},
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
local title = "Böjningar av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
gt.setLanguage("")
local columnCount = 3
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(
columnCount,
"tr",
"subst",
hasQualityNotice,
meta.pagename,
meta.width
)
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
rows = rows .. renderPossessiveGrid(forms, meta, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
local function getTemplateData(frame)
local templateFrame = frame:getParent()
local args = {}
for key, value in pairs(templateFrame.args) do
args[key] = value
end
for key, value in pairs(frame.args) do
args[key] = value
end
local pagename = clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = makeForms(pagename, args)
return pagename, forms, err, args
end
function export.getMainRows(frame)
local pagename, forms, err, args = getTemplateData(frame)
gt.setLanguage("")
if err then
return gt.getRow({'!class="error" colspan="3"', err})
end
local title = "Böjningar av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''"
if clean(args.betydelser) then
title = title .. " " .. args.betydelser
end
local rows = gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
return rows
end
function export.getPossessiveRows(frame)
local _, forms, err = getTemplateData(frame)
gt.setLanguage("")
if err then
return ""
end
return renderPossessiveRows(forms)
end
return export
426r58t28bw51qwwnrgymzi4u7avck2
4156021
4155979
2026-10-16T00:48:40Z
Frodlekis
762
4156021
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["â"] = {high = "ı", low = "a"},
e = {high = "i", low = "e"},
["ı"] = {high = "ı", low = "a"},
i = {high = "i", low = "e"},
["î"] = {high = "i", low = "e"},
o = {high = "u", low = "a"},
["ö"] = {high = "ü", low = "e"},
u = {high = "u", low = "a"},
["û"] = {high = "u", low = "a"},
["ü"] = {high = "ü", low = "e"},
}
local vowelPattern = "aâeıiîoöuûü"
local voicelessFinals = {k = true, p = true, ["ç"] = true, t = true, f = true, h = true, s = true, ["ş"] = true}
local caseLabels = {
{key = "nom", label = "Nominativ (yalın)"},
{key = "acc", label = "Ackusativ (belirtme)"},
{key = "dat", label = "Dativ (yönelme)"},
{key = "loc", label = "Lokativ (bulunma)"},
{key = "abl", label = "Ablativ (ayrılma)"},
{key = "gen", label = "Genitiv (tamlayan)"},
}
local possessors = {
{id = "benim", label = "benim (min)", person = 1, number = "s"},
{id = "senin", label = "senin (din)", person = 2, number = "s"},
{id = "onun", label = "onun (hans/hennes)", person = 3, number = "s"},
{id = "bizim", label = "bizim (vår)", person = 1, number = "p"},
{id = "sizin", label = "sizin (er)", person = 2, number = "p"},
{id = "onların", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([" .. vowelPattern .. "])[^" .. vowelPattern .. "]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[" .. vowelPattern .. "]$") ~= nil
end
local function getLocativeConsonant(lemma, requested)
if requested == "d" or requested == "t" then
return requested
end
local final = mw.ustring.sub(lemma, -1)
return voicelessFinals[final] and "t" or "d"
end
local function applyPossessiveCase(form, caseKey, person, harmony, locativeConsonant)
local linker = person == 3 and "n" or ""
if caseKey == "nom" then
return form
elseif caseKey == "acc" then
return form .. linker .. harmony.high
elseif caseKey == "dat" then
return form .. linker .. harmony.low
elseif caseKey == "loc" then
return form .. linker .. locativeConsonant .. harmony.low
elseif caseKey == "abl" then
return form .. linker .. locativeConsonant .. harmony.low .. "n"
elseif caseKey == "gen" then
return form .. linker .. harmony.high .. "n"
end
return form
end
local function makePossessiveBases(vowelStem, stemHarmony, vowelStemEndsInVowel, pluralStem, pluralHarmony)
local consonantBuffer = vowelStemEndsInVowel and "" or stemHarmony.high
local singular = {
vowelStem .. consonantBuffer .. "m",
vowelStem .. consonantBuffer .. "n",
vowelStem .. (vowelStemEndsInVowel and "s" or "") .. stemHarmony.high,
vowelStem .. consonantBuffer .. "m" .. stemHarmony.high .. "z",
vowelStem .. consonantBuffer .. "n" .. stemHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
local plural = {
pluralStem .. pluralHarmony.high .. "m",
pluralStem .. pluralHarmony.high .. "n",
pluralStem .. pluralHarmony.high,
pluralStem .. pluralHarmony.high .. "m" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high .. "n" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
return singular, plural
end
local function makeForms(lemma, args)
local root = clean(args.grundform) or lemma
-- rot= is the documented parameter. stam= remains accepted for compatibility.
local vowelStem = clean(args.rot) or clean(args.stam) or root
local vowel = clean(args[1]) or lastVowel(vowelStem) or lastVowel(root)
local harmony = vowel and vowels[vowel]
if not harmony then
return nil, "Turkisk substantivböjning kräver en giltig sista vokal (a, â, e, ı, i, î, o, ö, u, û eller ü)."
end
local hasLexicalPossessive = args.poss == "1"
if hasLexicalPossessive and mw.ustring.sub(vowelStem, -1) ~= harmony.high then
return nil, "poss=1 kräver att uppslagsordet slutar på den harmoniska possessivvokalen."
end
local inflectionStem = hasLexicalPossessive and mw.ustring.sub(vowelStem, 1, -2) or vowelStem
local vowelStemEndsInVowel = endsInVowel(inflectionStem)
local pluralBase = hasLexicalPossessive and inflectionStem or root
local pluralStem = pluralBase .. "l" .. harmony.low .. "r"
local pluralHarmony = vowels[harmony.low]
local locativeConsonant = getLocativeConsonant(root, clean(args[2]))
local singular = {
nom = root,
acc = hasLexicalPossessive and (root .. "n" .. harmony.high)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.high),
dat = hasLexicalPossessive and (root .. "n" .. harmony.low)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.low),
loc = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low)
or (root .. locativeConsonant .. harmony.low),
abl = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low .. "n")
or (root .. locativeConsonant .. harmony.low .. "n"),
gen = hasLexicalPossessive and (root .. "n" .. harmony.high .. "n")
or (vowelStem .. (vowelStemEndsInVowel and "n" or "") .. harmony.high .. "n"),
}
local pluralNominative = hasLexicalPossessive and (pluralStem .. harmony.high) or pluralStem
local plural = {
nom = pluralNominative,
acc = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high)
or (pluralStem .. pluralHarmony.high),
dat = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.low)
or (pluralStem .. pluralHarmony.low),
loc = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low)
or (pluralStem .. "d" .. pluralHarmony.low),
abl = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low .. "n")
or (pluralStem .. "d" .. pluralHarmony.low .. "n"),
gen = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high .. "n")
or (pluralStem .. pluralHarmony.high .. "n"),
}
local singularBases, pluralBases = makePossessiveBases(
inflectionStem,
harmony,
vowelStemEndsInVowel,
pluralStem,
pluralHarmony
)
local possessive = {}
for _, possessor in ipairs(possessors) do
local index = possessor.person + (possessor.number == "p" and 3 or 0)
local singularBase = singularBases[index]
local pluralPossessiveBase = pluralBases[index]
if possessor.id == "onların" then
-- Turkish uses the 3rd-person plural possessive form in both number
-- columns when the possessor is onlar (e.g. alınları).
singularBase = pluralBases[3]
end
local forms = {singular = {}, plural = {}}
for _, case in ipairs(caseLabels) do
forms.singular[case.key] = applyPossessiveCase(
singularBase, case.key, possessor.person, harmony, "d"
)
forms.plural[case.key] = applyPossessiveCase(
pluralPossessiveBase, case.key, possessor.person, pluralHarmony, "d"
)
end
possessive[possessor.id] = forms
end
return {
lemma = root,
singular = singular,
plural = plural,
possessive = possessive,
}
end
local function grammarLink(form)
local link = grammar_link.link(form, "infl", "tr")
-- Let green_links.js append the preload fragment to the URL. A #Turkiska
-- fragment before it prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Turkiska", "")
return link
end
local function renderPossessorTable(possessor, forms)
local possessorForms = forms.possessive[possessor.id]
local normal = '<span style="font-style:normal">'
local rows = gt.getRow(
{'!class="main min" style="font-style:normal"', normal .. possessor.label .. "</span>"},
{'!style="font-style:normal"', normal .. "Singular</span>"},
{'!style="font-style:normal"', normal .. "Plural</span>"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal .. case.label .. "</span>"},
normal .. grammarLink(possessorForms.singular[case.key]) .. "</span>",
normal .. grammarLink(possessorForms.plural[case.key]) .. "</span>"
)
end
return rows
end
local function renderPossessiveRows(forms)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessorTable(possessor, forms))
end
return table.concat(rows, "\n")
end
local function getPossessiveCell(forms, possessor, case, plural)
local possessorForms = forms.possessive[possessor.id]
local form = plural and possessorForms.plural[case.key] or possessorForms.singular[case.key]
local linked = grammarLink(form)
return '<span style="font-style:normal">' .. linked .. "</span>"
end
local function renderPossessiveGrid(forms, meta, columnCount, singularOnly)
local rows = {}
local cellsPerPossessor = singularOnly and 2 or 3
local function rowFromCells(cells)
if #cells == 6 then
return gt.getRow(cells[1], cells[2], cells[3], cells[4], cells[5], cells[6])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4], cells[5], cells[6], cells[7], cells[8], cells[9])
end
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
local possessorHeadings = {}
for _, possessor in ipairs(group) do
table.insert(possessorHeadings, {
'!colspan="' .. cellsPerPossessor .. '" class="main min" style="font-style:normal"',
'<span style="font-style:normal">' .. possessor.label .. "</span>"
})
end
table.insert(rows, gt.getRow(possessorHeadings[1], possessorHeadings[2], possessorHeadings[3]))
local headings = {}
for _ = 1, #group do
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
if not singularOnly then
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
end
table.insert(rows, rowFromCells(headings))
for _, case in ipairs(caseLabels) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
if not singularOnly then
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
end
table.insert(rows, rowFromCells(cells))
end
end
local hiddenColumnCount = singularOnly and 6 or 9
local hiddenRows = gt.getStart(hiddenColumnCount, "tr", "subst", false, meta.pagename, meta.width)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {[0] = 2, "rot", "stam", "poss"}
end
function export._getMeta(_pagename, templatename, _args)
-- Keep the legacy k/v templates working while the unified template is
-- introduced. The k template and new general template accept two numbered
-- parameters; the legacy v template keeps its one-parameter contract.
local numberedCells = (
templatename == "tr-subst-k"
or templatename == "tr-subst"
or templatename == "tr-subst-oräkn"
) and 2 or 1
return {
numbered_cells = numberedCells,
named_cells = {"rot", "stam", "poss"},
singular_only = templatename == "tr-subst-oräkn",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
local title = "Böjningar av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
gt.setLanguage("")
local singularOnly = meta.singular_only
local columnCount = singularOnly and 2 or 3
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(
columnCount,
"tr",
"subst",
hasQualityNotice,
meta.pagename,
meta.width
)
if singularOnly then
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
else
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
end
for _, case in ipairs(caseLabels) do
if singularOnly then
rows = rows .. gt.getRow({'!', case.label}, grammarLink(forms.singular[case.key]))
else
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
end
rows = rows .. renderPossessiveGrid(forms, meta, columnCount, singularOnly)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
local function getTemplateData(frame)
local templateFrame = frame:getParent()
local args = {}
for key, value in pairs(templateFrame.args) do
args[key] = value
end
for key, value in pairs(frame.args) do
args[key] = value
end
local pagename = clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = makeForms(pagename, args)
return pagename, forms, err, args
end
function export.getMainRows(frame)
local pagename, forms, err, args = getTemplateData(frame)
gt.setLanguage("")
if err then
return gt.getRow({'!class="error" colspan="3"', err})
end
local title = "Böjningar av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''"
if clean(args.betydelser) then
title = title .. " " .. args.betydelser
end
local rows = gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
return rows
end
function export.getPossessiveRows(frame)
local _, forms, err = getTemplateData(frame)
gt.setLanguage("")
if err then
return ""
end
return renderPossessiveRows(forms)
end
return export
t5v3ec7m52z78ysb6ya21wjtb0y14pz
4156073
4156021
2026-10-16T08:28:01Z
Frodlekis
762
4156073
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["â"] = {high = "ı", low = "a"},
e = {high = "i", low = "e"},
["ı"] = {high = "ı", low = "a"},
i = {high = "i", low = "e"},
["î"] = {high = "i", low = "e"},
o = {high = "u", low = "a"},
["ö"] = {high = "ü", low = "e"},
u = {high = "u", low = "a"},
["û"] = {high = "u", low = "a"},
["ü"] = {high = "ü", low = "e"},
}
local vowelPattern = "aâeıiîoöuûü"
local voicelessFinals = {k = true, p = true, ["ç"] = true, t = true, f = true, h = true, s = true, ["ş"] = true}
local caseLabels = {
{key = "nom", label = "Nominativ (yalın)"},
{key = "acc", label = "Ackusativ (belirtme)"},
{key = "dat", label = "Dativ (yönelme)"},
{key = "loc", label = "Lokativ (bulunma)"},
{key = "abl", label = "Ablativ (ayrılma)"},
{key = "gen", label = "Genitiv (tamlayan)"},
}
local possessors = {
{id = "benim", label = "benim (min)", person = 1, number = "s"},
{id = "senin", label = "senin (din)", person = 2, number = "s"},
{id = "onun", label = "onun (hans/hennes)", person = 3, number = "s"},
{id = "bizim", label = "bizim (vår)", person = 1, number = "p"},
{id = "sizin", label = "sizin (er)", person = 2, number = "p"},
{id = "onların", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([" .. vowelPattern .. "])[^" .. vowelPattern .. "]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[" .. vowelPattern .. "]$") ~= nil
end
local function getLocativeConsonant(lemma, requested)
if requested == "d" or requested == "t" then
return requested
end
local final = mw.ustring.sub(lemma, -1)
return voicelessFinals[final] and "t" or "d"
end
local function applyPossessiveCase(form, caseKey, person, harmony, locativeConsonant)
local linker = person == 3 and "n" or ""
if caseKey == "nom" then
return form
elseif caseKey == "acc" then
return form .. linker .. harmony.high
elseif caseKey == "dat" then
return form .. linker .. harmony.low
elseif caseKey == "loc" then
return form .. linker .. locativeConsonant .. harmony.low
elseif caseKey == "abl" then
return form .. linker .. locativeConsonant .. harmony.low .. "n"
elseif caseKey == "gen" then
return form .. linker .. harmony.high .. "n"
end
return form
end
local function makePossessiveBases(vowelStem, stemHarmony, vowelStemEndsInVowel, pluralStem, pluralHarmony)
local consonantBuffer = vowelStemEndsInVowel and "" or stemHarmony.high
local singular = {
vowelStem .. consonantBuffer .. "m",
vowelStem .. consonantBuffer .. "n",
vowelStem .. (vowelStemEndsInVowel and "s" or "") .. stemHarmony.high,
vowelStem .. consonantBuffer .. "m" .. stemHarmony.high .. "z",
vowelStem .. consonantBuffer .. "n" .. stemHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
local plural = {
pluralStem .. pluralHarmony.high .. "m",
pluralStem .. pluralHarmony.high .. "n",
pluralStem .. pluralHarmony.high,
pluralStem .. pluralHarmony.high .. "m" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high .. "n" .. pluralHarmony.high .. "z",
pluralStem .. pluralHarmony.high,
}
return singular, plural
end
local function makeForms(lemma, args)
local root = clean(args.grundform) or lemma
-- rot= is the documented parameter. stam= remains accepted for compatibility.
local vowelStem = clean(args.rot) or clean(args.stam) or root
local vowel = clean(args[1]) or lastVowel(vowelStem) or lastVowel(root)
local harmony = vowel and vowels[vowel]
if not harmony then
return nil, "Turkisk substantivböjning kräver en giltig sista vokal (a, â, e, ı, i, î, o, ö, u, û eller ü)."
end
local hasLexicalPossessive = args.poss == "1"
if hasLexicalPossessive and mw.ustring.sub(vowelStem, -1) ~= harmony.high then
return nil, "poss=1 kräver att uppslagsordet slutar på den harmoniska possessivvokalen."
end
local inflectionStem = hasLexicalPossessive and mw.ustring.sub(vowelStem, 1, -2) or vowelStem
local vowelStemEndsInVowel = endsInVowel(inflectionStem)
local pluralBase = hasLexicalPossessive and inflectionStem or root
local pluralStem = pluralBase .. "l" .. harmony.low .. "r"
local pluralHarmony = vowels[harmony.low]
local locativeConsonant = getLocativeConsonant(root, clean(args[2]))
local singular = {
nom = root,
acc = hasLexicalPossessive and (root .. "n" .. harmony.high)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.high),
dat = hasLexicalPossessive and (root .. "n" .. harmony.low)
or (vowelStem .. (vowelStemEndsInVowel and "y" or "") .. harmony.low),
loc = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low)
or (root .. locativeConsonant .. harmony.low),
abl = hasLexicalPossessive and (root .. "n" .. locativeConsonant .. harmony.low .. "n")
or (root .. locativeConsonant .. harmony.low .. "n"),
gen = hasLexicalPossessive and (root .. "n" .. harmony.high .. "n")
or (vowelStem .. (vowelStemEndsInVowel and "n" or "") .. harmony.high .. "n"),
}
local pluralNominative = hasLexicalPossessive and (pluralStem .. harmony.high) or pluralStem
local plural = {
nom = pluralNominative,
acc = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high)
or (pluralStem .. pluralHarmony.high),
dat = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.low)
or (pluralStem .. pluralHarmony.low),
loc = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low)
or (pluralStem .. "d" .. pluralHarmony.low),
abl = hasLexicalPossessive and (pluralNominative .. "n" .. "d" .. pluralHarmony.low .. "n")
or (pluralStem .. "d" .. pluralHarmony.low .. "n"),
gen = hasLexicalPossessive and (pluralNominative .. "n" .. pluralHarmony.high .. "n")
or (pluralStem .. pluralHarmony.high .. "n"),
}
local singularBases, pluralBases = makePossessiveBases(
inflectionStem,
harmony,
vowelStemEndsInVowel,
pluralStem,
pluralHarmony
)
local possessive = {}
for _, possessor in ipairs(possessors) do
local index = possessor.person + (possessor.number == "p" and 3 or 0)
local singularBase = singularBases[index]
local pluralPossessiveBase = pluralBases[index]
if possessor.id == "onların" then
-- Turkish uses the 3rd-person plural possessive form in both number
-- columns when the possessor is onlar (e.g. alınları). The case
-- suffixes follow the plural stem's harmony (e.g. düşlerini).
singularBase = pluralBases[3]
end
local singularHarmony = possessor.id == "onların" and pluralHarmony or harmony
local forms = {singular = {}, plural = {}}
for _, case in ipairs(caseLabels) do
forms.singular[case.key] = applyPossessiveCase(
singularBase, case.key, possessor.person, singularHarmony, "d"
)
forms.plural[case.key] = applyPossessiveCase(
pluralPossessiveBase, case.key, possessor.person, pluralHarmony, "d"
)
end
possessive[possessor.id] = forms
end
return {
lemma = root,
singular = singular,
plural = plural,
possessive = possessive,
}
end
local function grammarLink(form)
local link = grammar_link.link(form, "infl", "tr")
-- Let green_links.js append the preload fragment to the URL. A #Turkiska
-- fragment before it prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Turkiska", "")
return link
end
local function renderPossessorTable(possessor, forms)
local possessorForms = forms.possessive[possessor.id]
local normal = '<span style="font-style:normal">'
local rows = gt.getRow(
{'!class="main min" style="font-style:normal"', normal .. possessor.label .. "</span>"},
{'!style="font-style:normal"', normal .. "Singular</span>"},
{'!style="font-style:normal"', normal .. "Plural</span>"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal .. case.label .. "</span>"},
normal .. grammarLink(possessorForms.singular[case.key]) .. "</span>",
normal .. grammarLink(possessorForms.plural[case.key]) .. "</span>"
)
end
return rows
end
local function renderPossessiveRows(forms)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessorTable(possessor, forms))
end
return table.concat(rows, "\n")
end
local function getPossessiveCell(forms, possessor, case, plural)
local possessorForms = forms.possessive[possessor.id]
local form = plural and possessorForms.plural[case.key] or possessorForms.singular[case.key]
local linked = grammarLink(form)
return '<span style="font-style:normal">' .. linked .. "</span>"
end
local function renderPossessiveGrid(forms, meta, columnCount, singularOnly)
local rows = {}
local cellsPerPossessor = singularOnly and 2 or 3
local function rowFromCells(cells)
if #cells == 6 then
return gt.getRow(cells[1], cells[2], cells[3], cells[4], cells[5], cells[6])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4], cells[5], cells[6], cells[7], cells[8], cells[9])
end
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
local possessorHeadings = {}
for _, possessor in ipairs(group) do
table.insert(possessorHeadings, {
'!colspan="' .. cellsPerPossessor .. '" class="main min" style="font-style:normal"',
'<span style="font-style:normal">' .. possessor.label .. "</span>"
})
end
table.insert(rows, gt.getRow(possessorHeadings[1], possessorHeadings[2], possessorHeadings[3]))
local headings = {}
for _ = 1, #group do
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
if not singularOnly then
table.insert(headings, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
end
table.insert(rows, rowFromCells(headings))
for _, case in ipairs(caseLabels) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
if not singularOnly then
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
end
table.insert(rows, rowFromCells(cells))
end
end
local hiddenColumnCount = singularOnly and 6 or 9
local hiddenRows = gt.getStart(hiddenColumnCount, "tr", "subst", false, meta.pagename, meta.width)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {[0] = 2, "rot", "stam", "poss"}
end
function export._getMeta(_pagename, templatename, _args)
-- Keep the legacy k/v templates working while the unified template is
-- introduced. The k template and new general template accept two numbered
-- parameters; the legacy v template keeps its one-parameter contract.
local numberedCells = (
templatename == "tr-subst-k"
or templatename == "tr-subst"
or templatename == "tr-subst-oräkn"
) and 2 or 1
return {
numbered_cells = numberedCells,
named_cells = {"rot", "stam", "poss"},
singular_only = templatename == "tr-subst-oräkn",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
local title = "Böjningar av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
gt.setLanguage("")
local singularOnly = meta.singular_only
local columnCount = singularOnly and 2 or 3
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(
columnCount,
"tr",
"subst",
hasQualityNotice,
meta.pagename,
meta.width
)
if singularOnly then
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!', "Singular"}
)
else
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
end
for _, case in ipairs(caseLabels) do
if singularOnly then
rows = rows .. gt.getRow({'!', case.label}, grammarLink(forms.singular[case.key]))
else
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
end
rows = rows .. renderPossessiveGrid(forms, meta, columnCount, singularOnly)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
local function getTemplateData(frame)
local templateFrame = frame:getParent()
local args = {}
for key, value in pairs(templateFrame.args) do
args[key] = value
end
for key, value in pairs(frame.args) do
args[key] = value
end
local pagename = clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = makeForms(pagename, args)
return pagename, forms, err, args
end
function export.getMainRows(frame)
local pagename, forms, err, args = getTemplateData(frame)
gt.setLanguage("")
if err then
return gt.getRow({'!class="error" colspan="3"', err})
end
local title = "Böjningar av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''"
if clean(args.betydelser) then
title = title .. " " .. args.betydelser
end
local rows = gt.getRow(
{'!class="main min"', title},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(caseLabels) do
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(forms.singular[case.key]),
grammarLink(forms.plural[case.key])
)
end
return rows
end
function export.getPossessiveRows(frame)
local _, forms, err = getTemplateData(frame)
gt.setLanguage("")
if err then
return ""
end
return renderPossessiveRows(forms)
end
return export
n82gsaqx92ffdsc9042eamnsw2j1v86
Modul:tr-subst/test
828
1074275
4156019
4155759
2026-10-16T00:47:07Z
Frodlekis
762
4156019
Scribunto
text/plain
local t = require("Modul:UnitTests")
local tr = require("Modul:tr-subst")
local export = {}
local function cases(nom, acc, dat, loc, abl, gen)
return {nom = nom, acc = acc, dat = dat, loc = loc, abl = abl, gen = gen}
end
local function possessive(singular, plural)
return {singular = singular, plural = plural}
end
local function getForms(lemma, args, templatename)
return tr._getForms(lemma, templatename or "tr-subst", args or {}, {}, "export")
end
function t:test01_hayal_complete_paradigm()
local forms = getForms("hayal", {[1] = "e", [2] = "d"})
self:equals_deep("hayal singular", forms.singular,
cases("hayal", "hayali", "hayale", "hayalde", "hayalden", "hayalin"))
self:equals_deep("hayal plural", forms.plural,
cases("hayaller", "hayalleri", "hayallere", "hayallerde", "hayallerden", "hayallerin"))
self:equals_deep("hayal onların", forms.possessive["onların"], possessive(
cases("hayalleri", "hayallerini", "hayallerine", "hayallerinde", "hayallerinden", "hayallerinin"),
cases("hayalleri", "hayallerini", "hayallerine", "hayallerinde", "hayallerinden", "hayallerinin")
))
end
function t:test02_dus_and_locative_defaults()
local forms = getForms("düş", {[1] = "ü"})
self:equals_deep("düş singular", forms.singular,
cases("düş", "düşü", "düşe", "düşte", "düşten", "düşün"))
self:equals_deep("düş plural", forms.plural,
cases("düşler", "düşleri", "düşlere", "düşlerde", "düşlerden", "düşlerin"))
self:equals_deep("düş benim singular", forms.possessive.benim.singular,
cases("düşüm", "düşümü", "düşüme", "düşümde", "düşümden", "düşümün"))
self:equals_deep("düş onların singular", forms.possessive["onların"].singular,
cases("düşleri", "düşlerini", "düşlerine", "düşlerinde", "düşlerinden", "düşlerinin"))
end
function t:test03_vowel_final_ruya()
local forms = getForms("rüya", {[1] = "a"})
self:equals_deep("rüya singular", forms.singular,
cases("rüya", "rüyayı", "rüyaya", "rüyada", "rüyadan", "rüyanın"))
self:equals_deep("rüya plural", forms.plural,
cases("rüyalar", "rüyaları", "rüyalara", "rüyalarda", "rüyalardan", "rüyaların"))
self:equals_deep("rüya onun singular", forms.possessive.onun.singular,
cases("rüyası", "rüyasını", "rüyasına", "rüyasında", "rüyasından", "rüyasının"))
end
function t:test04_alternative_root_ozgurluk()
local forms = getForms("özgürlük", {[1] = "ü", [2] = "t", rot = "özgürlüğ"})
self:equals_deep("özgürlük singular", forms.singular,
cases("özgürlük", "özgürlüğü", "özgürlüğe", "özgürlükte", "özgürlükten", "özgürlüğün"))
self:equals_deep("özgürlük plural", forms.plural,
cases("özgürlükler", "özgürlükleri", "özgürlüklere", "özgürlüklerde", "özgürlüklerden", "özgürlüklerin"))
self:equals_deep("özgürlük benim singular", forms.possessive.benim.singular,
cases("özgürlüğüm", "özgürlüğümü", "özgürlüğüme", "özgürlüğümde", "özgürlüğümden", "özgürlüğümün"))
end
function t:test05_alin_rot_and_onlar_forms()
local forms = getForms("alın", {rot = "aln"})
self:equals_deep("alın singular", forms.singular,
cases("alın", "alnı", "alna", "alında", "alından", "alnın"))
self:equals_deep("alın plural", forms.plural,
cases("alınlar", "alınları", "alınlara", "alınlarda", "alınlardan", "alınların"))
self:equals_deep("alın benim singular", forms.possessive.benim.singular,
cases("alnım", "alnımı", "alnıma", "alnımda", "alnımdan", "alnımın"))
self:equals_deep("alın benim plural", forms.possessive.benim.plural,
cases("alınlarım", "alınlarımı", "alınlarıma", "alınlarımda", "alınlarımdan", "alınlarımın"))
local theirForms = cases("alınları", "alınlarını", "alınlarına", "alınlarında", "alınlarından", "alınlarının")
self:equals_deep("alın onların singular", forms.possessive["onların"].singular, theirForms)
self:equals_deep("alın onların plural", forms.possessive["onların"].plural, theirForms)
self:equals_deep("alın has no extra onların variant", forms.possessive["onların"].singularVariant, nil)
end
function t:test06_saat_front_vowel_harmony_override()
local forms = getForms("saat", {[1] = "e"})
self:equals_deep("saat singular", forms.singular,
cases("saat", "saati", "saate", "saatte", "saatten", "saatin"))
self:equals_deep("saat plural", forms.plural,
cases("saatler", "saatleri", "saatlere", "saatlerde", "saatlerden", "saatlerin"))
self:equals_deep("saat benim singular", forms.possessive.benim.singular,
cases("saatim", "saatimi", "saatime", "saatimde", "saatimden", "saatimin"))
end
function t:test07_invalid_vowel()
local result = getForms("xyz", {})
self:equals_deep("invalid form returns an error", result.error ~= nil, true)
end
function t:test08_lexical_possessive_ending()
local forms = getForms("tereyağı", {[1] = "ı", poss = "1"})
self:equals_deep("tereyağı singular", forms.singular,
cases("tereyağı", "tereyağını", "tereyağına", "tereyağında", "tereyağından", "tereyağının"))
self:equals_deep("tereyağı plural", forms.plural,
cases("tereyağları", "tereyağlarını", "tereyağlarına", "tereyağlarında", "tereyağlarından", "tereyağlarının"))
self:equals_deep("tereyağı possessive singular", forms.possessive.benim.singular,
cases("tereyağım", "tereyağımı", "tereyağıma", "tereyağımda", "tereyağımdan", "tereyağımın"))
self:equals_deep("tereyağı possessive plural", forms.possessive.benim.plural,
cases("tereyağlarım", "tereyağlarımı", "tereyağlarıma", "tereyağlarımda", "tereyağlarımdan", "tereyağlarımın"))
end
function t:test09_template_parameter_contracts()
self:equals_deep("new template numbered parameters", tr._getMeta("saat", "tr-subst", {}).numbered_cells, 2)
self:equals_deep("legacy consonant template numbered parameters", tr._getMeta("düş", "tr-subst-k", {}).numbered_cells, 2)
self:equals_deep("legacy vowel template numbered parameters", tr._getMeta("rüya", "tr-subst-v", {}).numbered_cells, 1)
self:equals_deep("named parameters", tr._getAcceptedParameters(),
{[0] = 2, "rot", "stam", "poss"})
end
function export.run_tests(frame)
return t:run(frame)
end
return export
l2a6yx9xzrclv9xzxhtzd8lp1fjvn4m
4156074
4156019
2026-10-16T08:29:37Z
Frodlekis
762
4156074
Scribunto
text/plain
local t = require("Modul:UnitTests")
local tr = require("Modul:tr-subst")
local export = {}
local function cases(nom, acc, dat, loc, abl, gen)
return {nom = nom, acc = acc, dat = dat, loc = loc, abl = abl, gen = gen}
end
local function possessive(singular, plural)
return {singular = singular, plural = plural}
end
local function getForms(lemma, args, templatename)
return tr._getForms(lemma, templatename or "tr-subst", args or {}, {}, "export")
end
function t:test01_hayal_complete_paradigm()
local forms = getForms("hayal", {[1] = "e", [2] = "d"})
self:equals_deep("hayal singular", forms.singular,
cases("hayal", "hayali", "hayale", "hayalde", "hayalden", "hayalin"))
self:equals_deep("hayal plural", forms.plural,
cases("hayaller", "hayalleri", "hayallere", "hayallerde", "hayallerden", "hayallerin"))
self:equals_deep("hayal onların", forms.possessive["onların"], possessive(
cases("hayalleri", "hayallerini", "hayallerine", "hayallerinde", "hayallerinden", "hayallerinin"),
cases("hayalleri", "hayallerini", "hayallerine", "hayallerinde", "hayallerinden", "hayallerinin")
))
end
function t:test02_dus_and_locative_defaults()
local forms = getForms("düş", {[1] = "ü"})
self:equals_deep("düş singular", forms.singular,
cases("düş", "düşü", "düşe", "düşte", "düşten", "düşün"))
self:equals_deep("düş plural", forms.plural,
cases("düşler", "düşleri", "düşlere", "düşlerde", "düşlerden", "düşlerin"))
self:equals_deep("düş benim singular", forms.possessive.benim.singular,
cases("düşüm", "düşümü", "düşüme", "düşümde", "düşümden", "düşümün"))
self:equals_deep("düş onların singular", forms.possessive["onların"].singular,
cases("düşleri", "düşlerini", "düşlerine", "düşlerinde", "düşlerinden", "düşlerinin"))
self:equals_deep("düş onların plural", forms.possessive["onların"].plural,
cases("düşleri", "düşlerini", "düşlerine", "düşlerinde", "düşlerinden", "düşlerinin"))
end
function t:test03_vowel_final_ruya()
local forms = getForms("rüya", {[1] = "a"})
self:equals_deep("rüya singular", forms.singular,
cases("rüya", "rüyayı", "rüyaya", "rüyada", "rüyadan", "rüyanın"))
self:equals_deep("rüya plural", forms.plural,
cases("rüyalar", "rüyaları", "rüyalara", "rüyalarda", "rüyalardan", "rüyaların"))
self:equals_deep("rüya onun singular", forms.possessive.onun.singular,
cases("rüyası", "rüyasını", "rüyasına", "rüyasında", "rüyasından", "rüyasının"))
end
function t:test04_alternative_root_ozgurluk()
local forms = getForms("özgürlük", {[1] = "ü", [2] = "t", rot = "özgürlüğ"})
self:equals_deep("özgürlük singular", forms.singular,
cases("özgürlük", "özgürlüğü", "özgürlüğe", "özgürlükte", "özgürlükten", "özgürlüğün"))
self:equals_deep("özgürlük plural", forms.plural,
cases("özgürlükler", "özgürlükleri", "özgürlüklere", "özgürlüklerde", "özgürlüklerden", "özgürlüklerin"))
self:equals_deep("özgürlük benim singular", forms.possessive.benim.singular,
cases("özgürlüğüm", "özgürlüğümü", "özgürlüğüme", "özgürlüğümde", "özgürlüğümden", "özgürlüğümün"))
end
function t:test05_alin_rot_and_onlar_forms()
local forms = getForms("alın", {rot = "aln"})
self:equals_deep("alın singular", forms.singular,
cases("alın", "alnı", "alna", "alında", "alından", "alnın"))
self:equals_deep("alın plural", forms.plural,
cases("alınlar", "alınları", "alınlara", "alınlarda", "alınlardan", "alınların"))
self:equals_deep("alın benim singular", forms.possessive.benim.singular,
cases("alnım", "alnımı", "alnıma", "alnımda", "alnımdan", "alnımın"))
self:equals_deep("alın benim plural", forms.possessive.benim.plural,
cases("alınlarım", "alınlarımı", "alınlarıma", "alınlarımda", "alınlarımdan", "alınlarımın"))
local theirForms = cases("alınları", "alınlarını", "alınlarına", "alınlarında", "alınlarından", "alınlarının")
self:equals_deep("alın onların singular", forms.possessive["onların"].singular, theirForms)
self:equals_deep("alın onların plural", forms.possessive["onların"].plural, theirForms)
self:equals_deep("alın has no extra onların variant", forms.possessive["onların"].singularVariant, nil)
end
function t:test06_saat_front_vowel_harmony_override()
local forms = getForms("saat", {[1] = "e"})
self:equals_deep("saat singular", forms.singular,
cases("saat", "saati", "saate", "saatte", "saatten", "saatin"))
self:equals_deep("saat plural", forms.plural,
cases("saatler", "saatleri", "saatlere", "saatlerde", "saatlerden", "saatlerin"))
self:equals_deep("saat benim singular", forms.possessive.benim.singular,
cases("saatim", "saatimi", "saatime", "saatimde", "saatimden", "saatimin"))
end
function t:test07_invalid_vowel()
local result = getForms("xyz", {})
self:equals_deep("invalid form returns an error", result.error ~= nil, true)
end
function t:test08_lexical_possessive_ending()
local forms = getForms("tereyağı", {[1] = "ı", poss = "1"})
self:equals_deep("tereyağı singular", forms.singular,
cases("tereyağı", "tereyağını", "tereyağına", "tereyağında", "tereyağından", "tereyağının"))
self:equals_deep("tereyağı plural", forms.plural,
cases("tereyağları", "tereyağlarını", "tereyağlarına", "tereyağlarında", "tereyağlarından", "tereyağlarının"))
self:equals_deep("tereyağı possessive singular", forms.possessive.benim.singular,
cases("tereyağım", "tereyağımı", "tereyağıma", "tereyağımda", "tereyağımdan", "tereyağımın"))
self:equals_deep("tereyağı possessive plural", forms.possessive.benim.plural,
cases("tereyağlarım", "tereyağlarımı", "tereyağlarıma", "tereyağlarımda", "tereyağlarımdan", "tereyağlarımın"))
end
function t:test09_template_parameter_contracts()
self:equals_deep("new template numbered parameters", tr._getMeta("saat", "tr-subst", {}).numbered_cells, 2)
self:equals_deep("legacy consonant template numbered parameters", tr._getMeta("düş", "tr-subst-k", {}).numbered_cells, 2)
self:equals_deep("legacy vowel template numbered parameters", tr._getMeta("rüya", "tr-subst-v", {}).numbered_cells, 1)
self:equals_deep("named parameters", tr._getAcceptedParameters(),
{[0] = 2, "rot", "stam", "poss"})
end
function export.run_tests(frame)
return t:run(frame)
end
return export
k87t4py19hlvqt6masbex9bvdi8rvt5
Modul:kmr-subst
828
1074301
4155819
4155449
2026-10-15T20:11:50Z
Frodlekis
762
4155819
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local function append(word, ending)
return word .. ending
end
local function replaceFinal(word, ending)
return gsub(word, ".$", ending)
end
local function formsForGender(lemma, gender, variant)
local f = {def = {}, indef = {}}
local final = match(lemma, ".$")
local vowelFinal = final and match(final, "^[aeêiîouû]$")
local appendY = vowelFinal and (variant == "2" or match(final, "^[aîoû]$"))
local replaceE = final == "e"
local replaceCircumflexE = final == "ê"
local consonantFinal = final and match(final, "^[bcçdfghjklmnpqrsştvwxyz]$") ~= nil
local function make(ending, mode)
if mode == "replace" then
return replaceFinal(lemma, ending)
elseif mode == "append-y" then
local stem = final == "î" and gsub(lemma, "î$", "i") or lemma
return append(stem, "y" .. ending)
elseif mode == "append" then
return append(lemma, ending)
end
end
local endings
if consonantFinal then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
end
elseif appendY then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
if final == "î" then endings[3] = "" end
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
if final == "ê" and variant == "2" then endings[3] = "" end
end
elseif replaceE then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
end
elseif replaceCircumflexE then
if gender == "m" then
endings = {"iyê", "iyên", "iyî", "iyan", "iyek", "iyin", "iyekî", "iyine", "iyekî", "iyinan", "iyo", "iyino"}
else
endings = {"iya", "iyên", "iyê", "iyan", "iyek", "iyin", "iyeke", "iyine", "iyekê", "iyinan", "iyê", "iyino"}
end
else
return nil
end
local mode = consonantFinal and "append" or appendY and "append-y" or "replace"
local keys = {"def_cons_s", "def_cons_p", "def_obl_s", "def_obl_p", "indef_nom_s", "indef_nom_p", "indef_cons_s", "indef_cons_p", "indef_obl_s", "indef_obl_p", "voc_s", "voc_p"}
for i, key in ipairs(keys) do
f[key] = make(endings[i], mode)
end
f.def_nom_s, f.def_nom_p = lemma, lemma
-- The source treats î-ending masculine and ê-ending feminine obliques as unchanged.
if appendY and gender == "m" and final == "î" then f.def_obl_s = lemma end
if appendY and gender == "f" and final == "ê" then f.def_obl_s = lemma end
if replaceCircumflexE and gender == "f" then f.def_obl_s = lemma end
return f
end
local function clean(value)
if value == nil or value == "" then return nil end
return value
end
local function build(lemma, args)
local gender = clean(args[1]) or clean(args.genus) or "m"
local singularOnly = clean(args[2]) == "s" or args.n == "s"
local variant = clean(args.variant)
if gender ~= "m" and gender ~= "f" and gender ~= "mf" then
return nil, "Ange genus som m, f eller mf."
end
local masc = formsForGender(lemma, "m", variant)
local fem = formsForGender(lemma, "f", variant)
if not masc or not fem then
return nil, "Nordkurdiska substantivböjningar kunde inte bildas från uppslagsordets slut."
end
return {lemma = lemma, gender = gender, singularOnly = singularOnly, masculine = masc, feminine = fem}
end
local function link(form)
if not form then return {'!', ""} end
return form
end
local caseRows = {
{"Nominativ", "def_nom_s", "def_nom_p"},
{"Konstrukt", "def_cons_s", "def_cons_p"},
{"Oblik", "def_obl_s", "def_obl_p"},
{"Demonstrativ oblik", "def_demons_obl_s", "def_demons_obl_p"},
{"Vokativ", "voc_s", "voc_p"},
}
local function caseCell(f, key, gender)
if key == "def_demons_obl_s" then
local linkedForm = grammar_link.link(f.def_obl_s, "infl", "kmr")
linkedForm = gsub(linkedForm, "#Nordkurdiska", "")
return (gender == "f" and "wê" or "wî") .. " " .. linkedForm
elseif key == "def_demons_obl_p" then
local linkedForm = grammar_link.link(f.def_obl_p, "infl", "kmr")
linkedForm = gsub(linkedForm, "#Nordkurdiska", "")
return "wan " .. linkedForm
end
return link(f[key])
end
local function combinedGenderRows(rows, title, feminine, masculine, singularOnly)
if singularOnly then
rows = rows .. gt.getRow({'!class="main min"', title}, {'!colspan="4"', "Singular"})
rows = rows .. gt.getRow(
{'!rowspan="2" class="main min"', "Kasus"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
rows = rows .. gt.getRow(
{'!colspan="2" class="main min"', "Femininum"},
{'!colspan="2" class="main min"', "Maskulinum"}
)
else
rows = rows .. gt.getRow(
{'!class="main min"', title}, {'!colspan="4"', "Singular"}, {'!colspan="2"', "Plural"}
)
rows = rows .. gt.getRow(
{'!rowspan="2" class="main min"', "Kasus"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
rows = rows .. gt.getRow(
{'!colspan="2" class="main min"', "Femininum"},
{'!colspan="2" class="main min"', "Maskulinum"},
{'!colspan="2" class="main min"', ""}
)
end
local indefiniteByCase = {
Nominativ = {"indef_nom_s", "indef_nom_p"},
Konstrukt = {"indef_cons_s", "indef_cons_p"},
Oblik = {"indef_obl_s", "indef_obl_p"},
}
for _, row in ipairs(caseRows) do
local indefinite = indefiniteByCase[row[1]]
local cells = {{'!', row[1]}}
local function addCell(value)
table.insert(cells, value or {'!', ""})
end
addCell(indefinite and link(feminine[indefinite[1]]))
addCell(caseCell(feminine, row[2], "f"))
addCell(indefinite and link(masculine[indefinite[1]]))
addCell(caseCell(masculine, row[2], "m"))
if not singularOnly then
addCell(indefinite and link(feminine[indefinite[2]]))
addCell(caseCell(feminine, row[3], "f"))
end
rows = rows .. gt.getRow(unpack(cells))
end
return rows
end
local function singleGenderRows(rows, title, genderLabel, f, gender, singularOnly)
if singularOnly then
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!colspan="2"', "Singular"}
)
rows = rows .. gt.getRow(
{'!class="main min"', genderLabel},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
else
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!colspan="2"', "Singular"},
{'!colspan="2"', "Plural"}
)
rows = rows .. gt.getRow(
{'!class="main min"', genderLabel},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
end
local indefiniteByCase = {
Nominativ = {"indef_nom_s", "indef_nom_p"},
Konstrukt = {"indef_cons_s", "indef_cons_p"},
Oblik = {"indef_obl_s", "indef_obl_p"},
}
for _, row in ipairs(caseRows) do
local indefiniteKeys = indefiniteByCase[row[1]]
local cells = {{'!', row[1]}}
if indefiniteKeys then
table.insert(cells, caseCell(f, indefiniteKeys[1], gender))
else
table.insert(cells, {'!', ""})
end
table.insert(cells, caseCell(f, row[2], gender))
if not singularOnly then
if indefiniteKeys then
table.insert(cells, caseCell(f, indefiniteKeys[2], gender))
else
table.insert(cells, {'!', ""})
end
table.insert(cells, caseCell(f, row[3], gender))
end
rows = rows .. gt.getRow(unpack(cells))
end
return rows
end
local function renderRows(lemma, forms)
-- Keep ordinary cells unlinked so the site's grammar-linking script can process them.
local title = "Böjningar av ''[[" .. lemma .. "#Nordkurdiska|" .. lemma .. "]]''"
local rows = ""
if forms.gender == "mf" then
rows = combinedGenderRows(rows, title, forms.feminine, forms.masculine, forms.singularOnly)
else
local f = forms[forms.gender == "f" and "feminine" or "masculine"]
local genderLabel = forms.gender == "f" and "Femininum" or "Maskulinum"
local gender = forms.gender == "f" and "f" or "m"
rows = singleGenderRows(rows, title, genderLabel, f, gender, forms.singularOnly)
end
return rows
end
local function render(lemma, forms, note)
-- Legacy entry point retained until the invoking template is migrated.
gt.setLanguage("")
local columnCount = forms.gender == "mf" and (forms.singularOnly and 5 or 7) or (forms.singularOnly and 3 or 5)
local rows = gt.getStart(columnCount, "kmr", "subst", false)
rows = rows .. renderRows(lemma, forms)
if note then
return rows .. gt.getEnd(columnCount, note)
end
return rows .. "|}"
end
local function getArgs(frame)
local args = {}
for key, value in pairs(frame:getParent().args) do args[key] = value end
for key, value in pairs(frame.args) do args[key] = value end
return args
end
function export.getWikitext(frame)
local args = getArgs(frame)
local lemma = clean(args.lemma) or clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = build(lemma, args)
if not forms then return '<strong class="error">' .. err .. '</strong>' end
return render(lemma, forms, clean(args["not"]))
end
function export._getAcceptedParameters()
return {
[0] = 2,
"genus", "n", "variant", "not",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = build(pagename, args)
if not forms then
return {error = err, lemma = pagename}
end
forms.note = clean(args["not"])
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 0,
named_cells = {},
templatename = templatename,
pagename = pagename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. '</strong>'
end
local columnCount = forms.gender == "mf" and (forms.singularOnly and 5 or 7) or (forms.singularOnly and 3 or 5)
gt.setLanguage("kmr")
local str = gt.getStart(columnCount, meta.templatename, not not meta.quality_notice, meta.pagename, meta.width)
str = str .. renderRows(meta.pagename, forms)
if forms.note then
str = str .. gt.getRow({'|colspan="' .. columnCount .. '"', forms.note})
end
return str .. gt.getEnd()
end
function export._getCategories(_forms, _meta)
return ""
end
function export.test(lemma, args)
return build(lemma, args or {})
end
return export
oqidhqlg46e6xm8sfyq0yy4i8qf6jol
4156133
4155819
2026-10-16T10:01:52Z
Frodlekis
762
4156133
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local function append(word, ending)
return word .. ending
end
local function replaceFinal(word, ending)
return gsub(word, ".$", ending)
end
local function formsForGender(lemma, gender, variant)
local f = {def = {}, indef = {}}
local final = match(lemma, ".$")
local vowelFinal = final and match(final, "^[aeêiîouû]$")
local appendY = vowelFinal and (variant == "2" or match(final, "^[aîoû]$"))
local replaceE = final == "e"
local replaceCircumflexE = final == "ê"
local consonantFinal = final and match(final, "^[bcçdfghjklmnpqrsştvwxyz]$") ~= nil
local function make(ending, mode)
if mode == "replace" then
return replaceFinal(lemma, ending)
elseif mode == "append-y" then
local stem = final == "î" and gsub(lemma, "î$", "i") or lemma
return append(stem, "y" .. ending)
elseif mode == "append" then
return append(lemma, ending)
end
end
local endings
if consonantFinal then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
end
elseif appendY then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
if final == "î" then endings[3] = "" end
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
if final == "ê" and variant == "2" then endings[3] = "" end
end
elseif replaceE then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
end
elseif replaceCircumflexE then
if gender == "m" then
endings = {"iyê", "iyên", "iyî", "iyan", "iyek", "iyin", "iyekî", "iyine", "iyekî", "iyinan", "iyo", "iyino"}
else
endings = {"iya", "iyên", "iyê", "iyan", "iyek", "iyin", "iyeke", "iyine", "iyekê", "iyinan", "iyê", "iyino"}
end
else
return nil
end
local mode = consonantFinal and "append" or appendY and "append-y" or "replace"
local keys = {"def_cons_s", "def_cons_p", "def_obl_s", "def_obl_p", "indef_nom_s", "indef_nom_p", "indef_cons_s", "indef_cons_p", "indef_obl_s", "indef_obl_p", "voc_s", "voc_p"}
for i, key in ipairs(keys) do
f[key] = make(endings[i], mode)
end
f.def_nom_s, f.def_nom_p = lemma, lemma
-- The source treats î-ending masculine and ê-ending feminine obliques as unchanged.
if appendY and gender == "m" and final == "î" then f.def_obl_s = lemma end
if appendY and gender == "f" and final == "ê" then f.def_obl_s = lemma end
if replaceCircumflexE and gender == "f" then f.def_obl_s = lemma end
return f
end
local function clean(value)
if value == nil or value == "" then return nil end
return value
end
local function build(lemma, args)
local legacyGender = clean(args[1])
if legacyGender ~= "m" and legacyGender ~= "f" and legacyGender ~= "mf" then
legacyGender = nil
end
local gender = clean(args.genus) or legacyGender or "m"
local singularOnly = args.n == "s" or (legacyGender ~= nil and clean(args[2]) == "s")
local variant = clean(args.variant)
if gender ~= "m" and gender ~= "f" and gender ~= "mf" then
return nil, "Ange genus som m, f eller mf."
end
local masc = formsForGender(lemma, "m", variant)
local fem = formsForGender(lemma, "f", variant)
if not masc or not fem then
return nil, "Nordkurdiska substantivböjningar kunde inte bildas från uppslagsordets slut."
end
local forms = {lemma = lemma, gender = gender, singularOnly = singularOnly, masculine = masc, feminine = fem}
local manualSlots = {
{1, "indef_nom_s"}, {2, "def_nom_s"}, {3, "indef_nom_p"}, {4, "def_nom_p"},
{5, "indef_cons_s"}, {6, "def_cons_s"}, {7, "indef_cons_p"}, {8, "def_cons_p"},
{9, "indef_obl_s"}, {10, "def_obl_s"}, {11, "indef_obl_p"}, {12, "def_obl_p"},
{13, "def_demons_obl_s"}, {14, "def_demons_obl_p"}, {15, "voc_s"}, {16, "voc_p"},
}
for _, slot in ipairs(manualSlots) do
local value = clean(args[slot[1]])
if value then
masc[slot[2]] = value
fem[slot[2]] = value
end
end
return forms
end
local function link(form)
if not form then return {'!', ""} end
return form
end
local caseRows = {
{"Nominativ", "def_nom_s", "def_nom_p"},
{"Konstrukt", "def_cons_s", "def_cons_p"},
{"Oblik", "def_obl_s", "def_obl_p"},
{"Demonstrativ oblik", "def_demons_obl_s", "def_demons_obl_p"},
{"Vokativ", "voc_s", "voc_p"},
}
local function caseCell(f, key, gender)
if key == "def_demons_obl_s" then
local linkedForm = grammar_link.link(f.def_demons_obl_s or f.def_obl_s, "infl", "kmr")
linkedForm = gsub(linkedForm, "#Nordkurdiska", "")
return (gender == "f" and "wê" or "wî") .. " " .. linkedForm
elseif key == "def_demons_obl_p" then
local linkedForm = grammar_link.link(f.def_demons_obl_p or f.def_obl_p, "infl", "kmr")
linkedForm = gsub(linkedForm, "#Nordkurdiska", "")
return "wan " .. linkedForm
end
return link(f[key])
end
local function combinedGenderRows(rows, title, feminine, masculine, singularOnly)
if singularOnly then
rows = rows .. gt.getRow({'!class="main min"', title}, {'!colspan="4"', "Singular"})
rows = rows .. gt.getRow(
{'!rowspan="2" class="main min"', "Kasus"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
rows = rows .. gt.getRow(
{'!colspan="2" class="main min"', "Femininum"},
{'!colspan="2" class="main min"', "Maskulinum"}
)
else
rows = rows .. gt.getRow(
{'!class="main min"', title}, {'!colspan="4"', "Singular"}, {'!colspan="2"', "Plural"}
)
rows = rows .. gt.getRow(
{'!rowspan="2" class="main min"', "Kasus"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
rows = rows .. gt.getRow(
{'!colspan="2" class="main min"', "Femininum"},
{'!colspan="2" class="main min"', "Maskulinum"},
{'!colspan="2" class="main min"', ""}
)
end
local indefiniteByCase = {
Nominativ = {"indef_nom_s", "indef_nom_p"},
Konstrukt = {"indef_cons_s", "indef_cons_p"},
Oblik = {"indef_obl_s", "indef_obl_p"},
}
for _, row in ipairs(caseRows) do
local indefinite = indefiniteByCase[row[1]]
local cells = {{'!', row[1]}}
local function addCell(value)
table.insert(cells, value or {'!', ""})
end
addCell(indefinite and link(feminine[indefinite[1]]))
addCell(caseCell(feminine, row[2], "f"))
addCell(indefinite and link(masculine[indefinite[1]]))
addCell(caseCell(masculine, row[2], "m"))
if not singularOnly then
addCell(indefinite and link(feminine[indefinite[2]]))
addCell(caseCell(feminine, row[3], "f"))
end
rows = rows .. gt.getRow(unpack(cells))
end
return rows
end
local function singleGenderRows(rows, title, genderLabel, f, gender, singularOnly)
if singularOnly then
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!colspan="2"', "Singular"}
)
rows = rows .. gt.getRow(
{'!class="main min"', genderLabel},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
else
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!colspan="2"', "Singular"},
{'!colspan="2"', "Plural"}
)
rows = rows .. gt.getRow(
{'!class="main min"', genderLabel},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
end
local indefiniteByCase = {
Nominativ = {"indef_nom_s", "indef_nom_p"},
Konstrukt = {"indef_cons_s", "indef_cons_p"},
Oblik = {"indef_obl_s", "indef_obl_p"},
}
for _, row in ipairs(caseRows) do
local indefiniteKeys = indefiniteByCase[row[1]]
local cells = {{'!', row[1]}}
if indefiniteKeys then
table.insert(cells, caseCell(f, indefiniteKeys[1], gender))
else
table.insert(cells, {'!', ""})
end
table.insert(cells, caseCell(f, row[2], gender))
if not singularOnly then
if indefiniteKeys then
table.insert(cells, caseCell(f, indefiniteKeys[2], gender))
else
table.insert(cells, {'!', ""})
end
table.insert(cells, caseCell(f, row[3], gender))
end
rows = rows .. gt.getRow(unpack(cells))
end
return rows
end
local function renderRows(lemma, forms)
-- Keep ordinary cells unlinked so the site's grammar-linking script can process them.
local title = "Böjningar av ''[[" .. lemma .. "#Nordkurdiska|" .. lemma .. "]]''"
local rows = ""
if forms.gender == "mf" then
rows = combinedGenderRows(rows, title, forms.feminine, forms.masculine, forms.singularOnly)
else
local f = forms[forms.gender == "f" and "feminine" or "masculine"]
local genderLabel = forms.gender == "f" and "Femininum" or "Maskulinum"
local gender = forms.gender == "f" and "f" or "m"
rows = singleGenderRows(rows, title, genderLabel, f, gender, forms.singularOnly)
end
return rows
end
local function render(lemma, forms, note)
-- Legacy entry point retained until the invoking template is migrated.
gt.setLanguage("")
local columnCount = forms.gender == "mf" and (forms.singularOnly and 5 or 7) or (forms.singularOnly and 3 or 5)
local rows = gt.getStart(columnCount, "kmr", "subst", false)
rows = rows .. renderRows(lemma, forms)
if note then
return rows .. gt.getEnd(columnCount, note)
end
return rows .. "|}"
end
local function getArgs(frame)
local args = {}
for key, value in pairs(frame:getParent().args) do args[key] = value end
for key, value in pairs(frame.args) do args[key] = value end
return args
end
function export.getWikitext(frame)
local args = getArgs(frame)
local lemma = clean(args.lemma) or clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = build(lemma, args)
if not forms then return '<strong class="error">' .. err .. '</strong>' end
return render(lemma, forms, clean(args["not"]))
end
function export._getAcceptedParameters()
return {
[0] = 16,
"genus", "n", "variant", "not", "lemma", "grundform",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = build(pagename, args)
if not forms then
return {error = err, lemma = pagename}
end
forms.note = clean(args["not"])
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 16,
named_cells = {"genus", "n", "variant", "not", "lemma", "grundform"},
templatename = templatename,
pagename = pagename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. '</strong>'
end
local columnCount = forms.gender == "mf" and (forms.singularOnly and 5 or 7) or (forms.singularOnly and 3 or 5)
gt.setLanguage("kmr")
local str = gt.getStart(columnCount, meta.templatename, not not meta.quality_notice, meta.pagename, meta.width)
str = str .. renderRows(meta.pagename, forms)
if forms.note then
str = str .. gt.getRow({'|colspan="' .. columnCount .. '"', forms.note})
end
return str .. gt.getEnd()
end
function export._getCategories(_forms, _meta)
return ""
end
function export.test(lemma, args)
return build(lemma, args or {})
end
return export
fgj5t1b73odmnpqlechkrp4gefddl1o
4156134
4156133
2026-10-16T10:05:17Z
Frodlekis
762
4156134
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local function append(word, ending)
return word .. ending
end
local function replaceFinal(word, ending)
return gsub(word, ".$", ending)
end
local function formsForGender(lemma, gender, variant)
local f = {def = {}, indef = {}}
local final = match(lemma, ".$")
local vowelFinal = final and match(final, "^[aeêiîouû]$")
local appendY = vowelFinal and (variant == "2" or match(final, "^[aîoû]$"))
local replaceE = final == "e"
local replaceCircumflexE = final == "ê"
local consonantFinal = final and match(final, "^[bcçdfghjklmnpqrsştvwxyz]$") ~= nil
local function make(ending, mode)
if mode == "replace" then
return replaceFinal(lemma, ending)
elseif mode == "append-y" then
local stem = final == "î" and gsub(lemma, "î$", "i") or lemma
return append(stem, "y" .. ending)
elseif mode == "append" then
return append(lemma, ending)
end
end
local endings
if consonantFinal then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
end
elseif appendY then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
if final == "î" then endings[3] = "" end
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
if final == "ê" and variant == "2" then endings[3] = "" end
end
elseif replaceE then
if gender == "m" then
endings = {"ê", "ên", "î", "an", "ek", "in", "ekî", "ine", "ekî", "inan", "o", "ino"}
else
endings = {"a", "ên", "ê", "an", "ek", "in", "eke", "ine", "ekê", "inan", "ê", "ino"}
end
elseif replaceCircumflexE then
if gender == "m" then
endings = {"iyê", "iyên", "iyî", "iyan", "iyek", "iyin", "iyekî", "iyine", "iyekî", "iyinan", "iyo", "iyino"}
else
endings = {"iya", "iyên", "iyê", "iyan", "iyek", "iyin", "iyeke", "iyine", "iyekê", "iyinan", "iyê", "iyino"}
end
else
return nil
end
local mode = consonantFinal and "append" or appendY and "append-y" or "replace"
local keys = {"def_cons_s", "def_cons_p", "def_obl_s", "def_obl_p", "indef_nom_s", "indef_nom_p", "indef_cons_s", "indef_cons_p", "indef_obl_s", "indef_obl_p", "voc_s", "voc_p"}
for i, key in ipairs(keys) do
f[key] = make(endings[i], mode)
end
f.def_nom_s, f.def_nom_p = lemma, lemma
-- The source treats î-ending masculine and ê-ending feminine obliques as unchanged.
if appendY and gender == "m" and final == "î" then f.def_obl_s = lemma end
if appendY and gender == "f" and final == "ê" then f.def_obl_s = lemma end
if replaceCircumflexE and gender == "f" then f.def_obl_s = lemma end
return f
end
local function clean(value)
if value == nil or value == "" then return nil end
return value
end
local function build(lemma, args)
local legacyGender = clean(args[1])
if legacyGender ~= "m" and legacyGender ~= "f" and legacyGender ~= "mf" then
legacyGender = nil
end
local gender = clean(args.genus) or legacyGender or "m"
local singularOnly = args.n == "s" or (legacyGender ~= nil and clean(args[2]) == "s")
local variant = clean(args.variant)
if gender ~= "m" and gender ~= "f" and gender ~= "mf" then
return nil, "Ange genus som m, f eller mf."
end
local masc = formsForGender(lemma, "m", variant)
local fem = formsForGender(lemma, "f", variant)
if not masc or not fem then
return nil, "Nordkurdiska substantivböjningar kunde inte bildas från uppslagsordets slut."
end
-- Keep demonstrative oblique forms tied to the automatically generated
-- definite oblique forms, independently of manual overrides to slots 10/12.
masc.def_demons_obl_s = masc.def_obl_s
masc.def_demons_obl_p = masc.def_obl_p
fem.def_demons_obl_s = fem.def_obl_s
fem.def_demons_obl_p = fem.def_obl_p
local forms = {lemma = lemma, gender = gender, singularOnly = singularOnly, masculine = masc, feminine = fem}
local manualSlots = {
{1, "indef_nom_s"}, {2, "def_nom_s"}, {3, "indef_nom_p"}, {4, "def_nom_p"},
{5, "indef_cons_s"}, {6, "def_cons_s"}, {7, "indef_cons_p"}, {8, "def_cons_p"},
{9, "indef_obl_s"}, {10, "def_obl_s"}, {11, "indef_obl_p"}, {12, "def_obl_p"},
{13, "def_demons_obl_s"}, {14, "def_demons_obl_p"}, {15, "voc_s"}, {16, "voc_p"},
}
for _, slot in ipairs(manualSlots) do
local value = clean(args[slot[1]])
if value then
masc[slot[2]] = value
fem[slot[2]] = value
end
end
return forms
end
local function link(form)
if not form then return {'!', ""} end
return form
end
local caseRows = {
{"Nominativ", "def_nom_s", "def_nom_p"},
{"Konstrukt", "def_cons_s", "def_cons_p"},
{"Oblik", "def_obl_s", "def_obl_p"},
{"Demonstrativ oblik", "def_demons_obl_s", "def_demons_obl_p"},
{"Vokativ", "voc_s", "voc_p"},
}
local function caseCell(f, key, gender)
if key == "def_demons_obl_s" then
local linkedForm = grammar_link.link(f.def_demons_obl_s, "infl", "kmr")
linkedForm = gsub(linkedForm, "#Nordkurdiska", "")
return (gender == "f" and "wê" or "wî") .. " " .. linkedForm
elseif key == "def_demons_obl_p" then
local linkedForm = grammar_link.link(f.def_demons_obl_p, "infl", "kmr")
linkedForm = gsub(linkedForm, "#Nordkurdiska", "")
return "wan " .. linkedForm
end
return link(f[key])
end
local function combinedGenderRows(rows, title, feminine, masculine, singularOnly)
if singularOnly then
rows = rows .. gt.getRow({'!class="main min"', title}, {'!colspan="4"', "Singular"})
rows = rows .. gt.getRow(
{'!rowspan="2" class="main min"', "Kasus"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
rows = rows .. gt.getRow(
{'!colspan="2" class="main min"', "Femininum"},
{'!colspan="2" class="main min"', "Maskulinum"}
)
else
rows = rows .. gt.getRow(
{'!class="main min"', title}, {'!colspan="4"', "Singular"}, {'!colspan="2"', "Plural"}
)
rows = rows .. gt.getRow(
{'!rowspan="2" class="main min"', "Kasus"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
rows = rows .. gt.getRow(
{'!colspan="2" class="main min"', "Femininum"},
{'!colspan="2" class="main min"', "Maskulinum"},
{'!colspan="2" class="main min"', ""}
)
end
local indefiniteByCase = {
Nominativ = {"indef_nom_s", "indef_nom_p"},
Konstrukt = {"indef_cons_s", "indef_cons_p"},
Oblik = {"indef_obl_s", "indef_obl_p"},
}
for _, row in ipairs(caseRows) do
local indefinite = indefiniteByCase[row[1]]
local cells = {{'!', row[1]}}
local function addCell(value)
table.insert(cells, value or {'!', ""})
end
addCell(indefinite and link(feminine[indefinite[1]]))
addCell(caseCell(feminine, row[2], "f"))
addCell(indefinite and link(masculine[indefinite[1]]))
addCell(caseCell(masculine, row[2], "m"))
if not singularOnly then
addCell(indefinite and link(feminine[indefinite[2]]))
addCell(caseCell(feminine, row[3], "f"))
end
rows = rows .. gt.getRow(unpack(cells))
end
return rows
end
local function singleGenderRows(rows, title, genderLabel, f, gender, singularOnly)
if singularOnly then
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!colspan="2"', "Singular"}
)
rows = rows .. gt.getRow(
{'!class="main min"', genderLabel},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
else
rows = rows .. gt.getRow(
{'!class="main min"', title},
{'!colspan="2"', "Singular"},
{'!colspan="2"', "Plural"}
)
rows = rows .. gt.getRow(
{'!class="main min"', genderLabel},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"},
{'!class="secondary"', "Obestämd"}, {'!class="secondary"', "Bestämd"}
)
end
local indefiniteByCase = {
Nominativ = {"indef_nom_s", "indef_nom_p"},
Konstrukt = {"indef_cons_s", "indef_cons_p"},
Oblik = {"indef_obl_s", "indef_obl_p"},
}
for _, row in ipairs(caseRows) do
local indefiniteKeys = indefiniteByCase[row[1]]
local cells = {{'!', row[1]}}
if indefiniteKeys then
table.insert(cells, caseCell(f, indefiniteKeys[1], gender))
else
table.insert(cells, {'!', ""})
end
table.insert(cells, caseCell(f, row[2], gender))
if not singularOnly then
if indefiniteKeys then
table.insert(cells, caseCell(f, indefiniteKeys[2], gender))
else
table.insert(cells, {'!', ""})
end
table.insert(cells, caseCell(f, row[3], gender))
end
rows = rows .. gt.getRow(unpack(cells))
end
return rows
end
local function renderRows(lemma, forms)
-- Keep ordinary cells unlinked so the site's grammar-linking script can process them.
local title = "Böjningar av ''[[" .. lemma .. "#Nordkurdiska|" .. lemma .. "]]''"
local rows = ""
if forms.gender == "mf" then
rows = combinedGenderRows(rows, title, forms.feminine, forms.masculine, forms.singularOnly)
else
local f = forms[forms.gender == "f" and "feminine" or "masculine"]
local genderLabel = forms.gender == "f" and "Femininum" or "Maskulinum"
local gender = forms.gender == "f" and "f" or "m"
rows = singleGenderRows(rows, title, genderLabel, f, gender, forms.singularOnly)
end
return rows
end
local function render(lemma, forms, note)
-- Legacy entry point retained until the invoking template is migrated.
gt.setLanguage("")
local columnCount = forms.gender == "mf" and (forms.singularOnly and 5 or 7) or (forms.singularOnly and 3 or 5)
local rows = gt.getStart(columnCount, "kmr", "subst", false)
rows = rows .. renderRows(lemma, forms)
if note then
return rows .. gt.getEnd(columnCount, note)
end
return rows .. "|}"
end
local function getArgs(frame)
local args = {}
for key, value in pairs(frame:getParent().args) do args[key] = value end
for key, value in pairs(frame.args) do args[key] = value end
return args
end
function export.getWikitext(frame)
local args = getArgs(frame)
local lemma = clean(args.lemma) or clean(args.grundform) or mw.title.getCurrentTitle().text
local forms, err = build(lemma, args)
if not forms then return '<strong class="error">' .. err .. '</strong>' end
return render(lemma, forms, clean(args["not"]))
end
function export._getAcceptedParameters()
return {
[0] = 16,
"genus", "n", "variant", "not", "lemma", "grundform",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = build(pagename, args)
if not forms then
return {error = err, lemma = pagename}
end
forms.note = clean(args["not"])
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 16,
named_cells = {"genus", "n", "variant", "not", "lemma", "grundform"},
templatename = templatename,
pagename = pagename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. '</strong>'
end
local columnCount = forms.gender == "mf" and (forms.singularOnly and 5 or 7) or (forms.singularOnly and 3 or 5)
gt.setLanguage("kmr")
local str = gt.getStart(columnCount, meta.templatename, not not meta.quality_notice, meta.pagename, meta.width)
str = str .. renderRows(meta.pagename, forms)
if forms.note then
str = str .. gt.getRow({'|colspan="' .. columnCount .. '"', forms.note})
end
return str .. gt.getEnd()
end
function export._getCategories(_forms, _meta)
return ""
end
function export.test(lemma, args)
return build(lemma, args or {})
end
return export
ibe3zc753iv6b5xgad8jcwb0v7x0lhb
soranîzm
0
1074408
4156061
4155611
2026-10-16T01:22:10Z
Frodlekis
762
4156061
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''soranîzm''' {{f}}
#{{tagg|lingvistik|språk=kmr}} [[w:nordkurdiska|soranism]]; [[lånord]] eller inflytande från [[centralkurdiska]] ([[sorani]]) i andra kurdiska språk/dialekter
#:{{synonymer|[[soranîperistî]]}}
dckfoh0vpvb3rup9c7acdi6h7i0za8x
hevring
0
1074454
4155786
2026-10-15T15:49:28Z
Frodlekis
762
nytt uppslag (kurdiska)
4155786
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''hevring'''
#{{tagg|redskap|språk=kmr}} [[ullsax]]
g5pcpak2xnvsn7jnpy919rp4f2182f1
4155787
4155786
2026-10-15T15:50:12Z
Frodlekis
762
4155787
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''hevring''' {{f}}
#{{tagg|redskap|språk=kmr}} [[ullsax]]
3ddwjptlfhcg4c3e5b4y5i11r6cj0hn
asayî
0
1074455
4155789
2026-10-15T15:56:27Z
Frodlekis
762
nytt uppslag (nordkurdiska)
4155789
wikitext
text/x-wiki
==Nordkurdiska==
===Adjektiv===
{{adj|kmr}}
'''asayî'''
# [[normal]]
# [[alldaglig]], [[vanlig]], [[allmän]]
# [[ordinär]]
ng4129jve6wdxtevi6gx5m4vmrxqgrc
özgürlüğün
0
1074457
4155791
2026-10-15T19:35:01Z
Frodlekis
762
böjningsform av [[özgürlük]]
4155791
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''özgürlüğün'''
#{{böjning|tr|subst|özgürlük}}
cxv8u9gw3jc9ve9fxnzk37ggnq8e0d9
özgürlükleri
0
1074458
4155792
2026-10-15T19:35:15Z
Frodlekis
762
böjningsform av [[özgürlük]]
4155792
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''özgürlükleri'''
#{{böjning|tr|subst|özgürlük}}
q1yplw1ihk169n0rjkfhl0esjk4gs45
bademin
0
1074459
4155794
2026-10-15T19:40:19Z
Frodlekis
762
böjningsform av [[badem]]
4155794
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''bademin'''
#{{böjning|tr|subst|badem}}
326t0bqu0ehldruahcymchdwtwn9cyu
bademi
0
1074460
4155795
2026-10-15T19:40:33Z
Frodlekis
762
böjningsform av [[badem]]
4155795
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''bademi'''
#{{böjning|tr|subst|badem}}
iigi2v24hiuv2arav1gmxgbheu6xh3d
bademler
0
1074461
4155796
2026-10-15T19:40:39Z
Frodlekis
762
böjningsform av [[badem]]
4155796
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''bademler'''
#{{böjning|tr|subst|badem}}
iotmjrrdozj921b3jiv0dl5w7n2mmob
tereyağları
0
1074462
4155797
2026-10-15T19:46:25Z
Frodlekis
762
böjningsform av [[tereyağı]]
4155797
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''tereyağları'''
#{{böjning|tr|subst|tereyağı}}
dagv70pme9e7q9z0b2hnevncnpi5ex4
tereyağını
0
1074463
4155798
2026-10-15T19:47:10Z
Frodlekis
762
böjningsform av [[tereyağı]]
4155798
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''tereyağını'''
#{{böjning|tr|subst|tereyağı}}
6rbnutplhxu5h88gdthb4b5vjx768bm
mutfağın
0
1074464
4155801
2026-10-15T19:49:00Z
Frodlekis
762
böjningsform av [[mutfak]]
4155801
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''mutfağın'''
#{{böjning|tr|subst|mutfak}}
rgkhi1x8x3i2okqimxy0s5qzfeu0veo
mutfaklar
0
1074465
4155802
2026-10-15T19:49:11Z
Frodlekis
762
böjningsform av [[mutfak]]
4155802
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''mutfaklar'''
#{{böjning|tr|subst|mutfak}}
iknjy88bdnsivxousfzq4wbogoxs5ny
mutfağı
0
1074466
4155803
2026-10-15T19:49:18Z
Frodlekis
762
böjningsform av [[mutfak]]
4155803
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''mutfağı'''
#{{böjning|tr|subst|mutfak}}
mg38vz1rlf2y37eljhogktlo94orqem
mühendis
0
1074467
4155804
2026-10-15T19:51:14Z
Frodlekis
762
nytt uppslag (turkiska)
4155804
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-k|i}}
'''mühendis'''
#{{tagg|kat=yrken}} [[ingenjör]]
0txmcq0p7valrz6tw9uq2uxp6j3bp9f
4155807
4155804
2026-10-15T19:51:41Z
Frodlekis
762
4155807
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-k|i}}
'''mühendis'''
#{{tagg|srpråk=tr|kat=yrken}} [[ingenjör]]
of0w371ekxnemwenvip0jmpgt6pcmlr
4155808
4155807
2026-10-15T19:58:07Z
Frodlekis
762
4155808
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-k|i}}
'''mühendis'''
#{{tagg|språk=tr|kat=yrken}} [[ingenjör]]
b316sg8vxb9j6a5o8j48ijnit18u7yp
mühendisler
0
1074468
4155805
2026-10-15T19:51:21Z
Frodlekis
762
böjningsform av [[mühendis]]
4155805
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''mühendisler'''
#{{böjning|tr|subst|mühendis}}
1pr44e9n579t27x2ahkpgjryrceryb7
mühendisin
0
1074469
4155806
2026-10-15T19:51:31Z
Frodlekis
762
böjningsform av [[mühendis]]
4155806
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''mühendisin'''
#{{böjning|tr|subst|mühendis}}
imi1fp7b987rb4ecxm95tcvvc3oypk0
mühendisi
0
1074470
4155809
2026-10-15T19:58:20Z
Frodlekis
762
böjningsform av [[mühendis]]
4155809
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''mühendisi'''
#{{böjning|tr|subst|mühendis}}
cnwigku04vjekldm40t3qy1vswoxujt
avukatlar
0
1074471
4155812
2026-10-15T20:01:05Z
Frodlekis
762
böjningsform av [[avukat]]
4155812
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''avukatlar'''
#{{böjning|tr|subst|avukat}}
n9jctd6kcwu1tunqatkmpl9hw8sxgcx
avukatı
0
1074472
4155813
2026-10-15T20:01:13Z
Frodlekis
762
böjningsform av [[avukat]]
4155813
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''avukatı'''
#{{böjning|tr|subst|avukat}}
kcnjvg79jq6gb5lvhsyesdb5izh8kom
געשווינדער
0
1074473
4155815
2026-10-15T20:06:44Z
Frodlekis
762
böjningsform av [[געשווינד]]
4155815
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''געשווינדער'''
#{{böjning|yi|adj|געשווינד}}
0ml6o98b2mmrr62yrsjr6iyv64zcz9g
געשווינדע
0
1074474
4155816
2026-10-15T20:07:00Z
Frodlekis
762
böjningsform av [[געשווינד]]
4155816
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''געשווינדע'''
#{{böjning|yi|adj|געשווינד}}
tgdap0b2tracj7h72bq2gm84rzvoqz2
געשווינדן
0
1074475
4155817
2026-10-15T20:07:10Z
Frodlekis
762
böjningsform av [[געשווינד]]
4155817
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''געשווינדן'''
#{{böjning|yi|adj|געשווינד}}
cbwlxna8zlqbj71r73u3ls4zyinqfzs
גיכע
0
1074476
4155818
2026-10-15T20:07:31Z
Frodlekis
762
böjningsform av [[גיך]]
4155818
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''גיכע'''
#{{böjning|yi|adj|גיך}}
27mx37sg5otwqz862i0ea1fw4rdamvz
hevringek
0
1074477
4155820
2026-10-15T20:13:00Z
Frodlekis
762
böjningsform av [[hevring]]
4155820
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hevringek'''
#{{böjning|kmr|subst|hevring}}
bzobf3p7dlipf0hwygghobqeyr8m8k7
sêvek
0
1074478
4155821
2026-10-15T20:13:28Z
Frodlekis
762
böjningsform av [[sêv]]
4155821
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''sêvek'''
#{{böjning|kmr|subst|sêv}}
dis11dulz8o8kw7mc08uvunwvb7ovx4
nîvişk
0
1074479
4155823
2026-10-15T20:23:42Z
Frodlekis
762
nytt uppslag (nordkurdiska)
4155823
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''nîvişk''' {{m}}
#{{tagg|kat=mat|språk=kmr}} [[smör]]
dtmbfpsd89zjwnlme3emdkoxt9u6oye
שטיינבעק
0
1074480
4155830
2026-10-15T20:39:37Z
Frodlekis
762
böjningsform av [[שטיינבאָק]]
4155830
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
'''שטיינבעק'''
#{{böjning|yi|subst|שטיינבאָק}}
riiqdi5xnty1fzxpgpxnlgya15iad2m
Kategori:Jiddisch/Elektronik
14
1074481
4155832
2026-10-15T20:41:19Z
Frodlekis
762
Ny sida
4155832
wikitext
text/x-wiki
{{kategorinavigering|Jiddisch|Elektronik|Teknik}}
but68gobddgb5w5s2hcd3knor6xiukg
סוריקאַטעס
0
1074482
4155843
2026-10-15T20:51:45Z
Frodlekis
762
böjningsform av [[סוריקאַטע]]
4155843
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
'''סוריקאַטעס'''
#{{böjning|yi|subst|סוריקאַטע}}
99hz3o6utckwcquhffgnhvy6mpx0gxu
טעכניקערס
0
1074483
4155856
2026-10-15T21:02:09Z
Frodlekis
762
böjningsform av [[טעכניקער]]
4155856
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
'''טעכניקערס'''
#{{böjning|yi|subst|טעכניקער}}
jhgq6ccaxlsk3s1lw8kt6lb1ctfxgs8
אַזיאַטישער
0
1074484
4155874
2026-10-15T21:19:12Z
Frodlekis
762
böjningsform av [[אַזיאַטיש]]
4155874
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''אַזיאַטישער'''
#{{böjning|yi|adj|אַזיאַטיש}}
in07uds7v36oevnm0np5n9atc5gubzq
אַזיאַטישן
0
1074485
4155875
2026-10-15T21:19:20Z
Frodlekis
762
böjningsform av [[אַזיאַטיש]]
4155875
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''אַזיאַטישן'''
#{{böjning|yi|adj|אַזיאַטיש}}
2neztpgcrvvespy1z1c93px31j4thnk
אַזיאַטישע
0
1074486
4155876
2026-10-15T21:19:27Z
Frodlekis
762
böjningsform av [[אַזיאַטיש]]
4155876
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''אַזיאַטישע'''
#{{böjning|yi|adj|אַזיאַטיש}}
jiva2tx3fazejjzrlkr57kgzl9eijtl
אַלבאַנישער
0
1074487
4155878
2026-10-15T21:19:55Z
Frodlekis
762
böjningsform av [[אַלבאַניש]]
4155878
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''אַלבאַנישער'''
#{{böjning|yi|adj|אַלבאַניש}}
0u6v7xxjqxmt7bcm82v91vcsk5e204f
אַלבאַנישע
0
1074488
4155879
2026-10-15T21:20:30Z
Frodlekis
762
böjningsform av [[אַלבאַניש]]
4155879
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''אַלבאַנישע'''
#{{böjning|yi|adj|אַלבאַניש}}
5b6vcq2zmtdtvkp5d3phnsyw6rirfw6
אַלבאַנישן
0
1074489
4155880
2026-10-15T21:20:37Z
Frodlekis
762
böjningsform av [[אַלבאַניש]]
4155880
wikitext
text/x-wiki
==Jiddisch==
===Adjektiv===
'''אַלבאַנישן'''
#{{böjning|yi|adj|אַלבאַניש}}
608231h3bzwq640n7ncv3afh4u7xswk
damarlar
0
1074492
4155897
2026-10-15T22:03:37Z
Frodlekis
762
böjningsform av [[damar]]
4155897
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''damarlar'''
#{{böjning|tr|subst|damar}}
gjcv0a2mbecrmgai69yqgswlbhjlgtr
damarı
0
1074493
4155898
2026-10-15T22:03:46Z
Frodlekis
762
böjningsform av [[damar]]
4155898
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''damarı'''
#{{böjning|tr|subst|damar}}
4s42qh2iqmhhnt86eyzpoxej1zk1dzb
Mall:az-subst
10
1074494
4155899
2026-10-15T22:09:41Z
Frodlekis
762
Ny sida
4155899
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Azerbajdzjanska|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:az-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|az|subst}}
</includeonly>
3kxf61h5wwd2n51516r8xtpeh583ila
mesder
0
1074495
4155903
2026-10-15T22:14:36Z
Frodlekis
762
översättning av [[verbalsubstantiv]]
4155903
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''mesder''' {{f}}
#{{tagg|lingvistik|språk=kmr}} [[verbalsubstantiv]]
0qndkz7ts0eylosbll33jqustwplzkb
nom verbal
0
1074496
4155905
2026-10-15T22:15:47Z
Frodlekis
762
nytt uppslag (katalanska)
4155905
wikitext
text/x-wiki
==Katalanska==
===Substantiv===
{{subst|ca}}
'''[[nom]] [[verbal]]''' {{m}}
#{{tagg|lingvistik|språk=ca}}[[verbalsubstantiv]]
4q65pf3k4yr9gwmnv0b5fmqvkpp64bg
Modul:az-subst
828
1074497
4155906
2026-10-15T22:16:45Z
Frodlekis
762
Ny sida
4155906
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ"},
{key = "acc", label = "Ackusativ bestämd"},
{key = "dat", label = "Dativ"},
{key = "loc", label = "Lokativ"},
{key = "abl", label = "Ablativ"},
{key = "gen", label = "Genitiv bestämd"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
if isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
return grammar_link.link(form, "infl", "az")
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = gt.getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. gt.getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', "''" .. possessor.label .. "''"},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local singularForm = forms.has_singular and forms.singular.possessive[possessor.key][case.key] or nil
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, grammarLink(soundPluralForm)) end
if brokenPluralForm then table.insert(pluralForms, grammarLink(brokenPluralForm)) end
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(singularForm),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3)
return table.concat({
'{| class="NavFrameContainer grammar-hide"',
"|-",
'|<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
"|}",
}, "\n")
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
return rows .. renderPossessives(forms)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
8cr9yi5e7qm93o58zc4mavcwd3ulm8m
4155907
4155906
2026-10-15T22:20:04Z
Frodlekis
762
4155907
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local unpack = unpack or table.unpack
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ"},
{key = "acc", label = "Ackusativ bestämd"},
{key = "dat", label = "Dativ"},
{key = "loc", label = "Lokativ"},
{key = "abl", label = "Ablativ"},
{key = "gen", label = "Genitiv bestämd"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
if isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
return grammar_link.link(form, "infl", "az")
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = gt.getRow(unpack(header))
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. gt.getRow(unpack(row))
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', "''" .. possessor.label .. "''"},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local singularForm = forms.has_singular and forms.singular.possessive[possessor.key][case.key] or nil
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, grammarLink(soundPluralForm)) end
if brokenPluralForm then table.insert(pluralForms, grammarLink(brokenPluralForm)) end
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(singularForm),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3)
return table.concat({
'{| class="NavFrameContainer grammar-hide"',
"|-",
'|<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
"|}",
}, "\n")
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
return rows .. renderPossessives(forms)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
4pyjcceq1s0d1ehcogmi95mja4a5645
4155908
4155907
2026-10-15T22:21:24Z
Frodlekis
762
4155908
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ"},
{key = "acc", label = "Ackusativ bestämd"},
{key = "dat", label = "Dativ"},
{key = "loc", label = "Lokativ"},
{key = "abl", label = "Ablativ"},
{key = "gen", label = "Genitiv bestämd"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
if isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
return grammar_link.link(form, "infl", "az")
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', "''" .. possessor.label .. "''"},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local singularForm = forms.has_singular and forms.singular.possessive[possessor.key][case.key] or nil
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, grammarLink(soundPluralForm)) end
if brokenPluralForm then table.insert(pluralForms, grammarLink(brokenPluralForm)) end
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(singularForm),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3, "", "")
return table.concat({
'{| class="NavFrameContainer grammar-hide"',
"|-",
'|<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
"|}",
}, "\n")
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
return rows .. renderPossessives(forms)
end
function export._getCategories(_forms, _meta)
return ""
end
return export
lwbbkpmoqaqf4v9qemjc69z8o570kg3
4155909
4155908
2026-10-15T22:23:36Z
Frodlekis
762
4155909
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ"},
{key = "acc", label = "Ackusativ bestämd"},
{key = "dat", label = "Dativ"},
{key = "loc", label = "Lokativ"},
{key = "abl", label = "Ablativ"},
{key = "gen", label = "Genitiv bestämd"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
if isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
return grammar_link.link(form, "infl", "az")
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', "''" .. possessor.label .. "''"},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local singularForm = forms.has_singular and forms.singular.possessive[possessor.key][case.key] or nil
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, grammarLink(soundPluralForm)) end
if brokenPluralForm then table.insert(pluralForms, grammarLink(brokenPluralForm)) end
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(singularForm),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms, columnCount)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3, "", "")
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
rows = rows .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
nubawpi257qi08r3sodtu85sto0ba7x
4155911
4155909
2026-10-15T22:27:46Z
Frodlekis
762
4155911
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ"},
{key = "acc", label = "Ackusativ bestämd"},
{key = "dat", label = "Dativ"},
{key = "loc", label = "Lokativ"},
{key = "abl", label = "Ablativ"},
{key = "gen", label = "Genitiv bestämd"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
if isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
return mw.ustring.gsub(link, "#Azerbajdzjanska", "")
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', "''" .. possessor.label .. "''"},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local singularForm = forms.has_singular and forms.singular.possessive[possessor.key][case.key] or nil
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, grammarLink(soundPluralForm)) end
if brokenPluralForm then table.insert(pluralForms, grammarLink(brokenPluralForm)) end
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(singularForm),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms, columnCount)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3, "", "")
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
rows = rows .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
sue5tapb0wzsba2r3a59lz3u7sfxtm2
4155912
4155911
2026-10-15T22:28:49Z
Frodlekis
762
4155912
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ"},
{key = "acc", label = "Ackusativ bestämd"},
{key = "dat", label = "Dativ"},
{key = "loc", label = "Lokativ"},
{key = "abl", label = "Ablativ"},
{key = "gen", label = "Genitiv bestämd"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
if isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', "''" .. possessor.label .. "''"},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local singularForm = forms.has_singular and forms.singular.possessive[possessor.key][case.key] or nil
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, grammarLink(soundPluralForm)) end
if brokenPluralForm then table.insert(pluralForms, grammarLink(brokenPluralForm)) end
rows = rows .. gt.getRow(
{'!', case.label},
grammarLink(singularForm),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms, columnCount)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3, "", "")
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
rows = rows .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
rcmd4u9830ju4j31o00tpnc7waddsg4
4155914
4155912
2026-10-15T22:34:48Z
Frodlekis
762
4155914
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', possessor.label},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local function linkedForms(formSet)
if not formSet then
return "–"
end
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " <i>eller</i> " .. grammarLink(formSet.variant[case.key])
end
return linked
end
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, linkedForms(forms.sound_plural.possessive[possessor.key])) end
if brokenPluralForm then table.insert(pluralForms, linkedForms(forms.broken_plural.possessive[possessor.key])) end
rows = rows .. gt.getRow(
{'!', case.label},
linkedForms(forms.has_singular and forms.singular.possessive[possessor.key] or nil),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms, columnCount)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3, "", "")
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
rows = rows .. gt.getEnd(columnCount, meta.note, meta.as_first_part)
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
0xv1frhaebyg71nrbcldvevn7sdiqba
4155915
4155914
2026-10-15T22:36:43Z
Frodlekis
762
4155915
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', possessor.label},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local function linkedForms(formSet)
if not formSet then
return "–"
end
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " <i>eller</i> " .. grammarLink(formSet.variant[case.key])
end
return linked
end
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, linkedForms(forms.sound_plural.possessive[possessor.key])) end
if brokenPluralForm then table.insert(pluralForms, linkedForms(forms.broken_plural.possessive[possessor.key])) end
rows = rows .. gt.getRow(
{'!', case.label},
linkedForms(forms.has_singular and forms.singular.possessive[possessor.key] or nil),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms, columnCount)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3, "", "")
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. gt.getEnd(columnCount)
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
t51l5kldr043ar8qxdvu7gxtwo4gkip
4155916
4155915
2026-10-15T22:37:23Z
Frodlekis
762
4155916
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local rows = gt.getRow(
{'!class="main min"', possessor.label},
{'!', "Singular"},
{'!', "Plural"}
)
for _, case in ipairs(cases) do
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local function linkedForms(formSet)
if not formSet then
return "–"
end
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " <i>eller</i> " .. grammarLink(formSet.variant[case.key])
end
return linked
end
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, linkedForms(forms.sound_plural.possessive[possessor.key])) end
if brokenPluralForm then table.insert(pluralForms, linkedForms(forms.broken_plural.possessive[possessor.key])) end
rows = rows .. gt.getRow(
{'!', case.label},
linkedForms(forms.has_singular and forms.singular.possessive[possessor.key] or nil),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms, columnCount)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. gt.getEnd(3, "", "")
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
577dhphitb9xhyizmdze3bejqks1lca
4155917
4155916
2026-10-15T22:39:20Z
Frodlekis
762
4155917
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function renderPossessiveTable(forms, possessor)
local function normal(text)
return '<span style="font-style:normal">' .. text .. "</span>"
end
local rows = gt.getRow(
{'!class="main min" style="font-style:normal"', normal(possessor.label)},
{'!style="font-style:normal"', normal("Singular")},
{'!style="font-style:normal"', normal("Plural")}
)
for _, case in ipairs(cases) do
local soundPluralForm = forms.has_sound_plural and forms.sound_plural.possessive[possessor.key][case.key] or nil
local brokenPluralForm = forms.has_broken_plural and forms.broken_plural.possessive[possessor.key][case.key] or nil
local function linkedForms(formSet)
if not formSet then
return "–"
end
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " eller " .. grammarLink(formSet.variant[case.key])
end
return normal(linked)
end
local pluralForms = {}
if soundPluralForm then table.insert(pluralForms, linkedForms(forms.sound_plural.possessive[possessor.key])) end
if brokenPluralForm then table.insert(pluralForms, linkedForms(forms.broken_plural.possessive[possessor.key])) end
rows = rows .. gt.getRow(
{'!style="font-style:normal"', normal(case.label)},
linkedForms(forms.has_singular and forms.singular.possessive[possessor.key] or nil),
table.concat(pluralForms, "<br />")
)
end
return rows
end
local function renderPossessives(forms, columnCount)
local rows = {}
for _, possessor in ipairs(possessors) do
table.insert(rows, renderPossessiveTable(forms, possessor))
end
local hiddenRows = gt.getStart(3, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n")
hiddenRows = hiddenRows .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
ndozf56vh25h9rqguajromxl9tkptdx
4155918
4155917
2026-10-15T22:45:17Z
Frodlekis
762
4155918
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local singularStem = getInflectionStem(lemma, wordType, args.stem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- The explicit stem is used only for singular vowel-initial case endings.
if clean(args.stem) then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
local broken = clean(args.broken)
local brokenParadigm
if broken then
local brokenHarmony = getHarmony(broken, args["broken-v"])
if not brokenHarmony then
return nil, "broken= kräver att sista vokalen i den brutna pluralen kan identifieras eller anges med broken-v=."
end
local brokenType = clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "broken-type= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och broken=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Bruten plural" or "Plural (bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function getPossessiveCell(forms, possessor, case, plural)
local formSets = {}
if plural then
if forms.has_sound_plural then
table.insert(formSets, forms.sound_plural.possessive[possessor.key])
end
if forms.has_broken_plural then
table.insert(formSets, forms.broken_plural.possessive[possessor.key])
end
elseif forms.has_singular then
table.insert(formSets, forms.singular.possessive[possessor.key])
end
local linkedForms = {}
for _, formSet in ipairs(formSets) do
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " eller " .. grammarLink(formSet.variant[case.key])
end
table.insert(linkedForms, linked)
end
local text = #linkedForms > 0 and table.concat(linkedForms, "<br />") or "–"
return '<span style="font-style:normal">' .. text .. "</span>"
end
local function renderPossessives(forms, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headingCells = {}
for _ = 1, 3 do
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headingCells[1], headingCells[2], headingCells[3],
headingCells[4], headingCells[5], headingCells[6],
headingCells[7], headingCells[8], headingCells[9]
))
for _, case in ipairs(cases) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5], cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"stem", "broken", "broken-v", "broken-type", "nb", "sing",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
4krkv64hbc939zc1wx9ge0i8ihwh9vd
4155945
4155918
2026-10-15T23:29:03Z
Frodlekis
762
4155945
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local explicitStem = clean(args.rot) or clean(args.stem)
local singularStem = getInflectionStem(lemma, wordType, explicitStem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- rot= is used for singular forms with vowel-initial case endings.
if explicitStem then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
-- `bruten` is the Swedish parameter name. Keep the former English names
-- as aliases so existing uses of the earlier interface continue to work.
local broken = clean(args.bruten) or clean(args.broken)
local brokenParadigm
if broken then
local brokenVowel = args["bruten-v"] or args["broken-v"]
local brokenHarmony = getHarmony(broken, brokenVowel)
if not brokenHarmony then
return nil, "bruten= kräver att sista vokalen i pluralformen kan identifieras eller anges med bruten-v=."
end
local brokenType = clean(args["bruten-typ"]) or clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "bruten-typ= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och bruten=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', forms.has_broken_plural and "Ljudplural" or "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Arabisk bruten plural" or "Plural (arabisk bruten)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function getPossessiveCell(forms, possessor, case, plural)
local formSets = {}
if plural then
if forms.has_sound_plural then
table.insert(formSets, forms.sound_plural.possessive[possessor.key])
end
if forms.has_broken_plural then
table.insert(formSets, forms.broken_plural.possessive[possessor.key])
end
elseif forms.has_singular then
table.insert(formSets, forms.singular.possessive[possessor.key])
end
local linkedForms = {}
for _, formSet in ipairs(formSets) do
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " eller " .. grammarLink(formSet.variant[case.key])
end
table.insert(linkedForms, linked)
end
local text = #linkedForms > 0 and table.concat(linkedForms, "<br />") or "–"
return '<span style="font-style:normal">' .. text .. "</span>"
end
local function renderPossessives(forms, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headingCells = {}
for _ = 1, 3 do
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headingCells[1], headingCells[2], headingCells[3],
headingCells[4], headingCells[5], headingCells[6],
headingCells[7], headingCells[8], headingCells[9]
))
for _, case in ipairs(cases) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5], cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"rot", "bruten", "bruten-v", "bruten-typ", "nb", "sing",
-- Backward-compatible aliases from the initial English-based interface.
"stem", "broken", "broken-v", "broken-type",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
1dnr26mm3yp9mfa0t8vrtv7mzm9sxpx
4155950
4155945
2026-10-15T23:36:57Z
Frodlekis
762
4155950
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local voicelessFinals = {
p = true, t = true, ["ç"] = true, k = true, q = true,
f = true, ["x"] = true, s = true, ["ş"] = true,
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(stem)
return voicelessFinals[lastCharacter(stem)] and "t" or "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local explicitStem = clean(args.rot) or clean(args.stem)
local singularStem = getInflectionStem(lemma, wordType, explicitStem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- rot= is used for singular forms with vowel-initial case endings.
if explicitStem then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
-- Use Swedish parameter names while retaining earlier names as aliases.
local broken = clean(args.arpl) or clean(args["arabisk-plural"]) or clean(args.bruten) or clean(args.broken)
local brokenParadigm
if broken then
local brokenVowel = args["arpl-v"] or args["arabisk-plural-v"] or args["bruten-v"] or args["broken-v"]
local brokenHarmony = getHarmony(broken, brokenVowel)
if not brokenHarmony then
return nil, "arpl= kräver att sista vokalen i pluralformen kan identifieras eller anges med arpl-v=."
end
local brokenType = clean(args["arpl-typ"]) or clean(args["arabisk-plural-typ"]) or clean(args["bruten-typ"]) or clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "arpl-typ= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och arpl=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Arabisk plural" or "Plural (arabisk)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function getPossessiveCell(forms, possessor, case, plural)
local formSets = {}
if plural then
if forms.has_sound_plural then
table.insert(formSets, forms.sound_plural.possessive[possessor.key])
end
if forms.has_broken_plural then
table.insert(formSets, forms.broken_plural.possessive[possessor.key])
end
elseif forms.has_singular then
table.insert(formSets, forms.singular.possessive[possessor.key])
end
local linkedForms = {}
for _, formSet in ipairs(formSets) do
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " eller " .. grammarLink(formSet.variant[case.key])
end
table.insert(linkedForms, linked)
end
local text = #linkedForms > 0 and table.concat(linkedForms, "<br />") or "–"
return '<span style="font-style:normal">' .. text .. "</span>"
end
local function renderPossessives(forms, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headingCells = {}
for _ = 1, 3 do
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headingCells[1], headingCells[2], headingCells[3],
headingCells[4], headingCells[5], headingCells[6],
headingCells[7], headingCells[8], headingCells[9]
))
for _, case in ipairs(cases) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5], cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"rot", "arpl", "arpl-v", "arpl-typ", "arabisk-plural", "arabisk-plural-v", "arabisk-plural-typ", "nb", "sing",
-- Backward-compatible aliases from the initial English-based interface.
"stem", "bruten", "bruten-v", "bruten-typ", "broken", "broken-v", "broken-type",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
5vlqqhs2ia5ttm7ku1ht7d3xutk12nx
4155971
4155950
2026-10-15T23:58:50Z
Frodlekis
762
4155971
Scribunto
text/plain
local gt = require("Modul:grammar-table")
local grammar_link = require("Modul:grammar-link")
local export = require("Modul:grammar")
local vowels = {
a = {high = "ı", low = "a"},
["ı"] = {high = "ı", low = "a"},
o = {high = "u", low = "a"},
u = {high = "u", low = "a"},
["ə"] = {high = "i", low = "ə"},
e = {high = "i", low = "ə"},
i = {high = "i", low = "ə"},
["ö"] = {high = "ü", low = "ə"},
["ü"] = {high = "ü", low = "ə"},
}
local cases = {
{key = "nom", label = "Nominativ (adlıq)"},
{key = "acc", label = "Ackusativ (təsirlik)"},
{key = "dat", label = "Dativ (yönlük)"},
{key = "loc", label = "Lokativ (yerlik)"},
{key = "abl", label = "Ablativ (çıxışlıq)"},
{key = "gen", label = "Genitiv (yiyəlik)"},
}
local possessors = {
{key = "1s", label = "mənim (min)", person = 1, number = "s"},
{key = "2s", label = "sənin (din)", person = 2, number = "s"},
{key = "3s", label = "onun (hans/hennes)", person = 3, number = "s"},
{key = "1p", label = "bizim (vår)", person = 1, number = "p"},
{key = "2p", label = "sizin (er)", person = 2, number = "p"},
{key = "3p", label = "onların (deras)", person = 3, number = "p"},
}
local function clean(value)
if value == nil or value == "" then
return nil
end
return value
end
local function lastVowel(word)
return mw.ustring.match(word, "([aıouəeiöü])[^aıouəeiöü]*$")
end
local function endsInVowel(word)
return mw.ustring.match(word, "[aıouəeiöü]$") ~= nil
end
local function lastCharacter(word)
return mw.ustring.sub(word, -1)
end
local function getHarmony(word, override)
local vowel = clean(override) or lastVowel(word)
local harmony = vowel and vowels[vowel]
if harmony then
return harmony, vowel
end
return nil, vowel
end
local function getType(word, override)
if override == "c" or override == "cc" or override == "q" or override == "k" then
return override
end
local final = lastCharacter(word)
if final == "q" or final == "k" then
return final
end
local previous = mw.ustring.sub(word, -2, -2)
if final == previous then
return "cc"
end
return "c"
end
local function getInflectionStem(word, wordType, override)
if clean(override) then
return override
end
if wordType == "q" then
return mw.ustring.sub(word, 1, -2) .. "ğ"
elseif wordType == "k" then
return mw.ustring.sub(word, 1, -2) .. "y"
end
return word
end
local function getPluralStem(word, harmony)
return word .. "l" .. harmony.low .. "r"
end
local function getLocativeConsonant(_stem)
-- Azerbaijani locative and ablative suffixes use d (unlike Turkish, which
-- devoices the suffix after certain final consonants).
return "d"
end
local function getCaseForms(base, harmony, wordType, isPossessed, possessorPerson)
local vowelFinal = endsInVowel(base)
local caseBase = getInflectionStem(base, wordType)
local linkerN = isPossessed and (possessorPerson == 3 or possessorPerson == 6)
local locativeConsonant = getLocativeConsonant(base)
local forms = {nom = base}
if vowelFinal then
forms.acc = base .. "n" .. harmony.high
forms.dat = base .. (linkerN and "n" or "y") .. harmony.low
forms.gen = base .. "n" .. harmony.high .. "n"
else
forms.acc = caseBase .. harmony.high
forms.dat = caseBase .. harmony.low
forms.gen = caseBase .. harmony.high .. "n"
end
if linkerN then
forms.loc = base .. "n" .. locativeConsonant .. harmony.low
forms.abl = base .. "n" .. locativeConsonant .. harmony.low .. "n"
else
forms.loc = base .. locativeConsonant .. harmony.low
forms.abl = base .. locativeConsonant .. harmony.low .. "n"
end
return forms
end
local function getPossessiveSuffix(base, harmony, person)
local vowelFinal = endsInVowel(base)
if person == 1 then
return vowelFinal and "m" or harmony.high .. "m"
elseif person == 2 then
return vowelFinal and "n" or harmony.high .. "n"
elseif person == 3 then
return vowelFinal and "s" .. harmony.high or harmony.high
elseif person == 4 then
return vowelFinal and "m" .. harmony.high .. "z" or harmony.high .. "m" .. harmony.high .. "z"
elseif person == 5 then
return vowelFinal and "n" .. harmony.high .. "z" or harmony.high .. "n" .. harmony.high .. "z"
end
return "l" .. harmony.low .. "r" .. harmony.high
end
local function makePossessiveForms(base, harmony, person, isPluralPossessum)
local suffix
local alternateBase
if person == 6 and not isPluralPossessum then
-- With a singular possessum and a third-person plural possessor,
-- Azerbaijani allows both -ı/-i/-u/-ü and -ları/-ləri forms.
suffix = harmony.high
alternateBase = base .. getPossessiveSuffix(base, harmony, person)
elseif isPluralPossessum and (person == 3 or person == 6) then
-- The plural marker already supplies -lar/-lər; third-person possession
-- adds only the high vowel (e.g. kitab-lar-ı).
suffix = harmony.high
else
suffix = getPossessiveSuffix(base, harmony, person)
end
local possessiveBase = base .. suffix
local possessiveType = getType(possessiveBase)
local forms = getCaseForms(possessiveBase, harmony, possessiveType, true, person)
forms.nom = possessiveBase
if alternateBase then
forms.variant = getCaseForms(alternateBase, harmony, getType(alternateBase), true, person)
forms.variant.nom = alternateBase
end
return forms
end
local function makeParadigm(base, harmony, wordType, isPluralPossessum)
local inflectionStem = getInflectionStem(base, wordType)
local forms = getCaseForms(base, harmony, wordType, false)
local possessive = {}
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
possessive[possessor.key] = makePossessiveForms(
inflectionStem,
harmony,
personNumber,
isPluralPossessum
)
end
return {forms = forms, possessive = possessive}
end
local function makeForms(pagename, args)
local lemma = clean(args.grundform) or pagename
local harmony, vowel = getHarmony(lemma, args[1])
if not harmony then
return nil, "Azerbajdzjansk substantivböjning kräver en identifierbar sista vokal (a, ə, e, i, ı, o, ö, u eller ü)."
end
local requestedType = clean(args[2])
if requestedType and requestedType ~= "c" and requestedType ~= "cc"
and requestedType ~= "q" and requestedType ~= "k" then
return nil, "Parameter 2 måste vara c, cc, q eller k."
end
local wordType = getType(lemma, clean(args[2]))
local explicitStem = clean(args.rot) or clean(args.stem)
local singularStem = getInflectionStem(lemma, wordType, explicitStem)
local singular = makeParadigm(lemma, harmony, wordType, false)
-- rot= is used for singular forms with vowel-initial case endings.
if explicitStem then
singular.forms = getCaseForms(lemma, harmony, wordType, false)
local stemForms = getCaseForms(singularStem, harmony, getType(singularStem), false)
singular.forms.acc = stemForms.acc
singular.forms.dat = stemForms.dat
singular.forms.gen = stemForms.gen
for _, possessor in ipairs(possessors) do
local personNumber = possessor.person + (possessor.number == "p" and 3 or 0)
singular.possessive[possessor.key] = makePossessiveForms(singularStem, harmony, personNumber, false)
end
end
local hasSoundPlural = clean(args.nb) ~= "no"
local hasSingular = clean(args.sing) ~= "no"
local plural = hasSoundPlural and getPluralStem(lemma, harmony) or nil
local pluralParadigm
if plural then
pluralParadigm = makeParadigm(plural, harmony, getType(plural), true)
end
-- Use Swedish parameter names while retaining earlier names as aliases.
local broken = clean(args.arpl) or clean(args["arabisk-plural"]) or clean(args.bruten) or clean(args.broken)
local brokenParadigm
if broken then
local brokenVowel = args["arpl-v"] or args["arabisk-plural-v"] or args["bruten-v"] or args["broken-v"]
local brokenHarmony = getHarmony(broken, brokenVowel)
if not brokenHarmony then
return nil, "arpl= kräver att sista vokalen i pluralformen kan identifieras eller anges med arpl-v=."
end
local brokenType = clean(args["arpl-typ"]) or clean(args["arabisk-plural-typ"]) or clean(args["bruten-typ"]) or clean(args["broken-type"])
if brokenType and brokenType ~= "c" and brokenType ~= "cc"
and brokenType ~= "q" and brokenType ~= "k" then
return nil, "arpl-typ= måste vara c, cc, q eller k."
end
brokenParadigm = makeParadigm(broken, brokenHarmony, getType(broken, brokenType), true)
end
if not hasSingular and not hasSoundPlural and not broken then
return nil, "Minst en böjningsform måste visas; kontrollera sing=, nb= och arpl=."
end
return {
lemma = lemma,
vowel = vowel,
word_type = wordType,
has_singular = hasSingular,
has_sound_plural = hasSoundPlural,
has_broken_plural = broken ~= nil,
singular = hasSingular and singular or nil,
sound_plural = pluralParadigm,
broken_plural = brokenParadigm,
}
end
local function grammarLink(form)
if not form or form == "" then
return "–"
end
local link = grammar_link.link(form, "infl", "az")
-- Let green_links.js append the preload fragment to the URL. A language
-- section fragment here prevents the accelerated edit link from being formed.
link = mw.ustring.gsub(link, "#Azerbajdzjanska", "")
return link
end
local function getRow(cells)
if #cells == 2 then
return gt.getRow(cells[1], cells[2])
elseif #cells == 3 then
return gt.getRow(cells[1], cells[2], cells[3])
end
return gt.getRow(cells[1], cells[2], cells[3], cells[4])
end
local function getColumnCount(forms)
return 1 + (forms.has_singular and 1 or 0)
+ (forms.has_sound_plural and 1 or 0)
+ (forms.has_broken_plural and 1 or 0)
end
local function renderMainRows(forms, meta)
local title = "Böjningar av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''"
if meta.meanings and meta.meanings ~= "" then
title = title .. " " .. meta.meanings
end
local header = {{'!class="main min"', title}}
if forms.has_singular then
table.insert(header, {'!', "Singular"})
end
if forms.has_sound_plural then
table.insert(header, {'!', "Plural"})
end
if forms.has_broken_plural then
table.insert(header, {'!', forms.has_sound_plural and "Arabisk plural" or "Plural (arabisk)"})
end
local rows = getRow(header)
for _, case in ipairs(cases) do
local row = {{'!', case.label}}
if forms.has_singular then
table.insert(row, grammarLink(forms.singular.forms[case.key]))
end
if forms.has_sound_plural then
table.insert(row, grammarLink(forms.sound_plural.forms[case.key]))
end
if forms.has_broken_plural then
table.insert(row, grammarLink(forms.broken_plural.forms[case.key]))
end
rows = rows .. getRow(row)
end
return rows
end
local function getPossessiveCell(forms, possessor, case, plural)
local formSets = {}
if plural then
if forms.has_sound_plural then
table.insert(formSets, forms.sound_plural.possessive[possessor.key])
end
if forms.has_broken_plural then
table.insert(formSets, forms.broken_plural.possessive[possessor.key])
end
elseif forms.has_singular then
table.insert(formSets, forms.singular.possessive[possessor.key])
end
local linkedForms = {}
for _, formSet in ipairs(formSets) do
local linked = grammarLink(formSet[case.key])
if formSet.variant and formSet.variant[case.key] then
linked = linked .. " eller " .. grammarLink(formSet.variant[case.key])
end
table.insert(linkedForms, linked)
end
local text = #linkedForms > 0 and table.concat(linkedForms, "<br />") or "–"
return '<span style="font-style:normal">' .. text .. "</span>"
end
local function renderPossessives(forms, columnCount)
local rows = {}
for groupStart = 1, #possessors, 3 do
local group = {possessors[groupStart], possessors[groupStart + 1], possessors[groupStart + 2]}
table.insert(rows, gt.getRow(
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[1].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[2].label .. "</span>"},
{'!colspan="3" class="main min" style="font-style:normal"', '<span style="font-style:normal">' .. group[3].label .. "</span>"}
))
local headingCells = {}
for _ = 1, 3 do
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Kasus</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Singular</span>'})
table.insert(headingCells, {'!style="font-style:normal"', '<span style="font-style:normal">Plural</span>'})
end
table.insert(rows, gt.getRow(
headingCells[1], headingCells[2], headingCells[3],
headingCells[4], headingCells[5], headingCells[6],
headingCells[7], headingCells[8], headingCells[9]
))
for _, case in ipairs(cases) do
local cells = {}
for _, possessor in ipairs(group) do
table.insert(cells, {'!style="font-style:normal"', '<span style="font-style:normal">' .. case.label .. "</span>"})
table.insert(cells, getPossessiveCell(forms, possessor, case, false))
table.insert(cells, getPossessiveCell(forms, possessor, case, true))
end
table.insert(rows, gt.getRow(
cells[1], cells[2], cells[3], cells[4], cells[5], cells[6], cells[7], cells[8], cells[9]
))
end
end
local hiddenRows = gt.getStart(9, "az", "subst", false)
hiddenRows = hiddenRows .. table.concat(rows, "\n") .. "|}"
local content = table.concat({
'<div class="NavFrame collapsed">',
'<div class="NavHead" style="text-align: center;">Possessiva former</div>',
'<div class="NavContent">',
hiddenRows,
"</div>",
"</div>",
}, "\n")
return gt.getRow({'!colspan="' .. columnCount .. '"', content})
end
function export._getAcceptedParameters()
return {
[0] = 2,
"rot", "arpl", "arpl-v", "arpl-typ", "arabisk-plural", "arabisk-plural-v", "arabisk-plural-typ", "nb", "sing",
-- Backward-compatible aliases from the initial English-based interface.
"stem", "bruten", "bruten-v", "bruten-typ", "broken", "broken-v", "broken-type",
}
end
function export._getForms(pagename, _templatename, args, _meta, _format)
local forms, err = makeForms(pagename, args)
if not forms then
return {error = err}
end
return forms
end
function export._getMeta(pagename, templatename, _args)
return {
numbered_cells = 2,
named_cells = {},
pagename = pagename,
templatename = templatename,
}
end
function export._getWikitable(forms, meta)
if forms.error then
return '<strong class="error">' .. forms.error .. "</strong>"
end
gt.setLanguage("az")
local columnCount = getColumnCount(forms)
local hasQualityNotice = meta.quality_notice ~= nil
and meta.quality_notice ~= ""
and meta.quality_notice ~= "X"
local rows = gt.getStart(columnCount, "az", "subst", hasQualityNotice)
rows = rows .. renderMainRows(forms, meta)
rows = rows .. renderPossessives(forms, columnCount)
if meta.note and meta.note ~= "" and meta.note ~= "-" then
rows = rows .. gt.getEnd(columnCount, meta.note, "")
else
rows = rows .. "|}"
end
return rows
end
function export._getCategories(_forms, _meta)
return ""
end
return export
11t5g7fpa6w0vsz3w5okwh1hccg9ogl
ormanlar
0
1074498
4155919
2026-10-15T22:46:12Z
Frodlekis
762
böjningsform av [[orman]]
4155919
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''ormanlar'''
#{{böjning|az|subst|orman}}
==Turkiska==
===Substantiv===
'''ormanlar'''
#{{böjning|tr|subst|orman}}
mk3hxteuhthcqy5fthtgeaqzgzodh5p
məkatib
0
1074499
4155956
2026-10-15T23:42:47Z
Frodlekis
762
böjningsform av [[məktəb]]
4155956
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''məkatib'''
#{{böjning|az|subst|məktəb}}
1gms3bflxrovw8nmoh63tre8o9hlogu
məktəblər
0
1074500
4155957
2026-10-15T23:43:32Z
Frodlekis
762
böjningsform av [[məktəb]]
4155957
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''məktəblər'''
#{{böjning|az|subst|məktəb}}
4xsml21l1tjcd76rqm8hod9vf04mghi
məktəbi
0
1074501
4155958
2026-10-15T23:43:42Z
Frodlekis
762
böjningsform av [[məktəb]]
4155958
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''məktəbi'''
#{{böjning|az|subst|məktəb}}
2dblr0g8pzep9b26cvgthgmq5sre8c3
kitabxananı
0
1074502
4155961
2026-10-15T23:45:59Z
Frodlekis
762
böjningsform av [[kitabxana]]
4155961
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''kitabxananı'''
#{{böjning|az|subst|kitabxana}}
5l6io53dilo0sqigu7ib09xswuosyl4
kitabxanaçını
0
1074503
4155963
2026-10-15T23:46:52Z
Frodlekis
762
böjningsform av [[kitabxanaçı]]
4155963
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''kitabxanaçını'''
#{{böjning|az|subst|kitabxanaçı}}
jb6ptv3hunlfrmqbqi375qaqwzrz79z
qayda
0
1074504
4155964
2026-10-15T23:48:45Z
Frodlekis
762
nytt uppslag (azerbajdzjanska)
4155964
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst|arpl=qəvaid}}
'''qayda'''
#[[regel]]
plnabxtils10s0wjw1e0e8br0m7x0xi
4155965
4155964
2026-10-15T23:50:20Z
Frodlekis
762
/* Azerbajdzjanska */
4155965
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst|arpl=qəvaid}}
'''qayda'''
#[[regel]]
#:{{etymologi|Från {{härledning|az|ar|قَاعِدَة|tr=qāʕida}}.}}
9t1fh5gkqf0yy29pz92eimnq0dqi35w
damarları
0
1074505
4155973
2026-10-16T00:02:51Z
Frodlekis
762
böjningsform av [[damar]]
4155973
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''damarları'''
#{{böjning|az|subst|damar}}
==Turkiska==
===Substantiv===
'''damarları'''
#{{böjning|tr|subst|damar}}
kgi3dnvi0s0qmzynr3tf7jszg1f7c20
alnı
0
1074506
4155978
2026-10-16T00:12:00Z
Frodlekis
762
böjningsform av [[alın]]
4155978
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''alnı'''
#{{böjning|az|subst|alın}}
==Turkiska==
===Substantiv===
'''alnı'''
#{{böjning|tr|subst|alın}}
s31br22wlzh8lxsbhusy2h5blbuu45n
milet
0
1074507
4155980
2026-10-16T00:14:42Z
Frodlekis
762
nytt uppslag (kurdiska)
4155980
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-m}}
'''milet''' {{m}}
#[[nation]]
nllexchz9hemdfsre17ychj40obkdie
piramidi
0
1074508
4155988
2026-10-16T00:21:09Z
Frodlekis
762
böjningsform av [[piramit]]
4155988
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''piramidi'''
#{{böjning|tr|subst|piramit}}
q9r35ukuuc7kq592kydbnhu14b7ker6
gəlində
0
1074509
4156009
2026-10-16T00:38:42Z
Frodlekis
762
böjningsform av [[gəlin]]
4156009
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''gəlində'''
#{{böjning|az|subst|gəlin}}
rmgvc284a1bnxw7nye53auxzf9yml8a
uşağı
0
1074510
4156013
2026-10-16T00:40:33Z
Frodlekis
762
böjningsform av [[uşaq]]
4156013
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''uşağı'''
#{{böjning|az|subst|uşaq}}
gcqy2bdvlxs8lqarh4zeeuqz7we56df
uşaqlar
0
1074511
4156014
2026-10-16T00:40:42Z
Frodlekis
762
böjningsform av [[uşaq]]
4156014
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
'''uşaqlar'''
#{{böjning|az|subst|uşaq}}
4dx5w5hedkj80zpmkp35t8mzaax667k
demirci
0
1074512
4156018
2026-10-16T00:45:04Z
Frodlekis
762
nytt uppslag (turkiska)
4156018
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''demirci'''
#{{tagg|yrken|språk=tr}}[[smed]]
lrb6iwe2viwpp5qbax0ug1t5tnax6hn
Mall:tr-subst-oräkn
10
1074513
4156020
2026-10-16T00:47:55Z
Frodlekis
762
Ny sida
4156020
wikitext
text/x-wiki
<noinclude>
{{grammatik-dok|Turkiska|Substantiv}}
{{#invoke:categorize|getTemplateWikitext}}
</noinclude><includeonly>
{{#invoke:tr-subst|getWikitext}}
{{#invoke:categorize|getMainWikitext|tr|subst}}
</includeonly>
9jtch2j7oak0wi0v26lii4tf9rn40dj
demircilik
0
1074514
4156023
2026-10-16T00:51:52Z
Frodlekis
762
nytt uppslag (turkiska)
4156023
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-oräkn}}
'''demircilik'''
#[[smide]]
6z2vsurwvl5hbwh90fa607oswmq6min
4156024
4156023
2026-10-16T00:52:35Z
Frodlekis
762
/* Turkiska */
4156024
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-oräkn|rot=demirciliğ}}
'''demircilik'''
#[[smide]]
rr8ice8gdamk5snf1nom9ks7oukd7td
4156026
4156024
2026-10-16T00:55:31Z
Frodlekis
762
/* Turkiska */
4156026
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst-oräkn|rot=demirciliğ}}
'''demircilik'''
#[[smide]], [[järnsmide]]
dm20rcsj0wddqx8rsho78gcvx8kd89v
karılar
0
1074515
4156032
2026-10-16T00:59:44Z
Frodlekis
762
böjningsform av [[karı]]
4156032
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''karılar'''
#{{böjning|tr|subst|karı}}
3vkm9115vld3l04qowh835h3a1ugufx
karıyı
0
1074516
4156033
2026-10-16T00:59:50Z
Frodlekis
762
böjningsform av [[karı]]
4156033
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''karıyı'''
#{{böjning|tr|subst|karı}}
9oyyo9ujsqidysbgldiswl78o3gk466
karıya
0
1074517
4156034
2026-10-16T01:00:00Z
Frodlekis
762
böjningsform av [[karı]]
4156034
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''karıya'''
#{{böjning|tr|subst|karı}}
9msareuxmrc8a8ijl0lisrcxed600js
arvad
0
1074518
4156035
2026-10-16T01:04:12Z
Frodlekis
762
nytt uppslag (azerbajdzjanska)
4156035
wikitext
text/x-wiki
==Azerbajdzjanska==
===Substantiv===
{{az-subst}}
'''arvad'''
#{{tagg|språk=az|kat=släktingar}} [[fru]], [[hustru]]
#:{{synonymer|[[xanım]], [[əyal]] (''ålderdomligt''), [[zövcə]] ''ålderdomligt''), [[külfət]] (''eufemistiskt'')}}
#{{tagg|vardagligt|språk=az}} [[kvinna]] (särskilt en äldre kvinna, [[tant]])
#:{{synonymer|{{länk|az|qadın, xanım}}}}
cqfl5f5i6kme0pw5j6vwig54er9c5q0
torunlar
0
1074519
4156039
2026-10-16T01:06:41Z
Frodlekis
762
böjningsform av [[torun]]
4156039
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
'''torunlar'''
#{{böjning|tr|subst|torun}}
ej0nvgy2mm33m7so97mz9dr2v3b1dxj
babekî
0
1074520
4156057
2026-10-16T01:19:56Z
Frodlekis
762
böjningsform av [[bab]]
4156057
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''babekî'''
#{{böjning|kmr|subst|bab}}
7xld7jfgyctl2yu8wy9ogzkeer9ktpq
bavo
0
1074521
4156060
2026-10-16T01:21:14Z
Frodlekis
762
böjningsform av [[bav]]
4156060
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''bavo'''
#{{böjning|kmr|subst|bav}}
eo79qqhgcsxpwezs4eokx63y0baw1ph
բանան
0
1074522
4156062
2026-10-16T01:25:24Z
Frodlekis
762
nytt uppslag (armeniska)
4156062
wikitext
text/x-wiki
==Armeniska==
===Substantiv===
{{subst|hy}}
'''բանան'''
#{{tagg|kat=frukter|språk=hy}} [[banan]]
cf2tdzqr08620543ffwtild00f9qfx8
4156063
4156062
2026-10-16T01:25:36Z
Frodlekis
762
/* Armeniska */
4156063
wikitext
text/x-wiki
==Armeniska==
===Substantiv===
{{subst|hy}}
'''բանան''' ({{tr|hy|բանան}})
#{{tagg|kat=frukter|språk=hy}} [[banan]]
l4h56tfz8lsakhhcr12yxnq0rwmbpr9
4156064
4156063
2026-10-16T01:26:23Z
Frodlekis
762
/* Armeniska */
4156064
wikitext
text/x-wiki
==Armeniska==
===Substantiv===
{{subst|hy}}
'''բանան''' ({{tr|hy|բանան}})
#{{tagg|kat=frukter|språk=hy}} [[banan]]
#:{{etymologi|Inlånat från {{härledning|hy|ru|бана́н|tr=banán}}.}}
hnc4hgqhuhgztaod0czqc3pdcv8kgv6
Kategori:Kirgiziska/Frukter
14
1074523
4156066
2026-10-16T01:28:22Z
Frodlekis
762
Ny sida
4156066
wikitext
text/x-wiki
{{kategorinavigering|Kirgiziska|Frukter|Växter|Mat}}
qtnl9m28z7w2dc40atbm258ry6sqx60
Kategori:Kirgiziska/Växter
14
1074524
4156067
2026-10-16T01:30:07Z
Frodlekis
762
Ny sida
4156067
wikitext
text/x-wiki
{{kategorinavigering|Kirgiziska|Växter|Botanik}}
{{kategorilistenavigering|ky}}
fi9ez9hqc05tdlun5n7rwdiavmwhpl7
Kategori:Kirgiziska/Botanik
14
1074525
4156068
2026-10-16T01:31:24Z
Frodlekis
762
Ny sida
4156068
wikitext
text/x-wiki
{{kategorinavigering|Kirgiziska|Botanik|Biologi}}
{{kategorilistenavigering|ky}}
szps612odk9qpy8hy7xcvoo3exn5y0g
Kategori:Kirgiziska/Biologi
14
1074526
4156069
2026-10-16T01:32:15Z
Frodlekis
762
Ny sida
4156069
wikitext
text/x-wiki
{{kategorinavigering|Kirgiziska|Biologi|Naturvetenskap}}
0fekthzp5w90bxocklo9qrqpkeitn1t
motorháztető
0
1074527
4156072
2026-10-16T08:25:23Z
Frodlekis
762
nytt uppslag (ungerska)
4156072
wikitext
text/x-wiki
==Ungerska==
===Substantiv===
{{subst|hu}}
'''motorháztető'''
#[[motorhuv]]
q0i8c8ah4rnbownsm57rdmfkfa0kq99
mêwîj
0
1074528
4156093
2026-10-16T09:05:04Z
~2026-55485-04
62322
översättning av [[russin]]
4156093
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''mêwîj''' {{f}}
#{{tagg|mat|kat=frukter|språk=kmr}}[[russin]]
l0w9ku6x5f58fk2bvn70613k3z66fpe
hejîreke
0
1074529
4156095
2026-10-16T09:08:18Z
~2026-55485-04
62322
böjningsform av [[hejîr]]
4156095
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîreke'''
#{{böjning|kmr|subst|hejîr}}
rghvuy45o2nr9kfr19h94823i6a0abc
hejîrek
0
1074530
4156096
2026-10-16T09:08:33Z
~2026-55485-04
62322
böjningsform av [[hejîr]]
4156096
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîrek'''
#{{böjning|kmr|subst|hejîr}}
32votq8gpl7xz30or1h8d56ditbmd8n
פֿײַג
0
1074531
4156102
2026-10-16T09:14:03Z
Frodlekis
762
nytt uppslag (jiddisch)
4156102
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-substf-n}}
'''פֿײַג''' {{f}}
#{{tagg|kat=frukter|språk=yi}}[[fikon]]
ekosesxa61t2bvki55hep5be47sg49v
4156103
4156102
2026-10-16T09:14:16Z
Frodlekis
762
/* Jiddisch */
4156103
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-n}}
'''פֿײַג''' (fayg) {{f}}
#{{tagg|kat=frukter|språk=yi}}[[fikon]]
3tdqbay38tdv3z36y4yqn2rkn08hcba
פֿײַגן
0
1074532
4156104
2026-10-16T09:14:25Z
Frodlekis
762
böjningsform av [[פֿײַג]]
4156104
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
'''פֿײַגן'''
#{{böjning|yi|subst|פֿײַג}}
hr6m2i6mxvwh0pe8aoui4l7l9cpkqrp
בולגור
0
1074533
4156106
2026-10-16T09:17:21Z
Frodlekis
762
översättning av [[bulgur]]
4156106
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{subst|yi}}
'''בולגור''' (bulgur) {{m}}
#{{tagg|språk=yi|kat=mat}} [[bulgur]]
63yv5auf90axwnifyvyquc57qbbfnlw
פֿאַרפֿל
0
1074534
4156107
2026-10-16T09:24:59Z
Frodlekis
762
nytt uppslag (jiddisch)
4156107
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{subst|yi}}
'''פֿאַרפֿל''' ({{tr|yi|פֿאַרפֿל}})
#{{tagg|kat=mat|språk=yi}} [[farfel]]
01cb28t14uqygodtl816nd88q3pd6gi
4156108
4156107
2026-10-16T09:25:54Z
Frodlekis
762
/* Jiddisch */
4156108
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{subst|yi}}
'''פֿאַרפֿל''' ({{tr|yi|פֿאַרפֿל}}) {{n}}
#{{tagg|kat=mat|språk=yi}} [[farfel]]
#:{{etymologi|Av {{härledning|yi|gmh|varveln}}.}}
5ljiqi1ibyw167qf94wqlyxcneygw22
4156109
4156108
2026-10-16T09:26:37Z
Frodlekis
762
/* Jiddisch */
4156109
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{subst|yi}}
'''פֿאַרפֿל''' ({{tr|yi|פֿאַרפֿל}}) {{n}}
#{{tagg|kat=mat|språk=yi}} [[farfel]], slags ashkenazijudisk [[pasta]]
#:{{etymologi|Av {{härledning|yi|gmh|varveln}}.}}
2pmesw8x6ibcwhub4fo1ax2xghmetid
hejîrên
0
1074535
4156116
2026-10-16T09:33:21Z
Frodlekis
762
böjningsform av [[hejîr]]
4156116
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîrên'''
#{{böjning|kmr|subst|hejîr}}
gptekoajxc5t3q2m3w224uavz2mj6ab
hejîrekê
0
1074536
4156117
2026-10-16T09:33:31Z
Frodlekis
762
böjningsform av [[hejîr]]
4156117
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîrekê'''
#{{böjning|kmr|subst|hejîr}}
8et09tntk2734o82ds488cd7mchpbha
hejîra
0
1074537
4156118
2026-10-16T09:33:44Z
Frodlekis
762
böjningsform av [[hejîr]]
4156118
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîra'''
#{{böjning|kmr|subst|hejîr}}
j8ii5fk2rh692e2txd910f39xeev5ig
hejîrê
0
1074538
4156119
2026-10-16T09:33:54Z
Frodlekis
762
böjningsform av [[hejîr]]
4156119
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîrê'''
#{{böjning|kmr|subst|hejîr}}
bykrrifk4ykiodfsctrzj5fufo7moh1
hejîrin
0
1074539
4156120
2026-10-16T09:34:10Z
Frodlekis
762
böjningsform av [[hejîr]]
4156120
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîrin'''
#{{böjning|kmr|subst|hejîr}}
rg31xhahabeup88stsn8rgvcl367p1o
hejîrine
0
1074540
4156121
2026-10-16T09:34:19Z
Frodlekis
762
böjningsform av [[hejîr]]
4156121
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîrine'''
#{{böjning|kmr|subst|hejîr}}
dm2csqwiuzcl8osdnvp4ke6y2jwtwyo
hejîrinan
0
1074541
4156122
2026-10-16T09:34:29Z
Frodlekis
762
böjningsform av [[hejîr]]
4156122
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîrinan'''
#{{böjning|kmr|subst|hejîr}}
f8uog5kbwgd05vxuaaasfjazxjbp4ki
hejîran
0
1074542
4156123
2026-10-16T09:34:38Z
Frodlekis
762
böjningsform av [[hejîr]]
4156123
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîran'''
#{{böjning|kmr|subst|hejîr}}
l4pjmp8txx00w10atycpqwod68vetp4
hejîrino
0
1074543
4156124
2026-10-16T09:34:49Z
Frodlekis
762
böjningsform av [[hejîr]]
4156124
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''hejîrino'''
#{{böjning|kmr|subst|hejîr}}
9zac9lt0rezl6qtvm89kl91zri4svqc
savar
0
1074544
4156129
2026-10-16T09:38:43Z
Frodlekis
762
översättning av [[bulgur]]
4156129
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''savar''' {{f}}
#{{tagg|kat=mat|språk=kmr}} [[bulgur]]
tc69znpjsrur5b5hdxfdxkd5qxd08wh
4156130
4156129
2026-10-16T09:39:31Z
Frodlekis
762
/* Nordkurdiska */
4156130
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''savar''' {{f}}
#{{tagg|kat=mat|språk=kmr}} [[bulgur]]
#:{{etymologi|Inlånat från {{härledning|kmr|hy|ձավար|tr=javar}}.}}
om3e3p6dpuzgnc0s1lnwzhig3nliy7p
4156131
4156130
2026-10-16T09:39:38Z
Frodlekis
762
/* Nordkurdiska */
4156131
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''savar''' {{m}}
#{{tagg|kat=mat|språk=kmr}} [[bulgur]]
#:{{etymologi|Inlånat från {{härledning|kmr|hy|ձավար|tr=javar}}.}}
hw4gcdetnl9pbaipulxxwpfduhiv2vx
4156132
4156131
2026-10-16T09:40:55Z
Frodlekis
762
/* Nordkurdiska */
4156132
wikitext
text/x-wiki
==Svenska==
===Verb===
'''savar'''
#{{böjning|sv|verb|sava}}
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''savar''' {{m}}
#{{tagg|kat=mat|språk=kmr}} [[bulgur]]
#:{{etymologi|Inlånat från {{härledning|kmr|hy|ձավար|tr=javar}}.}}
963ha336v0bs2g0oyp3oh1z14xh5yqx
giya
0
1074545
4156136
2026-10-16T10:12:23Z
Frodlekis
762
nytt uppslag (nordkurdiska)
4156136
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''giya''' {{m}}
*{{uttal|kmr|ipa=ɡiˈjɑː}}
#{{tagg|växter|språk=kmr}} [[gräs]]
5z09fl65vatqgl6j1fcb944dt8w0dii
şamborek
0
1074546
4156137
2026-10-16T10:17:48Z
Frodlekis
762
nytt uppslag (nordkurdiska)
4156137
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''şamborek''' {{f}}
#{{tagg|kat=maträtter}} en [[maträtt]] gjord på deg (eller pitabröd/tunnbröd), keso/lorost, kött, lök m.m. som tillagas på en häll eller i en panna
#:{{synonymer|{{länk|kmr|semsek, borekên Şamê, şalufe, şalûfe}}}}
#:{{citat|år=2011|datum=maj|förf=Dilbixwîn Dara|publ=Avestakurd.com|Ji bo '''şamborekan''' dikarim lê xim û heta bi Efxanistanê jî biçim.|”För '''şamborek''' kan jag ge mig ut på vägarna och åka ända till Afghanistan”, svarar jag på ett SMS från den värde Brader.}}
ia71wsxlx3s63btwex4d0prxwfw6mki
4156138
4156137
2026-10-16T10:18:32Z
Frodlekis
762
/* Nordkurdiska */
4156138
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''şamborek''' {{f}}
#{{tagg|kat=maträtter}} en [[maträtt]] gjord på deg (eller pitabröd/tunnbröd), keso/lorost, kött, lök m.m. som tillagas på en häll eller i en panna
#:{{synonymer|{{länk|kmr|semsek, borekên Şamê, şalufe, şalûfe}}}}
#:{{citat|år=2011|datum=maj|förf=Dilbixwîn Dara|publ=Avestakurd.com|Ji bo '''şamborekan''' dikarim lê xim û heta bi Efxanistanê jî biçim, bersiva SMS’a hêja Brader didim.|”För '''şamborek''' kan jag ge mig ut på vägarna och åka ända till Afghanistan”, svarar jag på ett SMS från den värde Brader.}}
oojq14f34g7a1oicika0p64i0nxe6av
4156139
4156138
2026-10-16T10:22:20Z
Frodlekis
762
4156139
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''şamborek''' {{f}}
#{{tagg|kat=maträtter|språk=kmr}} halvmåneformad, stekt eller ugnsbakad [[pirog]] fylld med kryddad köttfärs, lök och örter, med ursprung i det syrianska, kurdiska och sydostturkiska köket
#:{{synonymer|{{länk|kmr|semsek, borekên Şamê, şalufe, şalûfe}}}}
#:{{citat|år=2011|datum=maj|förf=Dilbixwîn Dara|publ=Avestakurd.com|Ji bo '''şamborekan''' dikarim lê xim û heta bi Efxanistanê jî biçim, bersiva SMS’a hêja Brader didim.|”För '''şamborek''' kan jag ge mig ut på vägarna och åka ända till Afghanistan”, svarar jag på ett SMS från den värde Brader.}}
texoc6c3cavri6wlycefxela2ppongl
4156140
4156139
2026-10-16T10:23:33Z
Frodlekis
762
4156140
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''şamborek''' {{f}}
#{{tagg|kat=maträtter|språk=kmr}} halvmåneformad, stekt eller ugnsbakad [[pirog]] fylld med kryddad köttfärs, lök och örter, med ursprung i det syrianska, kurdiska och sydostturkiska köket
#:{{synonymer|{{länk|kmr|semsek, borekên Şamê, şalufe, şalûfe}}}}
tcpnzp84by94f256ea5pc8wc25bwqvj
Kategori:Nordkurdiska/Maträtter
14
1074547
4156141
2026-10-16T10:23:55Z
Frodlekis
762
Ny sida
4156141
wikitext
text/x-wiki
{{kategorinavigering|Nordkurdiska|Maträtter|Matlagning}}
h51pi6q0bi2u6ez5366tgordxdrf3pp
şorbe
0
1074548
4156142
2026-10-16T10:28:29Z
Frodlekis
762
nytt uppslag (nordkurdiska)
4156142
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''şorbe'''
#{{tagg|kat=maträtter|språk=kmr}} [[soppa]]
pni9ce8wlw4dm9d68d5m6aaoaznf9wy
4156143
4156142
2026-10-16T10:28:39Z
Frodlekis
762
/* Nordkurdiska */
4156143
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''şorbe''' {{f}}
#{{tagg|kat=maträtter|språk=kmr}} [[soppa]]
60su3ownmxe93hoew7x9cqx6sdjfmau
יושקע
0
1074549
4156146
2026-10-16T10:33:30Z
Frodlekis
762
Ny sida
4156146
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-s}}
'''יושקע''' (yushke) {{f}}
#{{tagg|kat=mat|språk=yi}} [[soppa]]
#:{{synonymer|{{länk|yi|יויך, זופּ}}}}
knf4wn39zuzoz4fyvngkbqdsap9y1ha
יויך
0
1074550
4156147
2026-10-16T10:34:03Z
Frodlekis
762
Ny sida
4156147
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-s}}
'''יויך''' (yukh) {{f}}
#{{tagg|kat=mat|språk=yi}} [[soppa]]
#:{{synonymer|{{länk|yi|יושקע, זופּ}}}}
gye8bxgiqkp0ybifif8nrv3n7nlzsoi
4156148
4156147
2026-10-16T10:34:43Z
Frodlekis
762
4156148
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-n|tr=yoykh}}
'''יויך''' (yukh) {{f}}
#{{tagg|kat=mat|språk=yi}} [[soppa]]
#:{{synonymer|{{länk|yi|יושקע, זופּ}}}}
djtyfq5a1oyn02rqe0epnqibrfhoy0m
4156150
4156148
2026-10-16T10:35:58Z
Frodlekis
762
/* Jiddisch */
4156150
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-n|tr=yoykh}}
'''יויך''' (yoykh) {{f}}
#{{tagg|kat=mat|språk=yi}} [[soppa]]
#:{{synonymer|{{länk|yi|יושקע, זופּ}}}}
6i2rpm9i8wp007r8fsffrx8y42whe6x
4156151
4156150
2026-10-16T10:40:33Z
Frodlekis
762
4156151
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-n|tr=yoykh}}
'''יויך''' (yoykh) {{f}}
#{{tagg|kat=mat|språk=yi}} [[soppa]]
#:{{synonymer|{{länk|yi|יושקע, זופּ}}}}
#{{tagg|kat=mat|språk=yi}} klar soppa på [[buljong]]
#:{{synonymer|{{länk|yi|יײַכל|tr=yaykhl}}, {{länk|yi|יושקע}} (''yushke'')}}
# [[skysås]]
#:{{synonymer|{{länk|yi|בראָטיויך}} (''brotyoykh''), {{länk|yi|ראָסל}} (''rosl''), {{länk|yi|זוזע}} (''zuze'')
#:{{hyperonymer|{{länk|yi|סאָס}} (''sos'')}}
#[[buljong]]
#:{{synonymer|{{länk|yi|בוליאָן}} (''bulyon'')}}
#[[consommé]]
#:{{synonymer|[[קאָנסאָמע]] (''konsome'')}}
q17s0ze6eayjifcxjebmfiq3va7pmga
4156152
4156151
2026-10-16T10:41:45Z
Frodlekis
762
4156152
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-n|tr=yoykh}}
'''יויך''' (yoykh) {{f}}
#{{tagg|kat=mat|språk=yi}} [[soppa]]
#:{{synonymer|{{länk|yi|יושקע}} (''yoshke''), {{länk|yi|זופּ}} (''zup'')}}
#{{tagg|kat=mat|språk=yi}} klar soppa på [[buljong]]
#:{{synonymer|{{länk|yi|יײַכל|tr=yaykhl}}, {{länk|yi|יושקע}} (''yushke'')}}
# [[skysås]]
#:{{synonymer|{{länk|yi|בראָטיויך}} (''brotyoykh''), {{länk|yi|ראָסל}} (''rosl''), {{länk|yi|זוזע}} (''zuze'')}}
#:{{hyperonymer|{{länk|yi|סאָס}} (''sos'')}}
#[[buljong]]
#:{{synonymer|{{länk|yi|בוליאָן}} (''bulyon'')}}
#[[consommé]]
#:{{synonymer|[[קאָנסאָמע]] (''konsome'')}}
9ygv8mfh8y31jx18j3xan4waskxfvr4
4156153
4156152
2026-10-16T10:42:25Z
Frodlekis
762
4156153
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-f-n|tr=yoykh}}
'''יויך''' (yoykh) {{f}}
#{{tagg|kat=mat|språk=yi}} [[soppa]]
#:{{synonymer|{{länk|yi|יושקע}} (''yoshke''), {{länk|yi|זופּ}} (''zup'')}}
#{{tagg|kat=mat|språk=yi}} klar soppa på [[buljong]]
#:{{synonymer|{{länk|yi|יײַכל}} (''yaykhl''), {{länk|yi|יושקע}} (''yushke'')}}
# [[skysås]]
#:{{synonymer|{{länk|yi|בראָטיויך}} (''brotyoykh''), {{länk|yi|ראָסל}} (''rosl''), {{länk|yi|זוזע}} (''zuze'')}}
#:{{hyperonymer|{{länk|yi|סאָס}} (''sos'')}}
#[[buljong]]
#:{{synonymer|{{länk|yi|בוליאָן}} (''bulyon'')}}
#[[consommé]]
#:{{synonymer|[[קאָנסאָמע]] (''konsome'')}}
k859y6mgfzvzty1cl0q8zgxn2w4vzvg
יויכן
0
1074551
4156149
2026-10-16T10:35:32Z
Frodlekis
762
böjningsform av [[יויך]]
4156149
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
'''יויכן'''
#{{böjning|yi|subst|יויך}}
aixekq7l2wxyusn39e6l44r80enm1kw
בוליאָן
0
1074552
4156154
2026-10-16T10:43:19Z
Frodlekis
762
nytt uppslag (jiddisch)
4156154
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{subst|yi}}
'''בוליאָן''' (bulyon)
#{{tagg|kat=mat|språk=yi}} [[buljong]]
o8ct8e1vablumjqa14p09nlmqrh8cjy
4156155
4156154
2026-10-16T10:43:57Z
Frodlekis
762
/* Jiddisch */
4156155
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{yi-subst-m-en}}
'''בוליאָן''' (bulyon) {{m}}
#{{tagg|kat=mat|språk=yi}} [[buljong]]
7q8iud2x7ne3tzsaf0dufpoeuzwrscf
בוליאָנען
0
1074553
4156156
2026-10-16T10:44:08Z
Frodlekis
762
böjningsform av [[בוליאָן]]
4156156
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
'''בוליאָנען'''
#{{böjning|yi|subst|בוליאָן}}
ixyob21rve3ckc0ui8yor4dn41bp87m
siyasî
0
1074554
4156157
2026-10-16T10:46:36Z
Frodlekis
762
nytt uppslag (nordkurdiska)
4156157
wikitext
text/x-wiki
==Nordkurdiska==
===Adjektiv===
{{adj|kmr}}
'''siyasî'''
#[[politisk]]
bogct4qmwzsf5g0kqlvpllsqhq82sr4
siyaset
0
1074555
4156158
2026-10-16T10:48:37Z
Frodlekis
762
nytt uppslag (krimtatariska); nytt uppslag (nordkurdiska)
4156158
wikitext
text/x-wiki
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''siyaset'''
#[[politik]]
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''siyaset''' {{f}}
#[[politik]]
qwezio05iq5uddhosj5ttw7njuklgkk
4156159
4156158
2026-10-16T10:51:26Z
Frodlekis
762
4156159
wikitext
text/x-wiki
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''siyaset'''
#[[politik]]
#:{{etymologi|Via {{härledning|crh|ota|سیاست|tr=siyaset}}, av {{härledning|crh|ar|سِيَاسَة|tr=siyāsa}}.}}
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''siyaset''' {{f}}
#[[politik]]
#:{{etymologi|Via {{härledning|kmr|ota|سیاست|tr=siyaset}}, av {{härledning|kmr|ar|سِيَاسَة|tr=siyāsa}}.}}
==Turkiska==
===Substantiv===
{{subst|tr}}
'''siyaset''' {{f}}
#[[politik]]
#:{{etymologi|Av {{härledning|tr|ota|سیاست|tr=siyaset}}, av {{härledning|tr|ar|سِيَاسَة|tr=siyāsa}}.}}
d2yn0la3w4213sxermqbylzh75qy6su
4156160
4156159
2026-10-16T10:51:42Z
Frodlekis
762
/* Turkiska */
4156160
wikitext
text/x-wiki
==Krimtatariska==
===Substantiv===
{{subst|crh}}
'''siyaset'''
#[[politik]]
#:{{etymologi|Via {{härledning|crh|ota|سیاست|tr=siyaset}}, av {{härledning|crh|ar|سِيَاسَة|tr=siyāsa}}.}}
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''siyaset''' {{f}}
#[[politik]]
#:{{etymologi|Via {{härledning|kmr|ota|سیاست|tr=siyaset}}, av {{härledning|kmr|ar|سِيَاسَة|tr=siyāsa}}.}}
==Turkiska==
===Substantiv===
{{subst|tr}}
'''siyaset''' {{f}}
#[[politik]]
#:{{synonymer|[[politika]]}}
#:{{etymologi|Av {{härledning|tr|ota|سیاست|tr=siyaset}}, av {{härledning|tr|ar|سِيَاسَة|tr=siyāsa}}.}}
o0yuje613kgi7g8uhhtivw7vcqdt9gn
קאָנסאָמע
0
1074556
4156163
2026-10-16T10:55:47Z
Frodlekis
762
nytt uppslag (jiddisch)
4156163
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{subst|yi}}
'''קאָנסאָמע''' (konsome) {{f}}
#{{tagg|kat=mat|språk=yi}} [[consommé]]
9r466310jti006izn11mjwcrapff5ku
4156164
4156163
2026-10-16T10:56:01Z
Frodlekis
762
/* Jiddisch */
4156164
wikitext
text/x-wiki
==Jiddisch==
===Substantiv===
{{subst|yi}}
'''קאָנסאָמע''' (konsome) {{m}}
#{{tagg|kat=mat|språk=yi}} [[consommé]]
h0z1y1obz0mh2jltj4u5zfm34mgwcu8
konsome
0
1074557
4156166
2026-10-16T10:57:43Z
Frodlekis
762
nytt uppslag (turkiska)
4156166
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''konsome'''
##{{tagg|kat=mat|språk=tr}} [[#Svenska|consommé]]
mb76xm39p79fdmgzy9t2ta4qdqzdiy9
4156167
4156166
2026-10-16T10:57:55Z
Frodlekis
762
4156167
wikitext
text/x-wiki
==Turkiska==
===Substantiv===
{{tr-subst}}
'''konsome'''
#{{tagg|kat=mat|språk=tr}} [[#Svenska|consommé]]
do1k3ijihbo3ivppi0hyv49ynvuokzn
algorîtm
0
1074558
4156174
2026-10-16T11:08:43Z
Frodlekis
762
Ny sida
4156174
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''algorîtm''' {{f}}
#{{tagg|matematik|språk=kmr}} [[algoritm]]
#:{{varianter|[[algorîtma]]}}
rdlp9kmjq1cez8phi3i663hymphwec2
4156175
4156174
2026-10-16T11:09:18Z
Frodlekis
762
4156175
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''algorîtm''' {{f}}
#{{tagg|matematik|datavetenskap|språk=kmr}} [[algoritm]]
#:{{varianter|[[algorîtma]]}}
nvseunyh4vvbzv00tyz2em61yytf540
algorîtmek
0
1074559
4156176
2026-10-16T11:13:45Z
Frodlekis
762
böjningsform av [[algorîtm]]
4156176
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
'''algorîtmek'''
#{{böjning|kmr|subst|algorîtm}}
0677akzwwscd2toet1nqcwr5rn2qua7
aabbe
0
1074560
4156177
2026-10-16T11:16:39Z
Frodlekis
762
nytt uppslag (somaliska)
4156177
wikitext
text/x-wiki
==Somaliska==
===Substantiv===
{{subst|so}}
'''aabbe'''
#{{tagg|släktingar|språk=so}} [[far]], [[pappa]]
4qom24phn9vefzshl0ac2yxucrf84k1
ადა
0
1074561
4156183
2026-10-16T11:27:34Z
Frodlekis
762
nytt uppslag (laziska)
4156183
wikitext
text/x-wiki
==Laziska==
===Substantiv===
{{subst|lzz}}
'''ადა''' ({{tr|lzz|ადა}})
#{{tagg|kat=naturgeografi|språk=lzz}} [[ö]]
#:{{etymologi|Från {{härledning|ota|آطه|tr=ada}}.}}
8oskeblqv3rvxcxoeauojp3hm4kyxcz
4156184
4156183
2026-10-16T11:27:44Z
Frodlekis
762
4156184
wikitext
text/x-wiki
==Laziska==
===Substantiv===
{{subst|lzz}}
'''ადა''' ({{tr|lzz|ადა}})
#{{tagg|kat=naturgeografi|språk=lzz}} [[ö]]
#:{{etymologi|Från {{härledning|lzz|ota|آطه|tr=ada}}.}}
c0g37d66niwsi604p3gcwx6wo6fmn5z
Kategori:Laziska/Naturgeografi
14
1074562
4156185
2026-10-16T11:28:24Z
Frodlekis
762
Ny sida
4156185
wikitext
text/x-wiki
{{kategorinavigering|Laziska|Naturgeografi|Geografi|Geovetenskap}}
5s0ymzywhzm8frgw43osw3rglpev20b
Kategori:Laziska/Geografi
14
1074563
4156186
2026-10-16T11:29:15Z
Frodlekis
762
Ny sida
4156186
wikitext
text/x-wiki
{{kategorinavigering|Laziska|Geografi|Diverse}}
6fuvde06fxnqahbc6f8edwto4z3d769
Kategori:Laziska/Diverse
14
1074564
4156187
2026-10-16T11:29:36Z
Frodlekis
762
Ny sida
4156187
wikitext
text/x-wiki
{{kategorinavigering|Laziska|Diverse|Index|nyckel=6}}
m8hjuq8cng82412nv8ykfgmq2df4krs
ვაშლი
0
1074565
4156193
2026-10-16T11:36:23Z
Frodlekis
762
nytt uppslag (georgiska)
4156193
wikitext
text/x-wiki
==Georgiska==
===Substantiv===
{{subst|ka}}
'''ვაშლი''' ({{tr|ka|ვაშლი}})
#{{tagg|frukter|språk=ka}}[[äpple]]
3i2jpa9b7bpo1fcii912tmtzhbw0lg0
ყაპყაპი
0
1074566
4156196
2026-10-16T11:40:49Z
Frodlekis
762
översättning av [[blåkråka]]
4156196
wikitext
text/x-wiki
==Georgiska==
===Substantiv===
{{subst|ka}}
'''ყაპყაპი''' ({{tr|ka|ყაპყაპი}})
#{{tagg|kat=fåglar|kat2=fågelarter|språk=ka}} [[blåkråka]]
5pm8q2y18fr0n2gvngjds1tmc93x7uy
qelaşînk
0
1074567
4156199
2026-10-16T11:43:53Z
Frodlekis
762
översättning av [[blåkråka]]
4156199
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{subst|kmr}}
'''qelaşînk'''
#{{tagg|språk=kmr|fåglar|kat=fågelarter}} [[blåkråka]]
6dmn21fpp6kt1sqrn2qr0gfe0lh8lgb
4156200
4156199
2026-10-16T11:44:12Z
Frodlekis
762
översättning av [[blåkråka]]
4156200
wikitext
text/x-wiki
==Nordkurdiska==
===Substantiv===
{{kmr-subst-f}}
'''qelaşînk''' {{f}}
#{{tagg|språk=kmr|fåglar|kat=fågelarter}} [[blåkråka]]
5950o91ff5sp0y9kslp1aacjbp7mi1k