text: hyperpolymers

title: hyperpolymers


text: hyperstrings

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: hyperstrings


text: hypertransfusions

title: hypertransfusions


text: hypochords

title: hypochords


text: sea-trees

title: sea-trees


text: second order streams

title: second order streams


text: security printers

title: security printers


text: second-person duals

title: second-person duals


text: pan pizzas

title: pan pizzas


text: paint strippers

title: paint strippers


text: pain scores

title: pain scores


text: IQers

title: IQers


text:
Gimo

Etymology
, in reference to 's rank.

Proper noun

 * , the leader of the Kuomintang during World War II and Cold War

Etymology
From.

Proper noun

 * 1) A town in Uppland, Sweden.

title: Gimo


text:
ridingwear

Etymology
From.

Noun

 * 1) Clothing to be worn while riding.

title: ridingwear


text:
floridura

Etymology
From.

Noun

 * 1) mould microfungi

title: floridura


text: floridura blanca

title: floridura blanca


text:
floridura negra

Noun

 * 1) black bread mould

title: floridura negra


text:
molsa dels rens

Noun

 * 1) reindeer moss

title: molsa dels rens


text:
Östhammar

Etymology
From.

title: Östhammar


text:
imgabáil

Etymology
From.

Noun

 * : avoiding, evasion, shirking, shunning
 * "sga"
 * "sga"

- .i. a·tá in aicniud chaich denum maith ⁊ imgabail uilc do denum

 * "sga"
 * "sga"

- cen imcabáil cacenfati ⁊ cen imcabáil cum nobis do epirt

title: imgabáil


text:
molsa blanca

Etymology
lit. 'white moss'. (A misnomer, as it is actually a species of lichen.)

Noun

 * , a species of lichen with ornamental uses

title: molsa blanca


text:
liquen d'Islàndia

Noun

 * 1) Iceland moss

title: liquen d'Islàndia


text:
науковець

Etymology
From. Compare 🇨🇬.

Noun

 * 1) scientist

title: науковець


text: Troisvierges

title: Troisvierges


text:
Alunda

Etymology
From.

title: Alunda


text: p*rn

title: p*rn


text: Bentinganan

title: Bentinganan


text:
науковиця

Etymology
From.

title: науковиця


text:
barba-reveixí

Etymology
lit. 'cowlick-beard'.

Adjective

 * 1) bushy-bearded

title: barba-reveixí


text:
Kelvinverse

Etymology
From, referencing the attack on the USS Kelvin by time-travelling Romulans in the first film, the point of divergence that creates the alternate universe.

Proper noun

 * 1)  The fictional universe which serves as the setting for the reboot  film franchise launched in 2009 (an alternate timeline of the original Star Trek universe).

title: Kelvinverse


text:
лисѧ

Etymology
. Morphologically equivalent to. Cognates include 🇨🇬.

Noun

 * 1) fox cub

title: лисѧ


text: ⰾⰻⱄⱔ

title: ⰾⰻⱄⱔ


text:
barba-serrat

Etymology
lit. 'serrated-beard'.

Adjective

 * 1) thick-bearded

title: barba-serrat


text:
athgabáil

Etymology
From ; synchronic analysis.

Noun

 * 1) distraint

title: athgabáil


text:
Reconstruction:Old Swedish/Adhallunda

Etymology
From adhal + lund.

Proper noun

 * 1) Reconstructed name for Alunda.

title: Reconstruction:Old Swedish/Adhallunda


text: ぎんきょう

title: ぎんきょう


text: ginkyō

title: ginkyō


text:
fekalny

Etymology

 * compare 🇨🇬, 🇨🇬, 🇨🇬, ultimately from.

Adjective

 * 1)  fecal

title: fekalny


text:
പുഷ്പിക്കുക

Verb

 * 1) To blossom; flower

title: പുഷ്പിക്കുക


text: toimistoineen

title: toimistoineen


text:
Sprossenkohl

Noun

 * 1)  Brussels sprout

title: Sprossenkohl


text:
tiberí

Etymology
.

Adjective

 * 1)  of the River Tiber; Tiberine, Tiberian

title: tiberí


text: player-hater

title: player-hater


text: playerhater

title: playerhater


text: player-haters

title: player-haters


text: playerhaters

title: playerhaters


text:
Horgi

Noun

 * 1)  A mixed breed dog that is a cross between the Siberian Husky and Welsh corgi.

title: Horgi


text: Horgis

title: Horgis


text: Siborgi

title: Siborgi


text: Siborgis

title: Siborgis


text:
tocbál

Etymology
From.

Noun

 * 1) raising, lifting

title: tocbál


text:
Dommeldange

Etymology
Pronunciation respelling from.

title: Dommeldange


text:
പൂവിടുക

Verb

 * 1) To flower; blossom

title: പൂവിടുക


text: Bad Schwartau

title: Bad Schwartau


text:
봄눈

Etymology
From +.

Noun

 * 1) spring snow

title: 봄눈


text:
봄가뭄

Etymology
From +.

Noun

 * 1) spring drought

title: 봄가뭄


text: Category:la:Mallow subfamily plants

title: Category:la:Mallow subfamily plants


text:
Österbybruk

Etymology
From Österby + bruk.

title: Österbybruk


text: Neustadt in Holstein

title: Neustadt in Holstein


text: IP number

title: IP number


text: IP numbers

title: IP numbers


text:
Anrainer

Noun

 * 1)  resident

title: Anrainer


text:
갈이

Etymology 1
.

Noun

 * 1) ploughing, tilling

Etymology 2
.

Noun

 * 1) the act of change; replacement

title: 갈이


text:
봄갈이

Etymology
From +.

Noun

 * 1) spring tilling, ploughing

title: 봄갈이


text:
논밭

Etymology
From +.

Noun

 * 1) fields and rice paddies; farmland

title: 논밭


text:
formatget

Etymology
From.

Noun

 * 1) cheese wedge
 * 2)  common mallow; shepherd's purse
 * 1)  common mallow; shepherd's purse

title: formatget


text:
torgabál

Etymology
From.

Noun

 * : transgression, sin, crime
 * "sga"
 * "sga"

- .i. cia du·logae doib a n-uili torgabala ón

title: torgabál


text:
gràfic de formatgets

Noun

 * 1)  pie chart

title: gràfic de formatgets


text: Category:ca:Visualization

title: Category:ca:Visualization


text:
경운

Etymology
.

Noun

 * 1) the act of ploughing, tilling

title: 경운


text: formatgets

title: formatgets


text:
nieszablonowy

Etymology
From.

Adjective

 * 1) maverick, unconventional, unorthodox

title: nieszablonowy


text:
diagrama de barres

Noun

 * 1) bar graph

title: diagrama de barres


text:
전답

Etymology
.

Noun

 * 1) fields and paddies; farmland

title: 전답


text: Ratekau

title: Ratekau


text:
soğuk ısırması

Noun

 * 1) frostbite

title: soğuk ısırması


text:
szablonowo

Etymology
From.

Adverb

 * 1) in a cookie-cutter manner, in a hackneyed manner, tritely

title: szablonowo


text:
작물

Etymology
.

Noun

 * 1)  crops

title: 작물


text:
Reconstruction:Proto-Slavic/vinogordъ

Etymology
From. .

Noun

 * 1) vineyard

Descendants

 * South Slavic:
 * Chakavian :
 * Chakavian :
 * Kajkavian :
 * Rovte dialect :
 * Lower Carniolan :
 * West Slavic:
 * Chakavian :
 * Chakavian :
 * Kajkavian :
 * Rovte dialect :
 * Lower Carniolan :
 * West Slavic:
 * Chakavian :
 * Chakavian :
 * Kajkavian :
 * Rovte dialect :
 * Lower Carniolan :
 * West Slavic:
 * West Slavic:

title: Reconstruction:Proto-Slavic/vinogordъ


text:
농작물

Etymology
.

Noun

 * 1)  crops

title: 농작물


text: Category:Northern Pomo lemmas

title: Category:Northern Pomo lemmas


text: Category:Northern Pomo language

title: Category:Northern Pomo language


text:
novel·la gràfica

Noun

 * 1) graphic novel

title: novel·la gràfica


text:
nieszablonowo

Etymology
From.

Adverb

 * 1) unconventionally, unorthodoxly

title: nieszablonowo


text:
ingabál

Etymology
From.

Noun

 * : reproach, censure
 * "sga"
 * "sga"

- .i. ba uisse a ingabail

 * "sga"
 * "sga"

- .i. is gnath do firianaib a n-ingabal ab hominibus .i. intan ɔda·[a]irleici Dia isna fochaidi inna firianu.

title: ingabál


text:
hipertermi

Noun

 * 1) hyperthermia

title: hipertermi


text:
Anrainerstaat

Noun

 * 1) neighbouring country
 * 2) a country bordering on or sharing in a particular large geographic feature, like a sea, lake, river or mountain range.
 * 1) a country bordering on or sharing in a particular large geographic feature, like a sea, lake, river or mountain range.

title: Anrainerstaat


text: Category:Northern Pomo nouns

title: Category:Northern Pomo nouns


text:
gràfic de barres

Noun

 * 1) bar chart, bar graph

title: gràfic de barres


text:
ідеологізувати

Etymology
From. Compare 🇨🇬, 🇨🇬, 🇨🇬.

Verb

 * 1)  to ideologize

title: ідеологізувати


text:
kalgh

Etymology 1
From. Cognate with 🇨🇬,, ; 🇨🇬.

Noun

 * 1)  penis

Etymology 2
From, accusative singular of.

Noun

 * 1)  lime, limestone

title: kalgh


text:
diagrama de sectors

Noun

 * 1) pie chart

title: diagrama de sectors


text:
виноградъ

Alternative forms

 * Glagolitic:

Etymology
From.

Noun

 * 1) vineyard

title: виноградъ


text: ⰲⰻⱀⱁⰳⱃⰰⰴⱏ

title: ⰲⰻⱀⱁⰳⱃⰰⰴⱏ


text:
diagrama de blocs

Noun

 * 1) block diagram

title: diagrama de blocs


text: náuatle

title: náuatle


text:
nieszablonowość

Etymology
From.

Noun

 * 1) unconventionality, unorthodoxy

title: nieszablonowość


text:
diagrama d'ulls

Noun

 * 1) eye pattern

title: diagrama d'ulls


text:
szablonowość

Etymology
From.

Noun

 * 1) hackneyedness, triteness

title: szablonowość


text:
ɛdzã

Etymology
Cognate with 🇨🇬 and 🇨🇬, proposed to be derived from

Noun

 * 1) fish

title: ɛdzã


text: 반듯

title: 반듯


text: Category:ife:Fish

title: Category:ife:Fish


text:
Talk:narwhal

Etymology
Apparently there is some controversy on the etymology. Seems it might be good to be less confident and more like the OED. Sum-up here. Thmazing (talk) 22:57, 25 July 2022 (UTC)

title: Talk:narwhal


text:
User talk:Πολύτροπος

(and a late welcome!) Jberkel 23:00, 25 July 2022 (UTC)

Thank you for Greek
Κύριε Πολύτροπε! Thanks for your excellent ancient greek lemmata. My grc is school level, and I really appreciate the thoroughness of your edits! It takes me hours to find the suitable templates... Have a nice August. ‑‑Sarri.greek ♫ I 17:39, 7 August 2022 (UTC)

New entry: edit summary
Hi. No need to put "new" in the box. Leave it blank for a more useful automatic summary of the entry contents. Thanks. Equinox ◑ 14:31, 1 December 2023 (UTC)

 * Do you really think that is useful? It seems like useless clutter to me. But if that is expected behaviour, I shall obey. πολλῶν δ' ἀνθρώπων ἴδεν ἄστεα καὶ νόον ἔγνω — Πολύτροπος (talk) 14:53, 1 December 2023 (UTC)

title: User talk:Πολύτροπος


text: Travemünde

title: Travemünde


text:
봄나물

Etymology
From +.

Noun

 * 1) spring greens

title: 봄나물


text:
മത്സരാർത്ഥി

Noun

 * 1) contender; competitor; contestant

title: മത്സരാർത്ഥി


text:
봄빛

Etymology
From +.

Noun

 * 1) spring scenery

title: 봄빛


text:
춘색

Etymology
.

Noun

 * 1) spring scenery; an indication of springtime

title: 춘색


text:
अहन्

Etymology 1
Originally the genitive case of, from , from , from. Cognate with 🇨🇬 and possibly 🇨🇬, whence 🇨🇬.

Noun

 * 1) day

Verb

 * : struck, slew

title: अहन्


text:
Sebelewi

Etymology
Likely cognate to 🇨🇬.

Proper noun

 * 1) the village of Sabale

title: Sebelewi


text:
봄날씨

Etymology
From +.

Noun

 * 1) spring weather

title: 봄날씨


text:
Talapaun

Etymology
Likely cognate to 🇨🇬.

Proper noun

 * 1) the village of Talapao

title: Talapaun


text:
Mateketen

Etymology
May be related to the name.

Proper noun

 * 1) the village of Tafasoho

title: Mateketen


text:
Tagono

Proper noun

 * 1) the village of Tagono

title: Tagono


text:
춘우

Etymology
.

Noun

 * 1) spring rain

title: 춘우


text:
Ngofabobawa

Etymology
Formed as a Ternatean compound of +, a village name.

Proper noun

 * 1) the village of Ngofabobawa

title: Ngofabobawa


text:
Bobawa

Proper noun

 * 1) the village of Bobawa

title: Bobawa


text:
shrinkette

Noun

 * 1)  A female shrink psychiatrist or psychotherapist.

title: shrinkette


text:
Malapa

Etymology
Possibly from an older Molapa (recorded in F.S.A. de Clercq's Bijdragen tot de kennis der Residentie Ternate).

Proper noun

 * 1) the village of Malapa

title: Malapa


text:
여름비

Etymology
From.

Noun

 * 1) summer rain

title: 여름비


text: shrinkettes

title: shrinkettes


text:
dígbáil

Etymology
From.

Noun

 * : reduction, diminishing
 * "sga"
 * "sga"

- á Catuláin ⁊ ni·bí digbail folaid and calléic, cia beith ind apélugud.

 * 1) expenditure
 * 2) detriment

Inflection
The genitive singular is attested as in the St. Gall Priscian glosses; however, this could be simply a spelling mistake instead of indicating i-stem inflection.

title: dígbáil


text:
가을비

Etymology
From.

Noun

 * 1) autumn rain

title: 가을비


text:
겨울비

Etymology
From.

Noun

 * 1) winter rain

title: 겨울비


text:
Moi Tesite

Etymology
Literally, Makian, on the outside; equivalent to the 🇨🇬.

Proper noun

 * 1) the western part of Makian island, particularly where West Makian is spoken

title: Moi Tesite


