text:
крестильный

Adjective

 * 1) baptismal, of or related to baptism

title: крестильный


text:
lồi xỉ

Etymology
🇰🇲; the second element is the.

It is not clear why Sino-Vietnamese is used here instead of native.

Adjective

 * 1)  having protruding teeth, especially protruding maxillary canines

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

title: lồi xỉ


text: Stepfordesque

title: Stepfordesque


text:
عنفوان

Etymology
.

Noun

 * 1) prime, splendor (of youth)

title: عنفوان


text:
tajutaju

Etymology
From.

Noun

 * 1) tear gas
 * 2)  alcohol
 * 1)  alcohol
 * 1)  alcohol

title: tajutaju


text:
morde e assopra

Etymology
lit. 'bite and blow'.

Noun

 * 1)  the act of repeatedly fighting and making amends

title: morde e assopra


text:
duck shoot

Noun

 * 1)  Something very easy; a piece of cake.

title: duck shoot


text: duck shoots

title: duck shoots


text:
body-paint

Verb

 * 1)  To paint (something) on a person's skin.
 * 2)  To apply body paint onto the skin of (someone).
 * 1)  To apply body paint onto the skin of (someone).

title: body-paint


text: body paints

title: body paints


text: body-painted

title: body-painted


text: body-paints

title: body-paints


text: body-painting

title: body-painting


text:
Appendix:Finnish

This is an index into Wiktionary appendices that concern the Finnish language.

In the Appendix namespace

 * Adverbial cases
 * Alphabet
 * Basic glossary
 * Bibliography
 * Colloquial Finnish
 * Conjugation (verbal inflection)
 * Consonant gradation
 * Declension (nominal inflection)
 * Descriptive terms
 * Dialects
 * Dictionary-only terms
 * Eastern Finnish reflexive verbs
 * Enclitic particles
 * Given names
 * Glossary
 * Historical spelling
 * Homonyms
 * Hyphenation
 * Idioms
 * Impersonal verbs
 * Letters
 * Nominal forms
 * Numbers (numerals)
 * Palindromes
 * Participles
 * Poetic forms
 * Polarity pairs
 * Polite forms
 * Possessive suffixes
 * Postpositions
 * Pronunciation
 * Punctuation
 * Spelling alphabet
 * Suffixes
 * Surnames
 * Swadesh list
 * Telicity
 * Tongue twisters
 * Toponyms (place names)
 * Verb aspects
 * Verb forms
 * Verb phrases

In the Wiktionary namespace

 * About Finnish – General information about the treatment of Finnish on Wiktionary.
 * Frequency lists – Frequency lists and frequency data for Finnish words.
 * Headword-line templates – Information about the templates for Finnish headword lines.
 * Nominal inflection-table templates – Information about the templates used to mark Finnish nominal inflections.

 * Verb inflection-table templates – Information about the templates used to mark Finnish verbal inflections.

Categories

 * Category:Finnish language
 * Category:Finnish lemmas

title: Appendix:Finnish


text: 持て持て

title: 持て持て


text: もてもて

title: もてもて


text: писанкарка

title: писанкарка


text:
Paio

Etymology
, from, from , from , from. Compare 🇨🇬; cf. also 🇨🇬.

title: Paio


text:
дряпанка

Etymology
Compare 🇨🇬.

Noun

 * 1) a painted Easter egg decorated by scratching it's shell

title: дряпанка


text: amuéblala

title: amuéblala


text: amuéblalas

title: amuéblalas


text: amuéblale

title: amuéblale


text: amuéblales

title: amuéblales


text: amuéblalo

title: amuéblalo


text: amuéblalos

title: amuéblalos


text: amuéblame

title: amuéblame


text: amuéblanos

title: amuéblanos


text: amuéblele

title: amuéblele


text: amuéblate

title: amuéblate


text: anastomosate

title: anastomosate


text: amuéblela

title: amuéblela


text: amuéblelas

title: amuéblelas


text:
as bajo la manga

Noun

 * 1) ace up one's sleeve

title: as bajo la manga


text:
para a frentex

Etymology
From.

Adjective

 * 1)  innovative, trendy

title: para a frentex


text:
aceite de canola

Noun

 * 1) canola oil

title: aceite de canola


text:
villa miseria

Noun

 * 1)  shantytown

title: villa miseria


text:
ve chica

Noun

 * 1) v letter

title: ve chica


text:
ve baja

Noun

 * 1) v letter

title: ve baja


text:
tóc tai

Etymology
Probably 🇰🇲.

Noun

 * 1)  hair; hairstyle

title: tóc tai


text:
simple y llanamente

Adverb

 * 1) plain and simple

title: simple y llanamente


text:
trocar ideias

Etymology
lit. 'to exchange ideas'.

title: trocar ideias


text:
razón de Estado

Noun

 * 1) national interest

title: razón de Estado


text:
otro yo

Noun

 * 1) alter ego

title: otro yo


text:
olla de cocción lenta

Noun

 * 1) slow cooker

title: olla de cocción lenta


text:
labio leporino

Noun

 * 1) cleft palate

title: labio leporino


text: gamóns

title: gamóns


text:
enzima convertidora de angiotensina

Noun

 * 1) angiotensin converting enzyme

title: enzima convertidora de angiotensina


text:
Zhanghua

Etymology
From the romanization of the.

title: Zhanghua


text:
bép xép

Verb

 * 1)  to run one's mouth

title: bép xép


text: Jūyōngguān

title: Jūyōngguān


text:
cilve

Etymology
, from, verbal noun of.

Noun

 * 1) A behavior meant to please or seem cute, flirtatious or coquettish attitude.
 * 2)  An act of appearing, manifesting.
 * 1)  An act of appearing, manifesting.

title: cilve


text:
wear in

Verb

 * 1)  To use or wear something until it becomes comfortable or fits properly

title: wear in


text:
ج م ه ر

Etymology
.

Derived terms

 * Verbs

 * Nouns

title: ج م ه ر


text:
natni

Noun

 * 1) accuracy

title: natni


text:
công thức hoá học

Etymology
🇰🇲.

Noun

 * 1)  a chemical formula

title: công thức hoá học


text:
ইলিয়াস

Etymology
.

Proper noun

 * 1)  Elijah

title: ইলিয়াস


text:
추축국

Etymology
.

Proper noun

 * 1)  Axis power

title: 추축국


text:
ontvangstcomité

Etymology
From

Noun

 * 1) welcoming committee

title: ontvangstcomité


text: 樞軸國

title: 樞軸國


text:
matrixé

Etymology
A reference to the film . Popularized around 2022.

Adjective

 * 1)  for something to have had a profound impact on a person, to have had one's worldview changed
 * 2)  to be under the influence of someone, to be indoctrinated
 * 3)  to be hooked on some activity (e.g. watching too much television)

title: matrixé


text:
phương trình hoá học

Etymology
🇰🇲.

Noun

 * 1)  a chemical equation

Synonyms

 * phương trình biểu diễn phản ứng hoá học

title: phương trình hoá học


text:
monoethylene

Adjective

 * 1)  Having only one  group in a molecule

title: monoethylene


text: ontvangstcomités

title: ontvangstcomités


text: phản ứng hóa học

title: phản ứng hóa học


text:
연합국

Etymology
.

Proper noun

 * 1)  Allies
 * 2)  Allies

title: 연합국


text:
roodstaart

Etymology
Compound of. Compare 🇨🇬, 🇨🇬.

Noun

 * 1)  A redstart; a bird of the genus

title: roodstaart


text:
alarmsysteem

Etymology
From

Noun

 * 1) alarm system

title: alarmsysteem


text:
Агри

Etymology
From

title: Агри


text: alarmsystemen

title: alarmsystemen


text:
gekraagd

Etymology
From, formed as if the past participle of a verb *kragen.

Adjective

 * 1) collared, frilled

title: gekraagd


text: gekraagde

title: gekraagde


text:
zwarte roodstaart

Noun

 * 1)  The black redstart,

title: zwarte roodstaart


text:
масажер

Noun

 * 1) massager

title: масажер


text: масажери

title: масажери


text: 南豐

title: 南豐


text: масери

title: масери


text:
Reconstruction:Proto-Finnic/väntädäk

Etymology
. Borrowing from, is now considered unlikely.

Verb

 * 1) to twist
 * 2) to turn

Descendants

 * North Karelian:
 * South Karelian:
 * North Karelian:
 * South Karelian:
 * North Karelian:
 * South Karelian:

title: Reconstruction:Proto-Finnic/väntädäk


text: кинооператорите

title: кинооператорите


text:
gemakkelijkheid

Etymology
From.

Noun

 * 1) easiness

title: gemakkelijkheid


text:
regenwulp

Etymology
From.

Noun

 * 1)  The whimbrel, ,

title: regenwulp


text: solísima

title: solísima


text: skǫkum

title: skǫkum


text:
Talk:breatharian

pronunciation
(cross-posted from talk:breatharianism .... well, i just noticed that the word air doesnt appear in this word. I have only heard this word spoken out loud once, and didnt know the spelling, but i got the impression it was intended to be "breathe-AIR-ianism", and when i did come across it in print i assumed the lack of the e after breath was just to conform to normal English spelling conventions.  But both the pronunciation and our etymology suggest that  is not involved in this word at all.  Thoughts? — Soap — 13:02, 8 April 2023 (UTC)

 * The word doesn't come from "breathe air", but "breath" + "-arian", similar to vegetarian, fruitarian, and meatarian. 2600:1006:B171:35A1:0:28:5899:2F01 22:35, 26 May 2023 (UTC)

title: Talk:breatharian


text:
evaporizar

Etymology
From.

Verb

 * 1)  to reduce a liquid to a vapor state by evaporation
 * 2)  to dissipate
 * 3)  to turn into steam by evaporation
 * 4)  to evolve; to vanish

title: evaporizar


text:
ಉದ್ದು

Etymology
From, from. Cognate with 🇨🇬.

Noun

 * 1) black gram, urad

title: ಉದ್ದು


text: skakið

title: skakið


text:
가업

Etymology
.

Noun

 * 1) family business

title: 가업


text:
ಉೞ್ದು

Etymology
.

Noun

 * 1) black gram, urad

title: ಉೞ್ದು


text:
silverpatch

Noun

 * 1) A tropical American butterfly of the genus

title: silverpatch


text: Aides

title: Aides


text:
somalización

Noun

 * 1) Somalization

title: somalización


text:
semirruina

Noun

 * 1) near decay

title: semirruina


text:
sartreano

Etymology
From.

Adjective

 * 1) Sartrean

title: sartreano


text:
gemakkelijkheidsoplossing

Etymology
From. .

Noun

 * 1)  path of least resistance, easy way out

title: gemakkelijkheidsoplossing


text:
sancionamiento

Noun

 * 1) sanctioning

title: sancionamiento


text:
salarialmente

Adverb

 * 1) salarially

title: salarialmente


text:
reconfinar

Verb

 * 1) to reconfine
 * 2) to put back into lockdown

title: reconfinar


text:
cornetazo

Noun

 * 1)  honking of vehicle horn

title: cornetazo


text:
prevailing wind

Noun

 * 1)  A wind in a region of the Earth that blows predominantly from one direction.

title: prevailing wind


text: Titiotus

title: Titiotus


text:
Leiurus

Hyponyms

 * - type species

title: Leiurus


text: prevailing winds

title: prevailing winds


text:
Buthus

Hyponyms

 * - type species

title: Buthus


text:
sıla

Etymology
, from  or, verbal noun of.

Noun

 * 1) An act of reuniting with the loved ones or a place after a long time.
 * 2) (for someone away from their home) One's dearly missed birthplace or hometown.
 * 1) (for someone away from their home) One's dearly missed birthplace or hometown.

title: sıla


text:
gun licence

Noun

 * 1) A license or permit issued by a government authority (typically by the police) of a jurisdiction, that allows the licensee to buy, own, possess, or carry a firearm.

Translations

 * Finnish:
 * German:
 * Italian: porto d'armi, licenza di porto d'armi
 * Polish: pozwolenie na broń
 * Swedish:

title: gun licence


text:
oleiście

Etymology
From.

Adverb

 * 1) oilily
 * 2) greasily, oilily, oleaginously, smarmily, unctuously

title: oleiście


text:
দারুণ

Etymology
, from. Extensive semantic shifts created opposite meanings; "hard, rough" > "intense, severe" > "amazing, brilliant", "cruel, violent" and "hard, difficult".

Adjective

 * 1) amazing, fascinating, fabulous; cool
 * 2) brilliant
 * 3) intense, severe
 * 4) cruel, violent
 * 5) hard, difficult

title: দারুণ


text: Glyphis

title: Glyphis


text:
dissuasion nucléaire

Noun

 * 1)  nuclear deterrence

title: dissuasion nucléaire


text:
कमळ

Etymology
.

Noun

 * 1) lotus

title: कमळ


text:
nemna

Etymology
From the verb, from. Cognates include 🇨🇬, not least the other North-Germanic languages 🇨🇬, 🇨🇬, 🇨🇬, and 🇨🇬 (🇨🇬).

Verb

 * 1)  to mention
 * 2)  to utter, say out loud
 * 3)  to mark with a name, e.g. by putting on a name tag
 * 4)  to call; to give a name to
 * 1)  to call; to give a name to

