模組:Vgname
外观
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