text: इन्द्रस्य

title: इन्द्रस्य


text:
郵遞區號

Noun

 * 1)  postal code; zip code

title: 郵遞區號


text: 邮递区号

title: 邮递区号


text: phewee

title: phewee


text:
піцерія

Etymology
.

Noun

 * 1) pizzeria (retail outlet that makes/sells pizzas)

title: піцерія


text:
kaletter

Etymology
From,.

Noun

 * 1) difficulty, hardness
 * 2)  calamity

title: kaletter


text: Category:Cornish terms suffixed with -ter


text:
겨울날

Etymology
From +.

Noun

 * 1) winter day

title: 겨울날


text:
郵區編號

Noun

 * 1)  postal code; zip code

title: 郵區編號


text: 邮区编号

title: 邮区编号


text: अहिम्

title: अहिम्


text:
Butterschmalz

Noun

 * 1)  clarified butter

title: Butterschmalz


text: Rhymes:English/ʌmli

title: Rhymes:English/ʌmli


text:
滑跌

Verb

 * 1) to slip and fall

title: 滑跌


text: huádié

title: huádié


text: huádiē

title: huádiē


text:
User talk:86.145.59.120

Welcome Message
Apisite (talk) 23:53, 25 July 2022 (UTC)

title: User talk:86.145.59.120


text: Category:Latin terms derived from the Proto-Indo-European root *ḱel- (cover)


text:
Bratbutter

Noun

 * 1)  clarified butter

title: Bratbutter


text: Category:Latin terms derived from the Proto-Indo-European root *ḱel- (incline)


text:
늦-

Etymology
Prefix form of.

Prefix

 * 1) late, later

title: 늦-


text: піцерії

title: піцерії


text: піцерій

title: піцерій


text: піцеріях

title: піцеріях


text:
월동

Etymology
.

Noun

 * 1) wintering; spending the winter

title: 월동


text: піцерію

title: піцерію


text:
ܒܪܝܐ

Etymology 1
From, itself from , ultimately from ; cognate with 🇨🇬, 🇨🇬 and.

Noun

 * 1) desert, wilderness

Etymology 2
Related to the above, from.

Adjective

 * 1) external, outer, outward
 * 2) rustic, profane
 * 3) foreign, alien, strange
 * 1) foreign, alien, strange

Noun

 * 1) outside, the outdoors

Adverb

 * 1) outside

Etymology 3
Passive participle of the verb

Adjective

 * 1) developed in healthy or strong size, fattened up

title: ܒܪܝܐ


text:
busringa

Etymology
From.

Verb

 * 1) to make a prank call

title: busringa


text:
겨우내

Etymology
equivalent to.

Adverb

 * 1) during the winter; through wintertime; all winter long

title: 겨우내


text:
겨울새

Etymology
From +.

Noun

 * 1) winter bird

title: 겨울새


text:
여름새

Etymology
From +.

Noun

 * 1) summer bird

title: 여름새


text: племінниці

title: племінниці


text:
겨울털

Etymology
From +.

Noun

 * 1) winter furs
 * 2) winter coat, fur coat

title: 겨울털


text:
busringning

Etymology
From.

Noun

 * 1) prank calling
 * 2) a prank call

title: busringning


text:
겨울잠

Etymology
From.

Noun

 * 1)  hibernation

title: 겨울잠


text:
동면

Etymology
.

Noun

 * 1)  hibernation

title: 동면


text:
rèvola

Etymology
. Perhaps from via Mozarabic.

Noun

 * 1) stitchwort
 * 2) cleavers

title: rèvola


text: Category:Rhymes:Indonesian/zar

title: Category:Rhymes:Indonesian/zar


text: Category:Rhymes:Indonesian/zar/2 syllables


text:
apegalós

Etymology
From.

Adjective

 * 1) sticky
 * 2)  clingy
 * 1)  clingy

Noun

 * 1) cleavers

title: apegalós


text:
Template:pnb-noun-m-oā̃/documentation

Template for Punjabi unmarked masculine nouns ending in واں, written in Shahmukhi. Requires diacritics. Similar template: Template:pnb-noun-m-ā̃

 *  = Shahmukhi lemma + diacritics - will automatically transliterate lemmas. This is required.

See example at.

Note: Locative cases need to be marked as rare.

title: Template:pnb-noun-m-oā̃/documentation


text:
샛바람

Etymology
From.

Noun

 * 1) east wind

title: 샛바람


text:
業餘愛好者

Noun

 * 1) amateur, hobbyist, dilettante

title: 業餘愛好者


text: 业余爱好者

title: 业余爱好者


text: племінники

title: племінники


text:
서북

Etymology
.

Noun

 * 1) northwest

title: 서북


text:
apegalosa

Noun

 * 1) cleavers

title: apegalosa


text: племінників

title: племінників


text:
동북

Etymology
.

Noun

 * 1) northeast

title: 동북


text:
남서

Etymology
.

Noun

 * 1) southwest

title: 남서


text: племінника

title: племінника


text:
남동

Etymology
.

Noun

 * 1) southeast

title: 남동


text:
Category talk:Akha language

Alphabet
Although the Akha language have Latin system as shown in English To Akha Hand Book 2000 Words, Akha people probably won't use it because of its difficult orthography, hard to be remembered by kids. Writing with Burmese/Thai/Lao alphabet is shorter. Octahedron80 (talk) 01:18, 26 July 2022 (UTC)

title: Category talk:Akha language


text: Category:West Makian particles

title: Category:West Makian particles


text: Category:Guimaras, Philippines

title: Category:Guimaras, Philippines


text: Category:West Makian terms borrowed from Indonesian


text: Category:West Makian unadapted borrowings from Indonesian


text: Category:Megleno-Romanian terms borrowed from Old Church Slavonic


text: Category:Ormuri inherited terms

title: Category:Ormuri inherited terms


text: Category:Rhymes:Portuguese/iu/2 syllables


text: Category:Norwegian Bokmål given names from Germanic languages


text:
nalar

Etymology
From. .

Adjective

 * 1)  always, often, regular

Noun

 * 1) logic, reasoning,
 * 2) argumentation

title: nalar


text: Category:Ormuri terms derived from Indo-Iranian languages


text: Category:Papiamentu reference templates

title: Category:Papiamentu reference templates


text: Category:Rhymes:Indonesian/aŋ/1 syllable


text: Category:Rhymes:Indonesian/laŋ/1 syllable


text: Category:Rhymes:Indonesian/laŋ/2 syllables


text: Category:Rhymes:Indonesian/lar/2 syllables


text: Category:kxs:Nature

title: Category:kxs:Nature


text: Category:pam:Bulacan, Philippines

title: Category:pam:Bulacan, Philippines


text: Category:pnt:Music

title: Category:pnt:Music


text: Category:tly:Vertebrates

title: Category:tly:Vertebrates


text: Category:zh:Zambales, Philippines

title: Category:zh:Zambales, Philippines


text: Category:Ayere terms derived from Volta-Congo languages


text: Category:Azerbaijani terms partially calqued from French


text: Category:Bavarian learned borrowings from German


text: Category:Bavarian terms borrowed from German


text: Category:Bavarian terms derived from German


text: Category:Bengali female given names from Indo-Iranian languages


text: Category:Cherokee term requests

title: Category:Cherokee term requests


text: Category:Chuvash terms derived from Middle Mongol


text: Category:East Central German multiword terms


text: Category:East Central German onomatopoeias


text:
Moi Ciawi

Etymology
Literally, Makian, the inside; equivalent to the 🇨🇬.

Proper noun

 * 1) the eastern part of Makian island, particularly where East Makian (Taba) is spoken

title: Moi Ciawi


text: Category:East Central German slang

title: Category:East Central German slang


text: Category:English terms derived from Ibanag


text: Category:Finnish terms borrowed from Old Saxon


text: Category:Greek terms prefixed with ψωρο-


text: Category:Haitian Creole citations of undefined terms


text: Category:Indonesian terms derived from Eastern Polynesian languages


text: Category:Indonesian terms derived from the Arabic root ف س ر


text: Category:Irish terms borrowed from Catalan


text: Category:Iu Mien appendices

title: Category:Iu Mien appendices


text: Category:Japanese terms borrowed from Cebuano


text: Category:Japanese terms derived from Cebuano


text:
Teketen

Etymology
Related to 🇨🇬. The form as listed here may in fact simply be + Keten, in which case the second element would be the island's actual name.

Proper noun

 * 1) Moti island

title: Teketen


text: Category:Kangjia terms derived from other languages


text: Category:Kyrgyz nouns prefixed with ая-

title: Category:Kyrgyz nouns prefixed with ая-


text: Category:Kyrgyz nouns suffixed with -уу

title: Category:Kyrgyz nouns suffixed with -уу


text: Category:Lezgi terms borrowed from Kumyk


text: Category:Lezgi terms derived from Kumyk

title: Category:Lezgi terms derived from Kumyk


text: Category:Lezgi terms derived from Middle Mongol


text: Category:Macedonian terms derived from the Proto-Indo-European root *dʰrewgʰ-


text: Category:Malay terms borrowed from Maguindanao


text: Category:Malay terms derived from Maguindanao


text: Category:Malayalam terms suffixed with -ഈയ


text: Category:Male given names from Hausa by language


text: Category:Male given names from Lithuanian by language


text: Category:Manda (India) terms by etymology


text: Category:Manda (India) terms derived from other languages


text: Category:Megleno-Romanian prepositions

title: Category:Megleno-Romanian prepositions


text: Category:Megleno-Romanian terms borrowed from Ottoman Turkish


text: Category:Megleno-Romanian terms derived from Ottoman Turkish


text: Category:Megleno-Romanian terms derived from Persian


text: Category:Old Church Slavonic terms suffixed with -ⱐⱌⱐ


text: Category:Old Ruthenian given names from Lithuanian


text: Category:Old Ruthenian male given names from Baltic languages


text: Category:Ormuri terms derived from Indo-European languages


text:
sköka

Etymology
, ultimate origin disputed. Cognate of 🇨🇬, 🇨🇬.

Noun

 * 1)  a prostitute; a harlot
 * 2)  a promiscuous woman or girl; a hussy
 * 1)  a promiscuous woman or girl; a hussy

title: sköka


text: Category:Pela morphemes

title: Category:Pela morphemes


text: Category:Pennsylvania German terms derived from Romance languages


text: Category:Pennsylvania German terms by prefix


text: Category:Pontic Greek terms with transferred senses


text: Category:Proto-Germanic terms derived from the Proto-Indo-European root *-dʰlom


text: Category:Requests for etymologies in Magahi entries


text: Category:Requests for example sentences in Wu


text: Category:Rhymes:Cebuano/aman

title: Category:Rhymes:Cebuano/aman


text: Category:Rhymes:Cebuano/aman/3 syllables


text: Category:Rhymes:English/ɘɡ

title: Category:Rhymes:English/ɘɡ


text: Category:Rhymes:English/ɘɡ/2 syllables

title: Category:Rhymes:English/ɘɡ/2 syllables


text: Category:Rhymes:English/əʊm/3 syllables

title: Category:Rhymes:English/əʊm/3 syllables


text: Category:Rhymes:Esperanto/urfo

title: Category:Rhymes:Esperanto/urfo


text: Category:Rhymes:Estonian/ɑres

title: Category:Rhymes:Estonian/ɑres


text: Category:Rhymes:Estonian/ɑres/2 syllables


text: Category:Rhymes:Finnish/eistos/6 syllables


text:
beginka

Etymology
+ ..

Noun

 * 1)  Beguine

title: beginka


text: Category:Rhymes:Finnish/erimys/7 syllables


text: Category:Rhymes:Finnish/esi/8 syllables

title: Category:Rhymes:Finnish/esi/8 syllables


text:
鉆子

Noun

 * 1)  auger

title: 鉆子


text: Category:Rhymes:Finnish/imɑntːi/7 syllables


text:
Difaidawo

Proper noun

 * 1) the island of Halmahera

title: Difaidawo


text: Category:Rhymes:Finnish/obotːi

title: Category:Rhymes:Finnish/obotːi


text: Category:Rhymes:Finnish/obotːi/7 syllables


text: Category:Rhymes:Finnish/oite/6 syllables


text: Category:Rhymes:Finnish/oiʋotus/7 syllables


text: Category:Rhymes:Finnish/urmoːtːɑː

title: Category:Rhymes:Finnish/urmoːtːɑː


text: Category:Rhymes:Finnish/urmoːtːɑː/3 syllables


text: Category:Rhymes:Finnish/æytelmæ/8 syllables


text: Category:Rhymes:Finnish/øklø

title: Category:Rhymes:Finnish/øklø


text: Category:Rhymes:Finnish/øklø/2 syllables


text: Category:Rhymes:Finnish/ɑksu/9 syllables


text: Category:Rhymes:Finnish/ɑljɑ/7 syllables


text: Category:Rhymes:Finnish/ɑlkːi/7 syllables


text: Category:Rhymes:Finnish/ɑltɑ/9 syllables


text: Category:Rhymes:Finnish/ɑrtijɑ/7 syllables


text: Category:Rhymes:Finnish/ɑtselu/8 syllables


text: Category:Rhymes:Finnish/ɑːjɑ/6 syllables


text: Category:Rhymes:Finnish/ɑːrɑ/7 syllables


text: Category:Rhymes:Finnish/ɑːste/6 syllables


text: Category:Rhymes:German/ɛlɪn

title: Category:Rhymes:German/ɛlɪn


text: Category:Rhymes:Indonesian/bap

title: Category:Rhymes:Indonesian/bap


text: Category:Rhymes:Indonesian/bap/1 syllable


text: Category:Rhymes:Indonesian/dan

title: Category:Rhymes:Indonesian/dan


text: Category:Rhymes:Indonesian/dan/2 syllables


text: Category:Rhymes:Indonesian/dɛr

title: Category:Rhymes:Indonesian/dɛr


text: Category:Rhymes:Indonesian/dɛr/3 syllables


text: Category:Rhymes:Indonesian/elaŋ

title: Category:Rhymes:Indonesian/elaŋ


text: Category:Rhymes:Indonesian/elaŋ/1 syllable


text: Category:Rhymes:Indonesian/fuk

title: Category:Rhymes:Indonesian/fuk


text: Category:Rhymes:Indonesian/fuk/2 syllables


text: Category:Rhymes:Indonesian/kəl

title: Category:Rhymes:Indonesian/kəl


text: Category:Rhymes:Indonesian/kəl/3 syllables


text: Category:Rhymes:Indonesian/lɪs/5 syllables


text: Category:Rhymes:Indonesian/mʊr/2 syllables


text: Category:Rhymes:Indonesian/nal

title: Category:Rhymes:Indonesian/nal


text: Category:Rhymes:Indonesian/nal/4 syllables