title: nemna


text: Wiktionary:Word of the day/2023/September 29


text:
auto-victimisation

Etymology
fr

Noun

 * 1) self-victimization, victim playing

title: auto-victimisation


text:
Vílnius

Etymology
.

title: Vílnius


text:
kleine barmsijs

Noun

 * 1)  The lesser redpoll,

title: kleine barmsijs


text:
Jezi

Etymology
From

title: Jezi


text:
ಪರ್ದು

Etymology
From. Cognate with 🇨🇬.

Noun

 * 1) an eagle
 * 2) a vulture

title: ಪರ್ದು


text: Ponte do Lima

title: Ponte do Lima


text:
ಹದ್ದು

Etymology
From, from. Cognate with 🇨🇬.

Noun

 * 1) an eagle

title: ಹದ್ದು


text:
Reconstruction:Proto-Albanian/manta

Etymology
Said by Beekes to be a Mediterranean wanderwort. Compare 🇨🇬 and (Dacian loan).

Noun

 * 1) mulberry, mulberry tree

title: Reconstruction:Proto-Albanian/manta


text: Santolina

title: Santolina


text: Category:sqj-pro:Fruits

title: Category:sqj-pro:Fruits


text: Category:sqj-pro:Foods

title: Category:sqj-pro:Foods


text: Category:sqj-pro:Food and drink

title: Category:sqj-pro:Food and drink


text:
կենսագիր

Etymology
From.

Noun

 * 1) biographer

title: կենսագիր


text:
ground cypress

Noun

 * 1) A European shrub of species, with yellow flowers.

title: ground cypress


text: Cộng hòa Dân chủ Đức

title: Cộng hòa Dân chủ Đức


text:
cotton lavender

Noun

 * 1) ground cypress

title: cotton lavender


text: Xībólìyǎ

title: Xībólìyǎ


text:
Reconstruction:Proto-Albanian/dwōrā

Etymology
From.

Noun

 * 1) door

title: Reconstruction:Proto-Albanian/dwōrā


text:
holy flax

Noun

 * 1) A European shrub,.

title: holy flax


text:
Jezila

Etymology
From.

title: Jezila


text:
բառարանագիր

Etymology
From.

Noun

 * 1) lexicographer

title: բառարանագիր


text:
Tây Đức

Etymology
.

Proper noun

 * 1) West Germany

title: Tây Đức


text:
Reconstruction:Proto-Albanian/źak-

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

Noun

 * 1) blood

title: Reconstruction:Proto-Albanian/źak-


text:
Đông Đức

Etymology
.

Proper noun

 * 1) East Germany

Synonyms

 * (German Democratic Republic)

title: Đông Đức


text:
բառարանագրություն

Noun

 * 1) lexicography

title: բառարանագրություն


text:
riijellä

Etymology
From, equivalent to. Cognates include 🇨🇬 and 🇨🇬.

Verb

 * 1)  to quarrel, argue

title: riijellä


text:
Asefi

Etymology
From

title: Asefi


text:
बुगडी

Noun

 * 1)  bugadi, a type of ear ornament.

title: बुगडी


text: Template:RQ:Gorey My Spanking Diary

title: Template:RQ:Gorey My Spanking Diary


text:
çömlek

Etymology
, derived from, further origin is tr.

Cognates with 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬.

Noun

 * 1) An earthenware pot.

title: çömlek


text:
Reconstruction:Proto-Albanian/gabā

Etymology
From (compare 🇨🇬, 🇨🇬, 🇨🇬).

Noun

 * 1) bird of prey
 * 2) eagle, griffon vulture

title: Reconstruction:Proto-Albanian/gabā


text: Category:sqj-pro:Birds

title: Category:sqj-pro:Birds


text:
pridan

Etymology
From.

Adjective

 * 1) prudent

title: pridan


text:
Pridan

Etymology
From, equivalent to.

title: Pridan


text:
Module:User:Surjection/fi-nominals

local m_utilities = require("Module:utilities") local m_links = require("Module:links") local m_bit32 = require("bit32")

local export = {}

local lang = require("Module:languages").getByCode("fi")

-- Functions that do the actual inflecting by creating the forms of a basic term. local inflections = {}

local kotus_grad_type = { ["kk-k"] = "A", ["pp-p"] = "B", ["tt-t"] = "C", ["k-"] = "D", ["p-v"] = "E", ["t-d"] = "F", ["nk-ng"] = "G", ["mp-mm"] = "H", ["lt-ll"] = "I", ["nt-nn"] = "J", ["rt-rr"] = "K", ["k-j"] = "L", ["k-v"] = "M" }

-- Creates a link to a form. local function make_link(term, accel_form) -- if there is something difficult, use full module. if term:find(":") or term:find("<") then return m_links.full_link({			lang = lang,			term = term,			accel = accel_form and ({ form = accel_form }) or nil		}) end -- otherwise, we can save a ton of memory by doing this manually. if term == mw.title.getCurrentTitle.fullText then return ' ' .. term .. ' '	end if not accel_form then return ' ' .. term .. ' ' end return '' .. term .. ' ' end

local function do_inflection_internal(data, argobj) local args = argobj.args argobj.pos = 1

