local export = {}
local pos_functions = {}
local lang = require("Module:languages").getByCode("nod")
local PAGENAME = mw.title.getCurrentTitle().text
local script = lang:findBestScript(PAGENAME) -- Lana or Thai
function export.show(frame)
local args = frame:getParent().args
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local data = {lang = lang, sc = script, pos_category = poscat_th, categories = {poscat_th .. "ภาษาคำเมืองใน" .. script:getCategoryName()}, heads = {args["head"]}, inflections = {}}
if pos_functions[poscat_th] then
pos_functions[poscat_th](args, data)
end
local content = mw.title.new(PAGENAME):getContent()
local diacritics = mw.ustring.match(content, '.-([iyɨʉɯuɪʏʊeøɘɵɤoəɛœɜɞʌɔæɐaɶɑɒ][̡̢̧̨᷎̛̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̳᷂᷊᷏̀́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔᷀᷁᷃᷄᷅᷆᷇᷈᷉᷋᷌̕᷍]).-')
local nodAltTemplate = mw.ustring.match(content, "{{nod%-alt")
local TaiThamTransliteration = mw.ustring.match(content, '.-([ᨠ-᪭]).-')
local oldToneBars2 = mw.ustring.match(content, "[ptkbdt͡ɕʔmnɲŋfsxhjlwːiɯueɤoɛaɔʰ]˩")
local oldToneBars3 = mw.ustring.match(content, "˥˧")
local oldToneBars4v1 = mw.ustring.match(content, "[ptkbdt͡ɕʔmnɲŋfsxhjlwːiɯueɤoɛaɔʰ][^˨]˦/")
local oldToneBars4v2 = mw.ustring.match(content, "[ptkbdt͡ɕʔmnɲŋfsxhjlwːiɯueɤoɛaɔʰ][^˨]˦%.")
local oldToneBars5 = mw.ustring.match(content, "˥˩")
local oldToneBars6 = mw.ustring.match(content, "˦˥˦")
if diacritics then
table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่ใช้เครื่องหมายเสริมสัทอักษร")
end
if mw.ustring.match(PAGENAME, '.-([ᨠ-᪭]).-') and not nodAltTemplate then
table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่ไม่มี nod-alt")
end
if mw.ustring.match(PAGENAME, '.-([ก-๛]).-') and not TaiThamTransliteration then
table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่ไม่มีรูปแบบอื่นในอักษรไทธรรม")
end
if oldToneBars2 or oldToneBars3 or oldToneBars4v1 or oldToneBars4v2 or oldToneBars5 or oldToneBars6 then
table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่ต้องแก้การถ่ายเสียงวรรณยุกต์")
end --จะลบออกเมื่อแก้เสร็จ
if mw.ustring.match(PAGENAME, "ᩮ᩠ᨿ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩮ᩠᩵ᨿ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩮ᩠᩶ᨿ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩵ᩮ᩠ᨿ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩶ᩮ᩠ᨿ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩠᩵ᨿ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩠᩶ᨿ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩫ᩠ᩅ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩫ᩠᩵ᩅ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩫ᩠᩶ᩅ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩠᩵ᩅ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩠᩶ᩅ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩮᩥᩬ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩮᩥ᩵ᩬ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩮᩥ᩶ᩬ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩴᩣ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩴᩤ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩵ᩴᩣ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩵ᩴᩤ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩶ᩴᩣ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩶ᩴᩤ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩴᩬ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩴ᩵ᩬ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "ᩴ᩶ᩬ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩵ᩬ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
if mw.ustring.match(PAGENAME, "᩶ᩬ") then table.insert(data.categories, "ศัพท์ภาษาคำเมืองที่อาจไม่ได้สะกดตามหลักยูนิโค้ด") end
return require("Module:headword").full_headword(data)
end
pos_functions["คำนาม"] = function(args, data)
local classifiers = {label = "คำลักษณนาม"}
if args[1] then
for _,par in ipairs(args) do
if par == "*" then
table.insert(classifiers, PAGENAME) -- shorthand
table.insert(data.categories, "คำลักษณนามภาษาคำเมือง")
table.insert(data.categories, "คำนามภาษาคำเมืองที่ใช้คำลักษณนาม " .. PAGENAME)
else
table.insert(classifiers, par)
table.insert(data.categories, "คำนามภาษาคำเมืองที่ใช้คำลักษณนาม " .. par)
end
end
table.insert(data.inflections, classifiers)
end
end
pos_functions["คำกริยา"] = function(args, data)
local par1 = args[1]; if par1 == "" then par1 = nil end
local par2 = args[2]; if par2 == "" then par2 = nil end
local par3 = args[3]; if par3 == "" then par3 = nil end
local tlmode = require("Module:yesno")(args["tl"]) -- Is the Thai form transliterated?
local abstract_forms = {label = "คำอาการนาม", accel = {form = "abstract-noun"}}
if par1 ~= "-" then
if not par1 then
if data.sc:getCode() == "Lana" then
table.insert(abstract_forms, "ᨠᩣ᩠ᩁ" .. PAGENAME)
else
if tlmode then
table.insert(abstract_forms, "การ" .. PAGENAME)
else
table.insert(abstract_forms, "ก๋าร" .. PAGENAME)
table.insert(abstract_forms, "ก๋าน" .. PAGENAME)
end
end
else
if par1 == "~" then
if data.sc:getCode() == "Lana" then
table.insert(abstract_forms, "ᨠᩣ᩠ᩁ" .. PAGENAME)
table.insert(abstract_forms, "ᨣᩤᩴ" .. PAGENAME) -- native
table.insert(abstract_forms, "ᨤ᩠ᩅᩣ᩠ᨾ" .. PAGENAME)
else
if tlmode then
table.insert(abstract_forms, "การ" .. PAGENAME)
table.insert(abstract_forms, "คำ" .. PAGENAME) -- native
table.insert(abstract_forms, "ฅวาม" .. PAGENAME)
else
table.insert(abstract_forms, "ก๋าร" .. PAGENAME)
table.insert(abstract_forms, "ก๋าน" .. PAGENAME)
table.insert(abstract_forms, "กำ" .. PAGENAME) -- native
table.insert(abstract_forms, "ความ" .. PAGENAME)
end
end
else
table.insert(abstract_forms, par1)
table.insert(abstract_forms, par2)
table.insert(abstract_forms, par3)
end
end
table.insert(data.inflections, abstract_forms)
end
end
pos_functions["คำคุณศัพท์"] = function(args, data)
local par1 = args[1]; if par1 == "" then par1 = nil end
local par2 = args[2]; if par2 == "" then par2 = nil end
local par3 = args[3]; if par3 == "" then par3 = nil end
local tlmode = require("Module:yesno")(args["tl"]) -- Is the Thai form transliterated?
local abstract_forms = {label = "คำอาการนาม", accel = {form = "abstract-noun"}}
if par1 ~= "-" then
if not par1 then
if data.sc:getCode() == "Lana" then
table.insert(abstract_forms, "ᨣᩤᩴ" .. PAGENAME) -- native
table.insert(abstract_forms, "ᨤ᩠ᩅᩣ᩠ᨾ" .. PAGENAME)
else
if tlmode then
table.insert(abstract_forms, "คำ" .. PAGENAME) -- native
table.insert(abstract_forms, "ฅวาม" .. PAGENAME)
else
table.insert(abstract_forms, "กำ" .. PAGENAME) -- native
table.insert(abstract_forms, "ความ" .. PAGENAME)
end
end
else
table.insert(abstract_forms, par1)
table.insert(abstract_forms, par2)
table.insert(abstract_forms, par3)
end
table.insert(data.inflections, abstract_forms)
end
end
-- same logic
pos_functions["คำกริยาวิเศษณ์"] = pos_functions["คำคุณศัพท์"]
return export