text: Category:Rhymes:Indonesian/sər/2 syllables


text: Category:Rhymes:Indonesian/əlaŋ

title: Category:Rhymes:Indonesian/əlaŋ


text: Category:Rhymes:Indonesian/əlaŋ/1 syllable


text: Category:Rhymes:Italian/inea/9 syllables


text: Category:Rhymes:Italian/inee/9 syllables


text: Category:Rhymes:Italian/inei/9 syllables


text: Category:Rhymes:Italian/ineo/9 syllables


text: Category:Rhymes:Italian/ɔtʃita

title: Category:Rhymes:Italian/ɔtʃita


text: Category:Rhymes:Italian/ɔtʃita/4 syllables


text:
リマインド

Etymology
Borrowed from.

Noun

 * 1) reminding

Verb

 * 1) to remind

title: リマインド


text: Category:Rhymes:Malay/dʒap

title: Category:Rhymes:Malay/dʒap


text: Category:Rhymes:Malay/te(r)

title: Category:Rhymes:Malay/te(r)


text: Category:Rhymes:Norwegian Nynorsk/slu

title: Category:Rhymes:Norwegian Nynorsk/slu


text: Category:Rhymes:Norwegian Nynorsk/ʃlu

title: Category:Rhymes:Norwegian Nynorsk/ʃlu


text: Category:Rhymes:Polish/udɔlf

title: Category:Rhymes:Polish/udɔlf


text: Category:Rhymes:Polish/udɔlf/2 syllables


text: Category:Rhymes:Polish/ɔtɲɛj/3 syllables


text: Category:Rhymes:Polish/ɔɲt͡ʂɨ/3 syllables


text: Category:Rhymes:Polish/ɛmbɔrk

title: Category:Rhymes:Polish/ɛmbɔrk


text: Category:Rhymes:Polish/ɛmbɔrk/2 syllables


text: Category:Rhymes:Polish/ɛrpkɔɕt͡ɕ

title: Category:Rhymes:Polish/ɛrpkɔɕt͡ɕ


text: Category:Rhymes:Polish/ɛrpkɔɕt͡ɕ/2 syllables


text: Category:Rhymes:Polish/ɨɡɲum

title: Category:Rhymes:Polish/ɨɡɲum


text: Category:Rhymes:Polish/ɨɡɲum/3 syllables


text: Category:Rhymes:Polish/ɨʂt͡ʂka/2 syllables


text: Category:Rhymes:Tagalog/aman

title: Category:Rhymes:Tagalog/aman


text: Category:Rhymes:Tagalog/aman/3 syllables


text: Category:Russian terms suffixed with -ог


text: Category:Saramaccan terms derived from Bantoid languages


text: Category:Serbo-Croatian terms borrowed from Macedonian


text: Category:Sicilian female given names

title: Category:Sicilian female given names


text: Category:Sicilian female given names from Latin


text: Category:Sicilian terms borrowed from Greek


text: Category:Sicilian terms derived from Greek


text:
disimpeach

Etymology
From.

Verb

 * 1) To revoke an impeachment.

title: disimpeach


text: Category:Spanish terms borrowed from Maguindanao


text: Category:Spanish terms derived from Maguindanao


text: Category:Surigaonon terms derived from Indo-European languages


text: Category:Surnames from Hausa by language


text: Category:Surnames from Kashubian by language


text: Category:Tabasco Nahuatl terms derived from Uto-Aztecan languages


text: Category:Tagalog terms derived from Ryukyuan languages


text: Category:Tamil nonstandard forms

title: Category:Tamil nonstandard forms


text: Category:Tatar terms derived from Middle Mongol


text: Category:Tausug terms with historical senses


text: Category:Terms derived from Lingua Franca Nova


text: Category:Terms derived from the Proto-Turkic root *tạnu-


text: Category:Terms spelled with 𒊻 by language


text: Category:Ternate terms derived from creole or pidgin languages


text: Category:Turkish terms derived from the Arabic root ه ز م


text: Category:Turkish terms derived from the Arabic root ه و ن


text: Category:Ubykh terms derived from Iranian languages


text: Category:Ubykh terms derived from West Semitic languages


text: Category:Venetian noun plural forms

title: Category:Venetian noun plural forms


text: Category:Venetian semi-learned borrowings from Latin


text: Category:Vietnamese nouns classified by cổng


text: Category:Vietnamese nouns classified by vụ


text: Category:West Makian prepositions

title: Category:West Makian prepositions


text: Category:West Makian proper nouns

title: Category:West Makian proper nouns


text: Category:West Makian univerbations

title: Category:West Makian univerbations


text: Category:West Makian terms by suffix

title: Category:West Makian terms by suffix


text: Category:Western Cham terms by their sequences of characters


text: Category:Yoruba given names from Hausa

title: Category:Yoruba given names from Hausa


text: Category:Yoruba male given names from Afroasiatic languages


text: Category:Yoruba male given names from Chadic languages


text: Category:Yoruba surnames from Chadic languages


text: Category:Yoruba surnames from Semitic languages


text: Category:az:Intellectual property

title: Category:az:Intellectual property


text: Category:ba:Pines

title: Category:ba:Pines


text: Category:bbl:Cuckoos

title: Category:bbl:Cuckoos


text: Category:bcl:Beetles

title: Category:bcl:Beetles


text: Category:ccs-pro:Spinning

title: Category:ccs-pro:Spinning


text: Category:cja:Liquids

title: Category:cja:Liquids


text: Category:cv:Pines

title: Category:cv:Pines


text:
girlslash

Noun

 * 1)  Slash fiction that focuses on romantic and/or sexual relationships between female characters.

title: girlslash


text: Category:fr:Cities in Mauritius

title: Category:fr:Cities in Mauritius


text: Category:fr:Cities in Peru

title: Category:fr:Cities in Peru


text: Category:fr:Places in Mauritius

title: Category:fr:Places in Mauritius


text: Category:fr:Places in Peru

title: Category:fr:Places in Peru


text: Category:igl:Forms of government

title: Category:igl:Forms of government


text: Category:ilo:Provinces

title: Category:ilo:Provinces


text: Category:inc-opa:Carnivores

title: Category:inc-opa:Carnivores


text: Category:inh:Birds of prey

title: Category:inh:Birds of prey


text: Category:izh:Criminal law

title: Category:izh:Criminal law


text: Category:izh:Public administration

title: Category:izh:Public administration


text: Category:izh:Security

title: Category:izh:Security


text: Category:ka:Directives

title: Category:ka:Directives


text: Category:ka:Horticulture

title: Category:ka:Horticulture


text: Category:km:Fabrics

title: Category:km:Fabrics


text: Category:ko:Chinese philosophy

title: Category:ko:Chinese philosophy


text: Category:krc:Pines

title: Category:krc:Pines


text: Category:kum:Pines

title: Category:kum:Pines


text: Category:kxs:All topics

title: Category:kxs:All topics


text: Category:ky:Rosales order plants

title: Category:ky:Rosales order plants


text: Category:lez:Pines

title: Category:lez:Pines


text: Category:lo:Fabrics

title: Category:lo:Fabrics


text: Category:lzz:Hygiene

title: Category:lzz:Hygiene


text: Category:lzz:Rooms

title: Category:lzz:Rooms


text: Category:my:Fabrics

title: Category:my:Fabrics


text: Category:oge:Directives

title: Category:oge:Directives


text: Category:oge:Home

title: Category:oge:Home


text: Category:os:Formal sciences

title: Category:os:Formal sciences


text: Category:os:Human activity

title: Category:os:Human activity


text: Category:pag:Provinces

title: Category:pag:Provinces


text: Category:pam:Municipalities

title: Category:pam:Municipalities


text: Category:pl:Chinese philosophy

title: Category:pl:Chinese philosophy


text:
Makian

Etymology
The second element is. Voorhoeve glosses this as "those who have come from Kian (Kayoa)".

Proper noun

 * 1) the village of Ngofakiaha

title: Makian


text: Category:pnt:Birds of prey

title: Category:pnt:Birds of prey


text: Category:pnt:Hygiene

title: Category:pnt:Hygiene


text: Category:sc:Recreation

title: Category:sc:Recreation


text: Category:Sicilian renderings of Greek female given names


text: Category:sla-pro:Cricetids

title: Category:sla-pro:Cricetids


text: Category:sla-pro:Sports

title: Category:sla-pro:Sports


text: Category:ta:Stationery

title: Category:ta:Stationery


text: Category:tdd:All topics

title: Category:tdd:All topics


text: Category:tdd:Sciences

title: Category:tdd:Sciences


text: Category:tr:Spinning

title: Category:tr:Spinning


text: Category:tt:Emotions

title: Category:tt:Emotions


text: Category:tt:Pines

title: Category:tt:Pines


text: Category:uby:Names

title: Category:uby:Names


text: Category:uk:Republics of Russia

title: Category:uk:Republics of Russia


text: Category:ur:Chinese philosophy

title: Category:ur:Chinese philosophy


text: Category:zle-ort:Capital cities

title: Category:zle-ort:Capital cities


text: Category:zle-ort:Federal cities

title: Category:zle-ort:Federal cities


text: Category:zle-ort:Political subdivisions of Russia


text:
இரதம்

Etymology
.

Noun

 * 1) chariot, vehicle

title: இரதம்


text:
പുതിന

Etymology
Ultimately from. Compare 🇨🇬.

Noun

 * 1) mint plant

title: പുതിന


text:
koliberek

Etymology
From.

title: koliberek


text:
exuscitatio

Noun

 * 1)  A figure of speech involving the stirring of the listeners or audience by employing a vehement feeling in order to elicit an emotional utterance in a forceful way.

title: exuscitatio


text:
ܡܕܠܠ

Etymology
Compare 🇨🇬.

Verb

 * 1)  to get divorced, be divorced
 * 2) * Mark 10:11:
 * "aii"
 * 1) * Mark 10:11:
 * "aii"
 * "aii"

- ܐ݇ܡܝܼܪ ܠܹܗ ܐܸܠܲܝܗܘܿܢ ܝܼܫܘܿܥ: «ܟܠ ܡ̇ܢ ܕܡܕܲܠܸܠ ܒܲܟ݂ܬܹܗ ܘܓܵܒ݂ܹܪ ܚܕ݂ܵܐ ܐ݇ܚܹܪ݇ܬ݂ܵܐ، ܒܸܥܒ݂ܵܕ݂ܵܐ ܝܠܹܗ ܓܲܝܵܪܘܼܬ݂ܵܐ».

 * 1)  to thin out

title: ܡܕܠܠ


text: けつらく

title: けつらく


text: 岢峩

title: 岢峩


text: -집

title: -집


text:
glädjeflicka

Etymology
From, a , itself after.

Noun

 * 1)  a female prostitute

title: glädjeflicka


text:
가곡집

Etymology
.

Noun

 * 1) songbook; collection of songs

title: 가곡집


text:
etham

Etymology
Derived by Binchy from, supposedly denoting a day during which grain farmers worked.

Noun

 * 1)  Wednesday

title: etham


text:
노래집

Etymology
From.

Noun

 * 1) songbook, collection of songs

title: 노래집


text:
논문집

Etymology
.

Noun

 * 1) essay collection; anthology of theses or papers

title: 논문집


text: Category:Iriga Bicolano numerals

title: Category:Iriga Bicolano numerals


text:
단편집

Etymology
.

Noun

 * 1) short story collection

title: 단편집


text:
중편

Etymology
.

Noun

 * 1) the second volume in a series of three books
 * 2) a midlength novel

title: 중편


text:
Module:pnb-verb

local export = {}

--[=[

Authorship: Aryaman Arora , based on work by Ben Wing

]=]

--[=[ combine_stem_ending_tr TERMINOLOGY:

-- "slot" = A particular combination of person/number/gender/tense/etc. Example slot names for verbs are "inf_mp" (masculine plural infinitive), "prog" (undeclined progressive form), "pfv_ind_fut_2sm" (second-person singular	 masculine perfective indicative future). Each slot is filled with zero or more forms.

-- "form" = The conjugated Punjabi form representing the value of a given slot.

-- "lemma" = The dictionary form of a given Punjabi term. Generally the direct masculine singular infinitive, but may occasionally be another form if that form is missing. ]=]

--[=[

FIXME: ]=]

local lang = require("Module:languages").getByCode("pa") local m_table = require("Module:table") local m_links = require("Module:links") local m_string_utilities = require("Module:string utilities") local m_script_utilities = require("Module:script utilities") local iut = require("Module:inflection utilities") local m_para = require("Module:parameters") local com = require("Module:pa-common")

local u = mw.ustring.char local rsplit = mw.text.split local rfind = mw.ustring.find local rmatch = mw.ustring.match local rgmatch = mw.ustring.gmatch local rsubn = mw.ustring.gsub local ulen = mw.ustring.len local usub = mw.ustring.sub local uupper = mw.ustring.upper local ulower = mw.ustring.lower

-- vowel diacritics; don't display nicely on their own local AA = u(0x0a3e) local AI = u(0x0a48) local AU = u(0x0a4c) local E = u(0x0a47) local I = u(0x0a3f) local II = u(0x0a40) local O = u(0x0a4b) local U = u(0x0a41) local UU = u(0x0a42) local R = u(0x0a43) --nonexistent local VIRAMA = u(0x0a4d) local TILDE = u(0x0303)

local M = 'ੰ' local N = u(0x0a02) local EN = E .. N local IIN = II .. N local UUM = UU .. M

local function term_link(hi, tr) return m_links.full_link({term = hi, tr = tr, lang = lang}, "term") end

local sii_note = "[Some dialects conjugate " .. term_link("ਸੀ") .. " for person and number (from left to right): " .. term_link("ਸਾਂ") .. ", " .. term_link("ਸੈ") .. ", " .. term_link("ਸੋ") .. ", " .. term_link("ਸਾਂ") .. ", " .. term_link("ਸਨ") .. "]"

-- version of rsubn that discards all but the first return value local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end

-- version of rsubn that returns a 2nd argument boolean indicating whether -- a substitution was made. local function rsubb(term, foo, bar) local retval, nsubs = rsubn(term, foo, bar) return retval, nsubs > 0 end

local function tag_text(text) return m_script_utilities.tag_text(text, lang) end

local irreg_perf = { ["ਦੇ"] = "ਦਿੱਤ*", ["ਲੇ"] = "ਲਿੱਤ*", ["ਸੌ"] = "ਸੁੱਤ*", ["ਨਹਾਉ"] = "ਨਹਾਤ*", ["ਪੀ"] = "ਪੀਤ*", ["ਸੀ"] = "ਸੀਤ*", ["ਕਰ"] = "ਕੀਤ*", ["ਜਾ"] = "ਗ", ["ਖਾ"] = "ਖਾਦ*", ["ਮਰ"] = "ਮੋ", ["ਧੋ"] = "ਧੋਤ*", }