data.words = {} data.num = 1 data.forms = nil data.categories = {} for num, infl_type in ipairs(data.infl_types) do		-- initialize data for single word local word_data = {forms = {}, title = nil, categories = {}} -- word index word_data.num = num data.num = num -- Generate the forms inflections[infl_type](argobj, word_data) postprocess_word(argobj, word_data, data, num == #data.infl_types) word_data.class = infl_type data.words[num] = word_data end

if #data.words == 1 then data.vh = data.words[1]["vh"] end -- join the inflected word components export.join_words(data, function (n) return args["space" .. tostring(n)] or args["space"] or " " end) -- Postprocess postprocess(args, data) end

-- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local infl_type = frame.args[1] or error("Inflection type has not been specified. Please pass parameter 1 to the module invocation") local args = frame:getParent.args local infl_types = {infl_type} infl_types = mw.text.split(infl_type, "%-") for _, type in ipairs(infl_types) do		if not inflections[type] then error("Unknown inflection type '" .. infl_type .. "'") end end local pos = args["pos"]; if not pos or pos == "" then pos = "noun" end local allow_possessive = (pos == "noun" or pos == "adj") and not args["noposs"] and not args["poss"] -- initialize data for full inflection process local data = {infl_types = infl_types} local argobj = {args = args}

do_inflection_internal(data, argobj)

if args["type"] then table.insert(data.categories, "fi-decl with type") end if args["nocheck"] then table.insert(data.categories, "fi-decl with nocheck") end if args["nosg"] then table.insert(data.categories, "fi-decl with nosg") end if args["nopl"] then table.insert(data.categories, "fi-decl with nopl") end local function get_poss_forms(poss) data.poss = poss do_inflection_internal(data, argobj) return data end

local categories = m_utilities.format_categories(data.categories, lang)

return make_table(data, true) .. (allow_possessive and make_possessive_table(args, pos, infl_type, get_poss_forms) or "") .. categories .. require("Module:TemplateStyles")("Module:fi-nominals/style.css") end

function get_params(argobj, num, invert_grades) local params = {} local args = argobj.args local pos = argobj.pos if num == 5 then params.base = args[pos] or (mw.title.getCurrentTitle.nsText == "Template" and ""); if not params.base or params.base == "" then error("Parameter " .. tostring(pos) .. " (base stem) may not be empty.") end params.strong = args[pos + 1] or (mw.title.getCurrentTitle.nsText == "Template" and ""); if not params.strong then error("Parameter " .. tostring(pos + 1) .. " (nominative grade) may not be omitted.") end params.weak = args[pos + 2] or (mw.title.getCurrentTitle.nsText == "Template" and ""); if not params.weak then error("Parameter " .. tostring(pos + 2) .. " (genitive grade) may not be omitted.") end params.final = args[pos + 3] or (mw.title.getCurrentTitle.nsText == "Template" and ""); if not params.final or params.final == "" then error("Parameter " .. tostring(pos + 3) .. " (final letter(s)) may not be empty.") end params.a = args[pos + 4] or (mw.title.getCurrentTitle.nsText == "Template" and "a"); if params.a ~= "a" and params.a ~= "ä" then error("Parameter " .. tostring(pos + 4) .. " must be \"a\" or \"ä\".") end elseif num == 4 then params.base = args[pos] or (mw.title.getCurrentTitle.nsText == "Template" and ""); if not params.base or params.base == "" then error("Parameter " .. tostring(pos) .. " (base stem) may not be empty.") end params.strong = args[pos + 1] or (mw.title.getCurrentTitle.nsText == "Template" and ""); if not params.strong then error("Parameter " .. tostring(pos + 1) .. " (nominative grade) may not be omitted.") end params.weak = args[pos + 2] or (mw.title.getCurrentTitle.nsText == "Template" and ""); if not params.weak then error("Parameter " .. tostring(pos + 2) .. " (genitive grade) may not be omitted.") end params.a = args[pos + 3] or (mw.title.getCurrentTitle.nsText == "Template" and "a"); if params.a ~= "a" and params.a ~= "ä" then error("Parameter " .. tostring(pos + 3) .. " must be \"a\" or \"ä\".") end elseif num == 2 then params.base = args[pos] or (mw.title.getCurrentTitle.nsText == "Template" and ""); if not params.base or params.base == "" then error("Parameter " .. tostring(pos) .. " (base stem) may not be empty.") end params.a = args[pos + 1] or (mw.title.getCurrentTitle.nsText == "Template" and "a"); if params.a ~= "a" and params.a ~= "ä" then error("Parameter " .. tostring(pos + 1) .. " must be \"a\" or \"ä\".") end elseif num == 1 then params.base = args[pos] or "" end -- Swap the grades if invert_grades then params.strong, params.weak = params.weak, params.strong end if params.a then params.o = params.a == "ä" and "ö" or "o" params.u = params.a == "ä" and "y" or "u" end argobj.pos = argobj.pos + num return params end

function get_extra_arg(argobj, wdata, name) return argobj.args[name .. wdata.num] or argobj.args[name] end

local make_weak = require("Module:fi-utilities").make_weak

--[=[	Inflection functions ]=]--

local stem_endings = {}

stem_endings["nom_sg"] = { ["nom_sg"] = "", }

stem_endings["sg"] = { ["ess_sg"] = "na", }

stem_endings["sg_weak"] = { ["gen_sg"] = "n", ["ine_sg"] = "ssa", ["ela_sg"] = "sta", ["ade_sg"] = "lla", ["abl_sg"] = "lta", ["all_sg"] = "lle", ["tra_sg"] = "ksi", ["ins_sg"] = "n", ["abe_sg"] = "tta", ["nom_pl"] = "t", }

stem_endings["par_sg"] = { ["par_sg"] = "a", }

stem_endings["ill_sg"] = { ["ill_sg"] = "Vn", }

stem_endings["pl"] = { ["ess_pl"] = "na", ["com_pl"] = "ne", }

stem_endings["pl_weak"] = { ["ine_pl"] = "ssa", ["ela_pl"] = "sta", ["ade_pl"] = "lla", ["abl_pl"] = "lta", ["all_pl"] = "lle", ["tra_pl"] = "ksi", ["ins_pl"] = "n", ["abe_pl"] = "tta", }

stem_endings["par_pl"] = { ["par_pl"] = "a", }

stem_endings["gen_pl"] = { ["gen_pl"] = "en", }

stem_endings["ill_pl"] = { ["ill_pl"] = "Vn", }

-- data for generating possessive forms -- suffixes per person local poss_forms = {["1s"] = "ni", ["2s"] = "si", ["3s"] = "nsa", ["1p"] = "mme", ["2p"] = "nne"} local poss_forms_optimized = { ["00"] = "",					["3s"] = "nsa"} local poss_alt = { ["00"] = false, ["1s"] = false, ["2s"] = false, ["3s"] = true, -- shorter form -Vn ["1p"] = false, ["2p"] = false} -- which forms allow -nsa > -Vn? local forms_alt_ok = { ["gen_sg"] = false, ["gen_pl"] = false, ["par_sg"] = false, ["par_pl"] = true, ["ine_sg"] = true, ["ine_pl"] = true, ["ela_sg"] = true, ["ela_pl"] = true, ["ill_sg"] = false, ["ill_pl"] = false, ["ade_sg"] = true, ["ade_pl"] = true, ["abl_sg"] = true, ["abl_pl"] = true, ["all_sg"] = true, ["all_pl"] = true, ["ess_sg"] = true, ["ess_pl"] = true, ["tra_sg"] = true, ["tra_pl"] = true, ["ins_sg"] = false, ["ins_pl"] = false, ["abe_sg"] = true, ["abe_pl"] = true, ["com_sg"] = true, ["com_pl"] = true, } -- which forms end in -n? -- (in which case it is dropped before the possessive suffix) local forms_gen_ok = { ["gen_sg"] = true, ["gen_pl"] = true, ["ill_sg"] = true, ["ill_pl"] = true, ["ins_sg"] = true, ["ins_pl"] = true, }

-- Make a copy of the endings, with front vowels stem_endings = {["a"] = stem_endings, ["ä"] = mw.clone(stem_endings)}

for stem_key, endings in pairs(stem_endings["ä"]) do	for key, ending in pairs(endings) do		endings[key] = mw.ustring.gsub(endings[key], "([aou])", {["a"] = "ä", ["o"] = "ö", ["u"] = "y"}) end end

-- Create any stems that were not given local function make_stems(data, stems) if not stems["nom_sg"] and stems["sg"] then stems["nom_sg"] = mw.clone(stems["sg"]) end if not stems["par_sg"] and stems["sg"] then stems["par_sg"] = mw.clone(stems["sg"]) end if not stems["ill_sg"] and stems["sg"] then stems["ill_sg"] = {} for _, stem in ipairs(stems["sg"]) do			-- If the stem ends in a long vowel or diphthong, then add -h if mw.ustring.find(stem, "([aeiouyäö])%1$") or mw.ustring.find(stem, "[aeiouyäö][iyü]$") then table.insert(stems["ill_sg"], stem .. "h") else table.insert(stems["ill_sg"], stem) end end end if not stems["par_pl"] and stems["pl"] then stems["par_pl"] = {} for _, stem in ipairs(stems["pl"]) do			table.insert(stems["par_pl"], stem) end end if not stems["gen_pl"] and stems["par_pl"] then stems["gen_pl"] = {} for _, stem in ipairs(stems["par_pl"]) do			-- If the partitive plural stem ends in -it, then replace the t with d or tt			if mw.ustring.find(stem, "it$") then table.insert(stems["gen_pl"], (mw.ustring.gsub(stem, "t$", "d"))) table.insert(stems["gen_pl"], stem .. "t") else table.insert(stems["gen_pl"], stem) end end end if not stems["ill_pl"] and stems["pl"] then stems["ill_pl"] = {} for _, stem in ipairs(stems["pl"]) do			table.insert(stems["ill_pl"], stem) end end end

-- Create forms based on each stem, by adding endings to it local function process_stems(data, stems, vh) if not stems["sg_weak"] and stems["sg"] then stems["sg_weak"] = mw.clone(stems["sg"]) end if not stems["pl_weak"] and stems["pl"] then stems["pl_weak"] = mw.clone(stems["pl"]) end -- Go through each of the stems given for stem_key, substems in pairs(stems) do		for _, stem in ipairs(substems) do			-- Attach the endings to the stem for form_key, ending in pairs(stem_endings[vh][stem_key]) do				if not data.forms[form_key] then data.forms[form_key] = {} end -- "V" is a copy of the last vowel in the stem if mw.ustring.find(ending, "V") then local vowel = mw.ustring.match(stem, "([aeiouyäö])[^aeiouyäö]*$") ending = mw.ustring.gsub(ending, "V", vowel or "?") end table.insert(data.forms[form_key], stem .. ending) end end end data["stems"] = stems data["vh"] = vh end

local function merge_stems(stems_a, stems_b) local stems_m = {} -- implying same keys for both stems for stem_key, substems in pairs(stems_a) do		stems_m[stem_key] = mw.clone(substems) for _, bstem in pairs(stems_b[stem_key] or {}) do			table.insert(stems_m[stem_key], bstem) end end return stems_m end

local function make_kotus_title_number(type_number) return "Kotus type " .. type_number end

local function make_kotus_title_word(reference_word) return "/" .. reference_word .. "" end

local function make_kotus_title(number, reference_word) return make_kotus_title_number(number) .. make_kotus_title_word(reference_word) end

local function inflection_type_is(data, number, reference_word, strong, weak) local title = make_kotus_title_number(number) local has_gradation = strong and strong ~= weak

if has_gradation then local letter = kotus_grad_type[strong .. "-" .. weak] if letter then title = title .. "*" .. letter else title = title .. "*"		end end

title = title .. make_kotus_title_word(reference_word)

if has_gradation then local EMPTY = " ∅ " local function format(grade) if grade == "" then return EMPTY else return "''" .. grade .. "''"			end end title = title .. ", " .. format(strong) .. "-" .. format(weak) .. " gradation" else title = title .. ", no gradation" end

data.title = title

table.insert(data.categories, "Finnish " .. reference_word .. "-type nominals") end

inflections["valo"] = function(args, data) local params = get_params(args, 5) inflection_type_is(data, 1, "valo", params.strong, params.weak) make_weak(params.base, params.strong, params.final, params.weak) local wk_sg = params.weak local wk_pl = params.weak if mw.ustring.sub(params.base, -1) == params.final then if wk_sg == "" and (mw.ustring.find(params.base, "[aeiouyäö][iuy]$") or mw.ustring.find(params.base, "[iuy][eoö]$")) then wk_sg = "’" end if wk_pl == "" then wk_pl = "’" end end local stems = {} stems["sg"]     = {params.base .. params.strong .. params.final} stems["sg_weak"] = {params.base .. wk_sg .. params.final} stems["pl"]     = {params.base .. params.strong .. params.final .. "i"} stems["pl_weak"] = {params.base .. wk_pl .. params.final .. "i"} stems["par_pl"] = {params.base .. params.strong .. params.final .. "j"} stems["ill_pl"] = {params.base .. params.strong .. params.final .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["palvelu"] = function(args, data) inflection_type_is(data, 2, "palvelu") local params = get_params(args, 2) local stems = {} stems["sg"]     = {params.base} stems["pl"]     = {params.base .. "i"} stems["par_pl"] = {params.base .. "j", params.base .. "it"} stems["ill_pl"] = {params.base .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["valtio"] = function(args, data) inflection_type_is(data, 3, "valtio") local params = get_params(args, 2) local final = mw.ustring.sub(params.base, -1) local stems = {} stems["sg"]     = {params.base} stems["par_sg"] = {params.base .. "t"} stems["pl"]     = {params.base .. "i"} stems["par_pl"] = {params.base .. "it"} stems["ill_pl"] = {params.base .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["laatikko"] = function(args, data) local params = get_params(args, 5, false, "kk", "k", "o")

inflection_type_is(data, 4, "laatikko", params.strong, params.weak) make_weak(params.base, params.strong, params.final, params.weak) local stems = {} stems["sg"]     = {params.base .. params.strong .. params.final} stems["sg_weak"] = {params.base .. params.weak .. params.final} stems["pl"]     = {params.base .. params.strong .. params.final .. "i"} stems["pl_weak"] = {params.base .. params.weak .. params.final .. "i"} stems["par_pl"] = {params.base .. params.strong .. params.final .. "j", params.base .. params.weak .. params.final .. "it"} stems["ill_pl"] = {params.base .. params.strong .. params.final .. "ih", params.base .. params.weak .. params.final .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["risti"] = function(args, data) local params = get_params(args, 4) local i = get_extra_arg(args, data, "i"); if i == "0" then i = "" else i = "i" end

inflection_type_is(data, 5, "risti", params.strong, params.weak) make_weak(params.base, params.strong, "i", params.weak) local stems = {} stems["nom_sg"] = {params.base .. params.strong .. i} stems["sg"]     = {params.base .. params.strong .. "i"} stems["sg_weak"] = {params.base .. params.weak .. "i"} stems["pl"]     = {params.base .. params.strong .. "ei"} stems["pl_weak"] = {params.base .. params.weak .. "ei"} stems["gen_pl"] = {params.base .. params.strong .. "i"} stems["par_pl"] = {params.base .. params.strong .. "ej"} stems["ill_pl"] = {params.base .. params.strong .. "eih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["paperi"] = function(args, data) inflection_type_is(data, 6, "paperi") local params = get_params(args, 2) local i = get_extra_arg(args, data, "i"); if i == "0" then i = "" else i = "i" end local stems = {} stems["nom_sg"] = {params.base .. i} stems["sg"]     = {params.base .. "i"} stems["pl"]     = {params.base .. "ei"} stems["par_pl"] = {params.base .. "eit", params.base .. "ej"} stems["gen_pl"] = {params.base .. "i", params.base .. "eid", params.base .. "eitt"} stems["ill_pl"] = {params.base .. "eih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["ovi"] = function(args, data) local params = get_params(args, 4) local nom_sg = get_extra_arg(args, data, "nom_sg"); if nom_sg == "" then nom_sg = nil end inflection_type_is(data, 7, "ovi", params.strong, params.weak) make_weak(params.base, params.strong, "e", params.weak) local wk_pl = params.weak if mw.ustring.sub(params.base, -1) == "i" and params.strong == "k" and params.weak == "" then wk_pl = "’" end

local stems = {} stems["nom_sg"] = {nom_sg or params.base .. params.strong .. "i"} stems["sg"]     = {params.base .. params.strong .. "e"} stems["sg_weak"] = {params.base .. params.weak .. "e"} stems["pl"]     = {params.base .. params.strong .. "i"} stems["pl_weak"] = {params.base .. wk_pl .. "i"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["nalle"] = function(args, data) local params = get_params(args, 4) inflection_type_is(data, 8, "nalle", params.strong, params.weak) make_weak(params.base, params.strong, "e", params.weak) local stems = {} stems["sg"]     = {params.base .. params.strong .. "e"} stems["sg_weak"] = {params.base .. params.weak .. "e"} stems["pl"]     = {params.base .. params.strong .. "ei"} stems["pl_weak"] = {params.base .. params.weak .. "ei"} stems["par_pl"] = {params.base .. params.strong .. "ej"} stems["ill_pl"] = {params.base .. params.strong .. "eih"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.strong .. "ein"} end

inflections["kala"] = function(args, data) local params = get_params(args, 4) inflection_type_is(data, 9, "kala", params.strong, params.weak) make_weak(params.base, params.strong, params.a, params.weak) local wk_sg = params.weak if wk_sg == "" and mw.ustring.sub(params.base, -2) == params.a .. params.a then wk_sg = "’" end local stems = {} stems["sg"]     = {params.base .. params.strong .. params.a} stems["sg_weak"] = {params.base .. wk_sg .. params.a} stems["pl"]     = {params.base .. params.strong .. params.o .. "i"} stems["pl_weak"] = {params.base .. params.weak .. params.o .. "i"} stems["par_pl"] = {params.base .. params.strong .. params.o .. "j"} stems["ill_pl"] = {params.base .. params.strong .. params.o .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.strong .. params.a .. "in"} end

inflections["koira"] = function(args, data) local params = get_params(args, 4) local nom_sg = get_extra_arg(args, data, "nom_sg"); if nom_sg == "" then nom_sg = nil end inflection_type_is(data, 10, "koira", params.strong, params.weak) make_weak(params.base, params.strong, params.a, params.weak) local wk_sg = params.weak local wk_pl = params.weak if wk_sg == "" and mw.ustring.sub(params.base, -2) == params.a .. params.a then wk_sg = "’" end if wk_pl == "" and mw.ustring.sub(params.base, -1) == "i" then wk_pl = "’" end local stems = {} stems["nom_sg"] = {nom_sg or params.base .. params.strong .. params.a} stems["sg"]     = {params.base .. params.strong .. params.a} stems["sg_weak"] = {params.base .. wk_sg .. params.a} stems["pl"]     = {params.base .. params.strong .. "i"} stems["pl_weak"] = {params.base .. wk_pl .. "i"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.strong .. params.a .. "in"} end

inflections["omena"] = function(args, data) inflection_type_is(data, 11, "omena") local params = get_params(args, 2) local stems = {} stems["sg"]     = {params.base .. params.a} stems["pl"]     = {params.base .. params.o .. "i", params.base .. "i"} stems["par_pl"] = {params.base .. "i", params.base .. params.o .. "it"} stems["ill_pl"] = {params.base .. "i", params.base .. params.o .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.o .. "jen", params.base .. params.a .. "in"} data.forms["par_pl"].rare = {params.base .. params.o .. "j" .. params.a} end

inflections["kulkija"] = function(args, data) inflection_type_is(data, 12, "kulkija") local params = get_params(args, 2) local stems = {} stems["sg"]     = {params.base .. params.a} stems["pl"]     = {params.base .. params.o .. "i"} stems["par_pl"] = {params.base .. params.o .. "it"} stems["ill_pl"] = {params.base .. params.o .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.a .. "in"} end

inflections["katiska"] = function(args, data) inflection_type_is(data, 13, "katiska") local params = get_params(args, 2) local stems = {} stems["sg"]     = {params.base .. params.a} stems["pl"]     = {params.base .. params.o .. "i"} stems["par_pl"] = {params.base .. params.o .. "it", params.base .. params.o .. "j"} stems["ill_pl"] = {params.base .. params.o .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.a .. "in"} end

inflections["solakka"] = function(args, data) local params = get_params(args, 4) inflection_type_is(data, 14, "solakka", params.strong, params.weak) make_weak(params.base, params.strong, params.a, params.weak) local stems = {} stems["sg"]     = {params.base .. params.strong .. params.a} stems["sg_weak"] = {params.base .. params.weak .. params.a} stems["pl"]     = {params.base .. params.strong .. params.o .. "i"} stems["pl_weak"] = {params.base .. params.weak .. params.o .. "i"} stems["par_pl"] = {params.base .. params.weak .. params.o .. "it", params.base .. params.strong .. params.o .. "j"} stems["ill_pl"] = {params.base .. params.weak .. params.o .. "ih", params.base .. params.strong .. params.o .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.strong .. params.a .. "in"} end

inflections["korkea"] = function(args, data) inflection_type_is(data, 15, "korkea") local params = get_params(args, 2) local final = mw.ustring.sub(params.base, -1) local stems = {} stems["sg"]     = {params.base .. params.a} stems["par_sg"] = {params.base .. params.a, params.base .. params.a .. "t"} stems["pl"]     = {params.base .. "i"} stems["par_pl"] = {params.base .. "it"} stems["ill_pl"] = {params.base .. "isi", params.base .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.a .. "in"} end

inflections["vanhempi"] = function(args, data) inflection_type_is(data, 16, "vanhempi", "mp", "mm") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "mpi"} stems["sg"]     = {params.base .. "mp" .. params.a} stems["sg_weak"] = {params.base .. "mm" .. params.a} stems["pl"]     = {params.base .. "mpi"} stems["pl_weak"] = {params.base .. "mmi"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. "mp" .. params.a .. "in"} end

inflections["vapaa"] = function(args, data) inflection_type_is(data, 17, "vapaa") local params = get_params(args, 2) local final = mw.ustring.sub(params.base, -1) local stems = {} stems["sg"]     = {params.base .. final} stems["par_sg"] = {params.base .. final .. "t"} stems["ill_sg"] = {params.base .. final .. "se"} stems["pl"]     = {params.base .. "i"} stems["par_pl"] = {params.base .. "it"} stems["ill_pl"] = {params.base .. "isi"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["ill_pl"].rare = {params.base .. "ihin"} end

inflections["maa"] = function(args, data) inflection_type_is(data, 18, "maa") local params = get_params(args, 2) local nom_sg = get_extra_arg(args, data, "nom_sg"); if nom_sg == "" then nom_sg = nil end local pl_stem = mw.ustring.sub(params.base, 1, -2) local stems = {} stems["nom_sg"] = {nom_sg or params.base} stems["sg"]     = {params.base} stems["par_sg"] = {params.base .. "t"} stems["pl"]     = {pl_stem .. "i"} stems["par_pl"] = {pl_stem .. "it"} stems["ill_pl"] = {pl_stem .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["suo"] = function(args, data) inflection_type_is(data, 19, "suo") local params = get_params(args, 2) local final = mw.ustring.sub(params.base, -1) local stem = mw.ustring.sub(params.base, 1, -3) local plural if mw.ustring.sub(stem, -1) == final then plural = stem .. "-" .. final else plural = stem .. final end local stems = {} stems["sg"]     = {params.base} stems["par_sg"] = {params.base .. "t"} stems["ill_sg"] = {params.base .. "h"} stems["pl"]     = {plural .. "i"} stems["par_pl"] = {plural .. "it"} stems["ill_pl"] = {plural .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["filee"] = function(args, data) inflection_type_is(data, 20, "filee") local params = get_params(args, 2) local nom_sg = get_extra_arg(args, data, "nom_sg"); if nom_sg == "" then nom_sg = nil end local pl_stem = mw.ustring.sub(params.base, 1, -2) local stems = {} stems["nom_sg"] = {nom_sg or params.base} stems["sg"]     = {params.base} stems["par_sg"] = {params.base .. "t"} stems["ill_sg"] = {params.base .. "h", params.base .. "se"} stems["pl"]     = {pl_stem .. "i"} stems["par_pl"] = {pl_stem .. "it"} stems["ill_pl"] = {pl_stem .. "ih", pl_stem .. "isi"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["rosé"] = function(args, data) inflection_type_is(data, 21, "rosé") local params = get_params(args, 2) local ill_sg_vowel = get_extra_arg(args, data, "ill_sg_vowel"); if ill_sg_vowel == "" then error("Parameter \"ill_sg_vowel=\" cannot be empty.") end local ill_sg_vowel2 = get_extra_arg(args, data, "ill_sg_vowel2"); if ill_sg_vowel2 == "" then error("Parameter \"ill_sg_vowel2=\" cannot be empty.") end local stems = {} stems["sg"]     = {params.base} stems["par_sg"] = {params.base .. "t"} stems["ill_sg"] = {params.base .. "h"} stems["pl"]     = {params.base .. "i"} stems["par_pl"] = {params.base .. "it"} stems["ill_pl"] = {params.base .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a)	if ill_sg_vowel then data.forms["ill_sg"] = {params.base .. "h" .. ill_sg_vowel .. "n"} end if ill_sg_vowel2 then table.insert(data.forms["ill_sg"], params.base .. "h" .. ill_sg_vowel2 .. "n") end end

inflections["parfait"] = function(args, data) inflection_type_is(data, 22, "parfait") local params = get_params(args, 2) local ill_sg_vowel = get_extra_arg(args, data, "ill_sg_vowel") or (mw.title.getCurrentTitle.nsText == "Template" and "e"); if not ill_sg_vowel or ill_sg_vowel == "" then error("Parameter \"ill_sg_vowel=\" is missing.") end local ill_sg_vowel2 = get_extra_arg(args, data, "ill_sg_vowel2"); if ill_sg_vowel2 == "" then error("Parameter \"ill_sg_vowel2=\" cannot be empty.") end local stems = {} stems["nom_sg"] = {params.base} stems["sg"]     = {params.base .. "’"}	stems["par_sg"] = {params.base .. "’t"} stems["pl"]     = {params.base .. "’i"} stems["par_pl"] = {params.base .. "’it"} stems["ill_pl"] = {params.base .. "’ih"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["ill_sg"] = {params.base .. "’h" .. ill_sg_vowel .. "n"} if ill_sg_vowel2 then table.insert(data.forms["ill_sg"], params.base .. "h" .. ill_sg_vowel2 .. "n") end end

inflections["tiili"] = function(args, data) inflection_type_is(data, 23, "tiili") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "i"} stems["sg"]     = {params.base .. "e"} stems["par_sg"] = {params.base .. "t"} stems["pl"]     = {params.base .. "i"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["uni"] = function(args, data) inflection_type_is(data, 24, "uni") local params = get_params(args, 2) local par_sg_a = get_extra_arg(args, data, "par_sg_a"); if par_sg_a and par_sg_a ~= "a" and par_sg_a ~= "ä" then error("Parameter \"par_sg_a=\" must be \"a\" or \"ä\".") end local stems = {} stems["nom_sg"] = {params.base .. "i"} stems["sg"]     = {params.base .. "e"} stems["par_sg"] = {params.base .. "t"} stems["pl"]     = {params.base .. "i"} stems["gen_pl"] = {params.base .. "i", params.base .. "t"} make_stems(data, stems) process_stems(data, stems, params.a)	if par_sg_a then data.forms["par_sg"] = {} for _, stem in ipairs(stems["par_sg"]) do table.insert(data.forms["par_sg"], stem .. par_sg_a) end end end

inflections["toimi"] = function(args, data) inflection_type_is(data, 25, "toimi") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "mi"} stems["sg"]     = {params.base .. "me"} stems["par_sg"] = {params.base .. "nt", params.base .. "me"} stems["pl"]     = {params.base .. "mi"} stems["gen_pl"] = {params.base .. "mi", params.base .. "nt"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["pieni"] = function(args, data) inflection_type_is(data, 26, "pieni") local params = get_params(args, 2) local par_sg_a = get_extra_arg(args, data, "par_sg_a"); if par_sg_a and par_sg_a ~= "a" and par_sg_a ~= "ä" then error("Parameter \"par_sg_a=\" must be \"a\" or \"ä\".") end local stems = {} stems["nom_sg"] = {params.base .. "i"} stems["sg"]     = {params.base .. "e"} stems["par_sg"] = {params.base .. "t"} stems["pl"]     = {params.base .. "i"} stems["gen_pl"] = {params.base .. "t", params.base .. "i"} make_stems(data, stems) process_stems(data, stems, params.a)	if par_sg_a then data.forms["par_sg"] = {} for _, stem in ipairs(stems["par_sg"]) do table.insert(data.forms["par_sg"], stem .. par_sg_a) end end end

inflections["käsi"] = function(args, data) inflection_type_is(data, 27, "käsi", "t", "d") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "si"} stems["sg"]     = {params.base .. "te"} stems["sg_weak"] = {params.base .. "de"} stems["par_sg"] = {params.base .. "tt"} stems["pl"]     = {params.base .. "si"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. "tten"} end

inflections["kynsi"] = function(args, data) local params = get_params(args, 2, false, "n") local cons = mw.ustring.match(params.base, "([lnr]?)$") if mw.title.getCurrentTitle.nsText ~= "Template" and cons == "" then error("Stem must end in \"l\", \"n\" or \"r\".") end inflection_type_is(data, 28, "kynsi", cons .. "t", cons .. cons) local stems = {} stems["nom_sg"] = {params.base .. "si"} stems["sg"]     = {params.base .. "te"} stems["sg_weak"] = {params.base .. cons .. "e"} stems["par_sg"] = {params.base .. "tt"} stems["pl"]     = {params.base .. "si"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. "tten"} end

inflections["lapsi"] = function(args, data) inflection_type_is(data, 29, "lapsi") local params = get_params(args, 2, false, "p") local syncopated_stem, cons = mw.ustring.match(params.base, "^(.-)([kp]?)$") if mw.title.getCurrentTitle.nsText ~= "Template" and cons == "" then error("Stem must end in \"k\" or \"p\".") end local stems = {} stems["nom_sg"] = {params.base .. "si"} stems["sg"]     = {params.base .. "se"} stems["par_sg"] = {syncopated_stem .. "st"} stems["pl"]     = {params.base .. "si"} stems["gen_pl"] = {params.base .. "si", syncopated_stem .. "st"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["veitsi"] = function(args, data) inflection_type_is(data, 30, "veitsi") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "tsi"} stems["sg"]     = {params.base .. "tse"} stems["par_sg"] = {params.base .. "st"} stems["pl"]     = {params.base .. "tsi"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. "sten"} end

inflections["kaksi"] = function(args, data) inflection_type_is(data, 31, "kaksi", "t", "d") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "ksi"} stems["sg"]     = {params.base .. "hte"} stems["sg_weak"] = {params.base .. "hde"} stems["par_sg"] = {params.base .. "ht"} stems["pl"]     = {params.base .. "ksi"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["sisar"] = function(args, data) local params = get_params(args, 5, true) local nom_sg = get_extra_arg(args, data, "nom_sg"); if nom_sg == "" then nom_sg = nil end inflection_type_is(data, 32, "sisar", params.strong, params.weak) make_weak(params.base, params.strong, params.final, params.weak) local stems = {} stems["nom_sg"] = {nom_sg or params.base .. params.weak .. params.final} stems["sg"]     = {params.base .. params.strong .. params.final .. "e"} stems["par_sg"] = {params.base .. params.weak .. params.final .. "t"} stems["pl"]     = {params.base .. params.strong .. params.final .. "i"} stems["gen_pl"] = {params.base .. params.strong .. params.final .. "i", params.base .. params.weak .. params.final .. "t"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["kytkin"] = function(args, data) local params = get_params(args, 5, true) inflection_type_is(data, 33, "kytkin", params.strong, params.weak) make_weak(params.base, params.strong, params.final, params.weak) local stems = {} stems["nom_sg"] = {params.base .. params.weak .. params.final .. "n"} stems["sg"]     = {params.base .. params.strong .. params.final .. "me"} stems["par_sg"] = {params.base .. params.weak .. params.final .. "nt"} stems["pl"]     = {params.base .. params.strong .. params.final .. "mi"} stems["gen_pl"] = {params.base .. params.strong .. params.final .. "mi", params.base .. params.weak .. params.final .. "nt"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["onneton"] = function(args, data) local no_gradation = get_extra_arg(args, data, "no_tt") == "1" local strong if no_gradation then strong = "t" else strong = "tt" end inflection_type_is(data, 34, "onneton", strong, "t") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "t" .. params.o .. "n"} stems["sg"]     = {params.base .. strong .. params.o .. "m" .. params.a} stems["par_sg"] = {params.base .. "t" .. params.o .. "nt"} stems["pl"]     = {params.base .. strong .. params.o .. "mi"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. "t" .. params.o .. "nten"} end

inflections["lämmin"] = function(args, data) local params = get_params(args, 5, true) inflection_type_is(data, 35, "lämmin", params.strong, params.weak) make_weak(params.base, params.strong, params.final, params.weak) local stems = {} stems["nom_sg"] = {params.base .. params.weak .. params.final .. "n"} stems["sg"]     = {params.base .. params.strong .. params.final .. "m" .. params.a} stems["par_sg"] = {params.base .. params.weak .. params.final .. "nt"} stems["pl"]     = {params.base .. params.strong .. params.final .. "mi"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. params.strong .. params.final .. "m" .. params.a .. "in"} end

inflections["sisin"] = function(args, data) inflection_type_is(data, 36, "sisin", "mp", "mm") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "in"} stems["sg"]     = {params.base .. "imp" .. params.a} stems["sg_weak"] = {params.base .. "imm" .. params.a} stems["par_sg"] = {params.base .. "int"} stems["pl"]     = {params.base .. "impi"} stems["pl_weak"] = {params.base .. "immi"} stems["gen_pl"] = {params.base .. "impi", params.base .. "int"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. "imp" .. params.a .. "in"} end

inflections["vasen"] = function(args, data) inflection_type_is(data, 37, "vasen", "mp", "mm")

local params = get_params(args, 1) params.base = params.base .. "vase" params.a = "a" local stems = {} stems["nom_sg"] = {params.base .. "n"} stems["sg"]     = {params.base .. "mp" .. params.a} stems["sg_weak"] = {params.base .. "mm" .. params.a} stems["par_sg"] = {params.base .. "nt", params.base .. "mp" .. params.a} stems["pl"]     = {params.base .. "mpi"} stems["pl_weak"] = {params.base .. "mmi"} stems["gen_pl"] = {params.base .. "mpi", params.base .. "nt"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. "mp" .. params.a .. "in"} end

inflections["nainen"] = function(args, data) inflection_type_is(data, 38, "nainen") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "nen"} stems["sg"]     = {params.base .. "se"} stems["par_sg"] = {params.base .. "st"} stems["pl"]     = {params.base .. "si"} stems["gen_pl"] = {params.base .. "st", params.base .. "si"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["vastaus"] = function(args, data) inflection_type_is(data, 39, "vastaus") local params = get_params(args, 2) local nom_sg = get_extra_arg(args, data, "nom_sg"); if nom_sg == "" then nom_sg = nil end local stems = {} stems["nom_sg"] = {nom_sg or params.base .. "s"} stems["sg"]     = {params.base .. "kse"} stems["par_sg"] = {params.base .. "st"} stems["pl"]     = {params.base .. "ksi"} stems["gen_pl"] = {params.base .. "st", params.base .. "ksi"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["kalleus"] = function(args, data) inflection_type_is(data, 40, "kalleus", "t", "d") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "s"} stems["sg"]     = {params.base .. "te"} stems["sg_weak"] = {params.base .. "de"} stems["par_sg"] = {params.base .. "tt"} stems["pl"]     = {params.base .. "ksi"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["vieras"] = function(args, data) local params = get_params(args, 5, true) inflection_type_is(data, 41, "vieras", params.strong, params.weak) make_weak(params.base, params.strong, params.final, params.weak) local stems = {} stems["nom_sg"] = {params.base .. params.weak .. params.final .. "s"} stems["sg"]     = {params.base .. params.strong .. params.final .. params.final} stems["par_sg"] = {params.base .. params.weak .. params.final .. "st"} stems["ill_sg"] = {params.base .. params.strong .. params.final .. params.final .. "se"} stems["pl"]     = {params.base .. params.strong .. params.final .. "i"} stems["par_pl"] = {params.base .. params.strong .. params.final .. "it"} stems["ill_pl"] = {params.base .. params.strong .. params.final .. "isi"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["ill_pl"].rare = {params.base .. params.strong .. params.final .. "ihin"} end

inflections["mies"] = function(args, data) inflection_type_is(data, 42, "mies") local params = get_params(args, 1) params.base = params.base .. "mie" params.a = "ä" local stems = {} stems["nom_sg"] = {params.base .. "s"} stems["sg"]     = {params.base .. "he"} stems["par_sg"] = {params.base .. "st"} stems["pl"]     = {params.base .. "hi"} stems["gen_pl"] = {params.base .. "st", params.base .. "hi"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["ohut"] = function(args, data) local params = get_params(args, 5, true) inflection_type_is(data, 43, "ohut", params.strong, params.weak) make_weak(params.base, params.strong, params.final, params.weak) local stems = {} stems["nom_sg"] = {params.base .. params.weak .. params.final .. "t"} stems["sg"]     = {params.base .. params.strong .. params.final .. "e"} stems["par_sg"] = {params.base .. params.weak .. params.final .. "tt"} stems["pl"]     = {params.base .. params.strong .. params.final .. "i"} stems["par_pl"] = {params.base .. params.strong .. params.final .. "it"} stems["ill_pl"] = {params.base .. params.strong .. params.final .. "isi", params.base .. params.strong .. params.final .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["kevät"] = function(args, data) inflection_type_is(data, 44, "kevät") local params = get_params(args, 2) local vowel = mw.ustring.sub(params.base, -1) local stems = {} stems["nom_sg"] = {params.base .. "t"} stems["sg"]     = {params.base .. vowel} stems["par_sg"] = {params.base .. "tt"} stems["ill_sg"] = {params.base .. vowel .. "se"} stems["pl"]     = {params.base .. "i"} stems["par_pl"] = {params.base .. "it"} stems["ill_pl"] = {params.base .. "isi"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["ill_pl"].rare = {params.base .. "ihin"} end

inflections["kahdeksas"] = function(args, data) inflection_type_is(data, 45, "kahdeksas", "nt", "nn") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "s"} stems["sg"]     = {params.base .. "nte"} stems["sg_weak"] = {params.base .. "nne"} stems["par_sg"] = {params.base .. "tt"} stems["pl"]     = {params.base .. "nsi"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["tuhat"] = function(args, data) inflection_type_is(data, 46, "tuhat", "nt", "nn") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. "t"} stems["sg"]     = {params.base .. "nte"} stems["sg_weak"] = {params.base .. "nne"} stems["par_sg"] = {params.base .. "tt"} stems["pl"]     = {params.base .. "nsi"} make_stems(data, stems) process_stems(data, stems, params.a) data.forms["gen_pl"].rare = {params.base .. "nten"} end

inflections["kuollut"] = function(args, data) inflection_type_is(data, 47, "kuollut") local params = get_params(args, 2) local stems = {} stems["nom_sg"] = {params.base .. params.u .. "t"} stems["sg"]     = {params.base .. "ee"} stems["par_sg"] = {params.base .. params.u .. "tt"} stems["ill_sg"] = {params.base .. "eese"} stems["pl"]     = {params.base .. "ei"} stems["par_pl"] = {params.base .. "eit"} stems["ill_pl"] = {params.base .. "eisi", params.base .. "eih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["hame"] = function(args, data) local params = get_params(args, 4, true) local stem_vowel = get_extra_arg(args, data, "stem_vowel"); if stem_vowel == "" then stem_vowel = nil end stem_vowel = stem_vowel or "e" inflection_type_is(data, 48, "hame", params.strong, params.weak) make_weak(params.base, params.strong, stem_vowel, params.weak) local stems = {} stems["nom_sg"] = {params.base .. params.weak .. stem_vowel} stems["sg"]     = {params.base .. params.strong .. stem_vowel .. stem_vowel} stems["par_sg"] = {params.base .. params.weak .. stem_vowel .. "tt"} stems["ill_sg"] = {params.base .. params.strong .. stem_vowel .. stem_vowel .. "se"} stems["pl"]     = {params.base .. params.strong .. stem_vowel .. "i"} stems["par_pl"] = {params.base .. params.strong .. stem_vowel .. "it"} stems["ill_pl"] = {params.base .. params.strong .. stem_vowel .. "isi", params.base .. params.strong .. stem_vowel .. "ih"} make_stems(data, stems) process_stems(data, stems, params.a) end

inflections["askel"] = function(args, data) local params = get_params(args, 5, true) local prefer_hame = get_extra_arg(args, data, "e") == "1"

inflection_type_is(data, 49, "askel", params.strong, params.weak) make_weak(params.base, params.strong, "", params.weak) local stems_sisar = {} stems_sisar["nom_sg"] = {nom_sg or params.base .. params.weak .. params.final} stems_sisar["sg"]     = {params.base .. params.strong .. params.final .. "e"} stems_sisar["par_sg"] = {params.base .. params.weak .. params.final .. "t"} stems_sisar["pl"]     = {params.base .. params.strong .. params.final .. "i"} stems_sisar["gen_pl"] = {params.base .. params.strong .. params.final .. "i", params.base .. params.weak .. params.final .. "t"} make_stems(data, stems_sisar)

local stems_hame = {} stems_hame["nom_sg"] = {params.base .. params.strong .. params.final .. "e"} stems_hame["sg"]     = {params.base .. params.strong .. params.final .. "ee"} stems_hame["par_sg"] = {params.base .. params.strong .. params.final .. "ett"} stems_hame["ill_sg"] = {params.base .. params.strong .. params.final .. "eese"} stems_hame["pl"]     = {params.base .. params.strong .. params.final .. "ei"} stems_hame["par_pl"] = {params.base .. params.strong .. params.final .. "eit"} stems_hame["ill_pl"] = {params.base .. params.strong .. params.final .. "eisi", params.base .. params.strong .. params.final .. "eih"} make_stems(data, stems_hame) if prefer_hame then process_stems(data, stems_hame, params.a)		process_stems(data, stems_sisar, params.a)		data["stems"] = merge_stems(stems_hame, stems_sisar) else process_stems(data, stems_sisar, params.a)		process_stems(data, stems_hame, params.a)		data["stems"] = merge_stems(stems_sisar, stems_hame) end end

-- Helper functions

-- joins data.words[...].forms to data.forms function export.join_words(data, sep_supplier) local reorganized = {} local classes = {} -- reorganize from words[n].forms[case](.rare) to forms[case],words[n](.rare) for windex, word in ipairs(data.words) do		table.insert(classes, word.class) for case, forms in pairs(word.forms) do			if reorganized[case] == nil then reorganized[case] = {} end reorganized[case][windex] = {} for _, form in ipairs(forms) do				table.insert(reorganized[case][windex], form) end if word.forms[case].rare then reorganized[case][windex].rare = {} for _, form in ipairs(word.forms[case].rare) do					table.insert(reorganized[case][windex].rare, form) end end end end -- merge the forms with a Cartesian product to produce all possible combinations data.forms = {} for case, words in pairs(reorganized) do		data.forms[case] = forms_cart_product(words, case, sep_supplier, classes) end

if #data.words < 2 then -- use title and categories of the sole word if there is only one data.title = data.words[1].title data.categories = data.words[1].categories else -- if there are multiple words, force nuoripari type data.title = make_kotus_title(51, "nuoripari") data.categories = {"Finnish nuoripari-type nominals"} end data.words = nil end

-- computes the Cartesian product of tables function cart_product(words, depth) depth = depth or 1 local prod = {} for _, val in ipairs(words[depth]) do		if depth < #words then -- go over the next list for _, res in ipairs(cart_product(words, depth + 1)) do				table.insert(prod, { val, unpack(res) }) end else -- end of list, simply return the original table.insert(prod, { val }) end end return prod end

local function supplied_concat(list, sep_supplier) local result = "" local n = #list if n >= 1 then for i = 1, n - 1 do			local v = mw.ustring.match(list[i], "^[aeiouyäö]") if v and mw.ustring.find(result, v .. "$") then result = result .. "-"			end result = result .. list[i] .. sep_supplier(i) end local v = mw.ustring.match(list[n], "^[aeiouyäö]") if v and mw.ustring.find(result, v .. "$") then result = result .. "-"		end result = result .. list[n] end return result end

-- computes the Cartesian product of tables, also concats function cart_product_concat(words, sep_supplier) local res = {}

for _, combination in ipairs(cart_product(words)) do		table.insert(res, supplied_concat(combination, sep_supplier)) end

return res end

-- returns a bit mask (!) or nil function get_rhyming_pattern(word, case, class) if class == "askel" then return nil end if case == "gen_pl" then if mw.ustring.match(word, "tten$") then return 2 elseif mw.ustring.match(word, "ten$") then return 3 else return 1 end elseif case == "ill_sg" then if mw.ustring.match(word, "seen$") then return 1 elseif mw.ustring.match(word, "hen$") then return 2 end elseif case == "ill_pl" then if mw.ustring.match(word, "siin$") then return 1 elseif mw.ustring.match(word, "hin$") then return 2 end end return nil -- not applicable end

function is_nonrhyming(form, case, classes) local expected = m_bit32.bnot(0) -- -1 for i, word in ipairs(form) do		local got = get_rhyming_pattern(word, case, classes[i]) if got then expected = m_bit32.band(expected, got) end if expected == 0 then return true end end

return false end

-- computes the Cartesian product of tables, also concats -- returns non-rhyming combinations as rare function cart_product_concat_nonrhyming_rare(words, case, sep_supplier, classes) local res = {} local rare = {} local multichoice = 0 local allow_pruning = false

for _, position in ipairs(words) do		if #position > 1 then multichoice = multichoice + 1 end end

allow_pruning = multichoice > 1

for _, combination in ipairs(cart_product(words)) do		local item = supplied_concat(combination, sep_supplier) if is_nonrhyming(combination, case, classes) then table.insert(rare, item) else table.insert(res, item) end end

if #res < 1 then rare.rare = {} return rare end

res.rare = rare return res end

-- converts a list of words to extract the rare forms for ipairs -- the number is interpreted bit-by-bit to decide which combination -- to choose function prepare_rare_tables(words, code) local result = {} for _, forms in ipairs(words) do		-- replace with rare if bit is 1 if m_bit32.band(code, 1) == 1 then table.insert(result, forms.rare or {}) else table.insert(result, forms) end -- shift right to test next bit code = m_bit32.rshift(code, 1) end return result end

-- copies all entries of source and inserts them to target function merge_table(target, source) for _, value in ipairs(source) do		table.insert(target, value) end end

function merge_table_rare(target, source) for _, value in ipairs(source) do		table.insert(target, value) end target.rare = source.rare end

-- the Cartesian product of possible forms function forms_cart_product(words, case, sep_supplier, classes) local result = {} result.rare = {} -- merge possible non-rare forms merge_table_rare(result, cart_product_concat_nonrhyming_rare(words, case, sep_supplier, classes)) -- merge possible rare forms -- for example, with two words: --       1 = rare A, common B	--        2 = common A, rare B	--        3 = rare A, rare B	-- (2 ^ #words) - 1 == m_bit32.lshift(1,#words)-1 -- (prepare_rare_tables actually takes out the rare forms) for i = 1,m_bit32.lshift(1,#words)-1 do		merge_table(result.rare, cart_product_concat(prepare_rare_tables(words, i), sep_supplier)) end -- if no rare forms, remove the table completely if #result.rare < 1 then result.rare = nil end return result end

function make_word_possessive(args, data, poss, always_add) local pos = get_extra_arg(args, data, "pos"); if not pos or pos == "" then pos = "noun" end local suffix = get_extra_arg(args, data, "suffix"); if not suffix then suffix = "" end local par_nom_sg = get_extra_arg(args, data, "par_nom_sg") == "1"

-- "no possessive forms exist" sentinel value if poss == "-" then return data.forms end

if always_add or pos == "noun" then -- add possessive suffix if poss == "3" or poss == "3p" then poss = "3s" -- 3rd person forms are identical end if not poss_forms[poss] then error("Invalid poss value: '" .. p .. "'") end return make_poss_with_suffix(data.forms, data.stems, poss_forms[poss], suffix, poss_alt[poss], par_nom_sg) end return data.forms end

function postprocess_word(args, data, gdata, always_add) local pos = get_extra_arg(args, data, "pos"); if not pos or pos == "" then pos = "noun" end if gdata.poss then data.forms = make_word_possessive(args, data, gdata.poss, always_add) elseif pos == "noun" and data.forms["com_pl"] then -- Add the possessive suffix to the comitative plural, if the word is a noun for key, subform in ipairs(data.forms["com_pl"]) do data.forms["com_pl"][key] = subform .. "en" end gdata.tagged_com_pl = true end if get_extra_arg(args, data, "gen_nom_sg") == "1" then data.forms["nom_sg"] = data.forms["gen_sg"] elseif get_extra_arg(args, data, "par_nom_sg") == "1" then data.forms["nom_sg"] = data.forms["par_sg"] end if gdata.poss then data.forms["ins_pl"] = nil end end

function postprocess(args, data) local pos = args["pos"]; if not pos or pos == "" then pos = "noun" end local nosg = args["nosg"]; if nosg == "" then nosg = nil end local nopl = args["nopl"]; if nopl == "" then nopl = nil end local n = args["n"]; if n == "" then n = nil end local suffix = args["suffix"]; if suffix == "" then suffix = nil end local appendix = args["appendix"]; if appendix == "" then appendix = nil end local has_ins_sg = args["has_ins_sg"]; if has_ins_sg == "" then has_ins_sg = nil end local has_no_nom = args["has_no_nom"]; if has_no_nom == "" then has_no_nom = nil end -- Add the possessive suffix to the comitative plural, if the word is a noun -- now done per word; see postprocess_word if nosg or n == "pl" then table.insert(data.categories, "Finnish pluralia tantum") end -- TODO: This says "nouns", but this module is also used for adjectives! if nopl or n == "sg" then table.insert(data.categories, "Finnish uncountable nouns") end if n == "csg" then         -- "chiefly singular" data.rare_plural = true end if not has_ins_sg then data.forms["ins_sg"] = nil end for key, form in pairs(data.forms) do		-- Add suffix to forms for i, subform in ipairs(form) do subform = subform .. (suffix or "") form[i] = subform end if form.rare then for i, subform in ipairs(form.rare) do subform = subform .. (suffix or "") form.rare[i] = subform end end -- Do not show singular or plural forms for nominals that don't have them if ((nosg or n == "pl") and key:find("_sg$")) or ((nopl or n == "sg") and key:find("_pl$")) then form = nil end data.forms[key] = form end -- Check if the lemma form matches the page name if not appendix and lang:makeEntryName(data.forms[(nosg or n == "pl") and "nom_pl" or "nom_sg"][1], nil, false) ~= mw.title.getCurrentTitle.text then table.insert(data.categories, "Finnish entries with inflection not matching pagename") end if has_no_nom then data.forms["nom_sg"] = nil data.forms["nom_pl"] = nil end end

function make_possessive_table(args, pos, infl_type, get_forms) local note = nil

if pos == "adj" then note = not args["hideadjnote"] and "Rare. Only used with substantive adjectives." or "" elseif pos ~= "noun" then return "" end

return "\n" .. make_possessive_table_internal(args, infl_type, note, get_forms) end

-- Make the table function make_table(data, preview, title_override, collapse_class_override, accel_class_prefix) local rare_plural = data.rare_plural local note = rare_plural and "Plural forms of this word are not commonly used, but might be found in figurative uses, in some set phrases or in colloquial language." or nil

local function show_form(forms, code, no_rare) if code:find("^com_") and not data.poss and data.tagged_com_pl then if code:find("_pl$") then return "" end return ' colspan="2" | \'\'See the possessive forms below.\'\'' end

local form = forms[code] if not form then return "—" elseif type(form) ~= "table" then error("a non-table value was given in the list of inflected forms.") end local ret = {} local accel

if rare_plural and code:find("_pl$") then -- plural is marginal for key, subform in ipairs(form) do table.insert(ret, "(''" .. make_link(subform) .. "'')")			end if not no_rare and form.rare then for key, subform in ipairs(form.rare) do table.insert(ret, "(''" .. make_link(subform) .. "''rare)") end end

return table.concat(ret, " ") end

-- See Module talk:fi-nominals. if code == "nom_sg" then accel = nil elseif code == "nom_pl" then accel = "nom//acc|p" else accel = code:gsub("%f[^_](%a%a)$", {sg = "s", pl = "p"}):gsub("ins", "ist"):gsub("_", "|") end if accel_class_prefix and accel then accel = accel_class_prefix .. accel end

for key, subform in ipairs(form) do			table.insert(ret, make_link(subform, accel)) end if not no_rare and form.rare then if accel then accel = 'rare-' .. accel end

for key, subform in ipairs(form.rare) do table.insert(ret, make_link(subform, accel) .. "rare") end end return table.concat(ret, " ") end local function repl(param) if param == "title" then if title_override then return title_override end local pagename, unsupported = mw.title.getCurrentTitle.text:gsub("^Unsupported titles/", "") if unsupported > 0 then for title, page in pairs(mw.loadData("Module:links/data").unsupported_titles) do					if page == pagename then pagename = title break end end end return "Inflection of " .. m_links.full_link({lang = lang, alt = pagename}, "term") .. ( data.title and " (" .. data.title .. ")" or "") elseif param == "maybenote" then if note then return [=[ else return "" end else local param2 = mw.ustring.match(param, "^(.-):c$") if param2 then return show_form(data.forms, param2, true) else return show_form(data.forms, param) end end end
 * - class="vsHide"
 * colspan="4" style="width:100px" | ]=] .. note .. "\n"

if preview then preview = [=[ ! class="case-column" colspan="2" | nominative ! colspan="2" | genitive ! colspan="2" | partitive ! colspan="2" | illative
 * - class="vsShow"
 * class="number-column" |
 * class="number-column" |
 * - class="vsShow"
 * - class="vsShow"
 * - class="vsShow"
 * - class="vsShow"
 * - class="vsShow"
 * - class="vsShow"
 * - class="vsShow"

]=]	else preview = "" end local wikicode = [=[ return mw.ustring.gsub(wikicode, "", repl) end

-- -- POSSESSIVE FORM GENERATION & DISPLAY -- --

local function prepare_possessive_list(forms) local res = {} for _, v in ipairs(forms) do		table.insert(res, v)	end if forms["rare"] then for _, v in ipairs(forms["rare"]) do			table.insert(res, v)			res[v] = "rare" end end return res end

local function wrap_rare_forms(forms) local newforms = {} for case, subforms in pairs(forms) do		local common = {} local rare = {} for _, v in ipairs(subforms) do			if subforms[v] == "rare" then table.insert(rare, v)			else table.insert(common, v)			end end common.rare = rare newforms[case] = common end return newforms end

local function make_possessives_from_stems(stems, suffix, extra_suffix) local pforms = {} for _, stem in pairs(stems) do table.insert(pforms, stem .. suffix .. extra_suffix) end return pforms end

function make_poss_with_suffix(forms, stems, poss_suffix, extra_suffix, allow_alt, par_nom_sg) local result = {} local par_sg_a = false if poss_suffix:find("a") and mw.ustring.sub(forms["ine_sg"][1], -1) == "ä" then poss_suffix = mw.ustring.gsub(poss_suffix, "a", "ä") end if mw.ustring.sub(forms["ine_sg"][1], -1) ~= mw.ustring.sub(forms["par_sg"][1], -1) then par_sg_a = true end for k, v in pairs(forms_alt_ok) do		if forms[k] then local suffix = poss_suffix if k == "par_sg" and par_sg_a and mw.ustring.find(suffix, "ä$") then suffix = mw.ustring.gsub(poss_suffix, "ä", "a") end result[k] = {} if k == "par_sg" and allow_alt then -- par_sg is a bit of an exception: it allows -- alt form if it doesn't end in two "aa"/"ää" local prepared = prepare_possessive_list(forms[k]) for _, form in ipairs(prepared) do					local modform = form if mw.ustring.sub(modform, -2, -2) ~= mw.ustring.sub(modform, -1) then local final = modform .. mw.ustring.sub(modform, -1) .. "n" table.insert(result[k], final) result[k][final] = prepared[form] end end elseif forms_alt_ok[k] and allow_alt then local prepared = prepare_possessive_list(forms[k]) for _, form in ipairs(prepared) do					local modform = form if k == "tra_sg" or k == "tra_pl" then modform = mw.ustring.sub(form, 1, -2) .. "e" end local final = modform .. mw.ustring.sub(modform, -1) .. "n" table.insert(result[k], final) result[k][final] = prepared[form] end end if k == "gen_sg" or k == "ins_sg" then result[k] = make_possessives_from_stems(stems["sg"], suffix, extra_suffix) elseif k == "ins_pl" then result[k] = make_possessives_from_stems(stems["pl"], suffix, extra_suffix) elseif forms_gen_ok[k] then local prepared = prepare_possessive_list(forms[k]) for _, form in ipairs(prepared) do					local tmp = form tmp = mw.ustring.sub(tmp, 1, -2) local final = tmp .. suffix .. extra_suffix table.insert(result[k], final) result[k][final] = prepared[form] end else local prepared = prepare_possessive_list(forms[k]) for _, form in ipairs(prepared) do					local modform = form if k == "tra_sg" or k == "tra_pl" then modform = mw.ustring.sub(form, 1, -2) .. "e" end local final = modform .. suffix .. extra_suffix table.insert(result[k], final) result[k][final] = prepared[form] end end end end -- nominative forms are (usually) identical to genitive singular if par_nom_sg then result["nom_sg"] = result["par_sg"] else result["nom_sg"] = result["gen_sg"] end result["nom_pl"] = result["gen_sg"] return wrap_rare_forms(result) end

local function serialize_args(args) local items = {} local entries = {} local max_number = 0

for key, value in pairs(args) do		if type(key) == "number" and key > 0 and key == math.floor(key) then items[key] = value max_number = math.max(key, max_number) else table.insert(entries, key .. "=" .. value) end end

for i = 1,max_number,1 do		items[i] = items[i] or "" end -- entries before items for i, v in ipairs(entries) do		table.insert(items, i, v)	end return table.concat(items, "|") end

local poss_headings = { ["1s"] = "first-person singular possessor", ["2s"] = "second-person singular possessor", ["1p"] = "first-person plural possessor", ["2p"] = "second-person plural possessor", ["3"] = "third-person possessor", }

local poss_accel = { ["1s"] = "1|s", ["2s"] = "2|s", ["1p"] = "1|p", ["2p"] = "2|p", ["3"] = "3", }

function make_possessive_table_internal(args, infl_type, note, get_forms) local function show_subtable(code) return make_table(get_forms(code), false, poss_headings[code], "possessive inflection", poss_accel[code] .. "|poss|form|of|") end local function repl(param) if param == "lemma" then return m_links.full_link({lang = lang, alt = mw.title.getCurrentTitle.text}, "term") elseif param == "info" then if infl_type:match("%-") then return " (type nuoripari)" else return " (type " .. infl_type .. ")" end elseif param == "maybenote" then if note then return [=[ else return "" end else return show_subtable(param) end end local wikicode = [=[ return mw.ustring.gsub(wikicode, "", repl) end
 * - class="vsHide"
 * colspan="3" | ]=] .. note .. "\n"

export.inflections = inflections return export

title: Module:User:Surjection/fi-nominals


text: Template:User:Surjection/fi-decl

title: Template:User:Surjection/fi-decl


text:
Reconstruction:Proto-Albanian/-sta-

Etymology
From.

Suffix

 * 1) Forms adverbs from adjectives

title: Reconstruction:Proto-Albanian/-sta-


text: Category:Proto-Albanian suffixes

title: Category:Proto-Albanian suffixes


text: Category:Proto-Albanian morphemes

title: Category:Proto-Albanian morphemes


text: Category:Proto-Albanian masculine suffixes


text: Category:Proto-Albanian suffixes by gender


text: go sing

title: go sing


text:
twitchen

Etymology
Borrowed from.

Verb

 * 1)   to twitch, to seek out specific bird species avidly, to birdwatch fanatically

title: twitchen


text:
ખોડિયાર

Proper noun

 * , a Hindu folk goddess worshiped in Gujarat and Rajasthan.

title: ખોડિયાર


text:
Talk:go slap off on

This is really just "go off on" with slap adverb, like "slap in the middle"
Equinox ◑ 15:17, 8 April 2023 (UTC)

title: Talk:go slap off on


text: Category:euq-pro:Light sources

title: Category:euq-pro:Light sources


text: Category:euq-pro:Light

title: Category:euq-pro:Light


text: Category:euq-pro:Energy

title: Category:euq-pro:Energy


text: Category:euq-pro:Fire

title: Category:euq-pro:Fire


text: Category:euq-pro:Combustion

title: Category:euq-pro:Combustion


text: Category:euq-pro:Chemical processes

title: Category:euq-pro:Chemical processes


text:
սրբագիր

Etymology
..

Noun

 * 1)  hagiographer a writer of any of the Hagiographa

title: սրբագիր


text: Category:euq-pro:Yellows

title: Category:euq-pro:Yellows


text: Category:euq-pro:Colors

title: Category:euq-pro:Colors


text: Category:euq-pro:Metals

title: Category:euq-pro:Metals


text: Category:euq-pro:Metallurgy

title: Category:euq-pro:Metallurgy


text:
Reconstruction:Proto-Albanian/-ʉriā

Etymology
Related to 🇨🇬, as in 🇨🇬, possibly from.

Suffix

 * 1) added to verbs to form a noun

title: Reconstruction:Proto-Albanian/-ʉriā


text: vac pack

title: vac pack


text:
vogelen

Etymology 1
From.

Verb

 * 1)   to birdwatch
 * 2)  to have sexual intercourse
 * 1)  to have sexual intercourse
 * 1)  to have sexual intercourse

title: vogelen


text: vac packs

title: vac packs


text: vac packing

title: vac packing


text: vac packed

title: vac packed


text: Category:euq-pro:Gold

title: Category:euq-pro:Gold


text: Category:euq-pro:Transition metals

title: Category:euq-pro:Transition metals


text: Category:euq-pro:Chemical elements

title: Category:euq-pro:Chemical elements


text:
Vogelaar

Etymology
From.

Proper noun

 * , meaning bird hunter

title: Vogelaar


text: Category:euq-pro:Silver

title: Category:euq-pro:Silver


text: Category:euq-pro:Greys

title: Category:euq-pro:Greys


text: Category:euq-pro:Pigs

title: Category:euq-pro:Pigs


text: Category:euq-pro:Rabbits

title: Category:euq-pro:Rabbits


text: Category:euq-pro:Lagomorphs

title: Category:euq-pro:Lagomorphs


text:
کلھ

Etymology
.

Adverb

 * 1) yesterday

title: کلھ


text: Category:euq-pro:Snakes

title: Category:euq-pro:Snakes


text: Category:euq-pro:Reptiles

title: Category:euq-pro:Reptiles


text:
Jezula

Etymology
From, therefore “Jesus (is) there”, possibly influenced by.

title: Jezula


text: Category:euq-pro:Children

title: Category:euq-pro:Children


text:
膠質母細胞瘤

Noun

 * 1) glioblastoma

title: 膠質母細胞瘤


text: čmeláci

title: čmeláci


text: Category:euq-pro:Brambles

title: Category:euq-pro:Brambles


text: Category:euq-pro:Forests

title: Category:euq-pro:Forests


text: Category:euq-pro:Places

title: Category:euq-pro:Places


text: Category:euq-pro:Names

title: Category:euq-pro:Names


text:
Minahasan

Adjective

 * 1) Of or relating to Minahasa.

Noun

 * 1) A native or inhabitant of Minahasa.

Proper noun

 * 1) An Austronesian language spoken in the  in Northern Sulawesi, Indonesia.

title: Minahasan


text: Minahasans

title: Minahasans


text:
ދިދަ

Alternative forms

 * – Huvadhu

Etymology
. Cognate to 🇨🇬

Noun

 * 1) flag, ensign, bunting, standard, jack, colours, banner

title: ދިދަ


text:
čmeláček

Etymology
From.

title: čmeláček


text:
Talk:Zion Don

Quotes for ZD
※Sobreira ◣◥ 〒 @「parlez」 15:35, 8 April 2023 (UTC)
 * 1)
 * 2)
 * 3)
 * 4)  (also Zionald)

RFV discussion: April–May 2023
— S URJECTION / T / C / L / 20:27, 5 April 2023 (UTC)
 * See Talk:Zion Don
 * RFV-failed per WT:DEROGATORY. Ultimateria (talk) 00:50, 30 May 2023 (UTC)

title: Talk:Zion Don


text: Category:euq-pro:Pome fruits

title: Category:euq-pro:Pome fruits


text: Category:euq-pro:Wolves

title: Category:euq-pro:Wolves


text:
varispeed

Verb

 * 1) To modify the speed of playback of a sound.

title: varispeed


text: varispeeded

title: varispeeded


text: varispeeds

title: varispeeds


text: varispeeding

title: varispeeding


text:
Reconstruction:Proto-Slavic/naporъ

Etymology
Deverbal of, from.

Noun

 * 1) strain, force, pressure

