Modul:ne-utilities
Penampilan
- Laman modul ini kekurangan sublaman pendokumenan. Sila cipta laman pendokumenan tersebut.
- Pautan berguna: senarai sublaman • pautan • transklusi • kes ujian • kotak pasir
local export = {}
local function ucfirst(s)
-- Kembali rentetan yang diberikan dengan aksara pertama dalam huruf besar.
-- Tidak harus digunakan dengan rentetan bukan-ascii.
return s:sub(1, 1):upper() .. s:sub(2, -1)
end
local lang = require("Module:languages").getByCode("ne")
local m_translit = require("Module:ne-translit")
function export.show(frame)
PAGENAME = mw.title.getCurrentTitle().text
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 head = args["head"] or (mw.ustring.match(args[1] or "", "[ऀ-ॿ]") and args[1] or nil); if head == "" then head = nil end
local tr = args["tr"] or false
local pron = args["pron"] or false
local categories = {}
local note = ""
if not tr then
if poscat == "kata nama" or poscat == "kata nama khas" then
tr = m_translit.tr(head or PAGENAME, "ne", "Deva", true)
else
tr = m_translit.tr(head or PAGENAME, "ne", "Deva")
end
end
no_pron_arg = not pron and true or false
if not pron and mw.ustring.match(head or PAGENAME, "[ीूईशषण]") then
pron = mw.ustring.gsub(head or PAGENAME, "[ीईूण]", { ["ी"] = "ि", ["ई"] = "इ", ["ू"] = "ु", ["ण"] = "न" } )
pron = mw.ustring.gsub(pron, "[शष]", "स")
end
if pron then
note = ", ''disebut ''"
first = true
for item in mw.text.gsplit(pron, ",", true) do
if no_pron_arg and poscat == "kata nama" then
item = "<" .. item .. ">"
end
if not first then
note = note .. " ''atau'' "
else
first = false
end
note = note .. export.link(item)
end
end
head = head and mw.ustring.gsub(head, "[<>\-]", "") or nil
table.insert(categories, ucfirst(poscat) .. " bahasa Nepali")
return require("Module:headword").full_headword(lang, nil, head, tr, nil, nil, categories, nil) .. note
end
function export.usex(frame)
local args = frame:getParent().args
local pagename = mw.title.getCurrentTitle().text
local text = {}
local example = args[1] or error("Example has not been specified. Please pass parameter 1 to the module invocation.")
local translation = args[2] or ""
local m_links = require("Module:links").remove_links
if (not mw.ustring.match(example, "'''")) and mw.ustring.match(example, pagename) then
example = mw.ustring.gsub(example, pagename, "'''" .. pagename .. "'''")
end
local translit = m_translit.tr(m_links(example), "ne", "Deva")
example = mw.ustring.gsub(example, "[<>]", "")
table.insert(text, ('<span lang="ne" class="Deva">%s</span>'):format(example))
if mw.ustring.match(example, "[\.\?!।]") then
table.insert(text, "<dl><dd>''" .. translit .. "''</dd><dd>" .. translation .. "</dd></dl>")
else
table.insert(text, " ― ''" .. translit .. "'' ― " .. translation)
end
return table.concat(text)
end
function export.link(frame)
if type(frame) == "table" then
args = frame:getParent().args
text = args[1]
def = args[2] or false
vert = args["v"] or false
else
text = frame
end
text = ('<span lang="ne" class="Deva">[[%s#Nepali|'):format(mw.ustring.gsub(text, "[<>]", "")) ..
('%s]]</span>'):format(mw.ustring.gsub(text, "[<>]", "")) ..
(vert and "<div style=\"line-height:1pt; font-size:90%; color:#888\"><br>" or " (") .. m_translit.tr(text, "ne", "Deva") ..
(def and ', "' .. def .. '"' or "") .. (vert and "</div>" or ")")
return text
end
return export