モジュール:chg-noun-inflection
表示
このモジュールについての説明文ページを モジュール:chg-noun-inflection/doc に作成できます
local export = {}
local lang = require("モジュール:languages").getByCode("chg")
--sound inventories based on vowel harmony
local front_sounds_lat = {
["A"] = "ä",
["I"] = "i",
["U"] = "ü",
["close"] = {["rounded"] = "ü", ["unrounded"] = "i"},
["O"] = "ö",
["consonants"] = {
["voiced"] = {["dorsal"] = "g", ["alveolar"] = "d"},
["unvoiced"] = {["dorsal"] = "k", ["alveolar"] = "t"}
}
}
local back_sounds_lat = {
["A"] = "a",
["I"] = "ı",
["U"] = "u",
["close"] = {["rounded"] = "u", ["unrounded"] = "ı"},
["O"] = "o",
["consonants"] = {
["voiced"] = {["dorsal"] = "ġ", ["alveolar"] = "d"},
["unvoiced"] = {["dorsal"] = "q", ["alveolar"] = "t"}
}
}
local inventory_chg = {
["I"] = "ی",
["close"] = {["rounded"] = "و", ["unrounded"] = "ی"},
["consonants"] = {
["voiced"] = {["dorsal"] = "غ", ["alveolar"] = "د"},
["unvoiced"] = {["dorsal"] = "ک", ["alveolar"] = "ت"}
}
}
function export.above(frame)
--basic assignments
local params = {
["head"] = {default = mw.loadData("モジュール:headword/data").pagename},
["tr"] = {required = true, default = "default"},
["loan"] = {type = "boolean"},
["st"] = {type = "boolean"},
["pt"] = {type = "boolean"},
["vza"] = {type = "boolean"},
["pr"] = {type = "boolean"},
["poss"] = {type = "boolean"}
}
local args = require("モジュール:parameters").process(frame:getParent().args, params)
local stem_chg = mw.loadData("モジュール:headword/data").pagename
if args["head"] then
stem_chg = args["head"]
end
local stem_lat = args["tr"]
local data = {forms = {}, info = stem_chg .. " の格変化 (" .. stem_lat .. ")", categories = {}}
local last_vowel = mw.ustring.match(stem_lat, ".*([aāäiīıoōöuūü])")
local inventory_lat = back_sounds_lat
--inventory selection based on palatal vowel harmony
if not args["loan"] then
if last_vowel == "ä" or last_vowel == "i" or last_vowel == "ü" or last_vowel == "ö" then
inventory_lat = front_sounds_lat
end
else
if (not mw.ustring.find(stem_lat, "[ṭṣqḥḍẓġ]")) and (last_vowel == "a" or last_vowel == "i" or last_vowel == "u") then
inventory_lat = front_sounds_lat
end
end
--close vowel selection based on labial vowel harmony
local close_vowel_lat = inventory_lat["close"]["unrounded"]
local close_vowel_chg = inventory_chg["close"]["unrounded"]
if last_vowel == inventory_lat["U"] or last_vowel == inventory_lat["O"] then
close_vowel_lat = inventory_lat["close"]["rounded"]
close_vowel_chg = inventory_chg["close"]["rounded"]
end
--defining voicing of certain consonants (function for use in suffix declaration)
local function consonants_decl(base_stem)
local last_letter = mw.ustring.sub(base_stem, -1)
if not mw.ustring.find(last_letter, "[aāäeiīıoöuūü]") then
if mw.ustring.find(last_letter, "[pščftṭṣkqḫḥh]") then
return inventory_lat["consonants"]["unvoiced"], inventory_chg["consonants"]["unvoiced"]
else
return inventory_lat["consonants"]["voiced"], inventory_chg["consonants"]["voiced"]
end
else
return inventory_lat["consonants"]["voiced"], inventory_chg["consonants"]["voiced"]
end
end
--ZWNJ assignment for correct orthography
if mw.ustring.sub(stem_chg, -1) == "ه" and mw.ustring.sub(stem_lat, -1) == inventory_lat["A"] then
stem_chg = stem_chg .. ""
end
--stem assignments
local stem_pl_chg = stem_chg .. "لار"
local stem_pl_lat = stem_lat .. "l" .. inventory_lat["A"] .. "r"
local poss_stem_lat = stem_lat
local poss_stem_pl_lat = stem_pl_lat
local poss_stem_chg = stem_chg
local poss_stem_pl_chg = stem_pl_chg
--vowel-zero alteration check
if args["vza"] then
poss_stem_lat = mw.ustring.gsub(stem_lat, "(.*)[iīıuūü](.*)", "%1%2", 1)
poss_stem_chg = mw.ustring.gsub(stem_chg, "(.*)[وی](.*)", "%1%2", 1)
end
--defining possessive forms
local function poss_decl(base_stem_lat, base_stem_chg)
local last_letter = mw.ustring.sub(base_stem_lat, -1)
local base_poss_stem_lat = base_stem_lat
local base_poss_stem_chg = base_stem_chg
local base_poss_stem_3ps_lat = base_stem_lat .. "s"
local base_poss_stem_3ps_chg = base_stem_chg .. "س"
if base_stem_chg == "سو" and base_stem_lat == "su" then
base_poss_stem_lat = "suyu"
base_poss_stem_chg = "سویو"
base_poss_stem_3ps_lat = "suy"
base_poss_stem_3ps_chg = "سوی"
elseif not mw.ustring.find(last_letter, "[aāäiīıoöuūü]") then
base_poss_stem_lat = base_stem_lat .. close_vowel_lat
base_poss_stem_chg = base_stem_chg .. close_vowel_chg
base_poss_stem_3ps_lat = base_stem_lat
base_poss_stem_3ps_chg = base_stem_chg
end
return {
["lat_1sg"] = base_poss_stem_lat .. "m",
["lat_2sg"] = base_poss_stem_lat .. "ng",
["lat_3sg"] = base_poss_stem_3ps_lat .. inventory_lat["I"],
["lat_1pl"] = base_poss_stem_lat .. "m" .. inventory_lat["I"] .. "z",
["lat_a_2pl"] = base_poss_stem_lat .. "ng" .. inventory_lat["I"] .. "z",
["lat_b_2pl"] = base_poss_stem_lat .. "ngl" .. inventory_lat["A"] .. "r",
["lat_a_3pl"] = (mw.ustring.match(base_stem_lat, "l" .. inventory_lat["A"] .. "r$") and base_stem_lat or base_stem_lat .. "l" .. inventory_lat["A"] .. "r") .. inventory_lat["I"],
["lat_b_3pl"] = base_poss_stem_3ps_lat .. inventory_lat["I"],
["chg_1sg"] = base_poss_stem_chg .. "م",
["chg_2sg"] = base_poss_stem_chg .. "نگ",
["chg_3sg"] = base_poss_stem_3ps_chg .. "ی",
["chg_1pl"] = base_poss_stem_chg .. "میز",
["chg_a_2pl"] = base_poss_stem_chg .. "نگیز",
["chg_b_2pl"] = base_poss_stem_chg .. "نگلار",
["chg_a_3pl"] = (mw.ustring.match(base_stem_chg, "لار$") and base_stem_chg or base_stem_chg .. "لار") .. inventory_chg["I"],
["chg_b_3pl"] = base_poss_stem_3ps_chg .. "ی",
}
end
local sg_poss = poss_decl(poss_stem_lat, poss_stem_chg)
local pl_poss = poss_decl(poss_stem_pl_lat, poss_stem_pl_chg)
--defining suffixed forms
local function suffix_decl(base_stem_lat, base_stem_chg)
local cons_inventory_lat, cons_inventory_chg = consonants_decl(base_stem_lat)
return {
["lat_nom"] = base_stem_lat,
["lat_gen"] = base_stem_lat .. "n" .. inventory_lat["I"] .. "ng",
["lat_def_acc"] = base_stem_lat .. "n" .. inventory_lat["I"],
["lat_dat"] = base_stem_lat .. cons_inventory_lat["dorsal"] .. inventory_lat["A"],
["lat_abl"] = base_stem_lat .. cons_inventory_lat["alveolar"] .. inventory_lat["I"] .. "n",
["lat_loc"] = base_stem_lat .. cons_inventory_lat["alveolar"] .. inventory_lat["A"],
["chg_nom"] = base_stem_chg,
["chg_gen"] = base_stem_chg .. "نینگ",
["chg_def_acc"] = base_stem_chg .. "نی",
["chg_dat"] = base_stem_chg .. cons_inventory_chg["dorsal"] .. "ە",
["chg_abl"] = base_stem_chg .. cons_inventory_chg["alveolar"] .. "ین",
["chg_loc"] = base_stem_chg .. cons_inventory_chg["alveolar"] .. "ە"
}
end
data.forms["decl_sg"] = suffix_decl(stem_lat, stem_chg)
data.forms["decl_pl"] = suffix_decl(stem_pl_lat, stem_pl_chg)
--defining suffixed possessive forms
if args["poss"] then
data.forms["decl_poss_1sg_sg"] = suffix_decl(sg_poss["lat_1sg"], sg_poss["chg_1sg"])
data.forms["decl_poss_1sg_pl"] = suffix_decl(pl_poss["lat_1sg"], pl_poss["chg_1sg"])
data.forms["decl_poss_2sg_sg"] = suffix_decl(sg_poss["lat_2sg"], sg_poss["chg_2sg"])
data.forms["decl_poss_2sg_pl"] = suffix_decl(pl_poss["lat_2sg"], pl_poss["chg_2sg"])
data.forms["decl_poss_3sg_sg"] = suffix_decl(sg_poss["lat_3sg"], sg_poss["chg_3sg"])
data.forms["decl_poss_3sg_pl"] = suffix_decl(pl_poss["lat_3sg"], pl_poss["chg_3sg"])
data.forms["decl_poss_1pl_sg"] = suffix_decl(sg_poss["lat_1pl"], sg_poss["chg_1pl"])
data.forms["decl_poss_1pl_pl"] = suffix_decl(pl_poss["lat_1pl"], pl_poss["chg_1pl"])
data.forms["decl_poss_a_2pl_sg"] = suffix_decl(sg_poss["lat_a_2pl"], sg_poss["chg_a_2pl"])
data.forms["decl_poss_a_2pl_pl"] = suffix_decl(pl_poss["lat_a_2pl"], pl_poss["chg_a_2pl"])
data.forms["decl_poss_b_2pl_sg"] = suffix_decl(sg_poss["lat_b_2pl"], sg_poss["chg_b_2pl"])
data.forms["decl_poss_b_2pl_pl"] = suffix_decl(pl_poss["lat_b_2pl"], pl_poss["chg_b_2pl"])
data.forms["decl_poss_a_3pl_sg"] = suffix_decl(sg_poss["lat_a_3pl"], sg_poss["chg_a_3pl"])
data.forms["decl_poss_a_3pl_pl"] = suffix_decl(pl_poss["lat_a_3pl"], pl_poss["chg_a_3pl"])
data.forms["decl_poss_b_3pl_sg"] = suffix_decl(sg_poss["lat_b_3pl"], sg_poss["chg_b_3pl"])
data.forms["decl_poss_b_3pl_pl"] = suffix_decl(pl_poss["lat_b_3pl"], pl_poss["chg_b_3pl"])
end
postprocess(args, data)
return finaloutput(args, data)
end
--defining categorisation and such
function postprocess(args, data)
if args["pr"] then
table.insert(data.categories, lang:getCanonicalName() .. " 固有名詞")
end
if args["st"] then
table.insert(data.categories, lang:getCanonicalName() .. " 不可算名詞")
elseif args["pt"] then
table.insert(data.categories, lang:getCanonicalName() .. " 絶対複数")
end
if args["vza"] then
table.insert(data.categories, lang:getCanonicalName() .. " 名詞 with vowel-zero alteration")
end
if args["loan"] then
table.insert(data.categories, lang:getCanonicalName() .. " 他言語由来")
end
end
--defining structuring for the final output
function finaloutput(args, data)
--defining function to use in gsub later on as repl
local function field(decl, term)
if ((args["st"] or args["pr"]) and decl:match("pl$")) or (args["pt"] and decl:match("sg$")) then
return "—"
elseif term == "info" then
return data.info
end
return data.forms[decl][term]
end
local wikicode = {}
if args["poss"] then
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{
title = "inflection-box-top",
args = {
title = "{{{_|info}}}",
flow = "vertical",
}
})
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{
title = "inflection-table-top",
args = {
title = "-",
palette = "teal",
}
})
else
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{
title = "inflection-table-top",
args = {
title = "{{{_|info}}}",
tall = "yes",
palette = "teal",
}
})
end
--wikitable for regular declension
table.insert(wikicode, [=[
!
! 単数
! 複数
|-
! 主格
| {{{decl_sg|chg_nom}}}<br><small>{{{decl_sg|lat_nom}}}</small>
| {{{decl_pl|chg_nom}}}<br><small>{{{decl_pl|lat_nom}}}</small>
|-
! 属格
| {{{decl_sg|chg_gen}}}<br><small>{{{decl_sg|lat_gen}}}</small>
| {{{decl_pl|chg_gen}}}<br><small>{{{decl_pl|lat_gen}}}</small>
|-
! 限定対格
| {{{decl_sg|chg_def_acc}}}<br><small>{{{decl_sg|lat_def_acc}}}</small>
| {{{decl_pl|chg_def_acc}}}<br><small>{{{decl_pl|lat_def_acc}}}</small>
|-
! 与格
| {{{decl_sg|chg_dat}}}<br><small>{{{decl_sg|lat_dat}}}</small>
| {{{decl_pl|chg_dat}}}<br><small>{{{decl_pl|lat_dat}}}</small>
|-
! 奪格
| {{{decl_sg|chg_abl}}}<br><small>{{{decl_sg|lat_abl}}}</small>
| {{{decl_pl|chg_abl}}}<br><small>{{{decl_pl|lat_abl}}}</small>
|-
! 処格
| {{{decl_sg|chg_loc}}}<br><small>{{{decl_sg|lat_loc}}}</small>
| {{{decl_pl|chg_loc}}}<br><small>{{{decl_pl|lat_loc}}}</small>
]=])
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{title = "inflection-table-bottom"})
--wikitable for possessive declension
if args["poss"] then
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{
title = "inflection-table-top",
args = {
title = "possessive forms",
tall = "yes",
palette = "teal",
}
})
table.insert(wikicode, [=[
! colspan=3 class="outer" | 一人称単数
|-
!
! 単数
! 複数
|-
! 主格
| {{{decl_poss_1sg_sg|chg_nom}}}<br><small>{{{decl_poss_1sg_sg|lat_nom}}}</small>
| {{{decl_poss_1sg_pl|chg_nom}}}<br><small>{{{decl_poss_1sg_pl|lat_nom}}}</small>
|-
! 属格
| {{{decl_poss_1sg_sg|chg_gen}}}<br><small>{{{decl_poss_1sg_sg|lat_gen}}}</small>
| {{{decl_poss_1sg_pl|chg_gen}}}<br><small>{{{decl_poss_1sg_pl|lat_gen}}}</small>
|-
! 限定対格
| {{{decl_poss_1sg_sg|chg_def_acc}}}<br><small>{{{decl_poss_1sg_sg|lat_def_acc}}}</small>
| {{{decl_poss_1sg_pl|chg_def_acc}}}<br><small>{{{decl_poss_1sg_pl|lat_def_acc}}}</small>
|-
! 与格
| {{{decl_poss_1sg_sg|chg_dat}}}<br><small>{{{decl_poss_1sg_sg|lat_dat}}}</small>
| {{{decl_poss_1sg_pl|chg_dat}}}<br><small>{{{decl_poss_1sg_pl|lat_dat}}}</small>
|-
! 奪格
| {{{decl_poss_1sg_sg|chg_abl}}}<br><small>{{{decl_poss_1sg_sg|lat_abl}}}</small>
| {{{decl_poss_1sg_pl|chg_abl}}}<br><small>{{{decl_poss_1sg_pl|lat_abl}}}</small>
|-
! 処格
| {{{decl_poss_1sg_sg|chg_loc}}}<br><small>{{{decl_poss_1sg_sg|lat_loc}}}</small>
| {{{decl_poss_1sg_pl|chg_loc}}}<br><small>{{{decl_poss_1sg_pl|lat_loc}}}</small>
|-
! colspan=3 class="outer" | 二人称単数
|-
!
! 単数
! 複数
|-
! 主格
| {{{decl_poss_2sg_sg|chg_nom}}}<br><small>{{{decl_poss_2sg_sg|lat_nom}}}</small>
| {{{decl_poss_2sg_pl|chg_nom}}}<br><small>{{{decl_poss_2sg_pl|lat_nom}}}</small>
|-
! 属格
| {{{decl_poss_2sg_sg|chg_gen}}}<br><small>{{{decl_poss_2sg_sg|lat_gen}}}</small>
| {{{decl_poss_2sg_pl|chg_gen}}}<br><small>{{{decl_poss_2sg_pl|lat_gen}}}</small>
|-
! 限定対格
| {{{decl_poss_2sg_sg|chg_def_acc}}}<br><small>{{{decl_poss_2sg_sg|lat_def_acc}}}</small>
| {{{decl_poss_2sg_pl|chg_def_acc}}}<br><small>{{{decl_poss_2sg_pl|lat_def_acc}}}</small>
|-
! 与格
| {{{decl_poss_2sg_sg|chg_dat}}}<br><small>{{{decl_poss_2sg_sg|lat_dat}}}</small>
| {{{decl_poss_2sg_pl|chg_dat}}}<br><small>{{{decl_poss_2sg_pl|lat_dat}}}</small>
|-
! 奪格
| {{{decl_poss_2sg_sg|chg_abl}}}<br><small>{{{decl_poss_2sg_sg|lat_abl}}}</small>
| {{{decl_poss_2sg_pl|chg_abl}}}<br><small>{{{decl_poss_2sg_pl|lat_abl}}}</small>
|-
! 処格
| {{{decl_poss_2sg_sg|chg_loc}}}<br><small>{{{decl_poss_2sg_sg|lat_loc}}}</small>
| {{{decl_poss_2sg_pl|chg_loc}}}<br><small>{{{decl_poss_2sg_pl|lat_loc}}}</small>
|-
! colspan=3 class="outer" | 三人称単数
|-
!
! 単数
! 複数
|-
! 主格
| {{{decl_poss_3sg_sg|chg_nom}}}<br><small>{{{decl_poss_3sg_sg|lat_nom}}}</small>
| {{{decl_poss_3sg_pl|chg_nom}}}<br><small>{{{decl_poss_3sg_pl|lat_nom}}}</small>
|-
! 属格
| {{{decl_poss_3sg_sg|chg_gen}}}<br><small>{{{decl_poss_3sg_sg|lat_gen}}}</small>
| {{{decl_poss_3sg_pl|chg_gen}}}<br><small>{{{decl_poss_3sg_pl|lat_gen}}}</small>
|-
! 限定対格
| {{{decl_poss_3sg_sg|chg_def_acc}}}<br><small>{{{decl_poss_3sg_sg|lat_def_acc}}}</small>
| {{{decl_poss_3sg_pl|chg_def_acc}}}<br><small>{{{decl_poss_3sg_pl|lat_def_acc}}}</small>
|-
! 与格
| {{{decl_poss_3sg_sg|chg_dat}}}<br><small>{{{decl_poss_3sg_sg|lat_dat}}}</small>
| {{{decl_poss_3sg_pl|chg_dat}}}<br><small>{{{decl_poss_3sg_pl|lat_dat}}}</small>
|-
! 奪格
| {{{decl_poss_3sg_sg|chg_abl}}}<br><small>{{{decl_poss_3sg_sg|lat_abl}}}</small>
| {{{decl_poss_3sg_pl|chg_abl}}}<br><small>{{{decl_poss_3sg_pl|lat_abl}}}</small>
|-
! 処格
| {{{decl_poss_3sg_sg|chg_loc}}}<br><small>{{{decl_poss_3sg_sg|lat_loc}}}</small>
| {{{decl_poss_3sg_pl|chg_loc}}}<br><small>{{{decl_poss_3sg_pl|lat_loc}}}</small>
|-
! colspan=3 class="outer" | 一人称複数
|-
!
! 単数
! 複数
|-
! 主格
| {{{decl_poss_1pl_sg|chg_nom}}}<br><small>{{{decl_poss_1pl_sg|lat_nom}}}</small>
| {{{decl_poss_1pl_pl|chg_nom}}}<br><small>{{{decl_poss_1pl_pl|lat_nom}}}</small>
|-
! 属格
| {{{decl_poss_1pl_sg|chg_gen}}}<br><small>{{{decl_poss_1pl_sg|lat_gen}}}</small>
| {{{decl_poss_1pl_pl|chg_gen}}}<br><small>{{{decl_poss_1pl_pl|lat_gen}}}</small>
|-
! 限定対格
| {{{decl_poss_1pl_sg|chg_def_acc}}}<br><small>{{{decl_poss_1pl_sg|lat_def_acc}}}</small>
| {{{decl_poss_1pl_pl|chg_def_acc}}}<br><small>{{{decl_poss_1pl_pl|lat_def_acc}}}</small>
|-
! 与格
| {{{decl_poss_1pl_sg|chg_dat}}}<br><small>{{{decl_poss_1pl_sg|lat_dat}}}</small>
| {{{decl_poss_1pl_pl|chg_dat}}}<br><small>{{{decl_poss_1pl_pl|lat_dat}}}</small>
|-
! 奪格
| {{{decl_poss_1pl_sg|chg_abl}}}<br><small>{{{decl_poss_1pl_sg|lat_abl}}}</small>
| {{{decl_poss_1pl_pl|chg_abl}}}<br><small>{{{decl_poss_1pl_pl|lat_abl}}}</small>
|-
! 処格
| {{{decl_poss_1pl_sg|chg_loc}}}<br><small>{{{decl_poss_1pl_sg|lat_loc}}}</small>
| {{{decl_poss_1pl_pl|chg_loc}}}<br><small>{{{decl_poss_1pl_pl|lat_loc}}}</small>
|-
! colspan=3 class="outer" | 二人称複数
|-
!
! 単数
! 複数
|-
! rowspan=2 | 主格
| {{{decl_poss_a_2pl_sg|chg_nom}}}<br><small>{{{decl_poss_a_2pl_sg|lat_nom}}}</small>
| {{{decl_poss_a_2pl_pl|chg_nom}}}<br><small>{{{decl_poss_a_2pl_pl|lat_nom}}}</small>
|-
| {{{decl_poss_b_2pl_sg|chg_nom}}}<br><small>{{{decl_poss_b_2pl_sg|lat_nom}}}</small>
| {{{decl_poss_b_2pl_pl|chg_nom}}}<br><small>{{{decl_poss_b_2pl_pl|lat_nom}}}</small>
|-
! rowspan=2 | 属格
| {{{decl_poss_a_2pl_sg|chg_gen}}}<br><small>{{{decl_poss_a_2pl_sg|lat_gen}}}</small>
| {{{decl_poss_a_2pl_pl|chg_gen}}}<br><small>{{{decl_poss_a_2pl_pl|lat_gen}}}</small>
|-
| {{{decl_poss_b_2pl_sg|chg_gen}}}<br><small>{{{decl_poss_b_2pl_sg|lat_gen}}}</small>
| {{{decl_poss_b_2pl_pl|chg_gen}}}<br><small>{{{decl_poss_b_2pl_pl|lat_gen}}}</small>
|-
! rowspan=2 | 限定対格
| {{{decl_poss_a_2pl_sg|chg_def_acc}}}<br><small>{{{decl_poss_a_2pl_sg|lat_def_acc}}}</small>
| {{{decl_poss_a_2pl_pl|chg_def_acc}}}<br><small>{{{decl_poss_a_2pl_pl|lat_def_acc}}}</small>
|-
| {{{decl_poss_b_2pl_sg|chg_def_acc}}}<br><small>{{{decl_poss_b_2pl_sg|lat_def_acc}}}</small>
| {{{decl_poss_b_2pl_pl|chg_def_acc}}}<br><small>{{{decl_poss_b_2pl_pl|lat_def_acc}}}</small>
|-
! rowspan=2 | 与格
| {{{decl_poss_a_2pl_sg|chg_dat}}}<br><small>{{{decl_poss_a_2pl_sg|lat_dat}}}</small>
| {{{decl_poss_a_2pl_pl|chg_dat}}}<br><small>{{{decl_poss_a_2pl_pl|lat_dat}}}</small>
|-
| {{{decl_poss_b_2pl_sg|chg_dat}}}<br><small>{{{decl_poss_b_2pl_sg|lat_dat}}}</small>
| {{{decl_poss_b_2pl_pl|chg_dat}}}<br><small>{{{decl_poss_b_2pl_pl|lat_dat}}}</small>
|-
! rowspan=2 | 奪格
| {{{decl_poss_a_2pl_sg|chg_abl}}}<br><small>{{{decl_poss_a_2pl_sg|lat_abl}}}</small>
| {{{decl_poss_a_2pl_pl|chg_abl}}}<br><small>{{{decl_poss_a_2pl_pl|lat_abl}}}</small>
|-
| {{{decl_poss_b_2pl_sg|chg_abl}}}<br><small>{{{decl_poss_b_2pl_sg|lat_abl}}}</small>
| {{{decl_poss_b_2pl_pl|chg_abl}}}<br><small>{{{decl_poss_b_2pl_pl|lat_abl}}}</small>
|-
! rowspan=2 | 処格
| {{{decl_poss_a_2pl_sg|chg_loc}}}<br><small>{{{decl_poss_a_2pl_sg|lat_loc}}}</small>
| {{{decl_poss_a_2pl_pl|chg_loc}}}<br><small>{{{decl_poss_a_2pl_pl|lat_loc}}}</small>
|-
| {{{decl_poss_b_2pl_sg|chg_loc}}}<br><small>{{{decl_poss_b_2pl_sg|lat_loc}}}</small>
| {{{decl_poss_b_2pl_pl|chg_loc}}}<br><small>{{{decl_poss_b_2pl_pl|lat_loc}}}</small>
|-
! colspan=3 class="outer" | 三人称複数
|-
!
! 単数
! 複数
|-
! rowspan=2 | 主格
| {{{decl_poss_a_3pl_sg|chg_nom}}}<br><small>{{{decl_poss_a_3pl_sg|lat_nom}}}</small>
| {{{decl_poss_a_3pl_pl|chg_nom}}}<br><small>{{{decl_poss_a_3pl_pl|lat_nom}}}</small>
|-
| {{{decl_poss_b_3pl_sg|chg_nom}}}<br><small>{{{decl_poss_b_3pl_sg|lat_nom}}}</small>
| {{{decl_poss_b_3pl_pl|chg_nom}}}<br><small>{{{decl_poss_b_3pl_pl|lat_nom}}}</small>
|-
! rowspan=2 | 属格
| {{{decl_poss_a_3pl_sg|chg_gen}}}<br><small>{{{decl_poss_a_3pl_sg|lat_gen}}}</small>
| {{{decl_poss_a_3pl_pl|chg_gen}}}<br><small>{{{decl_poss_a_3pl_pl|lat_gen}}}</small>
|-
| {{{decl_poss_b_3pl_sg|chg_gen}}}<br><small>{{{decl_poss_b_3pl_sg|lat_gen}}}</small>
| {{{decl_poss_b_3pl_pl|chg_gen}}}<br><small>{{{decl_poss_b_3pl_pl|lat_gen}}}</small>
|-
! rowspan=2 | 限定対格
| {{{decl_poss_a_3pl_sg|chg_def_acc}}}<br><small>{{{decl_poss_a_3pl_sg|lat_def_acc}}}</small>
| {{{decl_poss_a_3pl_pl|chg_def_acc}}}<br><small>{{{decl_poss_a_3pl_pl|lat_def_acc}}}</small>
|-
| {{{decl_poss_b_3pl_sg|chg_def_acc}}}<br><small>{{{decl_poss_b_2pl_sg|lat_def_acc}}}</small>
| {{{decl_poss_b_3pl_pl|chg_def_acc}}}<br><small>{{{decl_poss_b_2pl_pl|lat_def_acc}}}</small>
|-
! rowspan=2 | 与格
| {{{decl_poss_a_3pl_sg|chg_dat}}}<br><small>{{{decl_poss_a_3pl_sg|lat_dat}}}</small>
| {{{decl_poss_a_3pl_pl|chg_dat}}}<br><small>{{{decl_poss_a_3pl_pl|lat_dat}}}</small>
|-
| {{{decl_poss_b_3pl_sg|chg_dat}}}<br><small>{{{decl_poss_b_3pl_sg|lat_dat}}}</small>
| {{{decl_poss_b_3pl_pl|chg_dat}}}<br><small>{{{decl_poss_b_3pl_pl|lat_dat}}}</small>
|-
! rowspan=2 | 属格
| {{{decl_poss_a_3pl_sg|chg_abl}}}<br><small>{{{decl_poss_a_3pl_sg|lat_abl}}}</small>
| {{{decl_poss_a_3pl_pl|chg_abl}}}<br><small>{{{decl_poss_a_3pl_pl|lat_abl}}}</small>
|-
| {{{decl_poss_b_3pl_sg|chg_abl}}}<br><small>{{{decl_poss_b_3pl_sg|lat_abl}}}</small>
| {{{decl_poss_b_3pl_pl|chg_abl}}}<br><small>{{{decl_poss_b_3pl_pl|lat_abl}}}</small>
|-
! rowspan=2 | 処格
| {{{decl_poss_a_3pl_sg|chg_loc}}}<br><small>{{{decl_poss_a_3pl_sg|lat_loc}}}</small>
| {{{decl_poss_a_3pl_pl|chg_loc}}}<br><small>{{{decl_poss_a_3pl_pl|lat_loc}}}</small>
|-
| {{{decl_poss_b_3pl_sg|chg_loc}}}<br><small>{{{decl_poss_b_3pl_sg|lat_loc}}}</small>
| {{{decl_poss_b_3pl_pl|chg_loc}}}<br><small>{{{decl_poss_b_3pl_pl|lat_loc}}}</small>
|-
| colspan=3 |
]=])
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{title = "inflection-table-bottom"})
table.insert(wikicode, "\n")
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{title = "inflection-table-bottom"})
end
return mw.ustring.gsub(table.concat(wikicode), "{{{([a-z0-9_]+)|([a-z_]+)}}}", field) .. require("モジュール:utilities").format_categories(data.categories, lang)
end
return export