Descendants

 * East Slavic:
 * South Slavic:
 * West Slavic:
 * South Slavic:
 * West Slavic:
 * South Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:

title: Reconstruction:Proto-Slavic/naporъ


text: Template:skr-adv

title: Template:skr-adv


text: variphones

title: variphones


text: Category:euq-pro:Vehicles

title: Category:euq-pro:Vehicles


text: Category:euq-pro:Machines

title: Category:euq-pro:Machines


text:
Talk:entrailles

Attested
@Nicodene Reichenau Glosses. Latin has intralia: https://is.muni.cz/el/1421/podzim2008/LJMgrB23/um/texty/glosy_Reichenau.pdf Kwékwlos (talk) 15:40, 8 April 2023 (UTC)

title: Talk:entrailles


text: Category:Saraiki adverbs in Shahmukhi script


text:
Reconstruction:Proto-Finnic/vooro

Etymology
. Possibly borrowed from (whence 🇨🇬).

Noun

 * 1) turn (chance to use (something) shared in sequence with others; spell of work)

Descendants

 * North Karelian:
 * South Karelian:
 * North Karelian:
 * South Karelian:
 * North Karelian:
 * South Karelian:

title: Reconstruction:Proto-Finnic/vooro


text: ζῇς

title: ζῇς


text: φαίνου

