跳转到内容

模組:Nihongo

本页使用了标题或全文手工转换
被永久保护的模块
维基百科,自由的百科全书

这是本页的一个历史版本,由Where was I last night?留言 | 贡献2016年3月7日 (一) 12:31编辑。这可能和当前版本存在着巨大的差异。

require('Module:No globals')
local getArgs = require('Module:Arguments').getArgs
local p = {}

local function ja(text)
	return string.format('<span lang="ja">-{%s}-</span>', text)
end

local function romaji(text)
	return string.format('<span lang="ja-Latn">-{%s}-</span>', text)
end

local function label(args, label, content)
	if args.lead == 'yes' then
		return string.format('%s:%s', label, content)
	end
	return content
end

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	local bracketArr = {}
	local temp

	if args[1] then
		if args[2] then table.insert(bracketArr, label(args, '日语', ja(args[2]))) end
		if args['romaji'] then table.insert(bracketArr, label(args, '[[平文式罗马字|罗马字]]', romaji(args['romaji']))) end
		if args[3] then table.insert(bracketArr, args[3]) end
		if args[4] then table.insert(bracketArr, args[4]) end
		if #bracketArr > 0 then temp = table.concat(bracketArr, ',') end
		if args[5] then temp = (temp or '') .. ' ' .. args[5] end
		if temp then return string.format('%s<span style="font-weight: normal;">(%s)</s>', args[1], temp) end
		return args[1]
	end
	
	if args['romaji'] then 
		if args[2] then table.insert(bracketArr, label(args, '日语', ja(args[2]))) end
		if args[3] then table.insert(bracketArr, args[3]) end
		if args[4] then table.insert(bracketArr, args[4]) end
		if #bracketArr > 0 then temp = table.concat(bracketArr, ',') end
		if args[5] then temp = (temp or '') .. ' ' .. args[5] end
		if temp then return string.format('%s<span style="font-weight: normal;">(%s)</s>', romaji(args['romaji']), temp) end
		return romaji(args['romaji'])
	end
	
	if args[3] then 
		if args[2] then table.insert(bracketArr, label(args, '日语', ja(args[2]))) end
		if args[4] then table.insert(bracketArr, args[4]) end
		if #bracketArr > 0 then temp = table.concat(bracketArr, ',') end
		if args[5] then temp = (temp or '') .. ' ' .. args[5] end
		if temp then return string.format('%s<span style="font-weight: normal;">(%s)</s>', args[3], temp) end
		return romaji(args[3])
	end
	
	if args[2] then
		if args[4] then table.insert(bracketArr, args[4]) end
		if #bracketArr > 0 then temp = table.concat(bracketArr, ',') end
		if args[5] then temp = (temp or '') .. ' ' .. args[5] end
		if temp then return string.format('%s<span style="font-weight: normal;">(%s)</s>', ja(args[2]), temp) end
		return ja(args[2])
	end
	
	return '<span class="error">未正确指定该模板的参数</span>'
	
end

return p