local irreg_subj = { }

local irreg_polite_imp = { }

local verb_slots_impers = { inf = "inf", inf_obl = "obl|inf", stem = "stem", conj = "conj|form", prog = "prog|form", }

local verb_slots_pers = { }

-- Add entries for a slot with only gender/number variants. -- `slot_prefix` is the prefix of the slot, typically specifying the tense/aspect; -- `tag_suffix` is the set of inflection tags to add after the gender/number tags, -- or "-" to use "-" as the inflection tags (which indicates that no accelerator entry -- should be generated); and `verb_slots` is the table (personal or impersonal) to -- add the entries to. local function add_slot_gendered(slot_prefix, tag_suffix, verb_slots) verb_slots = verb_slots or verb_slots_pers verb_slots[slot_prefix .. "_ms"] = tag_suffix == "-" and "-" or "m|s|" .. tag_suffix verb_slots[slot_prefix .. "_mp"] = tag_suffix == "-" and "-" or "m|p|" .. tag_suffix verb_slots[slot_prefix .. "_fs"] = tag_suffix == "-" and "-" or "f|s|" .. tag_suffix verb_slots[slot_prefix .. "_fp"] = tag_suffix == "-" and "-" or "f|p|" .. tag_suffix end

-- Same as add_slot_gendered but specifically for participles. This changes the inflection -- tags used, because the masculine singular entry is really only for direct masculine singular, -- and the masculine plural entry is also for oblique masculine singular. local function add_slot_gendered_part(slot_prefix, tag_suffix, verb_slots) verb_slots = verb_slots or verb_slots_pers verb_slots[slot_prefix .. "_ms"] = tag_suffix == "-" and "-" or "dir|m|s|" .. tag_suffix verb_slots[slot_prefix .. "_mp"] = tag_suffix == "-" and "-" or "m|p|" .. tag_suffix .. "|;|obl|m|s|" .. tag_suffix verb_slots[slot_prefix .. "_fs"] = tag_suffix == "-" and "-" or "f|s|" .. tag_suffix verb_slots[slot_prefix .. "_fp"] = tag_suffix == "-" and "-" or "f|p|" .. tag_suffix end

-- Compute the inflection tags associated with a given person/number/gender combination. local function personal_tags(slot_prefix, tag_suffix, persnum, gender) gender = gender and gender .. "|" or "" local suffix = gender .. tag_suffix if persnum == "2s" then -- only for imperatives return "2|s|intim|" .. suffix elseif persnum == "23s" then return "2|s|intim|" .. suffix .. "|;|3|s|" .. suffix elseif persnum == "1p" then return "1|p|" .. suffix .. "|;|2|formal|" .. suffix elseif persnum == "2p" then return "2|fam|" .. suffix elseif persnum == "3p" then return "3|p|" .. suffix .. "|;|2|formal|" .. suffix else -- 1s, 3s or 1p return persnum:gsub("^(.)(.)$", "%1|%2") .. "|" .. suffix end end

-- Return the possible person/number combinations given the slot prefix. local function persnum_values(slot_prefix) if slot_prefix:find("^imp_") then return {"2s", "2p", "3p"} else return {"1s", "23s", "1p", "3p", "2p"} end end

-- Add entries for a slot with only person/number variants. See `add_slot_gendered`. local function add_slot_personal(slot_prefix, tag_suffix, verb_slots) verb_slots = verb_slots or verb_slots_pers for _, persnum in ipairs(persnum_values(slot_prefix)) do local slot = slot_prefix .. "_" .. persnum if tag_suffix == "-" then verb_slots[slot] = "-" else verb_slots[slot] = personal_tags(slot_prefix, tag_suffix, persnum) end end end

-- Add entries for a slot with person/number/gender variants. See `add_slot_gendered`. local function add_slot_gendered_personal(slot_prefix, tag_suffix, verb_slots) verb_slots = verb_slots or verb_slots_pers for _, persnum in ipairs(persnum_values(slot_prefix)) do		for _, gender in ipairs({"m", "f"}) do local slot = slot_prefix .. "_" .. persnum .. gender if tag_suffix == "-" then verb_slots[slot] = "-" else verb_slots[slot] = personal_tags(slot_prefix, tag_suffix, persnum, gender) end end end end

add_slot_gendered_part("inf", "inf|part", verb_slots_impers) add_slot_gendered_part("hab", "hab|part", verb_slots_impers) add_slot_gendered_part("pfv", "pfv|part", verb_slots_impers) add_slot_gendered_part("agent", "prospective//agentive|part", verb_slots_impers) add_slot_gendered_part("adj_pfv", "-", verb_slots_impers) add_slot_gendered_part("adj_hab", "-", verb_slots_impers)

add_slot_personal("ind_pres", "pres|ind") -- only for होना add_slot_personal("ind_impf", "impf|ind") -- only for होना add_slot_gendered("ind_perf", "perf|ind") add_slot_gendered_personal("ind_fut", "fut|ind") add_slot_gendered_personal("presum", "presumptive") add_slot_personal("subj_pres", "pres|subj") -- only for होना add_slot_personal("subj_fut", "fut|subj") add_slot_gendered("cfact", "cfact") add_slot_personal("imp_reg", "reg|imp") add_slot_personal("imp_pol", "pol|imp")

add_slot_gendered_personal("hab_ind_pres", "-") add_slot_gendered("hab_ind_past", "-") add_slot_gendered_personal("hab_presum", "-") add_slot_gendered_personal("hab_subj", "-") add_slot_gendered("hab_cfact", "-")

for _, mood in ipairs({"pfv", "prog"}) do add_slot_gendered_personal(mood .. "_ind_pres", "-") add_slot_gendered(mood .. "_ind_past", "-") add_slot_gendered_personal(mood .. "_ind_fut", "-") add_slot_gendered_personal(mood .. "_presum", "-") add_slot_gendered_personal(mood .. "_subj_pres", "-") add_slot_gendered(mood .. "_cfact", "-") end

verb_slots_impers["inf_ms_linked"] = verb_slots_impers["inf_ms"]

local all_verb_slots = {} for k, v in pairs(verb_slots_impers) do	all_verb_slots[k] = v end for k, v in pairs(verb_slots_pers) do	all_verb_slots[k] = v end

-- Add one inflected form to `base.forms`, specifically to the list of forms associated with -- the slot `slot` in the table in `base.forms`. Each element of the list is an object of the -- form {form=FORM, translit=TRANSLIT, footnotes=FOOTNOTES}, where TRANSLIT is missing if no -- manual translit needs to be given and FOOTNOTES is missing if there aren't any footnotes. -- If FOOTNOTES is present it is a list of footnotes, where each footnote is e.g. "[rare or archaic]", -- i.e. surrounded by brackets, with the first character lowercase and no final period. -- (The brackets are automatically removed, the first character capitalized and a final period added.) -- -- `stem` is the Devanagari stem to add the ending to. -- `translit_stem` is the transliteration of `stem`, or nil to use the default transliteration. -- `ending` is the Devanagari ending to add to the stem, possibly with sandhi changes to the -- stem or ending. -- `footnotes` is a list of associated footnotes in the same format as FOOTNOTES above, or nil. -- `double_word` if given causes the resulting form to be doubled with a hyphen in between the two -- parts, for use with the progressive form (e.g. करते-करते of verb करना). local function add(base, stem, translit_stem, slot, ending, footnotes, double_word) local function doadd(new_stem, new_translit_stem, new_ending, slot_footnotes) new_ending = new_ending or ending if rfind(new_ending, "ਹਨ$") then slot_footnotes = iut.combine_footnotes(slot_footnotes, {"[colloquially, " .. term_link("ਹਨ") .. " is always " .. term_link("ਨੇ") .. " in the Majhi dialect]"}) end if rfind(new_ending, ".ਸੀ$") then slot_footnotes = iut.combine_footnotes(slot_footnotes, sii_note) end if new_ending and base.notlast then -- If we're not the last verb in a multiword expression, chop off -- anything after a space. This is to handle verbs like हिलना-डुलना, -- which have e.g. nonaspectual subjunctive 1sg masc हिलूँ-डुलूँ -- but perfective future indicative 1sg masc हिला-डुला हूँगा. Also, there -- are some special cases: -- (1) the conjunctive form should be e.g. हिल-डुलकर or हिल-डुलके -- (2) the future indicative should be e.g. 1sg हिलूँ-डुलूँगा -- (3) the future imperative 3pl should be e.g. हिलिये-डुलियेगा -- (4) the agentive should be e.g. हिलने-डुलनेवाला if slot == "conj" then new_ending = "" elseif slot:find("^ind_pol") then new_ending = rsub(new_ending, "ਗ.*$", "") -- गा, गे or गी elseif slot == "imp_pol_3p" then new_ending = rsub(new_ending, "गा$", "")--?? elseif slot:find("^agent") then new_ending = rsub(new_ending, "ਵਾਲ.*$", "") -- वाला, वाले, वाली, वालीं else new_ending = rsub(new_ending, " .*", "") end end com.add_form(base, new_stem or stem, new_translit_stem or translit_stem, slot,			new_ending, iut.combine_footnotes(slot_footnotes, footnotes), "link words", double_word) end if ending then if rfind(stem, "^ਗ$") then -- irregular ga stem ending = rsubn(ending, "^" .. E, "ਏ") ending = rsubn(ending, "^" .. II, "ਈ") ending = rsubn(ending, "^" .. I .. "ਆਂ", "ਇਆਂ") end if rfind(stem, "\*$") then -- some irregular stems should force -iā to turn into -ā stem = rsubn(stem, "\*$", "") if rfind(ending, "^" .. I .. "ਆ$") then doadd(stem, nil, AA) return elseif rfind(ending, "^" .. I .. "ਆ ") then local m = rsubn(ending, "^" .. I .. "ਆ", AA) doadd(stem, nil, m)				return end end if rfind(stem, "..[" .. U .. "ਉ]$") then if rfind(ending, "^[" .. AA .. I .. II .. U .. UU .. E .. AI .. O .. AU .. "]") or rfind(ending, "^ ") or rfind(ending, "^$") then stem = rsubn(stem, "[" .. U .. "ਉ]$", "") end end if rfind(ending, "^ਦ") and rfind(stem, "[" .. AA .. I .. II .. U .. UU .. E .. AI .. O .. AU .. "ਅਆਇਈਉਊਏਐਓਔ]$") and stem ~= "ਧੋ" then if rfind(stem, "^ਹੋ$") then stem = "ਹੁ" end if rfind(stem, "[" .. AA .. I .. U .. UU .. "ਅਆਇ]$") then doadd(stem .. M) else doadd(stem .. N) end return end if rfind(ending, "^[" .. AA .. E .. "]") and rfind(stem, "[" .. AA .. "ਆ]$") and not (slot:find('perf') or slot:find('pfv')) then doadd(stem .. "ਵ") if rfind(ending, "^" .. E) then local m = rsubn(ending, "^" .. E, "ਏ") doadd(stem, nil, m, {"[usually less common]"}) end return end if rfind(ending, "^[" .. O .. AA .. E .. "]") and rfind(stem, "[" .. O .. "ਓ]$") then doadd(stem .. "ਵ") return end if rfind(stem, "[" .. AI .. "ਐ]$") then if rfind(ending, "^" .. I .. "ਆ$") or rfind(ending, "^" .. I .. "ਆ ") then local n = rsubn(stem, AI .. "$", I) n = rsubn(n, "ਐ" .. "$", "ਇ") doadd(n, nil, AA) return elseif rfind(ending, "^[" .. AA .. E .. "]") and not (slot:find('perf') or slot:find('pfv')) then local n = rsubn(stem, "[" .. AI .. "ਐ]$", "") doadd(n .. "ਵ") if rfind(ending, "^" .. E) then local m = rsubn(ending, "^" .. E, "ਏ") doadd(n, nil, m, {"[usually less common]"}) end return elseif rfind(ending, "^[" .. AA .. I .. II .. U .. UU .. E .. AI .. O .. AU .. "]") then local n = rsubn(stem, "[" .. AI .. "ਐ]$", "") local m = rsubn(ending, "^[" .. AA .. I .. II .. U .. UU .. E .. AI .. O .. AU .. "]", com.diacritic_to_independent) doadd(n, nil, m)				return end end if rfind(stem, ".ਹਿ$") then if rfind(ending, "^" .. I .. "ਆ$") then local n = rsubn(stem, "ਹਿ$", I .. "ਹ") doadd(n, nil, AA) return elseif rfind(ending, "^" .. I .. "ਆ ") then local n = rsubn(stem, "ਹਿ$", I .. "ਹ") local m = rsubn(ending, "^" .. I .. "ਆ", AA) doadd(n, nil, m)				return elseif rfind(ending, "^[" .. AA .. I .. II .. U .. UU .. E .. AI .. O .. AU .. "]") then local n = rsubn(stem, "ਹਿ$", "ਹ") doadd(n) return end end if rfind(stem, "[ਰਣ]$") then if rfind(ending, "^ ?ਣ") then local n = rsubn(ending, "^ਣ", "ਨ") doadd(stem, nil, n)				return end end end

doadd end

-- Add the conjugation for a tense/aspect row with gender/number variants only. local function add_conj_gendered(base, slot_prefix, stem, translit_stem, m_s, m_p, f_s, f_p, footnotes) if not stem then stem = base.stem translit_stem = base.stem_translit end add(base, stem, translit_stem, slot_prefix .. "_ms", m_s, footnotes) add(base, stem, translit_stem, slot_prefix .. "_mp", m_p, footnotes) add(base, stem, translit_stem, slot_prefix .. "_fs", f_s, footnotes) add(base, stem, translit_stem, slot_prefix .. "_fp", f_p, footnotes) end

-- Add the conjugation for a tense/aspect row with person/number variants only. local function add_conj_personal(base, slot_prefix, stem, translit_stem, s1, s23, p1, p3, p2, footnotes) if not stem then stem = base.stem translit_stem = base.stem_translit end add(base, stem, translit_stem, slot_prefix .. "_1s", s1, footnotes) add(base, stem, translit_stem, slot_prefix .. "_23s", s23, footnotes) add(base, stem, translit_stem, slot_prefix .. "_1p", p1, footnotes) add(base, stem, translit_stem, slot_prefix .. "_3p", p3, footnotes) add(base, stem, translit_stem, slot_prefix .. "_2p", p2, footnotes) end

