<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nehster9</id>
	<title>Linguifex - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nehster9"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/wiki/Special:Contributions/Nehster9"/>
	<updated>2026-06-21T05:10:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B7%E1%A0%A1&amp;diff=530441</id>
		<title>Contionary:ᠸᠢᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B7%E1%A0%A1&amp;diff=530441"/>
		<updated>2026-06-21T04:57:57Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: /* Verb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:vivo#Latin|vivo]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/gʷīwō|*gʷīwō]]&#039;&#039;, from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/gʷíh₃weti|*gʷíh₃weti]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /ˈvire/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=vire|pres1=ᠸᠣ|past1=ᠸᠢ|part=ᠸᠢᠨᠰ|pres1rom=vo|past1rom=vi|partrom=vins}}&lt;br /&gt;
# to live, be alive&lt;br /&gt;
# to live in, reside, inhabit&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠸᠣ&#039;&#039;&#039; ᠢᠨ ᠲᠠᠯᠨᠠᠨᠶᠠ ― &#039;&#039;yo &#039;&#039;&#039;vo&#039;&#039;&#039; in Talnanya&#039;&#039; ― I &#039;&#039;&#039;live&#039;&#039;&#039; in Talnania&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%A2%E1%A0%B7%E1%A0%A1&amp;diff=530419</id>
		<title>Contionary:ᠢᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%A2%E1%A0%B7%E1%A0%A1&amp;diff=530419"/>
		<updated>2026-06-21T03:33:13Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created page with &amp;quot;==Talnanian== ===Etymology=== From Latin &amp;#039;&amp;#039;eo&amp;#039;&amp;#039;. Forms beginning with &amp;#039;&amp;#039;v&amp;#039;&amp;#039;- such as Latin &amp;#039;&amp;#039;vado&amp;#039;&amp;#039;; forms beginning with &amp;#039;&amp;#039;o&amp;#039;&amp;#039;- come from Latin &amp;#039;&amp;#039;ambulo&amp;#039;&amp;#039;. === Pronunciation === * IPA: /ˈire/ ===Verb=== {{tln-verb|rom=ire|pres1=ᠸᠣ|past1=ᠣᠯᠠᠢ|part=ᠢᠲᠤ|pres1rom=vo|past1rom=olai|partrom=itu}} # to go #: ᠨᠣᠰ &amp;#039;&amp;#039;&amp;#039;ᠣᠯᠠᠢᠨᠤᠰ&amp;#039;&amp;#039;&amp;#039; ᠠ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:eo#Latin|eo]]&#039;&#039;. Forms beginning with &#039;&#039;v&#039;&#039;- such as [[w:Latin|Latin]] &#039;&#039;[[wikt:vado#Latin|vado]]&#039;&#039;; forms beginning with &#039;&#039;o&#039;&#039;- come from [[w:Latin|Latin]] &#039;&#039;[[wikt:ambulo#Latin|ambulo]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /ˈire/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=ire|pres1=ᠸᠣ|past1=ᠣᠯᠠᠢ|part=ᠢᠲᠤ|pres1rom=vo|past1rom=olai|partrom=itu}}&lt;br /&gt;
# to go&lt;br /&gt;
#: ᠨᠣᠰ &#039;&#039;&#039;ᠣᠯᠠᠢᠨᠤᠰ&#039;&#039;&#039; ᠠ ᠢᠯ ᠺᠢᠨᠠᠲᠢᠠᠲᠷᠤ ― &#039;&#039;nos &#039;&#039;&#039;olainus&#039;&#039;&#039; a il cinatiatru&#039;&#039; ― we &#039;&#039;&#039;went&#039;&#039;&#039; to the cinema.&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530414</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530414"/>
		<updated>2026-06-21T03:07:05Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- IRREGULAR VERBS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local irregulars = {&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;ᠢᠷᠡ&amp;quot;] = {&lt;br /&gt;
&lt;br /&gt;
        pres_1s = &amp;quot;ᠸᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠸᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠸᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠸᠣᠨ&amp;quot;,&lt;br /&gt;
        past_1s = &amp;quot;ᠣᠯᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠣᠯᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠣᠯᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠣᠯᠡᠷᠤᠨ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    elseif irregulars[title]&lt;br /&gt;
       and irregulars[title][slot] then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = irregulars[title][slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530413</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530413"/>
		<updated>2026-06-21T03:06:38Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- IRREGULAR VERBS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local irregulars = {&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;ᠢᠷᠡ&amp;quot;] = {&lt;br /&gt;
&lt;br /&gt;
        pres_1s = &amp;quot;ᠸᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠸᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠸᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠸᠣᠨ&amp;quot;,&lt;br /&gt;
        past_1s = &amp;quot;ᠣᠯᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠣᠯᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠣᠯᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠣᠯᠡᠷᠤᠨ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
    &lt;br /&gt;
    if irregulars[title] then&lt;br /&gt;
    return &amp;quot;FOUND IRREGULAR&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    return &amp;quot;NO IRREGULAR: [&amp;quot; .. title .. &amp;quot;]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    elseif irregulars[title]&lt;br /&gt;
       and irregulars[title][slot] then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = irregulars[title][slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530412</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530412"/>
		<updated>2026-06-21T03:03:58Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Undo revision 530411 by Nehster9 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- IRREGULAR VERBS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local irregulars = {&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;ᠢᠷᠡᠷᠡ&amp;quot;] = {&lt;br /&gt;
&lt;br /&gt;
        pres_1s = &amp;quot;ᠸᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠸᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠸᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠸᠣᠨ&amp;quot;,&lt;br /&gt;
        past_1s = &amp;quot;ᠣᠯᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠣᠯᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠣᠯᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠣᠯᠡᠷᠤᠨ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
    &lt;br /&gt;
    if irregulars[title] then&lt;br /&gt;
    return &amp;quot;FOUND IRREGULAR&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    return &amp;quot;NO IRREGULAR: [&amp;quot; .. title .. &amp;quot;]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    elseif irregulars[title]&lt;br /&gt;
       and irregulars[title][slot] then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = irregulars[title][slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530411</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530411"/>
		<updated>2026-06-21T03:00:53Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- IRREGULAR VERBS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local irregulars = {&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;ᠢᠷᠡᠷᠡ&amp;quot;] = {&lt;br /&gt;
&lt;br /&gt;
        pres_1s = &amp;quot;ᠸᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠸᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠸᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠸᠣᠨ&amp;quot;,&lt;br /&gt;
        past_1s = &amp;quot;ᠣᠯᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠣᠯᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠣᠯᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠣᠯᠡᠷᠤᠨ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().prefixedText&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
    &lt;br /&gt;
    if irregulars[title] then&lt;br /&gt;
    return &amp;quot;FOUND IRREGULAR&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    return &amp;quot;NO IRREGULAR: [&amp;quot; .. title .. &amp;quot;]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    elseif irregulars[title]&lt;br /&gt;
       and irregulars[title][slot] then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = irregulars[title][slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530410</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530410"/>
		<updated>2026-06-21T02:57:44Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- IRREGULAR VERBS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local irregulars = {&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;ᠢᠷᠡᠷᠡ&amp;quot;] = {&lt;br /&gt;
&lt;br /&gt;
        pres_1s = &amp;quot;ᠸᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠸᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠸᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠸᠣᠨ&amp;quot;,&lt;br /&gt;
        past_1s = &amp;quot;ᠣᠯᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠣᠯᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠣᠯᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠣᠯᠡᠷᠤᠨ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
    &lt;br /&gt;
    if irregulars[title] then&lt;br /&gt;
    return &amp;quot;FOUND IRREGULAR&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    return &amp;quot;NO IRREGULAR: [&amp;quot; .. title .. &amp;quot;]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    elseif irregulars[title]&lt;br /&gt;
       and irregulars[title][slot] then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = irregulars[title][slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530409</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530409"/>
		<updated>2026-06-21T02:52:42Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- IRREGULAR VERBS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local irregulars = {&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;ᠢᠷᠡᠷᠡ&amp;quot;] = {&lt;br /&gt;
&lt;br /&gt;
        pres_1s = &amp;quot;ᠸᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠸᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠸᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠸᠣᠨ&amp;quot;,&lt;br /&gt;
        past_1s = &amp;quot;ᠣᠯᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠣᠯᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠣᠯᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠣᠯᠡᠷᠤᠨ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
    &lt;br /&gt;
    if irregulars[title] then&lt;br /&gt;
    return &amp;quot;FOUND IRREGULAR&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    return &amp;quot;NO IRREGULAR&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    elseif irregulars[title]&lt;br /&gt;
       and irregulars[title][slot] then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = irregulars[title][slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530406</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530406"/>
		<updated>2026-06-21T01:11:48Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- IRREGULAR VERBS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local irregulars = {&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;ᠢᠷᠡᠷᠡ&amp;quot;] = {&lt;br /&gt;
&lt;br /&gt;
        pres_1s = &amp;quot;ᠸᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠸᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠸᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠸᠣᠨ&amp;quot;,&lt;br /&gt;
        past_1s = &amp;quot;ᠣᠯᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠣᠯᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠣᠯᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠣᠯᠡᠷᠤᠨ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    elseif irregulars[title]&lt;br /&gt;
       and irregulars[title][slot] then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = irregulars[title][slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530405</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530405"/>
		<updated>2026-06-21T01:09:17Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- IRREGULAR VERBS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local irregulars = {&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;ᠸᠢᠷᠡ&amp;quot;] = {&lt;br /&gt;
&lt;br /&gt;
        pres_1s = &amp;quot;ᠸᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠸᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠸᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠸᠠᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠸᠣᠨ&amp;quot;,&lt;br /&gt;
        past_1s = &amp;quot;ᠣᠯᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠣᠯᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠣᠯᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠣᠯᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠣᠯᠡᠷᠤᠨ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    elseif irregulars[title]&lt;br /&gt;
       and irregulars[title][slot] then&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = irregulars[title][slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
&lt;br /&gt;
        forms[slot] = combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530403</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530403"/>
		<updated>2026-06-20T21:40:31Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Undo revision 530402 by Nehster9 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
        local slot_stem = get_slot_stem(args, slot)&lt;br /&gt;
        forms[slot] = combine(slot_stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530402</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530402"/>
		<updated>2026-06-20T21:32:29Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function get_group_stem(args, group)&lt;br /&gt;
&lt;br /&gt;
    if args[group .. &amp;quot;_lexeme&amp;quot;] and args[group .. &amp;quot;_lexeme&amp;quot;] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        return args[group .. &amp;quot;_lexeme&amp;quot;]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
        local slot_stem = get_slot_stem(args, slot)&lt;br /&gt;
        local group = mw.ustring.match(slot, &amp;quot;^(.-)_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local group_stem = get_group_stem(args, group)&lt;br /&gt;
&lt;br /&gt;
local base_stem = group_stem or get_slot_stem(args, slot) or stem&lt;br /&gt;
&lt;br /&gt;
forms[slot] = combine(base_stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530401</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530401"/>
		<updated>2026-06-20T20:33:38Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠯ&amp;quot;] = &amp;quot;l&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
        local slot_stem = get_slot_stem(args, slot)&lt;br /&gt;
        forms[slot] = combine(slot_stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530400</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530400"/>
		<updated>2026-06-20T20:32:51Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(args, slot)&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(slot, &amp;quot;_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local mood = nil&lt;br /&gt;
    local tense = nil&lt;br /&gt;
    local person_number = nil&lt;br /&gt;
&lt;br /&gt;
    -- Detect capital prefix = mood (your convention)&lt;br /&gt;
    if mw.ustring.match(parts[1], &amp;quot;^[A-Z]&amp;quot;) then&lt;br /&gt;
        mood = parts[1]&lt;br /&gt;
        tense = parts[2]&lt;br /&gt;
        person_number = parts[3]&lt;br /&gt;
    else&lt;br /&gt;
        tense = parts[1]&lt;br /&gt;
        person_number = parts[2]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local person = person_number:sub(1,1)&lt;br /&gt;
    local number = person_number:sub(2,2)&lt;br /&gt;
&lt;br /&gt;
    -- priority list (MOST specific → LEAST specific)&lt;br /&gt;
    local candidates = {}&lt;br /&gt;
&lt;br /&gt;
    if mood then&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_&amp;quot; .. tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
        table.insert(candidates, mood .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person_number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. person .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_&amp;quot; .. number .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
    table.insert(candidates, tense .. &amp;quot;_stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    table.insert(candidates, &amp;quot;stem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for _, key in ipairs(candidates) do&lt;br /&gt;
        if args[key] and args[key] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            return args[key]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
        local slot_stem = get_slot_stem(args, slot)&lt;br /&gt;
        forms[slot] = combine(slot_stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530399</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530399"/>
		<updated>2026-06-20T20:28:10Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
local function get_slot_stem(slot)&lt;br /&gt;
&lt;br /&gt;
    local prefix = mw.ustring.match(slot, &amp;quot;^(.-)_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if args[prefix .. &amp;quot;_stem&amp;quot;] and args[prefix .. &amp;quot;_stem&amp;quot;] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        return args[prefix .. &amp;quot;_stem&amp;quot;]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for slot, ending in pairs(endings[class]) do&lt;br /&gt;
&lt;br /&gt;
    if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        forms[slot] = args[slot]&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
        local slot_stem = get_slot_stem(slot)&lt;br /&gt;
        forms[slot] = combine(slot_stem, ending)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_feminine_nouns&amp;diff=530397</id>
		<title>Category:Talnanian feminine nouns</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_feminine_nouns&amp;diff=530397"/>
		<updated>2026-06-20T18:07:37Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Talnanian nouns using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Talnanian nouns]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_feminine_nouns&amp;diff=530396</id>
		<title>Category:Talnanian feminine nouns</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_feminine_nouns&amp;diff=530396"/>
		<updated>2026-06-20T18:07:28Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_nouns&amp;diff=530395</id>
		<title>Category:Talnanian nouns</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_nouns&amp;diff=530395"/>
		<updated>2026-06-20T18:06:13Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Nouns by language using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Talnanian lemmas]]&lt;br /&gt;
[[Category:Nouns by language]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_nouns&amp;diff=530394</id>
		<title>Category:Talnanian nouns</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_nouns&amp;diff=530394"/>
		<updated>2026-06-20T18:05:57Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Talnanian lemmas using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Talnanian lemmas]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_nouns&amp;diff=530393</id>
		<title>Category:Talnanian nouns</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_nouns&amp;diff=530393"/>
		<updated>2026-06-20T18:05:48Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_verbs&amp;diff=530392</id>
		<title>Category:Talnanian verbs</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_verbs&amp;diff=530392"/>
		<updated>2026-06-20T17:59:25Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Talnanian lemmas using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Verbs by language]]&lt;br /&gt;
[[Category:Talnanian lemmas]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_lemmas&amp;diff=530391</id>
		<title>Category:Talnanian lemmas</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_lemmas&amp;diff=530391"/>
		<updated>2026-06-20T17:59:12Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Contionary using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Talnanian language]]&lt;br /&gt;
[[Category:Lemmas by language]]&lt;br /&gt;
[[Category:Contionary]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_lemmas&amp;diff=530390</id>
		<title>Category:Talnanian lemmas</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_lemmas&amp;diff=530390"/>
		<updated>2026-06-20T17:59:02Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Lemmas by language using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Talnanian language]]&lt;br /&gt;
[[Category:Lemmas by language]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_lemmas&amp;diff=530389</id>
		<title>Category:Talnanian lemmas</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_lemmas&amp;diff=530389"/>
		<updated>2026-06-20T17:58:53Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Talnanian language using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Talnanian language]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_lemmas&amp;diff=530388</id>
		<title>Category:Talnanian lemmas</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_lemmas&amp;diff=530388"/>
		<updated>2026-06-20T17:58:31Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530387</id>
		<title>Category:Talnanian language</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530387"/>
		<updated>2026-06-20T17:57:57Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Languages using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cat main|Talnanian}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Romance]]&lt;br /&gt;
[[Category:Conlangs]]&lt;br /&gt;
[[Category:A posteriori]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530386</id>
		<title>Category:Talnanian language</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530386"/>
		<updated>2026-06-20T17:57:39Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:A posteriori using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cat main|Talnanian}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Romance]]&lt;br /&gt;
[[Category:Conlangs]]&lt;br /&gt;
[[Category:A posteriori]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530385</id>
		<title>Category:Talnanian language</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530385"/>
		<updated>2026-06-20T17:57:04Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Conlangs using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cat main|Talnanian}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Romance]]&lt;br /&gt;
[[Category:Conlangs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530384</id>
		<title>Category:Talnanian language</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530384"/>
		<updated>2026-06-20T17:55:43Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Romance using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cat main|Talnanian}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Romance]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530383</id>
		<title>Category:Talnanian language</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_language&amp;diff=530383"/>
		<updated>2026-06-20T17:54:35Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created page with &amp;quot;{{cat main|Talnanian}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cat main|Talnanian}}&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_verbs&amp;diff=530382</id>
		<title>Category:Talnanian verbs</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_verbs&amp;diff=530382"/>
		<updated>2026-06-20T17:51:47Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: added Category:Verbs by language using HotCat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Verbs by language]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:Talnanian_verbs&amp;diff=530381</id>
		<title>Category:Talnanian verbs</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:Talnanian_verbs&amp;diff=530381"/>
		<updated>2026-06-20T17:49:04Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-headword&amp;diff=530380</id>
		<title>Module:tln-headword</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-headword&amp;diff=530380"/>
		<updated>2026-06-20T17:34:06Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function get_args(frame)&lt;br /&gt;
    return frame:getParent().args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function format_rom(rom)&lt;br /&gt;
    if rom and rom ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        return &amp;quot; • (&amp;quot; .. rom .. &amp;quot;)&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function format_gender(g)&lt;br /&gt;
    local gender_map = {&lt;br /&gt;
        m = &amp;quot;m.&amp;quot;,&lt;br /&gt;
        f = &amp;quot;f.&amp;quot;,&lt;br /&gt;
        n = &amp;quot;n.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    local label = gender_map[g] or (g and (g .. &amp;quot;.&amp;quot;) or &amp;quot;?.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    return &amp;quot; &#039;&#039;&amp;quot; .. label .. &amp;quot;&#039;&#039;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =========================&lt;br /&gt;
-- NOUN&lt;br /&gt;
-- =========================&lt;br /&gt;
function p.noun(frame)&lt;br /&gt;
    local args = get_args(frame)&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local rom = args.rom or &amp;quot;&amp;quot;&lt;br /&gt;
    local g = args.g or &amp;quot;?&amp;quot;&lt;br /&gt;
    local pl = args.pl or &amp;quot;&amp;quot;&lt;br /&gt;
    local plrom = args.plrom or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local text = &amp;quot;&#039;&#039;&#039;&amp;quot; .. title .. &amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
    text = text .. format_rom(rom)&lt;br /&gt;
    text = text .. format_gender(g)&lt;br /&gt;
&lt;br /&gt;
    if pl ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        text = text .. &amp;quot; plural &#039;&#039;&#039;[[Contionary:&amp;quot; .. pl .. &amp;quot;|&amp;quot; .. pl .. &amp;quot;]]&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        if plrom ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            text = text .. &amp;quot; (&amp;quot; .. plrom .. &amp;quot;)&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =========================&lt;br /&gt;
-- VERB&lt;br /&gt;
-- =========================&lt;br /&gt;
function p.verb(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local rom = args.rom or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local pres1 = args.pres1 or &amp;quot;&amp;quot;&lt;br /&gt;
    local past1 = args.past1 or &amp;quot;&amp;quot;&lt;br /&gt;
    local part = args.part or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local pres1rom = args.pres1rom or &amp;quot;&amp;quot;&lt;br /&gt;
    local past1rom = args.past1rom or &amp;quot;&amp;quot;&lt;br /&gt;
    local partrom = args.partrom or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local function format_form(form, rom_form)&lt;br /&gt;
        if form == &amp;quot;&amp;quot; then&lt;br /&gt;
            return &amp;quot;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local out = &amp;quot;&#039;&#039;&#039;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        if rom_form and rom_form ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            out = out .. &amp;quot; (&amp;quot; .. rom_form .. &amp;quot;)&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return out&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local text = &amp;quot;&#039;&#039;&#039;&amp;quot; .. title .. &amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    if rom ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        text = text .. &amp;quot; • (&amp;quot; .. rom .. &amp;quot;)&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local parts = {}&lt;br /&gt;
&lt;br /&gt;
    if pres1 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        table.insert(parts, &amp;quot;first-person singular present &amp;quot; .. format_form(pres1, pres1rom))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if past1 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        table.insert(parts, &amp;quot;first-person singular past &amp;quot; .. format_form(past1, past1rom))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if part ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        table.insert(parts, &amp;quot;past participle &amp;quot; .. format_form(part, partrom))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #parts &amp;gt; 0 then&lt;br /&gt;
        text = text .. &amp;quot; (&amp;quot; .. table.concat(parts, &amp;quot;, &amp;quot;) .. &amp;quot;)&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =========================&lt;br /&gt;
-- ADJECTIVE (basic placeholder)&lt;br /&gt;
-- =========================&lt;br /&gt;
function p.adj(frame)&lt;br /&gt;
    local args = get_args(frame)&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local rom = args.rom or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local text = &amp;quot;&#039;&#039;&#039;&amp;quot; .. title .. &amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
    text = text .. format_rom(rom)&lt;br /&gt;
    text = text .. &amp;quot; &#039;&#039;adj.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-headword&amp;diff=530379</id>
		<title>Module:tln-headword</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-headword&amp;diff=530379"/>
		<updated>2026-06-20T17:32:43Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function get_args(frame)&lt;br /&gt;
    return frame:getParent().args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function format_rom(rom)&lt;br /&gt;
    if rom and rom ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        return &amp;quot; • (&amp;quot; .. rom .. &amp;quot;)&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function format_gender(g)&lt;br /&gt;
    local gender_map = {&lt;br /&gt;
        m = &amp;quot;m.&amp;quot;,&lt;br /&gt;
        f = &amp;quot;f.&amp;quot;,&lt;br /&gt;
        n = &amp;quot;n.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    local label = gender_map[g] or (g and (g .. &amp;quot;.&amp;quot;) or &amp;quot;?.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    return &amp;quot; &#039;&#039;&amp;quot; .. label .. &amp;quot;&#039;&#039;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =========================&lt;br /&gt;
-- NOUN&lt;br /&gt;
-- =========================&lt;br /&gt;
function p.noun(frame)&lt;br /&gt;
    local args = get_args(frame)&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local rom = args.rom or &amp;quot;&amp;quot;&lt;br /&gt;
    local g = args.g or &amp;quot;?&amp;quot;&lt;br /&gt;
    local pl = args.pl or &amp;quot;&amp;quot;&lt;br /&gt;
    local plrom = args.plrom or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local text = &amp;quot;&#039;&#039;&#039;&amp;quot; .. title .. &amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
    text = text .. format_rom(rom)&lt;br /&gt;
    text = text .. format_gender(g)&lt;br /&gt;
&lt;br /&gt;
    if pl ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        text = text .. &amp;quot; plural &#039;&#039;&#039;[[Contionary:&#039; .. pl .. &#039;|&#039; .. pl .. &#039;]]&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        if plrom ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            text = text .. &amp;quot; (&amp;quot; .. plrom .. &amp;quot;)&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =========================&lt;br /&gt;
-- VERB&lt;br /&gt;
-- =========================&lt;br /&gt;
function p.verb(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local rom = args.rom or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local pres1 = args.pres1 or &amp;quot;&amp;quot;&lt;br /&gt;
    local past1 = args.past1 or &amp;quot;&amp;quot;&lt;br /&gt;
    local part = args.part or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local pres1rom = args.pres1rom or &amp;quot;&amp;quot;&lt;br /&gt;
    local past1rom = args.past1rom or &amp;quot;&amp;quot;&lt;br /&gt;
    local partrom = args.partrom or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local function format_form(form, rom_form)&lt;br /&gt;
        if form == &amp;quot;&amp;quot; then&lt;br /&gt;
            return &amp;quot;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local out = &amp;quot;&#039;&#039;&#039;[[Contionary:&#039; .. form .. &#039;|&#039; .. form .. &#039;]]&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        if rom_form and rom_form ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            out = out .. &amp;quot; (&amp;quot; .. rom_form .. &amp;quot;)&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return out&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local text = &amp;quot;&#039;&#039;&#039;&amp;quot; .. title .. &amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    if rom ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        text = text .. &amp;quot; • (&amp;quot; .. rom .. &amp;quot;)&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local parts = {}&lt;br /&gt;
&lt;br /&gt;
    if pres1 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        table.insert(parts, &amp;quot;first-person singular present &amp;quot; .. format_form(pres1, pres1rom))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if past1 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        table.insert(parts, &amp;quot;first-person singular past &amp;quot; .. format_form(past1, past1rom))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if part ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        table.insert(parts, &amp;quot;past participle &amp;quot; .. format_form(part, partrom))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #parts &amp;gt; 0 then&lt;br /&gt;
        text = text .. &amp;quot; (&amp;quot; .. table.concat(parts, &amp;quot;, &amp;quot;) .. &amp;quot;)&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =========================&lt;br /&gt;
-- ADJECTIVE (basic placeholder)&lt;br /&gt;
-- =========================&lt;br /&gt;
function p.adj(frame)&lt;br /&gt;
    local args = get_args(frame)&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local rom = args.rom or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local text = &amp;quot;&#039;&#039;&#039;&amp;quot; .. title .. &amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
    text = text .. format_rom(rom)&lt;br /&gt;
    text = text .. &amp;quot; &#039;&#039;adj.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B7%E1%A0%A1&amp;diff=530378</id>
		<title>Contionary:ᠸᠢᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B7%E1%A0%A1&amp;diff=530378"/>
		<updated>2026-06-20T17:28:16Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Nehster9 moved page ᠸᠢᠷᠡ to Contionary:ᠸᠢᠷᠡ without leaving a redirect: Misspelled title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:vivo#Latin|vivo]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/gʷīwō|*gʷīwō]]&#039;&#039;, from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/gʷíh₃weti|*gʷíh₃weti]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /ˈvire/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=vire|pres1=ᠸᠣ|past1=ᠸᠢ|part=ᠸᠢᠨᠰ|pres1rom=vo|past1rom=vi|partrom=vins}}&lt;br /&gt;
# to live, be alive&lt;br /&gt;
# to live in, reside, inhabit&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠸᠣ&#039;&#039;&#039; ᠢᠨ ᠲᠠᠯᠨᠠᠨᠶᠠ ― &#039;&#039;yo &#039;&#039;&#039;vo&#039;&#039;&#039; en Talnanya&#039;&#039; ― I &#039;&#039;&#039;live&#039;&#039;&#039; in Talnania&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B7%E1%A0%A1&amp;diff=530377</id>
		<title>Contionary:ᠸᠢᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B7%E1%A0%A1&amp;diff=530377"/>
		<updated>2026-06-20T17:25:58Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created page with &amp;quot;==Talnanian== ===Etymology=== From Latin &amp;#039;&amp;#039;vivo&amp;#039;&amp;#039;, from Proto-Italic &amp;#039;&amp;#039;*gʷīwō&amp;#039;&amp;#039;, from Proto-Indo-European &amp;#039;&amp;#039;*gʷíh₃weti&amp;#039;&amp;#039;. === Pronunciation === * IPA: /ˈvire/ ===Verb=== {{tln-verb|rom=vire|pres1=ᠸᠣ|past1=ᠸᠢ|part=ᠸᠢᠨᠰ|pres1rom=vo|past1rom=vi|partrom=vins}}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:vivo#Latin|vivo]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/gʷīwō|*gʷīwō]]&#039;&#039;, from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/gʷíh₃weti|*gʷíh₃weti]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /ˈvire/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=vire|pres1=ᠸᠣ|past1=ᠸᠢ|part=ᠸᠢᠨᠰ|pres1rom=vo|past1rom=vi|partrom=vins}}&lt;br /&gt;
# to live, be alive&lt;br /&gt;
# to live in, reside, inhabit&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠸᠣ&#039;&#039;&#039; ᠢᠨ ᠲᠠᠯᠨᠠᠨᠶᠠ ― &#039;&#039;yo &#039;&#039;&#039;vo&#039;&#039;&#039; en Talnanya&#039;&#039; ― I &#039;&#039;&#039;live&#039;&#039;&#039; in Talnania&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530376</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530376"/>
		<updated>2026-06-20T17:16:38Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠢᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠢᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠢᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠢᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠢᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠢᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠢᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠢᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠢᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠢᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠢᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠢᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠢᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠢᠷᠡᠨ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
    for slot, ending in pairs(endings[class]) do&lt;br /&gt;
        if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            forms[slot] = args[slot]&lt;br /&gt;
        else&lt;br /&gt;
            forms[slot] = combine(stem, ending)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A3%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530304</id>
		<title>Contionary:ᠸᠣᠶᠡᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A3%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530304"/>
		<updated>2026-06-20T13:18:49Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: /* Verb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:volere#Latin|volere]]&#039;&#039;, regularized from [[w:Latin|Latin]] &#039;&#039;[[wikt:velle#Latin|velle]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /vɔˈʎere/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=voyo|pres1=ᠸᠣᠶᠣ|past1=ᠸᠣᠶᠡ|part=ᠸᠣᠶᠡᠨᠰ|pres1rom=voyo|past1rom=voye|partrom=voyens}}&lt;br /&gt;
# to want&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠸᠣᠶᠣ&#039;&#039;&#039; ᠸᠢᠵᠡᠷᠡ ᠲᠤᠨ ᠠᠨᠢᠺᠤ ― &#039;&#039;yo &#039;&#039;&#039;voyo&#039;&#039;&#039; vizere tun anicu&#039;&#039; ― I &#039;&#039;&#039;want&#039;&#039;&#039; to meet your friend&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B4%E1%A0%A1%E1%A0%A8%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530303</id>
		<title>Contionary:ᠴᠡᠨᠶᠡᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B4%E1%A0%A1%E1%A0%A8%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530303"/>
		<updated>2026-06-20T13:18:30Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: /* Verb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:teneo#Latin|teneo]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/tenēō|*tenēō]]&#039;&#039;, stative from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/ten-|*ten-]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /t͡seˈɲere/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=čenyere|pres1=ᠴᠡᠨᠶᠣ|past1=ᠴᠡᠨᠶᠡ|part=ᠴᠡᠨᠲᠤ|pres1rom=čenyo|past1rom=čenye|partrom=čentu}}&lt;br /&gt;
# to have, hold&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠴᠡᠨᠶᠣ&#039;&#039;&#039; ᠳᠣᠰ ᠨᠠᠨᠤᠰ ― &#039;&#039;yo &#039;&#039;&#039;čenyo&#039;&#039;&#039; dos nanus&#039;&#039; ― I &#039;&#039;&#039;have&#039;&#039;&#039; two hands&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B5%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530302</id>
		<title>Contionary:ᠸᠢᠵᠡᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B5%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530302"/>
		<updated>2026-06-20T13:17:55Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: /* Verb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:video#Latin|video]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/widēō|*widēō]]&#039;&#039;, ultimately from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/weyd-|*weyd-]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /viˈd͡ʑere/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=vizere|pres1=ᠸᠢᠵᠣ|past1=ᠸᠢᠵᠢ|part=ᠸᠢᠳᠤᠲᠤ|pres1rom=vizo|past1rom=vizi|partrom=vidutu}}&lt;br /&gt;
# to see&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠸᠢᠵᠣ&#039;&#039;&#039; ᠺᠤ ᠨᠢᠤ ᠣᠺᠤᠯᠤᠰ ― &#039;&#039;yo &#039;&#039;&#039;vizo&#039;&#039;&#039; cu niu oculus&#039;&#039; ― I &#039;&#039;&#039;see&#039;&#039;&#039; with my eyes&lt;br /&gt;
# to understand&lt;br /&gt;
#: ᠲᠤ &#039;&#039;&#039;ᠸᠢᠵᠡᠰ&#039;&#039;&#039; ᠨᠡ? ― &#039;&#039;tu &#039;&#039;&#039;vizes&#039;&#039;&#039; ne?&#039;&#039; ― Do you &#039;&#039;&#039;understand&#039;&#039;&#039;?&lt;br /&gt;
# to visit, meet (see someone)&lt;br /&gt;
#: ᠶᠣ ᠣᠯᠠᠢ &#039;&#039;&#039;ᠸᠢᠵᠡᠷᠡ&#039;&#039;&#039; ᠨᠢᠤ ᠨᠠᠲᠷᠡ ― &#039;&#039;yo olai &#039;&#039;&#039;vizere&#039;&#039;&#039; niu natre&#039;&#039; ― I &#039;&#039;&#039;visited&#039;&#039;&#039; my mother&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%AF%E1%A0%A2%E1%A0%A8%E1%A0%B8%E1%A0%A0&amp;diff=530301</id>
		<title>Contionary:ᠯᠢᠨᠸᠠ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%AF%E1%A0%A2%E1%A0%A8%E1%A0%B8%E1%A0%A0&amp;diff=530301"/>
		<updated>2026-06-20T13:15:04Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: /* Noun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:lingua#Latin|lingua]]&#039;&#039;, from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/dn̥ǵʰwéh₂s|*dn̥ǵʰwéh₂s]]&#039;&#039;&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /ˈlinva/&lt;br /&gt;
===Noun===&lt;br /&gt;
{{tln-noun|g=f|rom=apa|pl=ᠯᠢᠨᠸᠠᠰ|plrom=linvas}}&lt;br /&gt;
# language&lt;br /&gt;
#: ᠯᠠ &#039;&#039;&#039;ᠯᠢᠨᠸᠠ&#039;&#039;&#039; ᠲᠠᠯᠨᠠᠨᠶᠠᠨᠠ ― &#039;&#039;la &#039;&#039;&#039;linva&#039;&#039;&#039; talnanyana&#039;&#039; ― the Talnanian &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian nouns]][[Category:Talnanian feminine nouns]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A3%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530300</id>
		<title>Contionary:ᠸᠣᠶᠡᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A3%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530300"/>
		<updated>2026-06-20T13:13:46Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created page with &amp;quot;==Talnanian== ===Etymology=== From Latin &amp;#039;&amp;#039;volere&amp;#039;&amp;#039;, regularized from Latin &amp;#039;&amp;#039;velle&amp;#039;&amp;#039;. === Pronunciation === * IPA: /vɔˈʎere/ ===Verb=== {{tln-verb|rom=voyo|pres1=ᠸᠣᠶᠣ|past1=ᠸᠣᠶᠡ|part=ᠸᠣᠶᠡᠨᠰ|pres1rom=voyo|past1rom=voye|partrom=voyens}} # to have, hold #: ᠶᠣ &amp;#039;&amp;#039;&amp;#039;ᠸᠣᠶᠣ&amp;#039;&amp;#039;&amp;#039; ᠸᠢᠵᠡᠷᠡ ᠲᠤᠨ ᠠᠨᠢᠺᠤ ― &amp;#039;&amp;#039;yo &amp;#039;&amp;#039;&amp;#039;voyo&amp;#039;&amp;#039;&amp;#039; vizere tun anicu&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:volere#Latin|volere]]&#039;&#039;, regularized from [[w:Latin|Latin]] &#039;&#039;[[wikt:velle#Latin|velle]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /vɔˈʎere/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=voyo|pres1=ᠸᠣᠶᠣ|past1=ᠸᠣᠶᠡ|part=ᠸᠣᠶᠡᠨᠰ|pres1rom=voyo|past1rom=voye|partrom=voyens}}&lt;br /&gt;
# to have, hold&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠸᠣᠶᠣ&#039;&#039;&#039; ᠸᠢᠵᠡᠷᠡ ᠲᠤᠨ ᠠᠨᠢᠺᠤ ― &#039;&#039;yo &#039;&#039;&#039;voyo&#039;&#039;&#039; vizere tun anicu&#039;&#039; ― I want to meet your friend&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530299</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530299"/>
		<updated>2026-06-20T13:04:24Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠸᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠸᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠸᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠸᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠸᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠸᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠡᠸᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠡᠸᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠡᠸᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠡᠸᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠡᠸᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠡᠸᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠴᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;§1S_IRE§&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;§2S_IRE§&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;§3S_IRE§&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;§1P_IRE§&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;§2P_IRE§&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;§3P_IRE§&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;§I1S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;§I2S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;§I3S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;§I1P_IRE§&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;§I2P_IRE§&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;§I3P_IRE§&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;§P1S_IRE§&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;§P2S_IRE§&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;§P3S_IRE§&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;§P1P_IRE§&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;§P2P_IRE§&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;§P3P_IRE§&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;§F1S_IRE§&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;§F2S_IRE§&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;§F3S_IRE§&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;§F1P_IRE§&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;§F2P_IRE§&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;§F3P_IRE§&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
    for slot, ending in pairs(endings[class]) do&lt;br /&gt;
        if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            forms[slot] = args[slot]&lt;br /&gt;
        else&lt;br /&gt;
            forms[slot] = combine(stem, ending)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B4%E1%A0%A1%E1%A0%A8%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530298</id>
		<title>Contionary:ᠴᠡᠨᠶᠡᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B4%E1%A0%A1%E1%A0%A8%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530298"/>
		<updated>2026-06-20T13:00:16Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: /* Talnanian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:teneo#Latin|teneo]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/tenēō|*tenēō]]&#039;&#039;, stative from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/ten-|*ten-]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /t͡seˈɲere/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=čenyere|pres1=ᠴᠡᠨᠶᠣ|past1=ᠴᠡᠨᠶᠡ|part=ᠴᠡᠨᠲᠤ|pres1rom=čenyo|past1rom=čenye|partrom=čentu}}&lt;br /&gt;
# to have, hold&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠴᠡᠨᠶᠣ&#039;&#039;&#039; ᠳᠣᠰ ᠨᠠᠨᠤᠰ ― &#039;&#039;yo &#039;&#039;&#039;čenyo&#039;&#039;&#039; dos nanus&#039;&#039; ― I have two hands&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530285</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530285"/>
		<updated>2026-06-20T06:44:29Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠸᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠸᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠸᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠸᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠸᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠸᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠡᠸᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠡᠸᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠡᠸᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠡᠸᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠡᠸᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠡᠸᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠴᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;§1S_IRE§&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;§2S_IRE§&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;§3S_IRE§&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;§1P_IRE§&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;§2P_IRE§&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;§3P_IRE§&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;§I1S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;§I2S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;§I3S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;§I1P_IRE§&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;§I2P_IRE§&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;§I3P_IRE§&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;§P1S_IRE§&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;§P2S_IRE§&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;§P3S_IRE§&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;§P1P_IRE§&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;§P2P_IRE§&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;§P3P_IRE§&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;§F1S_IRE§&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;§F2S_IRE§&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;§F3S_IRE§&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;§F1P_IRE§&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;§F2P_IRE§&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;§F3P_IRE§&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[Contionary:&amp;quot; .. form .. &amp;quot;|&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠨᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
    for slot, ending in pairs(endings[class]) do&lt;br /&gt;
        if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            forms[slot] = args[slot]&lt;br /&gt;
        else&lt;br /&gt;
            forms[slot] = combine(stem, ending)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[Contionary:&#039; .. title .. &#039;|&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B4%E1%A0%A1%E1%A0%A8%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530284</id>
		<title>Contionary:ᠴᠡᠨᠶᠡᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B4%E1%A0%A1%E1%A0%A8%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530284"/>
		<updated>2026-06-20T06:41:29Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:teneo#Latin|teneo]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/tenēō|*tenēō]]&#039;&#039;, stative from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/ten-|*ten-]]&#039;&#039;&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /t͡seˈɲere/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=čenyere|pres1=ᠴᠡᠨᠶᠣ|past1=ᠴᠡᠨᠶᠡ|part=ᠴᠡᠨᠲᠤ|pres1rom=čenyo|past1rom=čenye|partrom=čentu}}&lt;br /&gt;
# to have, hold&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠴᠡᠨᠶᠣ&#039;&#039;&#039; ᠳᠣᠰ ᠨᠠᠨᠤᠰ ― &#039;&#039;yo &#039;&#039;&#039;čenyo&#039;&#039;&#039; dos nanus&#039;&#039; ― I have two hands&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B4%E1%A0%A1%E1%A0%A8%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530283</id>
		<title>Contionary:ᠴᠡᠨᠶᠡᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B4%E1%A0%A1%E1%A0%A8%E1%A0%B6%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530283"/>
		<updated>2026-06-20T06:41:16Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Nehster9 moved page ᠴᠡᠨᠶᠡᠷᠡ to Contionary:ᠴᠡᠨᠶᠡᠷᠡ without leaving a redirect: Misspelled title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:teneo#Latin|teneo]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/tenēō|*tenēō]]&#039;&#039;, stative from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/ten-|*ten-]]&#039;&#039;&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /t͡seˈɲere/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=čenyere|pres1=ᠸᠢᠵᠣ|past1=ᠸᠢᠵᠢ|part=ᠸᠢᠳᠤᠲᠤ|pres1rom=vizo|past1rom=vizi|partrom=vidutu}}&lt;br /&gt;
# to have, hold&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠴᠡᠨᠶᠣ&#039;&#039;&#039; ᠳᠣᠰ ᠨᠠᠨᠤᠰ ― &#039;&#039;yo &#039;&#039;&#039;čenyo&#039;&#039;&#039; dos nanus&#039;&#039; ― I have two hands&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B3%E1%A0%A3%E1%A0%A8%E1%A0%A0%E1%A0%B7%E1%A0%A1&amp;diff=530282</id>
		<title>Contionary:ᠳᠣᠨᠠᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B3%E1%A0%A3%E1%A0%A8%E1%A0%A0%E1%A0%B7%E1%A0%A1&amp;diff=530282"/>
		<updated>2026-06-20T06:36:46Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: Created page with &amp;quot;==Talnanian== ===Etymology=== From Latin &amp;#039;&amp;#039;dono&amp;#039;&amp;#039;, from Proto-Italic &amp;#039;&amp;#039;*dōnāō&amp;#039;&amp;#039;. === Pronunciation === * IPA: /dɔˈnare/ ===Verb=== {{tln-verb|rom=donare|pres1=ᠳᠣᠨᠣ|past1=ᠳᠣᠨᠠᠢ|part=ᠳᠣᠨᠠᠲᠤ|pres1rom=dono|past1rom=donai|partrom=donatu}} # to give ====Conjugation==== {{tln-conj}} Category:ContionaryCategory:Talnanian lemmas...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:dono#Latin|dono]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/dōnāō|*dōnāō]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /dɔˈnare/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=donare|pres1=ᠳᠣᠨᠣ|past1=ᠳᠣᠨᠠᠢ|part=ᠳᠣᠨᠠᠲᠤ|pres1rom=dono|past1rom=donai|partrom=donatu}}&lt;br /&gt;
# to give&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530281</id>
		<title>Module:tln-conj</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tln-conj&amp;diff=530281"/>
		<updated>2026-06-20T06:33:18Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- ENDINGS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local endings = {&lt;br /&gt;
    are = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠠᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠠᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠠᠸᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠠᠸᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠠᠸᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠠᠸᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠠᠸᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠠᠸᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠠᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠠᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠠᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠠᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠠᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠠᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠠᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠠᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠠᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠠᠷᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠠᠷᠡᠨ&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ere = {&lt;br /&gt;
        pres_1s = &amp;quot;ᠣ&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;ᠡᠰ&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;ᠡᠲ&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;ᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;ᠡᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;ᠡᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        imperf_1s = &amp;quot;ᠡᠸᠠᠨ&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;ᠡᠸᠠᠰ&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;ᠡᠸᠠᠲ&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;ᠡᠸᠠᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;ᠡᠸᠠᠵᠢᠰ&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;ᠡᠸᠠᠨ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;ᠢ&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;ᠢᠰᠲᠢ&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;ᠢᠲ&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;ᠢᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;ᠢᠰᠲᠢᠰ&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;ᠡᠷᠤᠨ&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;ᠡᠷᠢᠣ&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;ᠡᠷᠡᠰ&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;ᠡᠷᠡᠲ&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;ᠡᠷᠡᠨᠤᠰ&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;ᠡᠷᠡᠴᠢᠰ&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;ᠡᠷᠡᠨ&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    ire = {&lt;br /&gt;
        pres_1s = &amp;quot;§1S_IRE§&amp;quot;,&lt;br /&gt;
        pres_2s = &amp;quot;§2S_IRE§&amp;quot;,&lt;br /&gt;
        pres_3s = &amp;quot;§3S_IRE§&amp;quot;,&lt;br /&gt;
        pres_1p = &amp;quot;§1P_IRE§&amp;quot;,&lt;br /&gt;
        pres_2p = &amp;quot;§2P_IRE§&amp;quot;,&lt;br /&gt;
        pres_3p = &amp;quot;§3P_IRE§&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        imperf_1s = &amp;quot;§I1S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_2s = &amp;quot;§I2S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_3s = &amp;quot;§I3S_IRE§&amp;quot;,&lt;br /&gt;
        imperf_1p = &amp;quot;§I1P_IRE§&amp;quot;,&lt;br /&gt;
        imperf_2p = &amp;quot;§I2P_IRE§&amp;quot;,&lt;br /&gt;
        imperf_3p = &amp;quot;§I3P_IRE§&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        past_1s = &amp;quot;§P1S_IRE§&amp;quot;,&lt;br /&gt;
        past_2s = &amp;quot;§P2S_IRE§&amp;quot;,&lt;br /&gt;
        past_3s = &amp;quot;§P3S_IRE§&amp;quot;,&lt;br /&gt;
        past_1p = &amp;quot;§P1P_IRE§&amp;quot;,&lt;br /&gt;
        past_2p = &amp;quot;§P2P_IRE§&amp;quot;,&lt;br /&gt;
        past_3p = &amp;quot;§P3P_IRE§&amp;quot;,&lt;br /&gt;
        &lt;br /&gt;
        fut_1s = &amp;quot;§F1S_IRE§&amp;quot;,&lt;br /&gt;
        fut_2s = &amp;quot;§F2S_IRE§&amp;quot;,&lt;br /&gt;
        fut_3s = &amp;quot;§F3S_IRE§&amp;quot;,&lt;br /&gt;
        fut_1p = &amp;quot;§F1P_IRE§&amp;quot;,&lt;br /&gt;
        fut_2p = &amp;quot;§F2P_IRE§&amp;quot;,&lt;br /&gt;
        fut_3p = &amp;quot;§F3P_IRE§&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- CLASS DETECTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function detect_class(title)&lt;br /&gt;
    if mw.ustring.match(title, &amp;quot;ᠠᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;are&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠡᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ere&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(title, &amp;quot;ᠢᠷᠡ$&amp;quot;) then&lt;br /&gt;
        return &amp;quot;ire&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_stem(title, class)&lt;br /&gt;
    if class == &amp;quot;are&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠠᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ere&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠡᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    elseif class == &amp;quot;ire&amp;quot; then&lt;br /&gt;
        return mw.ustring.gsub(title, &amp;quot;ᠢᠷᠡ$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- TRANSLITERATION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local translit = {&lt;br /&gt;
    [&amp;quot;ᠠ&amp;quot;] = &amp;quot;a&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠡ&amp;quot;] = &amp;quot;e&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠢ&amp;quot;] = &amp;quot;i&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠣ&amp;quot;] = &amp;quot;o&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠤ&amp;quot;] = &amp;quot;u&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠷ&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠸ&amp;quot;] = &amp;quot;v&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠵ&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠰ&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠲ&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠨ&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠴ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠶ&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
    [&amp;quot;ᠳ&amp;quot;] = &amp;quot;d&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function romanize(text)&lt;br /&gt;
    local result = text&lt;br /&gt;
    for bichig, latin in pairs(translit) do&lt;br /&gt;
        result = mw.ustring.gsub(result, bichig, latin)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- DISPLAY HELPERS&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function make_cell(form)&lt;br /&gt;
    return &amp;quot;&amp;lt;div style=&#039;text-align:center;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. &amp;quot;[[&amp;quot; .. form .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#777777; font-size:90%;&#039;&amp;gt;&amp;quot;&lt;br /&gt;
        .. romanize(form)&lt;br /&gt;
        .. &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function combine(stem, ending)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(stem, &amp;quot;ᠨᠶ$&amp;quot;) and&lt;br /&gt;
       mw.ustring.match(ending, &amp;quot;^ᠢ&amp;quot;) then&lt;br /&gt;
&lt;br /&gt;
        ending = mw.ustring.gsub(ending, &amp;quot;^ᠢ&amp;quot;, &amp;quot;ᠡ&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return stem .. ending&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
-- MAIN FUNCTION&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.show(frame)&lt;br /&gt;
&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
    local class = args.class or detect_class(title)&lt;br /&gt;
    if not class then&lt;br /&gt;
        return &amp;quot;Error: could not determine conjugation class.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local stem = get_stem(title, class)&lt;br /&gt;
&lt;br /&gt;
    local forms = {}&lt;br /&gt;
&lt;br /&gt;
    for slot, ending in pairs(endings[class]) do&lt;br /&gt;
        if args[slot] and args[slot] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            forms[slot] = args[slot]&lt;br /&gt;
        else&lt;br /&gt;
            forms[slot] = combine(stem, ending)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local text =&lt;br /&gt;
        &#039;{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;\n&#039;&lt;br /&gt;
        .. &#039;|+ Conjugation of [[&#039; .. title .. &#039;]] (&amp;lt;span style=&amp;quot;color:#777777;&amp;quot;&amp;gt;&#039; .. romanize(title) .. &#039;&amp;lt;/span&amp;gt;)\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- HEADER&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Mood !! Tense !! colspan=&amp;quot;3&amp;quot; | Singular !! colspan=&amp;quot;3&amp;quot; | Plural\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;!  !!  !! 1st !! 2nd !! 3rd !! 1st !! 2nd !! 3rd\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PRESENT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! rowspan=&amp;quot;4&amp;quot; | Indicative\n&#039;&lt;br /&gt;
        .. &#039;! Present\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.pres_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.pres_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- IMPERFECT&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Imperfect\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.imperf_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.imperf_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- PAST&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Past\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.past_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.past_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
        &lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
        -- FUTURE&lt;br /&gt;
        ----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|-\n&#039;&lt;br /&gt;
        .. &#039;! Future\n&#039;&lt;br /&gt;
        .. &#039;| &#039; .. make_cell(forms.fut_1s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3s)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_1p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_2p)&lt;br /&gt;
        .. &#039; || &#039; .. make_cell(forms.fut_3p)&lt;br /&gt;
        .. &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
        .. &#039;|}&#039;&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B5%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530280</id>
		<title>Contionary:ᠸᠢᠵᠡᠷᠡ</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%E1%A0%B8%E1%A0%A2%E1%A0%B5%E1%A0%A1%E1%A0%B7%E1%A0%A1&amp;diff=530280"/>
		<updated>2026-06-20T06:32:31Z</updated>

		<summary type="html">&lt;p&gt;Nehster9: /* Talnanian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talnanian==&lt;br /&gt;
===Etymology===&lt;br /&gt;
From [[w:Latin|Latin]] &#039;&#039;[[wikt:video#Latin|video]]&#039;&#039;, from [[w:Proto-Italic|Proto-Italic]] &#039;&#039;[[wikt:Reconstruction:Proto-Italic/widēō|*widēō]]&#039;&#039;, ultimately from [[w:Proto-Indo-European|Proto-Indo-European]] &#039;&#039;[[wikt:Reconstruction:Proto-Indo-European/weyd-|*weyd-]]&#039;&#039;.&lt;br /&gt;
=== Pronunciation ===&lt;br /&gt;
* [[Guide:IPA|IPA]]: /viˈd͡ʑere/&lt;br /&gt;
===Verb===&lt;br /&gt;
{{tln-verb|rom=vizere|pres1=ᠸᠢᠵᠣ|past1=ᠸᠢᠵᠢ|part=ᠸᠢᠳᠤᠲᠤ|pres1rom=vizo|past1rom=vizi|partrom=vidutu}}&lt;br /&gt;
# to see&lt;br /&gt;
#: ᠶᠣ &#039;&#039;&#039;ᠸᠢᠵᠣ&#039;&#039;&#039; ᠺᠤ ᠨᠢᠤ ᠣᠺᠤᠯᠤᠰ ― &#039;&#039;yo &#039;&#039;&#039;vizo&#039;&#039;&#039; cu niu oculus&#039;&#039; ― I see with my eyes&lt;br /&gt;
# to understand&lt;br /&gt;
#: ᠲᠤ &#039;&#039;&#039;ᠸᠢᠵᠡᠰ&#039;&#039;&#039; ᠨᠡ? ― &#039;&#039;tu &#039;&#039;&#039;vizes&#039;&#039;&#039; ne?&#039;&#039; ― Do you understand?&lt;br /&gt;
# to visit, meet (see someone)&lt;br /&gt;
#: ᠶᠣ ᠣᠯᠠᠢ &#039;&#039;&#039;ᠸᠢᠵᠡᠷᠡ&#039;&#039;&#039; ᠨᠢᠤ ᠨᠠᠲᠷᠡ ― &#039;&#039;yo olai &#039;&#039;&#039;vizere&#039;&#039;&#039; niu natre&#039;&#039; ― I visited my mother&lt;br /&gt;
====Conjugation====&lt;br /&gt;
{{tln-conj}}&lt;br /&gt;
[[Category:Contionary]][[Category:Talnanian lemmas]][[Category:Talnanian verbs]]&lt;/div&gt;</summary>
		<author><name>Nehster9</name></author>
	</entry>
</feed>