跳转到内容

模組:Vgname

被永久保护的模块
维基百科,自由的百科全书

这是本页的一个历史版本,由D2F0F5留言 | 贡献2014年7月25日 (五) 03:49 建立内容为“local p = {} local langlist = { -- 请在下方区域更新语言代码 ja = {'日语', '日版名'}; ko = {'韩语', '韩版名'}; en = {'...”的新页面)编辑。这可能和当前版本存在着巨大的差异。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)

local p = {}

local langlist = {
	
	-- 请在下方区域更新语言代码
	
	ja = {'日语', '日版名'};
	ko = {'韩语', '韩版名'};
	en = {'英语', '英文版名'};
	na = {'英语', '美版名'};
	eu = {'英语', '欧版名'};
	ru = {'俄语', '俄版名'};
	'请检测输入的代码'
	
	-- 请在上方区域更新语言代码
}

local yesno = require('Module:Yesno')

function p.vgname(frame)
	
	title = frame.args[1]
	bracket = frame.args.bracket
	bold = frame.args.bold
	diff = frame.args.diff
	ja = frame.args.ja
	ko = frame.args.ko
	lang = frame.args.lang
	original = frame.args.original
	en = frame.args.en
	na = frame.args.na
	eu = frame.args.eu
	cn = frame.args.cn
	tw = frame.args.tw
	hk = frame.args.hk
	note = frame.args[2]

	
	-- 加粗判定
	
	local function boldtext(a)
		local ret
	
		if yesno(bold) then
			ret = '<strong>' .. a .. '</strong>'
		else
			ret = a
		end
	
		return ret
	end
	
	-- 加粗判定结束
	
	
	-- 外文名输出判定
	
	local function foreign(a, b)
		local ret

		if yesno(diff) == true or na ~= ''  or eu ~= '' then
			ret = langlist[a][2]
		else
			ret = langlist[a][1]
		end
		
		if a == 'en' or a =='na' or a == 'eu' then
			b = '<i>-{' .. b .. '}-</i>'
		else
			b = '-{' .. b ..'}-'
		end
		
		ret = ret .. ':<span lang="' .. a .. '" xml:lang="' .. a ..'">' .. b ..'</span>'
		
		return ret
	end
	
	-- 外文名输出判定结束
	
	
	-- 中文译名输出判定
	
		local function chv(area, ts, a)
		local ret
		
		local arealist = {
			c = {'中国大陆', '中國大陸'};
			h = {'香港', '香港'};
			t = {'台湾', '台灣'};
			ch = {'中国大陆和香港', '中國大陸和香港'};
			ct = {'中国大陆和台湾', '中國大陸和台灣'};
			th = {'台港', '台港'};
		}
		
		local translist = {
			'译作“-{zh-hans|' .. boldtext(a) .. '}-”';
			'譯作「-{zh-hant|' .. boldtext(a) .. '}-」';
			'譯作「-{' .. boldtext(a) .. '}-」';
			'使用英文名';
		}
		
		if a == 'en' or a == en then -- 同英文名檢定
			if ts == 's' then
				ret = arealist[area][1] .. translist[4]
			else
				ret = arealist[area][2] .. translist[4]
			end
		else
			if ts == 's' then
				ret = arealist[area][1] .. translist[1]
			elseif ts == 't' then
				ret = arealist[area][2] .. translist[2]
			elseif ts == 'n' then
				ret = arealist[area][2] .. translist[3]
			end
		end
		
		return ret
	end
	
	-- 中文译名输出判定结束
	

	-- 原生语言组
	
	if ja ~= '' then
		name =  foreign('ja', ja)
	elseif ko ~= '' then
		name =  foreign('ko', ko)
	elseif (lang == 'en' or lang == 'na' or lang == 'eu') and (en ~= '' or na ~= '' or eu ~= '') then
	elseif lang ~= '' and original ~= '' then
		name = foreign(lang, original)
	end
	
	-- 原生语言组结束
	
	
	-- 英文名组

	if na ~='' and eu ~= '' then
		name_temp = foreign('na', na) .. ',' .. foreign('eu', eu)
	elseif na ~= '' and eu == '' then
		name_temp = foreign('na', na)
	elseif eu ~= '' then
		name_temp = foreign('eu', eu)
	elseif en ~= '' then
		name_temp = foreign('en', en)
	end
	
	-- 英文名组结束
	
	
	-- 连接原生语言名和英文名
	
	if name ~= nil and name_temp ~= nil then
		name = name .. ',' .. name_temp
	elseif name == nil then
		name = name_temp
	end
	
	-- 连接原生语言名和英文名结束
	
	
	-- 中文译名组

	 if cn ~= '' and tw ~= '' then
	 	if (cn == tw and cn == hk) then
	 		name_temp = ''
	 		
	 	elseif hk == 'tw' or hk == '' or (hk == 'en' and tw == 'en') then -- 香港译名同台湾译名
	 		name_temp = '-{' ..
	 			'zh:' .. chv('c', 'n', cn) ..',' .. chv('th', 'n', tw) .. '; ' ..
	 			'zh-hans:' .. chv('c', 's', cn) .. ',' .. chv('th', 's', tw) .. '; ' ..
	 			'zh-hant:' .. chv('c', 't', cn) .. ',' .. chv('th', 't', tw) .. '; ' ..
	 			'zh-cn:' .. chv('th', 's', tw) .. '; ' ..
	 			'zh-hk:' .. chv('c', 't', cn) .. '; ' ..
	 			'zh-tw' .. chv('c', 't', cn) .. ';' ..
	 		'}-'
	 			
 		elseif hk == 'cn' or (hk == 'en' and cn == 'en') then -- 香港译名同大陆译名
 			name_temp = '-{' ..
	 			'zh:' .. chv('ch', 'n', cn) ..',' .. chv('t', 'n', tw) .. '; ' ..
	 			'zh-hans:' .. chv('ch', 's', cn) .. ',' .. chv('t', 's', tw) .. '; ' ..
	 			'zh-hant:' .. chv('ch', 't', cn) .. ',' .. chv('t', 't', tw) .. '; ' ..
	 			'zh-cn:' .. chv('t', 's', tw) .. '; ' ..
	 			'zh-hk:' .. chv('t', 't', tw) .. '; ' ..
	 			'zh-tw' .. chv('ch', 't', cn) .. ';' ..
	 		'}-'
	 			
 		elseif (tw == cn or tw == 'cn' or cn == 'tw') and hk ~= '' then -- 台湾译名同大陆译名
 			if cn == 'tw' then
 				cn = tw
 			end
 			
 			name_temp = '-{' ..
	 			'zh:' .. chv('ct', 'n', cn) ..',' .. chv('h', 'n', hk) .. '; ' ..
	 			'zh-hans:' .. chv('ct', 's', cn) .. ',' .. chv('h', 's', hk) .. '; ' ..
	 			'zh-hant:' .. chv('ct', 't', cn) .. ',' .. chv('h', 't', hk) .. '; ' ..
	 			'zh-cn:' .. chv('h', 's', hk) .. '; ' ..
	 			'zh-hk:' .. chv('ct', 't', cn) .. '; ' ..
	 			'zh-tw' .. chv('h', 't', hk) .. ';' ..
	 		'}-'
	 		
 		else -- 三地譯名皆不同
 			 name_temp = '-{' ..
	 			'zh:' .. chv('c', 'n', cn) ..',' .. chv('h', 'n', hk) .. ',' .. chv('t', 'n', tw) .. '; ' ..
	 			'zh-hans:' .. chv('c', 's', cn) ..',' .. chv('h', 's', hk) .. ',' .. chv('t', 's', tw) .. '; ' ..
	 			'zh-hant:' .. chv('c', 't', cn) ..',' .. chv('h', 't', hk) .. ',' .. chv('t', 't', tw) .. '; ' ..
	 			'zh-cn:' .. chv('h', 's', hk) .. ',' .. chv('t', 's', tw) .. '; ' ..
	 			'zh-hk:' .. chv('c', 't', cn) ..',' .. chv('t', 't', tw) .. '; ' ..
	 			'zh-tw' .. chv('c', 't', cn) ..',' .. chv('h', 't', hk) .. ';' ..
	 		'}-'
 		end
 	
	 else
 	 name_temp = ''
	 end
	 
	 -- 中文译名组结束
	 

	 -- 连接外文名和中文译名
	 
	 if name ~= '' and name_temp ~= '' then
	 	name = name .. ',' .. name_temp
	 end
	
	 -- 连接外文名和中文译名结束
	 
	 
	 -- 连接前述和{{{2}}}参数
	 
	 if name ~= '' and note ~= '' then
	 	name = name .. ',' .. note
	 end
	 
	 -- 连接前述和{{{2}}}参数结束
	 
	 
	 -- 全部连接

	 if yesno(bracket) then
		 name = '《' .. boldtext(title) .. '》' .. '(' .. name ..  ')'
	 else
		 name = boldtext(title) .. '(' .. name ..  ')'
	 end
	
	-- 全部连接完毕

	return name 
end

return p