title: φαίνου


text:
User:Atayozgur

This is my sandbox

LS

title: User:Atayozgur


text:
ὅλως

Etymology
From

Adverb

 * 1) wholly, completely
 * 2) altogether

title: ὅλως


text:
ރިހަ

Noun

 * 1) curry

title: ރިހަ


text: λυποῦ

title: λυποῦ


text: ἀπαιτεῖ

title: ἀπαιτεῖ


text:
Adzaria

Proper noun

 * 1) Adjara; Achara

title: Adzaria


text:
Reconstruction:Proto-Slavic/otъporъ

Etymology
Deverbal of, from.

Noun

 * 1) repulse, opposition, resistance

Descendants

 * East Slavic:
 * South Slavic:
 * West Slavic:
 * Sorbian:
 * South Slavic:
 * West Slavic:
 * Sorbian:
 * South Slavic:
 * West Slavic:
 * Sorbian:
 * West Slavic:
 * Sorbian:
 * West Slavic:
 * Sorbian:
 * West Slavic:
 * Sorbian:
 * Sorbian:
 * Sorbian:
 * Sorbian:
 * Sorbian:
 * Sorbian:
 * Sorbian:
 * Sorbian:

title: Reconstruction:Proto-Slavic/otъporъ


text:
muşamba

Etymology
, from, passive participle of.

