模組:Precure title
外观
local p = {}
local function notnil(data)
return ((data or "") ~= "") and (data ~= nil)
end
local function getArgs(frame, wrapper)
if (wrapper == nil) then
return require("Module:Arguments").getArgs(frame)
end
return require("Module:Arguments").getArgs(frame, {wrappers = wrapper})
end
local function translation(text, mode)
if (mode == "hant") then
return require("Module:ZhConversion").to_hant(text)
elseif (mode == "hans") then
return require("Module:ZhConversion").to_hans(text)
end
end
local function replace(text)
local replacement = { "?!", "!?", "!", "?", ",", "、", ";", ":", "「", "」", "『", "“", "”", "‘", "’", "(", ")", "《", "》", "♡", "♪" };
for _, value in pairs(replacement) do
text = text:gsub(value, " ")
end
return text
end
function p._mainNew(args)
local span = mw.html.create("span")
local conversion = { "hans", "hant", "cn", "hk", "mo", "my", "sg", "tw" }
local fallback = { "", "", "爱奇艺", "ViuTV", "", "東森幼幼台", "", "" }
local prefix = "-{zh-hans:本标题为;zh-hant:本標題為;}-"
local suffix = "-{zh-hans:翻译;zh-hant:翻譯}-。"
local text = "-{"
local returnValue = "-{"
local flags = { false, false, false, false, false, false, false, false}
-- local customFallback = { "cn", "tw", "tw", "tw", "hk", "cn", "my", "hk" }
for _, value in pairs(conversion) do
if args[value] then
flags[_] = true
text = text..p.conv({ value, (args[_+1] or fallback[_+1]) })
returnValue = returnValue..p.conv({ value, args[value] })
end
end
-- if ((not flags[1]) and
-- (not flags[3]) and
-- (not flags[6]) and
-- (not flags[7])) then
-- end
text = text.."}-"
returnValue = returnValue.."}-"
span:addClass("rt-commentedText")
:addClass("tooltip")
:cssText("border-bottom: 1px dotted; cursor: help")
:attr("title", prefix..text..suffix)
:wikitext(returnValue)
return tostring(span)
end
function p.conv(conv)
return "zh-"..tostring(conv[1])..":"..tostring(conv[2])..";"
end
function p._main(args)
local span = mw.html.create("span")
-- local conversion = { "hans", "hant", "cn", "hk", "mo", "my", "sg", "tw" }
span:addClass("rt-commentedText")
:addClass("tooltip")
:cssText("border-bottom: 1px dotted; cursor: help")
if notnil(args["cn"]) then
span:attr("title", "本標題為"..translation((args[2] or "爱奇艺"),"hant").."翻譯。")
if notnil(args["hk"]) then
if notnil(args["tw"]) then
return "-{zh-cn:"..args["cn"]..";zh-tw:"..args["tw"]..";zh-hk:"..args["hk"].."}-"
end
span:wikitext(translation(args["cn"],"hant"))
return "-{zh-cn:"..args["cn"]..";zh-tw:"..tostring(span)..";zh-hk:"..args["hk"].."}-"
elseif notnil(args["tw"]) then
span:wikitext(args["tw"])
:attr("title", translation(("本標題為"..(args[3] or "東森幼幼台").."翻譯。"),"hant"))
return "-{zh-cn:"..args["cn"]..";zh-tw:"..args["tw"]..";zh-hk:"..tostring(span).."}-"
end
span:wikitext(translation(args["cn"],"hant"))
return "-{zh-cn:"..args["cn"]..";zh-tw:"..tostring(span)..";zh-hk:"..tostring(span).."}-"
elseif notnil(args["tw"]) then
span:attr("title", "本標題為"..(args[3] or "東森幼幼台").."翻譯。")
if notnil(args["hk"]) then
span:attr("title", translation("本標題為"..(args[3] or "東森幼幼台").."翻譯。","hans"))
:wikitext(translation(args["tw"],"hans"))
return "-{zh-hans:"..tostring(span)..";zh-tw:"..args["tw"]..";zh-hk:"..args["hk"].."}-"
end
local span2 = mw.clone(span)
span:wikitext(translation(args["tw"],"hans"))
span2:wikitext(args["tw"])
span:attr("title", translation("本標題為"..(args[3] or "東森幼幼台").."翻譯。","hans"))
return "-{zh-hans:"..tostring(span)..";zh-tw:"..args["tw"]..";zh-hk:"..tostring(span2).."}-"
elseif notnil(args["hk"]) then
span:attr("title", "本標題為"..(args[4] or "ViuTV").."翻譯。")
local span2 = mw.clone(span)
span:wikitext(translation(args["hk"],"hans"))
span2:wikitext(args["hk"])
span:attr("title", translation("本標題為"..(args[4] or "ViuTV").."翻譯。","hans"))
return "-{zh-hans:"..tostring(span)..";zh-tw:"..tostring(span2)..";zh-hk:"..args["hk"].."}-"
elseif notnil(args[1]) then
span:attr("title", "本標題為原文翻譯。")
local span2 = mw.clone(span)
local span3 = mw.clone(span2)
span:wikitext(translation(args[1],"hans"))
span2:wikitext(replace(args[1]))
span3:wikitext(args[1])
span:attr("title", translation("本標題為原文翻譯。","hans"))
return "-{zh-hans:"..tostring(span)..";zh-tw:"..tostring(span2)..";zh-hk:"..tostring(span3).."}-"
else
return "-{zh-hans:在台湾未公布标题的集数,以原文翻译/香港[[ViuTV]]标题(如有)为主;反之(如有)已公布标题的集数,以台湾[[东森幼幼台]]标题为主。;zh-tw:在臺灣未公佈標題的集數,以原文翻譯/香港[[ViuTV]]標題(如有)為主;反之(如有)已公佈標題的集數,以臺灣[[東森幼幼台]]標題為主。;zh-hk:在香港未公佈標題的集數,以原文翻譯/臺灣[[東森幼幼台]]標題(如有)為主;反之已公佈標題的集數,以香港[[ViuTV]]標題為主。}-"
end
end
function p.main(frame)
return p._main(getArgs(frame))
end
function p.mainNew(frame)
return p._mainNew(getArgs(frame))
end
return p