跳转到内容

模組:Vgname/testcases

维基百科,自由的百科全书

这是本页的一个历史版本,由風中的刀劍留言 | 贡献2015年1月25日 (日) 16:50编辑。这可能和当前版本存在着巨大的差异。

local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local p = {}

local languageList = {
 	-- 请在下方区域更新语言代码
 
	{'de', '德语', '德语版名'},
	{'fi', '芬兰语', '芬兰语版名'},
	{'ja', '日语', '日版名'},
	{'ko', '韩语', '韩版名'},
	{'ru', '俄语', '俄版名'},

}

local function bold(cont)

	if yesno(_bold) ~= false then
		cont = '<b>' .. cont .. '</b>'
	end
	
	return cont
end

local function italic(cont)
	
	cont = '<i>' .. cont .. '</i>'
	
	return cont
end

local function returnIndexInLanguageList(t)
	for i, v in ipairs(languageList) do
		if t[v[1]] ~= '' then
			return i
		end
	end
end

local function main(t)
	local ret = t[1]
	
	ret = bold(ret)
	
	if yesno(t.bracket) ~= false then
		ret = '《' .. ret .. '》'
	end
	
	return ret
end

local function orig(t)
	local ret = ''
	local indexInLanguageList = returnIndexInLanguageList(t)
	local lang = languageList[indexInLanguageList]

	if indexInLanguageList then
		
		if yesno(_diff) then
			ret = lang[3]
		else
			ret = lang[2]
		end

		ret = ret .. ':<span lang="' .. lang[1] .. '" xml:lang"' .. lang[1] .. '">-{' .. t[lang[1]] .. '}-</span>'
	
	end
	
	return ret
end

local function eng(t)
	local ret = ''
	
	if t.na ~= '' then
		ret = '美版名:<span lang="en" xml:lang="en">-{' .. italic(t.na) .. '}-</span>' 
		if t.eu ~= '' then
			ret = ret .. ',欧版名:<span lang="en" xml:lang="en">-{' .. italic(t.eu) .. '}-</span>' 
		end
		
	elseif t.eu ~= '' then
		ret = '欧版名:<span lang="en" xml:lang="en">-{' .. italic(t.eu) .. '}-</span>'
	
	elseif t.en ~= '' and yesno(_diff) then
		ret = '英文版名:<span lang="en" xml:lang="en">-{' .. italic(t.en) .. '}-</span>'
		
	elseif t.en ~= '' then
		ret = '英语:<span lang="en" xml:lang="en">-{' .. italic(t.en) .. '}-</span>'
		
	end
	
	return ret
end

local function trans(t)
end

function p.vgname(frame)
	local ret = ''
	local _ret = ''
	
	local args = getArgs(frame, {
		parentOnly = true;
		valueFunc = function (key, value)
			if value == nil then 
				return ''
			else
				return value
			end
		end;
	})
	_bold = args.bold
	_diff = args.diff
	
	------------------------------------------------------------------------
	
	ret = orig(args)
	_ret = eng(args)
	
	if ret ~= '' and _ret ~= '' then
		ret = ret .. ',' .. _ret
	elseif ret == '' and  _ret == '' then
		_ret = '<span class="error">本模板仅用于非中文作品,请检查是否使用正确的代码作语言参数名。</span>'
	else
		ret = ret .. _ret
	end

	---------------------------------------------------------------
	
	return ret
end

return p