Noun

 * 1) A piece of fabric waxed on one side to waterproof it; tarpaulin, tarp, oilcloth.
 * 2) A waterproof raincoat.
 * 3) linoleum

Adjective

 * 1) That which is made of such fabric.

title: muşamba


text:
Afamia

Proper noun

 * 1) Apamea

title: Afamia


text:
Ashjabad

Proper noun

 * 1) Ashgabat

title: Ashjabad


text:
Ave Fénix

Proper noun

 * 1)  Phoenix

title: Ave Fénix


text:
chimney cake

Etymology
, from (from ) +.

Noun

 * 1) A kind of long, cylindrical Hungarian pastry made from sweet yeast dough  and roasted over charcoal, originating from the Székely people.

title: chimney cake


text: chimney cakes

title: chimney cakes


text:
ތިނަ

Etymology 1
. Cognate to 🇨🇬

Noun

 * 1)  female breast, mammary gland

Alternative forms

 * – Huvadhu

Etymology 2
See the main entry.

title: ތިނަ


text:
переносити

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

Verb

 * 1) to carry, to carry across, to transport
 * 2) to transfer, to move, to shift
 * 3) to postpone, to put off
 * 4) to bear, to endure, to tolerate, to undergo
 * 5)  cannot stand, cannot tolerate
 * 6) to carry over
 * 1)  cannot stand, cannot tolerate
 * 2) to carry over
 * 1) to carry over

