Module:ko-headword
Ang dokumentasyon ng ng modyul na ito ay maaaring likhain sa Module:ko-headword/doc
local m_translit = require("Module:ko-translit")
local export = {}
local pos_functions = {}
local lang = require("Module:languages").getByCode("ko")
pos_functions["verbs"] = function(args, inflections, categories)
-- infinitive(s)
local hae = args["hae"]; if hae == "" then hae = nil end
local hae2 = args["hae2"]; if hae2 == "" then hae2 = nil end
local infinitives = {label = "infinitive"}
if hae then table.insert(infinitives, hae) end
if hae2 then table.insert(infinitives, hae2) end
if #infinitives > 0 then table.insert(inflections, infinitives) end
-- sequential
local hani = args["hani"]; if hani == "" then hani = nil end
if hani then table.insert(inflections, {label = "sequential", hani}) end
end
-- same as verbs above
pos_functions["pang-uring"] = pos_functions["verbs"]
-- same as verbs above
pos_functions["suffixes"] = pos_functions["verbs"]
pos_functions["pang-uri anyo"] = function(args, inflections, categories)
local root = args["root"]; if root == "" then root = nil end
local form = args["form"]; if form == "" then form = nil end
if form and root then
table.insert(inflections, {label = form .. " of", root})
end
end
pos_functions["verb forms"] = pos_functions["pang-uri anyo"]
pos_functions["determiners"] = function(args, inflections, categories)
local root = args["root"]; if root == "" then root = nil end
if root then table.insert(inflections, {label = "determinatibo anyo ng", root}) end
end
pos_functions["pangngalang"] = function(args, inflections, categories)
local count = args["count"]; if count == "" then count = nil end
if count == '-' then
table.insert(inflections, "uncountable")
elseif count then
table.insert(inflections, {label = "counter", count})
end
end
-- other parts of speech: nothing special is done for adverbs, interjections, suffixes
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
PAGENAME = mw.title.getCurrentTitle().text
local args = frame:getParent().args
local poscat = frame.args[1] or error("Bahagi ng pananalita ay hindi pa tinukoy. Paki-abot parametro 1 sa modulo pananalangin.")
local categories = {}
local inflections = {}
local transliterations = {}
local hangeul_pattern = '[가-힣 ]' -- includes a space character too
local hanja_pattern = '[一-鿌]'
local head = args["head"]; if head == "" then head = nil end
-- pambalarila para sa bawat kanya-kanyang bahagi ng pananalita
if pos_functions[poscat] then
pos_functions[poscat](args, inflections, categories)
end
-- Iba't ibang mga form iskrip
local hangeul = args["hangeul"]; if hangeul == "" then hangeul = nil end
local hanja = args["hanja"]; if hanja == "" then hanja = nil end
-- Different romanizations
-- revised romanization could be rv or rr
local rv = args["rv"] or args["rr"]; if rv == "" then rv = nil end
local mr = args["mr"]; if mr == "" then mr = nil end
local y = args["y"]; if y == "" then y = nil end
-- >>> pagsasatitik <<<
-- kung ang entry na ito ay Hangeul at walang pagsasatitik ay ibinigay, magdagdag ng auto pagsasatitik
-- kung ang entre na ito ay HINDI Hangeul at walang wika ay ibinigay, magdagdag ng auto wika kung may Hangeul
if mw.ustring.gsub(PAGENAME, hangeul_pattern, '') == "" and rv == nil then
rv = m_translit.tr(PAGENAME)
elseif hangeul and rv == nil then
rv = m_translit.tr(hangeul) end
if poscat == 'pangngalang pantarging' then
rv = mw.ustring.upper(mw.ustring.sub(rv,1,1)) .. mw.ustring.sub(rv,2,-1)
end
-- magdagdag -hada sa binagong romanisasyon para sa 하다 (hada) pandiwang
if poscat == "Mga pandiwang hada" then
rv = rv .. "-hada"
head = PAGENAME .. " + 하다"
end
if rv then table.insert(transliterations, rv) end
if mr then table.insert(transliterations, "McCune-Reischauer: " .. mr) end
if y then table.insert(transliterations, "Yale: " .. y) end
if hangeul then
table.insert(inflections, {label = "hangeul", hangeul})
end
if hanja then
table.insert(inflections, {label = "hanja", hanja})
end
-- bigyan ng bahagi ng pananalita
if poscat == "hada pandiwang" then
table.insert(categories, "Mga pandiwang Koreano")
table.insert(categories, "Mga pandiwang hada Koreano")
elseif poscat == "katulong pandiwa" then
table.insert(categories, "Mga berbo Koreano")
table.insert(categories, "Katulong pandiwa Koreano")
else
table.insert(categories, "Koreano " .. poscat)
end
-- at bigyan tuntunin Hanja
if mw.ustring.match(PAGENAME, hanja_pattern) then
table.insert(categories, "Koreano Han karaktering")
if poscat == "nouns" then
table.insert(categories, "Koreano pangngalan sa Han script")
elseif poscat == "pangngalang pantarging" then
table.insert(categories, "Koreano pangngalang pantangi sa Han script")
end
end
-- kategorya pagpapanatili para sa Hanja termino nang Hangeul
if mw.ustring.match(PAGENAME, hanja_pattern) and hangeul == nil then
table.insert(categories, "Koreano tuntunin Hanja kulang Hangeul") end
return require("Module:headword").full_headword(lang, nil, head, table.concat(transliterations, ", "), nil, inflections, categories, hangeul)
end
return export