-- Add the conjugation for a tense/aspect row with person/number/gender variants. local function add_conj_gendered_personal(base, slot_prefix, stem, translit_stem,	s1m, s23m, p1m, p3m, p2m, s1f, s23f, p1f, p3f, p2f, footnotes) if not stem then stem = base.stem translit_stem = base.stem_translit end add(base, stem, translit_stem, slot_prefix .. "_1sm", s1m, footnotes) add(base, stem, translit_stem, slot_prefix .. "_23sm", s23m, footnotes) add(base, stem, translit_stem, slot_prefix .. "_1pm", p1m, footnotes) add(base, stem, translit_stem, slot_prefix .. "_3pm", p3m, footnotes) add(base, stem, translit_stem, slot_prefix .. "_2pm", p2m, footnotes) add(base, stem, translit_stem, slot_prefix .. "_1sf", s1f, footnotes) add(base, stem, translit_stem, slot_prefix .. "_23sf", s23f, footnotes) add(base, stem, translit_stem, slot_prefix .. "_1pf", p1f, footnotes) add(base, stem, translit_stem, slot_prefix .. "_3pf", p3f, footnotes) add(base, stem, translit_stem, slot_prefix .. "_2pf", p2f, footnotes) end

local function handle_derived_slots_and_overrides(base) -- No overrides implemented currently. -- process_slot_overrides(base)

-- Compute linked versions of potential lemma slots, for use in. -- We substitute the original lemma (before removing links) for forms that -- are the same as the lemma, if the original lemma has links. -- (NOTE: Not currently used by .) for _, slot in ipairs({"inf_ms"}) do iut.insert_forms(base.forms, slot .. "_linked", iut.map_forms(base.forms[slot], function(form, translit) if form == base.orig_lemma_no_links and translit == base.lemma_translit and rfind(base.orig_lemma, "%[%[") then return base.orig_lemma, base.lemma_translit else return form, translit end end)) end end

local conjs = {} local conjprops = {}

conjs["normal"] = function(base) local function fetch_irreg(irreg_table) if irreg_table[base.stem] then local stem = irreg_table[base.stem] return stem, nil else return base.stem, base.stem_translit end end

local perf, trperf = fetch_irreg(irreg_perf) local subj, trsubj = fetch_irreg(irreg_subj) local polite_imp, tr_polite_imp = fetch_irreg(irreg_polite_imp)

-- Undeclined forms add(base, base.stem, base.stem_translit, "stem", "") if rfind(base.stem, "[ੜਰ](੍ਹ)?$") then add(base, base.stem, base.stem_translit, "inf", "ਨਾ") add(base, base.stem, base.stem_translit, "inf_obl", "ਨ") else add(base, base.stem, base.stem_translit, "inf", "ਣਾ") add(base, base.stem, base.stem_translit, "inf_obl", "ਣ") end add(base, base.stem, base.stem_translit, "conj", "ਕੇ") -- Normally progressive form is doubled (e.g. करते-करते), but not in multiword -- expressions like हिलना-डुलना. add(base, base.stem, base.stem_translit, "prog", "ਦੇ", nil, not base.multiword)

-- Participles add_conj_gendered(base, "hab", nil, nil, "ਦਾ", "ਦੇ", "ਦੀ", "ਦਿਆਂ") add_conj_gendered(base, "pfv", perf, trperf, I .. "ਆ", E, II, I .. "ਆਂ") add_conj_gendered(base, "agent", nil, nil, "ਣ ਵਾਲ਼ਾ", "ਣ ਵਾਲ਼ੇ", "ਣ ਵਾਲ਼ੀ", "ਣ ਵਾਲ਼ਿਆਂ", "[many dialects do not have the " .. term_link("ਲ਼") .. " phoneme, instead replacing it with " .. term_link("ਲ") .. "]") add_conj_gendered(base, "adj_pfv", perf, trperf, I .. "ਆ ਹੋਇਆ", E .. " ਹੋਏ", II .. " ਹੋਈ", I .. "ਆਂ ਹੋਇਆਂ") add_conj_gendered(base, "adj_hab", nil, nil, "ਦਾ ਹੋਇਆ", "ਦੇ ਹੋਏ", "ਦੀ ਹੋਈ", "ਦਿਆਂ ਹੋਇਆਂ")

-- Non-aspectual add_conj_gendered(base, "ind_perf", perf, trperf, I .. "ਆ", E, II, I .. "ਆਂ") add_conj_personal(base, "subj_fut", subj, trsubj, AA .. N, E, AA .. N, "ਣ", O)	add_conj_gendered_personal(base, "ind_fut", subj, trsubj,		AA .. N .. "ਗਾ", E .. "ਗਾ", AA .. N .. "ਗੇ", "ਣਗੇ", O .. "ਗੇ",		AA .. N .. "ਗੀ", E .. "ਗੀ", AA .. N .. "ਗਿਆਂ", "ਣਗਿਆਂ", O .. "ਗਿਆਂ") add(base, subj, trsubj, "ind_fut_1sm", UU .. N .. "ਗਾ", "[dialectal]") add(base, subj, trsubj, "ind_fut_1sf", UU .. N .. "ਗੀ", "[dialectal]") add(base, subj, trsubj, "subj_fut_1s", UU .. N, "[dialectal]") if base.stem == "ਹੋ" then add_conj_gendered_personal(base, "presum", "", "", "ਹੋਵਾਂਗਾ", "ਹੋਵੇਗਾ", "ਹੋਵਾਂਗੇ", "ਹੋਣਗੇ", "ਹੋਵੋਗੇ", "ਹੋਵਾਂਗੀ", "ਹੋਵੇਗੀ", "ਹੋਵਾਂਗਿਆਂ", "ਹੋਣਗਿਆਂ", "ਹੋਵੋਗਿਆ") add_conj_personal(base, "ind_pres", "", "", "ਹਾਂ", "ਹੈ", "ਹਾਂ", "ਹਨ", "ਹੋ") add_conj_personal(base, "ind_impf", "", "", "ਸੀ", "ਸੀ", "ਸੀ", "ਸੀ", "ਸੀ") add_conj_personal(base, "ind_impf", "", "", "ਸਾਂ", "ਸੈ", "ਸਾਂ", "ਸਨ", "ਸੋ", "[dialectal]") add_conj_personal(base, "subj_pres", "", "", "ਹੋਵਾਂ", "ਹੋਵੇ", "ਹੋਇਏ", "ਹੋਣ", "ਹੋਵੋ") end add_conj_gendered(base, "cfact", nil, nil, "ਦਾ", "ਦੇ", "ਦੀ", "ਦਿਆਂ")

add(base, base.stem, base.stem_translit, "imp_reg_2s", "") add(base, subj, trsubj, "imp_reg_2p", O) add(base, subj, trsubj, "imp_pol_2s", II .. N) add(base, subj, trsubj, "imp_pol_2p", I .. "ਓ")

-- Habitual add_conj_gendered_personal(base, "hab_ind_pres", nil, nil,		"ਦਾ ਹਾਂ", "ਦਾ ਹੈ", "ਦੇ ਹਾਂ", "ਦੇ ਹਨ", "ਦੇ ਹੋ",		"ਦੀ ਹਾਂ", "ਦੀ ਹੈ", "ਦਿਆਂ ਹਾਂ", "ਦਿਆਂ ਹਨ", "ਦਿਆਂ ਹੋ") add_conj_gendered(base, "hab_ind_past", nil, nil, "ਦਾ ਸੀ", "ਦੇ ਸੀ", "ਦੀ ਸੀ", "ਦਿਆਂ ਸੀ") add_conj_gendered_personal(base, "hab_presum", nil, nil,		"ਦਾ ਹੋਵਾਂਗਾ", "ਦਾ ਹੋਵੇਗਾ", "ਦੇ ਹੋਵਾਂਗੇ", "ਦੇ ਹੋਣਗੇ", "ਦੇ ਹੋਵੋਗੇ",		"ਦੀ ਹੋਵਾਂਗੀ", "ਦੀ ਹੋਵੇਗੀ", "ਦਿਆਂ ਹੋਵਾਂਗਿਆਂ", "ਦਿਆਂ ਹੋਣਗਿਆਂ", "ਦਿਆਂ ਹੋਵੋਗਿਆਂ") add_conj_gendered_personal(base, "hab_subj", nil, nil,		"ਦਾ ਹੋਵਾਂ", "ਦਾ ਹੋਵੇ", "ਦੇ ਹੋਇਏ", "ਦੇ ਹੋਣ", "ਦੇ ਹੋਵੋ",		"ਦੀ ਹੋਵਾਂ", "ਦੀ ਹੋਵੇ", "ਦਿਆਂ ਹੋਇਏ", "ਦਿਆਂ ਹੋਣ", "ਦਿਆਂ ਹੋਵੋ") add_conj_gendered(base, "hab_cfact", nil, nil,		"ਦਾ ਹੁੰਦਾ", "ਦੇ ਹੁੰਦੇ", "ਦੀ ਹੁੰਦੀ", "ਦਿਆਂ ਹੁੰਦਿਆਂ")

-- Perfective add_conj_gendered_personal(base, "pfv_ind_pres", perf, trperf,		I .. "ਆ ਹਾਂ", I .. "ਆ ਹੈ", E .. " ਹਾਂ", E .. " ਹਨ", E .. " ਹੋ",		II .. " ਹਾਂ", II .. " ਹੈ", I .. "ਆਂ ਹਾਂ", I .. "ਆਂ ਹਨ", I .. "ਆਂ ਹੋ") add_conj_gendered(base, "pfv_ind_past", perf, trperf,		I .. "ਆ ਸੀ", E .. " ਸੀ",		II .. " ਸੀ", I .. "ਆਂ ਸੀ") add_conj_gendered_personal(base, "pfv_ind_fut", perf, trperf,		I .. "ਆ ਹੋਵਾਂਗਾ", I .. "ਆ ਹੋਵੇਗਾ", E .. " ਹੋਵਾਂਗੇ", E .. " ਹੋਣਗੇ", E .. " ਹੋਵੋਗੇ",		II .. " ਹੋਵਾਂਗਾ", II .. " ਹੋਵੇਗਾ", I .. "ਆਂ ਹੋਵਾਂਗੇ", I .. "ਆਂ ਹੋਣਗੇ", I .. "ਆਂ ਹੋਵੋਗੇ") add_conj_gendered_personal(base, "pfv_presum", perf, trperf,		I .. "ਆ ਹੋਵਾਂਗਾ", I .. "ਆ ਹੋਵੇਗਾ", E .. " ਹੋਵਾਂਗੇ", E .. " ਹੋਣਗੇ", E .. " ਹੋਵੋਗੇ",		II .. " ਹੋਵਾਂਗਾ", II .. " ਹੋਵੇਗਾ", I .. "ਆਂ ਹੋਵਾਂਗੇ", I .. "ਆਂ ਹੋਣਗੇ", I .. "ਆਂ ਹੋਵੋਗੇ") add_conj_gendered_personal(base, "pfv_subj_pres", perf, trperf,		I .. "ਆ ਹੋਵਾਂ", I .. "ਆ ਹੋਵੇ", E .. " ਹੋਇਏ", E .. " ਹੋਣ", E .. " ਹੋਵੋ",		II .. " ਹੋਵਾਂ", II .. " ਹੋਵੇ", I .. "ਆਂ ਹੋਇਏ", I .. "ਆਂ ਹੋਣ", I .. "ਆਂ ਹੋਵੋ") add_conj_gendered(base, "pfv_cfact", perf, trperf, I .. "ਆ ਹੁੰਦਾ", E .. " ਹੁੰਦੇ", II .. " ਹੁੰਦੀ", I .. "ਆਂ ਹੁੰਦਿਆਂ")

-- Progressive add_conj_gendered_personal(base, "prog_ind_pres", nil, nil,		" ਰਿਹਾ ਹਾਂ", " ਰਿਹਾ ਹੈ", " ਰਹੇ ਹਾਂ", " ਰਹੇ ਹਨ", " ਰਹੇ ਹੋ",		" ਰਹੀ ਹਾਂ", " ਰਹੀ ਹੈ", " ਰਹਿਆਂ ਹਾਂ", " ਰਹਿਆਂ ਹਨ", " ਰਹਿਆਂ ਹੋ") add_conj_gendered(base, "prog_ind_past", nil, nil,		" ਰਿਹਾ ਸੀ", " ਰਹੇ ਸੀ",		" ਰਹੀ ਸੀ", " ਰਹਿਆਂ ਸੀ") add_conj_gendered_personal(base, "prog_ind_fut", nil, nil,		" ਰਿਹਾ ਹੋਵਾਂਗਾ", " ਰਿਹਾ ਹੋਵੇਗਾ", " ਰਹੇ ਹੋਵਾਂਗੇ", " ਰਹੇ ਹੋਣਗੇ", " ਰਹੇ ਹੋਵੋਗੇ",		" ਰਹੀ ਹੋਵਾਂਗੀ", " ਰਹੀ ਹੋਵੇਗੀ", " ਰਹਿਆਂ ਹੋਵਾਂਗਿਆਂ", " ਰਹਿਆਂ ਹੋਣਗਿਆਂ", " ਰਹਿਆਂ ਹੋਵੋਗਿਆਂ") add_conj_gendered_personal(base, "prog_presum", nil, nil,		" ਰਿਹਾ ਹੋਵਾਂਗਾ", " ਰਿਹਾ ਹੋਵੇਗਾ", " ਰਹੇ ਹੋਵਾਂਗੇ", " ਰਹੇ ਹੋਣਗੇ", " ਰਹੇ ਹੋਵੋਗੇ",		" ਰਹੀ ਹੋਵਾਂਗੀ", " ਰਹੀ ਹੋਵੇਗੀ", " ਰਹਿਆਂ ਹੋਵਾਂਗਿਆਂ", " ਰਹਿਆਂ ਹੋਣਗਿਆਂ", " ਰਹਿਆਂ ਹੋਵੋਗਿਆਂ") add_conj_gendered_personal(base, "prog_subj_pres", nil, nil,		" ਰਿਹਾ ਹੋਵਾਂ", " ਰਿਹਾ ਹੋਵੇ", " ਰਹੇ ਹੋਇਏ", " ਰਹੇ ਹੋਣ", " ਰਹੇ ਹੋਵੋ",		" ਰਹੀ ਹੋਵਾਂ", " ਰਹੀ ਹੋਵੇ", " ਰਹਿਆਂ ਹੋਇਏ", " ਰਹਿਆਂ ਹੋਣ", " ਰਹਿਆਂ ਹੋਵੋ") add_conj_gendered(base, "prog_cfact", nil, nil, " ਰਿਹਾ ਹੁੰਦਾ", " ਰਹੇ ਹੁੰਦੇ", " ਰਹੀ ਹੁੰਦੀ", " ਰਹਿਆਂ ਹੁੰਦਿਆਂ") end