Verb

 * 1) to carry
 * 2) to wear too long
 * 3) to carry too long

title: переносити


text:
chancaca de Paita

Noun

 * 1) a kind of doughnut from northern Peru

title: chancaca de Paita


text: Cuesco Cabrera

title: Cuesco Cabrera


text:
цедешка

Etymology
From, the heterogram inside Russian sentences being pronounced as opposed to  for those whose archetypical Latin-script language is English.

Noun

 * 1)  compact disc

title: цедешка


text:
Module:User:Huhu9001/TemplatizeData

return setmetatable({}, {	__index = function(self, str)		return function(frame)			local m = require('Module:' .. str)			local function get_value(v)				for _, key in ipairs(frame.args) do					if type(v) ~= 'table' then return nil end					if not key:match'%D' then key = tonumber(key) end					v = v[key]				end				if type(v) == 'string' then return v end			end			local result = {}			for k, v in pairs(m) do				v = get_value(v)				if v then					table.insert(result, '' .. v .. '')				end			end			return ' ' .. table.concat(result) .. ' '		end	end })

title: Module:User:Huhu9001/TemplatizeData


text: Wiktionary:Word of the day/2023/May 6

title: Wiktionary:Word of the day/2023/May 6


text: Domingo de Palmas

title: Domingo de Palmas


text: cherry slug

title: cherry slug


text: cherry slugs

title: cherry slugs


text:
pear slug

Noun

 * 1) The larva of the sawfly, a major pest of fruit trees.

title: pear slug


text: pear slugs

title: pear slugs


text: Hidra Hembra

title: Hidra Hembra


text: Category:Saraiki terms borrowed from Arabic


text: Category:Saraiki terms borrowed from Classical Persian


text:
Horno Químico

Proper noun

 * 1)  constellation

title: Horno Químico


text: Category:Saraiki terms derived from the Arabic root ه و ي


text: Islas Vírgenes Estadounidenses

title: Islas Vírgenes Estadounidenses


text: MCIs

title: MCIs


text:
Malinas

Proper noun

 * 1) Mechelen

title: Malinas


text: Nyamena

title: Nyamena


text: Heraclitanism

title: Heraclitanism


text:
Reconstruction:Proto-Albanian/gritlā

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

Noun

 * 1) deep place

title: Reconstruction:Proto-Albanian/gritlā


text: переніс

title: переніс


text:
kajama

Etymology
From, see the etymology there. Cognates include 🇨🇬, 🇨🇬, 🇨🇬,, 🇨🇬, 🇨🇬.

Verb

 * 1)  to echo

title: kajama


text:
Pavlov's dog

Etymology
In reference to the Russian physiologist Ivan Pavlov's work on classical conditioning: he discovered that dogs could be conditioned to salivate when a bell was rung, if it had previously been rung whenever food was given.

Noun

 * 1)  A person who reacts instinctively to a stimulus, without thought or consideration.

title: Pavlov's dog


text: Pavlov's dogs

title: Pavlov's dogs


text: перенесе

title: перенесе


text: перенесуть

title: перенесуть


text: Template:PGR-conj

title: Template:PGR-conj


text:
Reconstruction:Proto-Albanian/engranti

Etymology
From.

title: Reconstruction:Proto-Albanian/engranti


text: Category:Proto-Albanian non-lemma forms

title: Category:Proto-Albanian non-lemma forms


text: перенесіть

title: перенесіть


text: Category:Proto-Albanian participles

title: Category:Proto-Albanian participles


text: Category:Proto-Albanian verb forms

title: Category:Proto-Albanian verb forms


text:
intercompréhensible

Etymology
From.

Adjective

 * 1)  mutually intelligible, intercomprehensible that can be mutually understood by each other's speakers

title: intercompréhensible


text:
Rubadub

Proper noun

 * 1)  Ramadan.

title: Rubadub


text:
intercompréhension

Etymology
From.

Noun

 * 1)  intercomprehension, mutual intelligibility

title: intercompréhension


text:
Talk:chaussé-ployé

This is a term (or terms) in heraldry, sometimes unhyphenated chaussé ployé, but I'm not adding it because I think it's probably analysable as SOP: (As the cites above say, compare Talk:chapé-ployé.) - -sche (discuss) 16:55, 8 April 2023 (UTC)

