Модул:homophones
Намуди зоҳирӣ
Documentation for this module may be created at Модул:homophones/doc
local export = {}
local m_links = require("Module:links")
function export.show(frame)
local args = frame:getParent().args
local lang = args["lang"]; if lang == "" then lang = nil end
if not lang then
lang = "en"
end
lang = require("Module:languages").getByCode(lang) or error("The language code \"" .. lang .. "\" is not valid.")
local text = ""
local terms = {} -- зеро аст
--кунад, сатри холӣ, агар мӯҳлати танҳо матни алтернативии вуҷуд дорад
for name, parameter in pairs(args) do
local regex = mw.ustring.match(tostring(name),"^alt%d+$")
if regex then
local index = tonumber((name:gsub("alt", "")))
if not args[index] then
terms[index] = ""
end
end
end
--нусха ҳама параметрҳои номаш ба он калимае
for i, param in ipairs(args) do
terms[i] = param
end
--main process
local comma = false
local count = 0
for i, parameter in ipairs(terms) do
count = count + 1
if comma then
text = text .. ", "
else
comma = true
end
local alt = args["alt" .. tostring(i)]
local tr = args["tr" .. tostring(i)]
if parameter == "" then
text = text .. alt
else
text = text .. m_links.full_link(parameter, alt, lang, nil, nil, nil, {tr = tr}, false)
end
end
--return process
if count > 1 then --илова кардани "s" то "омофон" агар беш аз як замоне муайян
return "Омофон: " .. text
elseif count == 1 then --нест "s" агар як замоне муайян
return "Омофон: " .. text
end
--Агар нест, замоне муайян дар ҳама баргардонед матн пешфарз агар Фазоином Шаблон аст
if mw.title.getCurrentTitle().nsText == "Шаблон" then
return "Омофон: [[term#English|мӯҳлат]]"
end
--Агар ин хати захира аст, ягон шартҳои дар ҳама ҷо ва кушодро аст Шаблон нест
error("Лутфан, ақаллан як омофон таъмин намояд.")
end
return export