--[=[ Parse an indicator spec (text consisting of angle brackets and zero or more dot-separated indicators within them). Return value is an object of the form

{ forms = {}, -- forms for a single spec alternant; see `forms` below

-- The following additional fields are added by other functions: orig_lemma = "ORIGINAL-LEMMA", -- as given by the user or taken from pagename orig_lemma_no_links = "ORIGINAL-LEMMA-NO-LINKS", -- links removed lemma = "LEMMA", -- `orig_lemma_no_links`, converted to singular form if plural phon_lemma = "LEMMA-PHONETIC-RESPELLING", -- as specified by the user; may be missing lemma_translit = "LEMMA-TRANSLIT", -- translit of phon_lemma (if present) forms = { SLOT = { {		form = "FORM", footnotes = {"FOOTNOTE", "FOOTNOTE", ...} -- may be missing },	 ...	},	...  },  conj = "CONJ", -- declension, e.g. "normal" (the only one currently implemented) } ]=] local function parse_indicator_spec(angle_bracket_spec) local inside = rmatch(angle_bracket_spec, "^<(.*)>$") assert(inside) local base = {overrides = {}, forms = {}} if inside ~= "" then local segments = iut.parse_balanced_segment_run(inside, "[", "]") local dot_separated_groups = iut.split_alternating_runs(segments, "%.") for i, dot_separated_group in ipairs(dot_separated_groups) do -- No indicators allowed currently. local part = dot_separated_group[1] error("Unrecognized indicator '" .. part .. "': '" .. inside .. "'") end end return base end

local function detect_indicator_spec(base) base.conj = "normal" if rfind(base.lemma, "ਨਾ$") then base.lemma = rsubn(base.lemma, "ਨਾ$", "ਣਾ") end base.stem, base.stem_translit = com.strip_ending(base, "ਣਾ") end

local function detect_all_indicator_specs(alternant_multiword_spec) iut.map_word_specs(alternant_multiword_spec, function(base)		detect_indicator_spec(base)	end)

-- Set notlast=true on verbs that aren't the last one in a multiword expression, and -- multiword=true on all verbs in multiword expressions (as well as at top level), so -- we can properly handle verbs like हिलना-डुलना. for i, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do		if alternant_or_word_spec.alternants then for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do				for j, word_spec in ipairs(multiword_spec.word_specs) do					if j < #multiword_spec.word_specs then word_spec.notlast = true end if #multiword_spec.word_specs > 1 then word_spec.multiword = true alternant_multiword_spec.multiword = true end end end else if i < #alternant_multiword_spec.alternant_or_word_specs then alternant_or_word_spec.notlast = true end if #alternant_multiword_spec.alternant_or_word_specs > 1 then alternant_or_word_spec.multiword = true alternant_multiword_spec.multiword = true end end end end

local function conjugate_verb(base) if not conjs[base.conj] then error("Internal error: Unrecognized conjugation type '" .. base.conj .. "'") end conjs[base.conj](base) if base.multiword then -- See comment in add_variant_codes for the purpose of this. com.add_variant_codes(base) end handle_derived_slots_and_overrides(base) end

-- Compute the categories to add the verb to, as well as the annotation to display in the -- conjugation title bar. We combine the code to do these functions as both categories and -- title bar contain similar information. local function compute_categories_and_annotation(alternant_multiword_spec) local cats = {} local function insert(cattype) cattype = rsub(cattype, "~", alternant_multiword_spec.pos) m_table.insertIfNot(cats, "Punjabi " .. cattype) end local annotation if alternant_multiword_spec.manual then alternant_multiword_spec.annotation = "" else local function do_word_spec(base) if base.lemma_translit and (lang:transliterate(base.lemma)) ~= base.lemma_translit then insert("~ with phonetic respelling") end end iut.map_word_specs(alternant_multiword_spec, function(base)			do_word_spec(base)		end) end alternant_multiword_spec.categories = cats end

-- Convert forms from their list/object form (see the comments to add for how this works) -- to strings that can be directly filled into the table. Approximately, each form is converted -- to a formatted link with accelerators and the results are concatenated, followed by an newline -- and then the formatted transliterations. local function show_forms(alternant_multiword_spec) local lemmas = alternant_multiword_spec.forms.inf_ms or {} local props = { lemmas = lemmas, slot_table = verb_slots_impers, lang = lang, include_translit = true, }	if alternant_multiword_spec.multiword then -- Remove variant codes that were added to ensure only parallel variants in -- multiword expressions like हिलना-डुलना get generated. See com.add_variant_codes -- for more information. props.canonicalize = function(form) return com.remove_variant_codes(form) end end iut.show_forms(alternant_multiword_spec.forms, props) alternant_multiword_spec.forms.footnote_impers = alternant_multiword_spec.forms.footnote props.slot_table = verb_slots_pers iut.show_forms(alternant_multiword_spec.forms, props) alternant_multiword_spec.forms.footnote_pers = alternant_multiword_spec.forms.footnote end

-- Generate the conjugation table. This should be called after show_forms has converted -- each form to a formatted string. local function make_table(alternant_multiword_spec) local table_spec_impersonal = [=[ Impersonal forms of {inf_raw} {\op}| class="inflection-table inflection-hi inflection-verb" data-toggle-category="inflection" ! class="hi-tense-aspect-cell"colspan=100% | Undeclined ! class="hi-tense-aspect-cell" colspan=2 | Stem ! class="hi-tense-aspect-cell" colspan=2 | Infinitive ! class="hi-tense-aspect-cell" colspan=2 | Oblique Infinitive ! class="hi-tense-aspect-cell" colspan=2 | Conjunctive ! class="hi-tense-aspect-cell" colspan=2 | Progressive ! class="hi-tense-aspect-cell" colspan=100% | Participles ! {dir} {m} {s} ! {m} {p} {obl} {m} {s} ! {f} {s} ! {f} {p} ! class="hi-tense-aspect-cell" colspan=2 | Infinitive ! class="hi-tense-aspect-cell" colspan=2 | Habitual ! class="hi-tense-aspect-cell" colspan=2 | Perfective ! class="hi-tense-aspect-cell" colspan=2 | Prospective Agentive ! class="hi-tense-aspect-cell" rowspan=2 | Adjectival ! class="hi-tense-aspect-cell" | Perfective ! class="hi-tense-aspect-cell" | Habitual
 * colspan="100%" | {stem}
 * colspan="100%" | {inf}
 * colspan="100%" | {inf_obl}
 * colspan="100%" | {conj}
 * colspan="100%" | {prog}
 * - class="hi-part-gender-number-header"
 * class="hi-tense-aspect-cell" colspan=2 |
 * class="hi-tense-aspect-cell" colspan=2 |
 * {inf_ms}
 * {inf_mp}
 * {inf_fs}
 * {inf_fp}
 * {hab_ms}
 * {hab_mp}
 * {hab_fs}
 * {hab_fp}
 * {pfv_ms}
 * {pfv_mp}
 * {pfv_fs}
 * {pfv_fp}
 * {agent_ms}
 * {agent_mp}
 * {agent_fs}
 * {agent_fp}
 * {adj_pfv_ms}
 * {adj_pfv_mp}
 * {adj_pfv_fs}
 * {adj_pfv_fp}
 * {adj_hab_ms}
 * {adj_hab_mp}
 * {adj_hab_fs}
 * {adj_hab_fp}
 * {\cl}{notes_clause} ]=]

local person_number_header_two_row = [=[ ]=]
 * - class="hi-table-header"
 * rowspan=2 |
 * rowspan=2 |
 * class="hi-mf-cell" rowspan=2 |

local person_number_header_sg_pl_headers = [=[ ! colspan=3 | Singular ! colspan=1 | Singular/Plural ! colspan=2 | Plural/Formal ]=]

local person_number_header_table_div = [=[ ]=]
 * - class="hi-table-header"

local person_number_header_pers_num_headers = [=[ ! 1st ਮੈਂ ! 2nd intimate ਤੂੰ ! 3rd ਇਹ/ਉਹ ! 2nd familiar ਤੁਸੀਂ ! 1st ਅਸੀਂ ! 2nd formal, 3rd ਇਹ/ਉਹ/ਆਪ ]=]

-- Regular person-number header used at the top of the table and in the middle. local person_number_header = person_number_header_table_div .. person_number_header_two_row .. person_number_header_sg_pl_headers .. person_number_header_table_div .. person_number_header_pers_num_headers -- Reversed person-number header used at the bottom of the table. "Reversed" means that -- the two rows are in reversed order; but internally we can't switch the order of everything -- (e.g. the double-row cells at the left side), so we need to break up the header into multiple -- parts and only reverse certain parts. local reversed_person_number_header = person_number_header_table_div .. person_number_header_two_row .. person_number_header_pers_num_headers .. person_number_header_table_div .. person_number_header_sg_pl_headers

local table_spec_personal = [=[ Personal forms of {inf_raw} {\op}| class="inflection-table inflection-hi inflection-verb" data-toggle-category="inflection" ! class="hi-sec-div" rowspan=1 colspan=100% | Non-Aspectual {person_number_header}{pres_impf_table}! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PERF} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {FUT} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} {presum_table}{subj_table} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Contrafactual ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Imperative ! class="hi-tense-aspect-cell" rowspan=1 colspan=1 | {REG} ! class="hi-mf-cell" | {mf} ! class="hi-tense-aspect-cell" rowspan=1 colspan=1 | {POL} ! class="hi-mf-cell" | {mf} ! class="hi-sec-div" rowspan=1 colspan=100% | Habitual ! class="hi-tense-aspect-cell" rowspan=4 colspan=1 | Indicative ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Presumptive ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS_PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Subjunctive ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Contrafactual ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-sec-div" rowspan=1 colspan=100% | Perfective {person_number_header}|- class="hi-row-m" ! class="hi-tense-aspect-cell" rowspan=6 colspan=1 | Indicative ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {FUT} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Presumptive ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS_PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Subjunctive ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Contrafactual ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-sec-div" rowspan=1 colspan=100% | Progressive ! class="hi-tense-aspect-cell" rowspan=6 colspan=1 | Indicative ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {FUT} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Presumptive ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS_PST_FUT} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Subjunctive ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Contrafactual ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PST} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} {reversed_person_number_header}|{\cl}{notes_clause} ]=]
 * colspan=3 | {ind_perf_ms}
 * colspan=3 | {ind_perf_mp}
 * - class="hi-row-f"
 * colspan=3 | {ind_perf_fs}
 * colspan=3 | {ind_perf_fp}
 * - class="hi-row-m"
 * {ind_fut_1sm}
 * colspan=2 | {ind_fut_23sm}
 * {ind_fut_2pm}
 * {ind_fut_1pm}
 * {ind_fut_3pm}
 * - class="hi-row-f"
 * {ind_fut_1sf}
 * colspan=2 | {ind_fut_23sf}
 * {ind_fut_2pf}
 * {ind_fut_1pf}
 * {ind_fut_3pf}
 * - class="hi-row-m"
 * colspan=3 | {cfact_ms}
 * colspan=3 | {cfact_mp}
 * - class="hi-row-f"
 * colspan=3 | {cfact_fs}
 * colspan=3 | {cfact_fp}
 * {imp_reg_2s}
 * {imp_reg_2p}
 * {imp_reg_2p}
 * {imp_reg_2p}
 * {imp_reg_2p}
 * {imp_reg_2p}
 * {imp_pol_2s}
 * {imp_pol_2p}
 * {imp_pol_2p}
 * {imp_pol_2p}
 * {imp_pol_2p}
 * {imp_pol_2p}
 * - class="hi-row-m"
 * {hab_ind_pres_1sm}
 * colspan=2 | {hab_ind_pres_23sm}
 * {hab_ind_pres_2pm}
 * {hab_ind_pres_1pm}
 * {hab_ind_pres_3pm}
 * - class="hi-row-f"
 * {hab_ind_pres_1sf}
 * colspan=2 | {hab_ind_pres_23sf}
 * {hab_ind_pres_2pf}
 * {hab_ind_pres_1pf}
 * {hab_ind_pres_3pf}
 * - class="hi-row-m"
 * colspan=3 | {hab_ind_past_ms}
 * colspan=3 | {hab_ind_past_mp}
 * - class="hi-row-f"
 * colspan=3 | {hab_ind_past_fs}
 * colspan=3 | {hab_ind_past_fp}
 * - class="hi-row-m"
 * {hab_presum_1sm}
 * colspan=2 | {hab_presum_23sm}
 * {hab_presum_2pm}
 * {hab_presum_1pm}
 * {hab_presum_3pm}
 * - class="hi-row-f"
 * {hab_presum_1sf}
 * colspan=2 | {hab_presum_23sf}
 * {hab_presum_2pf}
 * {hab_presum_1pf}
 * {hab_presum_3pf}
 * - class="hi-row-m"
 * {hab_subj_1sm}
 * colspan=2 | {hab_subj_23sm}
 * {hab_subj_2pm}
 * {hab_subj_1pm}
 * {hab_subj_3pm}
 * - class="hi-row-f"
 * {hab_subj_1sf}
 * colspan=2 | {hab_subj_23sf}
 * {hab_subj_2pf}
 * {hab_subj_1pf}
 * {hab_subj_3pf}
 * - class="hi-row-m"
 * colspan=3 | {hab_cfact_ms}
 * colspan=3 | {hab_cfact_mp}
 * - class="hi-row-f"
 * colspan=3 | {hab_cfact_fs}
 * colspan=3 | {hab_cfact_fp}
 * {pfv_ind_pres_1sm}
 * colspan=2 | {pfv_ind_pres_23sm}
 * {pfv_ind_pres_2pm}
 * {pfv_ind_pres_1pm}
 * {pfv_ind_pres_3pm}
 * - class="hi-row-f"
 * {pfv_ind_pres_1sf}
 * colspan=2 | {pfv_ind_pres_23sf}
 * {pfv_ind_pres_2pf}
 * {pfv_ind_pres_1pf}
 * {pfv_ind_pres_3pf}
 * - class="hi-row-m"
 * colspan=3 | {pfv_ind_past_ms}
 * colspan=3 | {pfv_ind_past_mp}
 * - class="hi-row-f"
 * colspan=3 | {pfv_ind_past_fs}
 * colspan=3 | {pfv_ind_past_fp}
 * - class="hi-row-m"
 * {pfv_ind_fut_1sm}
 * colspan=2 | {pfv_ind_fut_23sm}
 * {pfv_ind_fut_2pm}
 * {pfv_ind_fut_1pm}
 * {pfv_ind_fut_3pm}
 * - class="hi-row-f"
 * {pfv_ind_fut_1sf}
 * colspan=2 | {pfv_ind_fut_23sf}
 * {pfv_ind_fut_2pf}
 * {pfv_ind_fut_1pf}
 * {pfv_ind_fut_3pf}
 * - class="hi-row-m"
 * {pfv_presum_1sm}
 * colspan=2 | {pfv_presum_23sm}
 * {pfv_presum_2pm}
 * {pfv_presum_1pm}
 * {pfv_presum_3pm}
 * - class="hi-row-f"
 * {pfv_presum_1sf}
 * colspan=2 | {pfv_presum_23sf}
 * {pfv_presum_2pf}
 * {pfv_presum_1pf}
 * {pfv_presum_3pf}
 * - class="hi-row-m"
 * {pfv_subj_pres_1sm}
 * colspan=2 | {pfv_subj_pres_23sm}
 * {pfv_subj_pres_2pm}
 * {pfv_subj_pres_1pm}
 * {pfv_subj_pres_3pm}
 * - class="hi-row-f"
 * {pfv_subj_pres_1sf}
 * colspan=2 | {pfv_subj_pres_23sf}
 * {pfv_subj_pres_2pf}
 * {pfv_subj_pres_1pf}
 * {pfv_subj_pres_3pf}
 * - class="hi-row-m"
 * colspan=3 | {pfv_cfact_ms}
 * colspan=3 | {pfv_cfact_mp}
 * - class="hi-row-f"
 * colspan=3 | {pfv_cfact_fs}
 * colspan=3 | {pfv_cfact_fp}
 * - class="hi-row-m"
 * {prog_ind_pres_1sm}
 * colspan=2 | {prog_ind_pres_23sm}
 * {prog_ind_pres_2pm}
 * {prog_ind_pres_1pm}
 * {prog_ind_pres_3pm}
 * - class="hi-row-f"
 * {prog_ind_pres_1sf}
 * colspan=2 | {prog_ind_pres_23sf}
 * {prog_ind_pres_2pf}
 * {prog_ind_pres_1pf}
 * {prog_ind_pres_3pf}
 * - class="hi-row-m"
 * colspan=3 | {prog_ind_past_ms}
 * colspan=3 | {prog_ind_past_mp}
 * - class="hi-row-f"
 * colspan=3 | {prog_ind_past_fs}
 * colspan=3 | {prog_ind_past_fp}
 * - class="hi-row-m"
 * {prog_ind_fut_1sm}
 * colspan=2 | {prog_ind_fut_23sm}
 * {prog_ind_fut_2pm}
 * {prog_ind_fut_1pm}
 * {prog_ind_fut_3pm}
 * - class="hi-row-f"
 * {prog_ind_fut_1sf}
 * colspan=2 | {prog_ind_fut_23sf}
 * {prog_ind_fut_2pf}
 * {prog_ind_fut_1pf}
 * {prog_ind_fut_3pf}
 * - class="hi-row-m"
 * {prog_presum_1sm}
 * colspan=2 | {prog_presum_23sm}
 * {prog_presum_2pm}
 * {prog_presum_1pm}
 * {prog_presum_3pm}
 * - class="hi-row-f"
 * {prog_presum_1sf}
 * colspan=2 | {prog_presum_23sf}
 * {prog_presum_2pf}
 * {prog_presum_1pf}
 * {prog_presum_3pf}
 * - class="hi-row-m"
 * {prog_subj_pres_1sm}
 * colspan=2 | {prog_subj_pres_23sm}
 * {prog_subj_pres_2pm}
 * {prog_subj_pres_1pm}
 * {prog_subj_pres_3pm}
 * - class="hi-row-f"
 * {prog_subj_pres_1sf}
 * colspan=2 | {prog_subj_pres_23sf}
 * {prog_subj_pres_2pf}
 * {prog_subj_pres_1pf}
 * {prog_subj_pres_3pf}
 * - class="hi-row-m"
 * colspan=3 | {prog_cfact_ms}
 * colspan=3 | {prog_cfact_mp}
 * - class="hi-row-f"
 * colspan=3 | {prog_cfact_fs}
 * colspan=3 | {prog_cfact_fp}

