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>&nbsp;[[historian]]|6=[[historiens]], <small><i>vard.</i></small>&nbsp;[[historians]]|3=[[historier]], <small><i>vard.</i></small>&nbsp;[[historior]]|4=[[historierna]], <small><i>vard.</i></small>&nbsp;[[historiorna]]|7=[[historiers]], <small><i>vard.</i></small>&nbsp;[[historiors]]|8=[[historiernas]], <small><i>vard.</i></small>&nbsp;[[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 = "&nbsp;" 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 = "&nbsp;" 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 = "&nbsp;" 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 = "&nbsp;" 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&nbsp;av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]" if forms.meaning then title = title .. "&nbsp;" .. 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 = "&nbsp;" 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&nbsp;av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]" if forms.meaning then title = title .. "&nbsp;" .. 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 = "&nbsp;" 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&nbsp;av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]" if forms.meaning then title = title .. "&nbsp;" .. 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 = "&nbsp;" 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&nbsp;av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]" if forms.meaning then title = title .. "&nbsp;" .. 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 = "&nbsp;" 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&nbsp;av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]" if forms.meaning then title = title .. "&nbsp;" .. 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 = "&nbsp;" 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&nbsp;av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]" if forms.meaning then title = title .. "&nbsp;" .. 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 = "&nbsp;" 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&nbsp;av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]" if forms.meaning then title = title .. "&nbsp;" .. 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 = "&nbsp;" 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&nbsp;av ''[[" .. forms.lemma .. "#Jiddisch|" .. forms.lemma .. "]]" if forms.meaning then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''" if clean(args.betydelser) then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''" if clean(args.betydelser) then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''" if clean(args.betydelser) then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''" if clean(args.betydelser) then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''" if clean(args.betydelser) then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. meta.pagename .. "#Turkiska|" .. meta.pagename .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. pagename .. "#Turkiska|" .. pagename .. "]]''" if clean(args.betydelser) then title = title .. "&nbsp;" .. 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&nbsp;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î") .. "&nbsp;" .. 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&nbsp;" .. 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&nbsp;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&nbsp;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î") .. "&nbsp;" .. 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&nbsp;" .. 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&nbsp;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&nbsp;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î") .. "&nbsp;" .. 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&nbsp;" .. 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&nbsp;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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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&nbsp;av ''[[" .. forms.lemma .. "#Azerbajdzjanska|" .. forms.lemma .. "]]''" if meta.meanings and meta.meanings ~= "" then title = title .. "&nbsp;" .. 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