title: Talk:chaussé-ployé


text:
Talk:chapé-ployé

This is a term (or terms) in heraldry, sometimes unhyphenated chapé ployé, but I'm not adding it because I think it's probably analysable as SOP: Compare Talk:chaussé-ployé. - -sche (discuss) 16:55, 8 April 2023 (UTC)

title: Talk:chapé-ployé


text:
Reconstruction:Proto-Albanian/klāusnja

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

Verb

 * 1)  I call, name

Descendants

 * Old Albanian

title: Reconstruction:Proto-Albanian/klāusnja


text: Category:Proto-Albanian transitive verbs


text:
փղիկ

Etymology
From.

title: փղիկ


text:
Talk:փիղ

Chess sense

 * Is the chess sense a semantic loan from Russian ? PUC – 16:58, 8 April 2023 (UTC)

 * I don't know, a philological research is needed. Vahag (talk) 17:00, 8 April 2023 (UTC)

title: Talk:փիղ


text:
կովիկ

Etymology
From.

title: կովիկ


text:
torsja

Etymology
.

Noun

 * 1)  torsion
 * 2)  abnormal torsion of the organ around its axis
 * 1)  abnormal torsion of the organ around its axis

title: torsja


text:
torsje

Etymology
From.

Noun

 * 1)  emesis, vomiting

title: torsje


text:
несделанный

Participle

 * 1) undone

title: несделанный


text:
կատվիկ

Etymology
From.

title: կատվիկ


text:
ձիուկ

Etymology
From.

title: ձիուկ


text:
ուղտիկ

Etymology
From.

title: ուղտիկ


text:
смолить

Etymology
.

Verb

 * 1) to resin, to tar, to pitch
 * 2)  to smoke, puff

title: смолить


text:
aawápsspiinao'sskaa

Verb

 * 1)  to acquire glasses

title: aawápsspiinao'sskaa


text:
aawa'kawani

Noun

 * 1) hinge

title: aawa'kawani


text: Citations:go snake

title: Citations:go snake


text:
Talk:大力士

Also "Herakles"?
Can this also be a definition for "Herakles"? 173.88.246.138 17:14, 8 April 2023 (UTC)

title: Talk:大力士


text:
ááwowáakii

Noun

 * 1) male homosexual

title: ááwowáakii


text:
Citations:palewise

 * 1979, Cormac McCarthy, Suttree, Random House, page 120:
 * Sheer limestone cliffs rose cannellate and palewise and laced with caves where small forktailed birds set forth against a sky reaching blue and moteless to the sun itself.

title: Citations:palewise


text: сімдесяти

title: сімдесяти


text:
aawoyihtsi

Verb

 * 1)  uneven, misaligned

title: aawoyihtsi


text:
User:Sunpla1

Ʉ

title: User:Sunpla1


text: insuing

title: insuing


text:
ááyi'sipissaa

Noun

 * 1) pelican

title: ááyi'sipissaa


text: insued

title: insued


text:
կամաց-կամաց

Adverb

 * 1) little by little, slowly but surely, step by step

title: կամաց-կամաց


text:
aayí'sipissaan

Noun

 * 1) liquid carried in a storage container

title: aayí'sipissaan


text:
get one's head together

Verb

 * 1)  To sort out one's thoughts.

title: get one's head together


text:
گاماس گاماس

Etymology
.

Adverb

 * 1) slowly, unhurriedly
 * 2) gently

title: گاماس گاماس


text:
áa'si

Verb

 * 1)  to be a mile

title: áa'si


text: hedonimeter

title: hedonimeter


text: hedonimeters

title: hedonimeters


text: hobandnobs

title: hobandnobs


text: hobandnobbed

title: hobandnobbed


text: hobandnobbing

title: hobandnobbing


text:
User:BasedBC

To whoever reading this, I hope you have a good day/night and that all your troubles are fixed

title: User:BasedBC


text:
ahkanaapitt

Verb

 * 1)  to make cuts on the body (for the )

title: ahkanaapitt


text: Category:km:Halogens

title: Category:km:Halogens


text: taps up

title: taps up


text: tapped up

title: tapped up


text:
grammaire comparée

Noun

 * 1)  comparative linguistics

title: grammaire comparée


text: ջոգել

title: ջոգել


text:
գունային

Etymology
From.

Adjective

 * 1) chromatic, of or pertaining to color

title: գունային


text:
giggle stick

Noun

 * 1)  A cannabis cigarette.

title: giggle stick


text: giggle sticks

title: giggle sticks


text:
Reconstruction:Proto-Albanian/gatā

Etymology
From.

Noun

 * 1) heron (Ardea cinerea)

title: Reconstruction:Proto-Albanian/gatā


text:
ahkiaap

Affix

 * 1) homeward

title: ahkiaap


text: Category:Blackfoot affixes

title: Category:Blackfoot affixes


text: Category:Blackfoot morphemes

title: Category:Blackfoot morphemes


text:
en urgence

Adverb

 * 1) in a hurry, hurriedly

title: en urgence


text:
d'urgence

Adverb

 * 1) as a matter of urgency, urgently

Usage notes

 * Often completed with intensive :.
 * Not to be confused with.

title: d'urgence


text:
Reconstruction:Proto-Albanian/sjāutā

Etymology
From, with a metathesis. Cognate to 🇨🇬, 🇨🇬, 🇨🇬.

Noun

 * 1) big duck

title: Reconstruction:Proto-Albanian/sjāutā


text: sǫmdu

title: sǫmdu


text:
ahkiaapamm

Verb

 * 1)  to invite home

title: ahkiaapamm


text: Category:sqj-pro:Pigs

title: Category:sqj-pro:Pigs


text: Category:sqj-pro:Livestock

title: Category:sqj-pro:Livestock


text: Category:sqj-pro:Agriculture

title: Category:sqj-pro:Agriculture


text: Category:sqj-pro:Applied sciences

title: Category:sqj-pro:Applied sciences


text: Category:sqj-pro:Even-toed ungulates

title: Category:sqj-pro:Even-toed ungulates


text:
довестися

Etymology
From.

Verb

 * 1)  to have to, to be necessary

title: довестися


text: píndu

title: píndu


text: pínda

title: pínda


text: доведеться

title: доведеться


text: довелося

title: довелося


text:
արջուկ

Etymology
From.

Noun

 * 1) teddy bear
 * 1) teddy bear

title: արջուկ


text:
ahkiaapapohkat

Verb

 * 1)  to take food home

title: ahkiaapapohkat


text:
Reconstruction:Proto-Albanian/artsa

Etymology
From.

Noun

 * 1) bear

Descendants

 * Old Albanian:
 * Old Albanian:
 * , back formation of plural

title: Reconstruction:Proto-Albanian/artsa


text:
miękiszon

Etymology
From.

Noun

 * 1)  pansy, wimp

title: miękiszon


text:
գառնուկ

Etymology
From.

title: գառնուկ


text:
An-k'ang

Etymology
From, romanization: An¹-kʻang¹.

title: An-k'ang


text: Category:sqj-pro:Ursids

title: Category:sqj-pro:Ursids


text:
ahsinat

Verb

 * 1)  to perceive

title: ahsinat


text:
ձագուկ

Etymology
From.

title: ձագուկ


text:
aiist

Affix

 * 1) to location; see

title: aiist


text:
Module:number list/data/dra-pro

local export = {numbers = {}}

export.additional_number_types = { {key = "adjectival", display = "Adjectival", before = "multiplier"}, }

export.numbers[1] = {cardinal = "*onṯu", adjectival = {"*oru", "*on"}} export.numbers[2] = {cardinal = "*ir-", adjectival = "*iru"} export.numbers[3] = {cardinal = "*mūnṯu", adjectival = "*muH"} export.numbers[4] = {cardinal = "*nāl", adjectival = "*nāl"} export.numbers[5] = {cardinal = "*cay", adjectival = "*cay"} export.numbers[6] = {cardinal = "*cāṯu", adjectival = "*caṯ-"} export.numbers[7] = {cardinal = "*ēẓu", adjectival = "*eẓ-"} export.numbers[8] = {cardinal = "*eṇ-", adjectival = "*eṇ-"} export.numbers[9] = {cardinal = {"*toḷ", "*toṇ"}, adjectival = {"*toḷ", "*toṇ"}} export.numbers[10] = {cardinal = "*paHtu", adjectival = "*paH-"} export.numbers[100] = {cardinal = "*nūṯu"}

return export

title: Module:number list/data/dra-pro


text:
más viejo que mear de pie

Etymology
lit. 'older than pissing standing up'.

Adjective

 * 1)  old as the hills

title: más viejo que mear de pie


text:
aiistoo

Verb

 * 1)  to approach speaker's location

title: aiistoo


text:
gülle

Etymology
or, from.

Pronunciation

 * [ɟyᵝʎ̟ˈʎ̟ɛ]

Noun

 * 1)  A spherical cannonball made out of stone or metal.
 * 2)  A modern tank or artillery shell that is cylindrical with a pointy end.
 * 3)  The iron ball used for shot put games; a shot.

title: gülle


text:
Talk:飄飄

Further Chinese definitions
We should add more Chinese definitions for this term. Source: https://www.zdic.net/hans/%E9%A3%98%E9%A3%98 173.88.246.138 17:58, 8 April 2023 (UTC)

title: Talk:飄飄


text:
aiistohko

Verb

 * 1)  to approach

title: aiistohko


text: Category:Blackfoot finals

title: Category:Blackfoot finals


text:
Hasbury

Etymology
From +, dative singular of.

title: Hasbury


text:
User talk:64.237.254.22

Here's our welcome template so you can learn how we do things here. Right now you're just making a mess:

Chuck Entz (talk) 18:07, 8 April 2023 (UTC)

title: User talk:64.237.254.22


text:
Talk:rabboni

Possible tie to רבוני ?
I see there is a word רבוני translated as Sovereign. I’m curious if the Aramaic Rabboni is related to it.

Biblical sources say it is from Aramaic sources and means Master or Teacher.

Is it possible that it has shifted in meaning over the last two millennia ? Jawitkien (talk) 18:08, 8 April 2023 (UTC)

title: Talk:rabboni


text:
невпинно

Etymology
From.

Adverb

 * 1) ceaselessly, constantly, incessantly, relentlessly, unceasingly, unremittingly
 * 2) unstoppably
 * 1) unstoppably
 * 1) unstoppably

title: невпинно


text:
Talk:gutting

Not regional
I'm dropping the ""British" label because things in America, New Zealand, etc are gutting too, e.g. "her breakout single “Night Shift,” a gutting takedown of an ex-lover" (from American publication Them), "'Don't Think Twice' is a gutting look at struggling comedians" (Metro US headline); "RWC decision a 'gutting' blow to Christchurch" (stuff.co.nz headline), "Boosted by a 2-1 win over rivals Auckland in round one, followed by a "gutting" narrow one goal loss to North Harbour last weekend, ..." (NZ Herald story). - -sche (discuss) 18:10, 8 April 2023 (UTC)

title: Talk:gutting


text: haavansa

title: haavansa


text: herrani

title: herrani


text:
វិធីដក

Etymology
🇰🇲

Noun

 * 1)  subtraction

title: វិធីដក


text: girl's blouse

title: girl's blouse


text: huippunsa

title: huippunsa


text: höyhenensä

title: höyhenensä


text:
វិធីគុណ

Etymology
🇰🇲

Noun

 * 1)  multiplication

title: វិធីគុណ


text:
វិធីចែក

Etymology
🇰🇲

Noun

 * 1)  division

title: វិធីចែក


text: isäni

title: isäni


text: karvansa

title: karvansa


text:
polycrise

Etymology
From.

Noun

 * 1)  polycrisis

title: polycrise


text: kunniansa

title: kunniansa


text:
ដើមប្រេងខ្យល់

Etymology
🇰🇲

Noun

 * 1) eucalyptus

title: ដើមប្រេងខ្យល់


text: Category:km:Eucalypts

title: Category:km:Eucalypts


text:
безперервно

Etymology
From. Compare 🇨🇬.

Adverb

 * 1) uninterruptedly, continuously, incessantly, non-stop, without a break

title: безперервно


text:
salonka

Etymology
From.

Noun

 * 1)  saloon coach

title: salonka


text:
հավաքորդ

Noun

 * 1)  collector person who creates or manages a collection

title: հավաքորդ


text: Category:Rhymes:Asturian/eta

title: Category:Rhymes:Asturian/eta


text: Category:Rhymes:Asturian/eta/3 syllables


text: eulogizings

title: eulogizings


text: Category:Rhymes:Asturian/alsu

title: Category:Rhymes:Asturian/alsu


text: Category:Rhymes:Asturian/alsu/2 syllables


text: adsorbtion

title: adsorbtion


text: Category:Rhymes:Asturian/aɾ/4 syllables

title: Category:Rhymes:Asturian/aɾ/4 syllables


text:
Reconstruction:Proto-Albanian/miśśa

Etymology
From older, from. Compare 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬.

Noun

 * 1) meat
 * 2) flesh

title: Reconstruction:Proto-Albanian/miśśa


text: Category:Rhymes:Asturian/eɾa

title: Category:Rhymes:Asturian/eɾa


text: Category:Rhymes:Asturian/eɾa/4 syllables