local pres_impf_table = [=[ ! class="hi-tense-aspect-cell" rowspan=6 colspan=1 | Indicative ! class="hi-tense-aspect-cell" rowspan=1 colspan=1 | {PRS} ! class="hi-mf-cell" | {mf} ! class="hi-tense-aspect-cell" colspan=1 | {IMPF} ! class="hi-mf-cell" | {mf} ]=]
 * {ind_pres_1s}
 * colspan=2 | {ind_pres_23s}
 * {ind_pres_2p}
 * {ind_pres_1p}
 * {ind_pres_3p}
 * - class="hi-row-m"
 * {ind_impf_1s}
 * colspan=2 | {ind_impf_23s}
 * {ind_impf_2p}
 * {ind_impf_1p}
 * {ind_impf_3p}
 * - class="hi-row-m"

local pres_impf_table_missing = [=[ ! class="hi-tense-aspect-cell" rowspan=4 colspan=1 | Indicative ]=]
 * - class="hi-row-m"

local presum_table = [=[ ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | Presumptive ! class="hi-tense-aspect-cell" rowspan=2 colspan=1 | {PRS_PST_FUT} ! class="hi-mf-cell" | {m} ! class="hi-mf-cell" | {f} ]=]
 * - class="hi-row-m"
 * {presum_1sm}
 * colspan=2 | {presum_23sm}
 * {presum_2pm}
 * {presum_1pm}
 * {presum_3pm}
 * - class="hi-row-f"
 * {presum_1sf}
 * colspan=2 | {presum_23sf}
 * {presum_2pf}
 * {presum_1pf}
 * {presum_3pf}

local combined_subj = [=[ ! class="hi-tense-aspect-cell" rowspan=1 colspan=1 | Subjunctive ! class="hi-tense-aspect-cell" rowspan=1 colspan=1 | {FUT} ! class="hi-mf-cell" | {mf}
 * {subj_fut_1s}
 * colspan=2 | {subj_fut_23s}
 * {subj_fut_2p}
 * {subj_fut_1p}
 * {subj_fut_3p}]=]

local split_subj = [=[ ! class="hi-tense-aspect-cell" rowspan=1 colspan=1 | Subjunctive ! class="hi-tense-aspect-cell" rowspan=1 colspan=1 | {PRS} ! class="hi-mf-cell" | {mf}
 * {subj_pres_1s}
 * colspan=2 | {subj_pres_23s}
 * {subj_pres_2p}
 * {subj_pres_1p}
 * {subj_pres_3p}]=]

local notes_template = [===[ {footnote} ]===]

local forms = alternant_multiword_spec.forms

local function make_gender_abbr(title, text) return ' ' .. text .. ' '	end local function make_tense_aspect_abbr(title, text) local template = [=[ {text} ]=] return m_string_utilities.format(template, {title = title, text = text}) end forms.m = make_gender_abbr("masculine gender", "m") forms.f = make_gender_abbr("feminine gender", "f") forms.mf = forms.m .. " " .. forms.f	forms.s = make_gender_abbr("singular number", "s") forms.p = make_gender_abbr("plural number", "p") forms.dir = make_gender_abbr("direct", "dir") forms.obl = make_gender_abbr("oblique", "obl") forms.PERF = make_tense_aspect_abbr("Perfect", "PERF") forms.IMPF = make_tense_aspect_abbr("Imperfect", "IMPF") forms.PST = make_tense_aspect_abbr("Past", "PST") forms.FUT = make_tense_aspect_abbr("Future", "FUT") forms.PRS = make_tense_aspect_abbr("Present", "PRS") forms.PRS_FUT = make_tense_aspect_abbr("Present/Future", "PRS FUT") forms.PRS_PST = make_tense_aspect_abbr("Present/Past", "PRS PST") forms.PRS_PST_FUT = make_tense_aspect_abbr("Present/Past/Future", "PRS PST FUT") forms.REG = make_tense_aspect_abbr("Regular", "REG") forms.POL = make_tense_aspect_abbr("Polite", "POL") forms.inf_raw = tag_text(forms.lemma)

-- Now format the impersonal table. forms.footnote = forms.footnote_impers forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or "" local formatted_table_impers = m_string_utilities.format(table_spec_impersonal, forms)

-- Now format the personal table. forms.footnote = forms.footnote_pers forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or "" if forms.ind_pres_1s ~= "—" then -- होना forms.subj_table = m_string_utilities.format(split_subj, forms) forms.pres_impf_table = m_string_utilities.format(pres_impf_table, forms) forms.presum_table = m_string_utilities.format(presum_table, forms) else forms.subj_table = m_string_utilities.format(combined_subj, forms) forms.pres_impf_table = pres_impf_table_missing forms.presum_table = "" end forms.person_number_header = person_number_header forms.reversed_person_number_header = reversed_person_number_header local formatted_table_pers = m_string_utilities.format(table_spec_personal, forms)

-- Concatenate both. return require("Module:TemplateStyles")("Module:hi-verb/style.css") .. formatted_table_impers .. formatted_table_pers end

-- Implementation of template 'pa-verb cat'. -- NOTE: Not currently used. function export.catboiler(frame) local SUBPAGENAME = mw.title.getCurrentTitle.subpageText local params = { [1] = {},	}	local args = m_para.process(frame:getParent.args, params)

local function get_pos local pos = rmatch(SUBPAGENAME, "^Punjabi.- ([^ ]*)s ") if not pos then pos = rmatch(SUBPAGENAME, "^Punjabi.- ([^ ]*)s$") end if not pos then error("Invalid category name, should be e.g. \"Punjabi verbs with ...\" or \"Punjabi ... verbs\"") end return pos end

local function get_sort_key local pos, sort_key = rmatch(SUBPAGENAME, "^Punjabi.- ([^ ]*)s with (.*)$") if sort_key then return sort_key end pos, sort_key = rmatch(SUBPAGENAME, "^Punjabi ([^ ]*)s (.*)$") if sort_key then return sort_key end return rsub(SUBPAGENAME, "^Punjabi ", "") end

local cats = {}, pos

-- Insert the category CAT (a string) into the categories. String will -- have "Punjabi " prepended and ~ substituted for the plural part of speech. local function insert(cat, atbeg) local fullcat = "Punjabi " .. rsub(cat, "~", pos .. "s") if atbeg then table.insert(cats, 1, fullcat) else table.insert(cats, fullcat) end end

local maintext while true do		if args[1] then maintext = "~ " .. args[1] pos = get_pos break end

error("Unrecognized Punjabi verb category name") end

insert("~|" .. get_sort_key, "at beginning")

local categories = {} for _, cat in ipairs(cats) do		table.insert(categories, "") end

return "This category contains Punjabi " .. rsub(maintext, "~", pos .. "s") .. "\n" .. mw.getCurrentFrame:expandTemplate{title="hi-categoryTOC", args={}} .. table.concat(categories, "") end

-- Externally callable function to parse and conjugate a verb given user-specified arguments. -- Return value is WORD_SPEC, an object where the conjugated forms are in `WORD_SPEC.forms` -- for each slot. If there are no values for a slot, the slot key will be missing. The value -- for a given slot is a list of objects {form=FORM, translit=TRANSLIT, footnotes=FOOTNOTES}. function export.do_generate_forms(parent_args, pos, from_headword, def) local params = { [1] = {},		footnote_impers = {list = true}, footnote_pers = {list = true}, title = {}, }

if from_headword then params["lemma"] = {list = true} params["id"] = {} end

local args = m_para.process(parent_args, params) local PAGENAME = mw.title.getCurrentTitle.text

if not args[1] then if PAGENAME == "pa-conj" then args[1] = def or "ਵੇਖਣਾ" else args[1] = PAGENAME -- If pagename has spaces in it, add links around each word if args[1]:find(" ") then args[1] = "" .. rsub(args[1], " ", " ") .. "" end end end local parse_props = { parse_indicator_spec = parse_indicator_spec, lang = lang, transliterate_respelling = com.transliterate_respelling, allow_default_indicator = true, allow_blank_lemma = true, }	local alternant_multiword_spec = iut.parse_inflected_text(args[1], parse_props) alternant_multiword_spec.title = args.title alternant_multiword_spec.footnotes_impers = args.footnote_impers alternant_multiword_spec.footnotes_pers = args.footnote_pers alternant_multiword_spec.pos = pos or "verbs" alternant_multiword_spec.args = args com.normalize_all_lemmas(alternant_multiword_spec) detect_all_indicator_specs(alternant_multiword_spec) local inflect_props = { slot_table = all_verb_slots, lang = lang, inflect_word_spec = conjugate_verb, -- Return the variant code that was added to ensure only parallel variants in -- multiword expressions like हिलना-डुलना get generated. See com.add_variant_codes -- for more information. get_variants = alternant_multiword_spec.multiword and com.get_variants or nil, -- We add links around the generated verbal forms rather than allow the entire multiword -- expression to be a link, so ensure that user-specified links get included as well. include_user_specified_links = true, }	iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props) compute_categories_and_annotation(alternant_multiword_spec) return alternant_multiword_spec end

-- Entry point for. Template-callable function to parse and conjugate a verb given -- user-specified arguments and generate a displayable table of the conjugated forms. function export.show(frame) local parent_args = frame:getParent.args local alternant_multiword_spec = export.do_generate_forms(parent_args) show_forms(alternant_multiword_spec) return make_table(alternant_multiword_spec) .. require("Module:utilities").format_categories(alternant_multiword_spec.categories, lang) end

-- Concatenate all forms of all slots into a single string of the form -- "SLOT=FORM,FORM,...|SLOT=FORM,FORM,...|...". Each FORM is either a string in Devanagari or -- (if manual translit is present) a specification of the form "FORM//TRANSLIT" where FORM is the -- Devanagari representation of the form and TRANSLIT its manual transliteration. Embedded pipe symbols -- (as might occur in embedded links) are converted to <!>. If INCLUDE_PROPS is given, also include -- additional properties (currently, none). This is for use by bots. local function concat_forms(alternant_spec, include_props) local ins_text = {} for slot, _ in pairs(verb_slots_with_linked) do		local formtext = iut.concat_forms_in_slot(alternant_spec.forms[slot]) if formtext then table.insert(ins_text, slot .. "=" .. formtext) end end return table.concat(ins_text, "|") end

-- Template-callable function to parse and conjugate a verb given user-specified arguments and return -- the forms as a string of the same form as documented in concat_forms above. function export.generate_forms(frame) local include_props = frame.args["include_props"] local parent_args = frame:getParent.args local alternant_spec = export.do_generate_forms(parent_args) return concat_forms(alternant_spec, include_props) end

return export

title: Module:pnb-verb


text:
ചൂള

Noun

 * 1) brick kiln
 * 2) harlot
 * 3) whistle

title: ചൂള


text:
รหัสไปรษณีย์

Etymology
🇰🇲

Noun

 * 1) postcode, ZIP code

title: รหัสไปรษณีย์


text:
Module:pnb-verb/documentation

Supposed to be in a sandbox, but Module:pnb-verb/sandbox doesn't seem to be working. Intended to be converted from Module:pa-verb (Gurmukhi) for Shahmukhi lemmas.

title: Module:pnb-verb/documentation


text:
ushindani

Etymology
From.

