Module:Translation
Documentation for this module may be created at Module:Translation/doc
-- @author: Marvin
local p, flag = {}, false
local yn = require( 'Module:Yesno' )
local err = require( 'Module:Error' )
-- Check if the arg exists
-- If yes, append it to the text
local function append(label, arg, text, lang)
local c = flag and ", " or " ("
local t = text
if yn(arg) then
flag = true
if lang then
arg = tostring(
mw.html.create("span")
:attr("lang", lang)
:wikitext(arg)
)
end
if label then
t = t..c.."''"..label..":'' "..arg
else t = t..c..arg
end
end
return t
end
function p.rubify(base, ann)
return "<ruby lang=ja>"..base.."<rp>, </rp><rt>"..ann.."</rt></ruby>"
end
function p.translate(frame)
local args = frame:getParent().args
if not yn(args[1]) then return err("Provide an official name") end
local text = args[1]
if args.furigana then args[2] = p.rubify(args[2], args.furigana) end
text = append(nil, args[2], text)
if yn(args[3]) then
text = append(nil, "''"..args[3].."''", text)
end
text = append("English", args.eng, text)
text = append("Latin", args.latin, text, "la")
text = append("FUNimation", args.funi, text)
text = append("Viz", args.viz, text)
text = append("English TV", args.engtv, text)
text = append("UK DVD", args.ukdvd, text)
text = append("Fansub", args.fansub, text)
text = append("Literally meaning", args["lit meaning"], text)
text = append("Meaning (Viz)", args["viz meaning"], text)
text = append("Meaning (English TV)", args["engtv meaning"], text)
text = append(nil, args[4], text) --extra
return text..(flag and ")" or "")
end
return p
--[[Category:Lua Modules]]