Noun

 * 1) competition, rivalry

title: ushindani


text:
លេខប្រៃសណីយ៍

Etymology
🇰🇲

Noun

 * 1) postcode, ZIP code

title: លេខប្រៃសណីយ៍


text:
kekkarnor

Etymology
From a gerundive form of.

Noun

 * 1) striking, killing, hurting

title: kekkarnor


text:
장편소설

Etymology
.

Noun

 * 1) full-length novel

title: 장편소설


text:
단편

Etymology 1
.

Noun

 * 1) short story; short piece of fiction
 * 2) conte, disjecta membra

Etymology 2
.

Noun

 * 1) fraction, fragment; portion, part, piece

title: 단편


text: 콩트

title: 콩트


text: Category:Swahili terms derived from the Arabic root ز ك و


text:
장편

Etymology
.

Noun

 * 1) longform work; long novel

title: 장편


text:
ܓܒܪܬܐ

Etymology 1
Instance noun of the verb.

Noun

 * 1) instance of marrying
 * 2) manner of marrying
 * 3) marriage

Etymology 2
Active noun of the root.

Noun

 * 1) one who marries, about to marry, set to marry

title: ܓܒܪܬܐ


text: headectomies

title: headectomies


text: arytenoidectomies

title: arytenoidectomies


text:
중편소설

Etymology
.

Noun

 * 1) novella

title: 중편소설


text:
mwandani

Noun

 * 1) colleague, companion, confidant

title: mwandani


text:
User:نعم البدل/sandbox/pnb-conj-no-aspect

}


text:
رمز بريدي

Noun

 * 1) postcode, ZIP code

title: رمز بريدي


text: wandani

title: wandani


text: graftectomies

title: graftectomies


text:
User:نعم البدل/sandbox/pnb-conj

 * Note: The second-person polite form (āp) uses the third-person plural conjugation.

title: User:نعم البدل/sandbox/pnb-conj


text:
mã bưu chính

Etymology
, 🇰🇲.

Noun

 * 1) postcode, ZIP code

title: mã bưu chính


text: hoodectomies

title: hoodectomies


text: hypothalamectomies

title: hypothalamectomies


text: cerebellectomies

title: cerebellectomies


text:
pagkahalop

Etymology
From.

Noun

 * 1) gluttony, voracity

title: pagkahalop


text:
kahalopan

Etymology
From.

Noun

 * 1) gluttony, voracity

title: kahalopan


text: brainectomies

title: brainectomies


text:
halopon

Etymology
From.

title: halopon


text:
swing ride

Noun

 * 1) An amusement ride consisting of chairs suspended from a carousel.

Translations

 * Dutch:
 * Finnish:
 * French: chaises volantes
 * German:
 * Italian: calcinculo,, seggiolini volanti
 * Spanish: sillas voladoras
 * Swedish: kättingflygare, slänggunga
 * Vietnamese: đu quay, đu quay dây văng, đu quay văng

title: swing ride


text: parentectomies

title: parentectomies


text: panproctocolectomies

title: panproctocolectomies


text:
đu quay

Etymology
.

Noun

 * 1) carousel, merry-go-round
 * 2) swing ride, chairoplane
 * 3) Ferris wheel

title: đu quay


text: ophthalmectomies

title: ophthalmectomies


text:
단편 소설가

Etymology
.

Noun

 * 1) short story writer

title: 단편 소설가


text:
gundhuwundhuu

Adjective

 * 1) selfish
 * 2) stubborn
 * 3) sulky

title: gundhuwundhuu


text: oocytectomies

title: oocytectomies


text:
단편영화

Etymology
.

Noun

 * 1) short film

title: 단편영화


text: sacrectomies

title: sacrectomies


text:
cisza przed burzą

Etymology
lit. 'calm before the storm'.

Noun

 * 1)  calm before the storm

title: cisza przed burzą


text: fibulectomies

title: fibulectomies


text:
guyan

Adjective

 * 1) shy

title: guyan


text:
동화집

Etymology
.

Noun

 * 1) book or collection of fairy tales

title: 동화집


text: User:نعم البدل/sandbox

title: User:نعم البدل/sandbox


text:
수필집

Etymology
.

Noun

 * 1) essay collection

title: 수필집


text:
nie śmierdzieć groszem

Etymology
lit. 'to smell of no penny'.

Verb

 * 1)  to not have a pot to piss in

title: nie śmierdzieć groszem


text:
자료집

Etymology
.

Noun

 * 1) collection of data
 * 2) (collectively) documentation

title: 자료집


text:
vrum

Etymology
Probably borrowed from English.

Interjection

 * 1) vroom

title: vrum


text:
ഹരിതകം

Etymology
.

Noun

 * 1) chlorophyll, green color of leaves
 * 2) chlorine
 * 3) lion

title: ഹരിതകം


text:
łapać wiatr w żagle

Etymology
lit. 'to catch wind in the sails'.

Verb

 * 1)  to catch a wave

title: łapać wiatr w żagle


text:
złapać wiatr w żagle

Etymology
lit. 'to catch wind in the sails'.

Verb

 * 1)  to catch a wave

title: złapać wiatr w żagle


text:
sahibu

Etymology
.

Noun

 * 1) companion, friend

title: sahibu


text:
mesoclítico

Noun

 * 1) mesoclitic

title: mesoclítico


text: masahibu

title: masahibu


text:
ഹരിത

Etymology
.

Adjective

 * 1) green

title: ഹരിത


text: mesoclíticos

title: mesoclíticos


text: Category:Swahili terms derived from the Arabic root ص ح ب


text:
집집

Etymology
Doubling of.

Noun

 * 1) every house; every door

title: 집집


text:
螺絲鉆

Noun

 * 1)  a screw shaped drill

title: 螺絲鉆


text:
Steinmeier

Translations

 * German:
 * Russian:
 * Ukrainian: Штайнма́єр

Etymology
From.

title: Steinmeier


text: Category:Turkish terms derived from the Arabic root ص ح ب


text:
집터

Etymology
From +.

Noun

 * 1) site for a house

title: 집터


text: mabanati

title: mabanati


text:
샘터

Etymology
🇰🇲.

Noun

 * 1) fountain

title: 샘터


text:
Sistema Único de Saúde

Proper noun

 * 1)  Brazil's national public healthcare institution

title: Sistema Único de Saúde


text:
mlalamikaji

Etymology
From.

Noun

 * 1) complainer, complainant

title: mlalamikaji


text: walalamikaji

title: walalamikaji


text:
장터

Etymology
From 🇰🇲.

Noun

 * 1) market; marketplace

title: 장터


text:
de homem para homem

Etymology
lit. 'from man to man'.

Phrase

 * 1) man-to-man

title: de homem para homem


text:
절터

Etymology
From +.

Noun

 * 1) location of a temple

title: 절터


text:
mlalamikiwa

Etymology
From.

Noun

 * 1) defendant

title: mlalamikiwa


text: walalamikiwa

title: walalamikiwa


text:
erupcia

Noun

 * 1) eruption

title: erupcia


text:
eskalácia

Noun

 * 1) escalation

title: eskalácia


text:
eskalovať

Verb

 * 1) to escalate

title: eskalovať


text:
diyar

Etymology
, a plural form of.

Noun

 * 1)  country, land
 * 2) krai, territory (in Russia)
 * 1) krai, territory (in Russia)

Etymology
From, from , a plural form of.

Noun

 * 1) country, land

title: diyar


text:
Reconstruction:Proto-Brythonic/tanaw

Descendants
See.

title: Reconstruction:Proto-Brythonic/tanaw


text:
esplanáda

Noun

 * 1) esplanade

title: esplanáda


text:
Reconstruction:Proto-Tocharian/kekts'en-

Etymology
Probably from. Other theories compare 🇨🇬.

Noun

 * 1)  body


text:
eskortovať

Verb

 * 1) to escort

title: eskortovať


text:
mlalahoi

Noun

 * 1) poor person

title: mlalahoi


text: walalahoi

title: walalahoi


text:
estrogén

Noun

 * 1) estrogen

title: estrogén


text:
Proto-Yukaghir

Proper noun

 * 1)  The theoretical protolanguage which is the common ancestor of the Yukaghir languages.

title: Proto-Yukaghir


text:
etnocentrizmus

Noun

 * 1) ethnocentrism

title: etnocentrizmus


text:
藍田人

Proper noun

 * 1) Lantian Man

title: 藍田人


text: mafukara

title: mafukara


text: 蓝田人

title: 蓝田人


text: Category:Swahili terms derived from the Arabic root ف ق ر


text: करिए

title: करिए


text: कीजिएगा

title: कीजिएगा


text: करिएगा

title: करिएगा


text:
bez grosza przy duszy

Etymology
lit. 'without a penny near [one's] soul'.

Adjective

 * 1)  broke, penniless

Adverb

 * 1)  pennilessly

title: bez grosza przy duszy


text:
सूंड

Noun

 * 1) trunk extended nasal organ of an elephant

title: सूंड


text: Category:hi:Elephants

title: Category:hi:Elephants


text:
外堀を埋める

Verb

 * 1)  to remove obstacles in the way of one's objective

title: 外堀を埋める


text:
dominação

Etymology
..

Noun

 * 1) domination

title: dominação


text: proclamações

title: proclamações


text: dominações

title: dominações


text:
siedzieć jak mysz pod miotłą

Etymology
lit. 'to sit like a mouse under a broom'.

title: siedzieć jak mysz pod miotłą


text:
गजदंत

Etymology
From.

Noun

 * 1) tusk of an elephant

title: गजदंत


text: person-year

title: person-year


text: person-years

title: person-years


text:
silak

Noun

 * 1) split; cleft
 * 2) act of cleaving
 * 3) cleavage

title: silak


text:
siedzieć cicho jak mysz pod miotłą

Etymology
lit. 'to sit as quiet as a mouse under a broom'.

Verb

 * 1)  to be as quiet as a mouse

title: siedzieć cicho jak mysz pod miotłą


text: talking down to

title: talking down to


text: talked down to

title: talked down to


text:
indyk myślał o niedzieli, a w sobotę łeb mu ścięli

Etymology
Rhyme, lit. 'a turkey was thinking about Sunday, and on Saturday, it was beheaded'.


text: puss-pusses

title: puss-pusses


text: обох

title: обох


text: обом

title: обом


text: обома

title: обома


text:
산화

Etymology 1
.

Etymology 2
.

Noun

 * 1)  oxidation, oxidization

Etymology 3
.

Etymology 4
.

Noun

 * 1)  a flower that blooms but does not bear fruit
 * 2)  noble death in battle
 * 3)  the scattering of flowers as an offering to the Buddha
 * 1)  the scattering of flowers as an offering to the Buddha

title: 산화


text: двох

title: двох


text: двом

title: двом


text: двома

title: двома


text:
абодва

Etymology
, from, from. .

Numeral

 * 1) both

title: абодва


text: абедзве

title: абедзве


text: ghetto lotteries

title: ghetto lotteries


text:
avatsmansi

Noun

 * 1) beardtongue,  ambiguus

title: avatsmansi


text:
slinta

Verb

 * 1) to slip so as to (nearly) have an accident or other undesirable outcome
 * 2)  to have a slip of the tongue
 * 3) to lose one's footing; to slip
 * 1) to lose one's footing; to slip
 * 1) to lose one's footing; to slip

title: slinta


text:
വഴിപാട്

Etymology
From. Compare 🇨🇬.

Noun

 * 1)  offering for deities

title: വഴിപാട്


text:
암꽃

Etymology
From.

Noun

 * 1)  pistillate (female) flower

title: 암꽃


text: Category:Turkish terms suffixed with -ek


text: ten for the big guy

title: ten for the big guy


text: plays the hand one is dealt

title: plays the hand one is dealt


text: playing the hand one is dealt

title: playing the hand one is dealt


text: played the hand one was dealt

title: played the hand one was dealt


text: overplayed one's hand

title: overplayed one's hand


text: overplaying one's hand

title: overplaying one's hand


text: overplays one's hand

title: overplays one's hand


text:
betonipylväs

Noun

 * 1) concrete bollard

title: betonipylväs


text: knows when to fold 'em

title: knows when to fold 'em


text: knowing when to fold 'em

title: knowing when to fold 'em


text: knew when to fold 'em

title: knew when to fold 'em


text: known when to fold 'em

title: known when to fold 'em


text: pushes one's luck

title: pushes one's luck


text: pushing one's luck

title: pushing one's luck


text: pushed one's luck

title: pushed one's luck


text:
간암

Etymology
.

Noun

 * 1)  liver cancer

title: 간암


text:
뇌암

Etymology
.

Noun

 * 1)  brain cancer

title: 뇌암


text:
разжигатель

Noun

 * 1) fomenter, firestarter

title: разжигатель


text:
설암

Etymology
.

Noun

 * 1)  oral cancer; mouth cancer

title: 설암


text:
폐암

Etymology
.

Noun

 * 1)  lung cancer

title: 폐암


text:
암종

Etymology
.

Noun

 * 1)  carcinoma

title: 암종


text:
악성종양

Etymology
.

Noun

 * 1)  a malignant tumor; cancer

title: 악성종양


text: N展

title: N展


text:
점자

Etymology
.

Noun

 * 1) braille writing system

title: 점자


text:
수평아리

Etymology
From +.

Noun

 * 1) male chick baby chicken

title: 수평아리


text:
counterdirectional

Adjective

 * 1) Of or related to the opposite direction.

title: counterdirectional


text:
嘥銀時

Etymology
Humorous. Literally, suggesting that science is a waste of time and money due to the lack of career paths.

Noun

 * 1)  science subjects or majors

title: 嘥銀時


text:
수탕나귀

Etymology
From +.

Noun

 * 1) male donkey

title: 수탕나귀


text:
수캉아지

Etymology
From +.

Noun

 * 1) male puppy

title: 수캉아지


text:
수놈

Etymology
From +.

Noun

 * 1) a male

title: 수놈


text:
грн

Pronunciation

 * For pronunciations of the inflected forms, see гривня
 * For pronunciations of the inflected forms, see гривня

Noun

 * 1) hryvnia, hryvna, grivna

title: грн


text:
수나사

Etymology
From +.

Noun

 * 1) bolt ("female" screw)

title: 수나사


text: Arciszewski

title: Arciszewski


text:
수꿩

Etymology
From +.

Noun

 * 1) male pheasant

title: 수꿩


text:
암꿩

Etymology
From +.

Noun

 * 1) female pheasant

title: 암꿩


text:
bobrować

Etymology
From. .

Verb

 * 1)  to search for food while wading in water
 * 2)  to ferret, to search for something turning things over in the process

title: bobrować


text:
അടിസ്ഥാന

Etymology
.

Adjective

 * 1) fundamental
 * 2) basic

title: അടിസ്ഥാന