模組:地区用词
外观
local p = {}
local variants = {
cn = 'hans',
hk = 'hant',
-- mo = 'hant',
-- my = 'hans',
sg = 'hans',
tw = 'hant',
}
local lc = require( 'Module:WikitextLC' )
function p.main( frame )
local args = frame.args
local values = {}
for region, defaultScript in pairs( variants ) do
if args['zh-hans-' .. region] ~= '' or args['zh-hant-' .. region] ~= '' or args['zh-' .. region] ~= '' then
values[region] = { script = defaultScript }
if args['zh-hans-' .. region] ~= '' then
values[region].hans = args['zh-hans-' .. region]
elseif args['zh-' .. region] ~= '' then
values[region].hans = '-{zh-hans|' .. args['zh-' .. region] .. '}-'
else
values[region].hans = '-{zh-hans|' .. args['zh-hant-' .. region] .. '}-'
end
if args['zh-hant-' .. region] ~= '' then
values[region].hant = args['zh-hant-' .. region]
elseif args['zh-' .. region] ~= '' then
values[region].hant = '-{zh-hant|' .. args['zh-' .. region] .. '}-'
else
values[region].hant = '-{zh-hant|' .. args['zh-hans-' .. region] .. '}-'
end
end
end
local localName = {}
for region, value in pairs( values ) do
localName['zh-' .. region] = value[value.script]
end
localName = lc.selective( localName )
local foreignName = {}
for region, script in pairs( variants ) do
local snippets = {}
for valueRegion, value in pairs( values ) do
if valueRegion ~= region then
table.insert( snippets, lc.converted( args['name-' .. valueRegion] .. args.colon, 'zh-' .. region ) .. value[script] )
end
end
foreignNameText = mw.text.listToText( snippets, args.comma, args.lastComma )
if foreignNameText ~= '' then
foreignNameText = lc.converted( args.openBracket, 'zh-' .. region ) .. foreignNameText .. lc.converted( args.closeBracket, 'zh-' .. region )
end
foreignName['zh-' .. region] = foreignNameText
end
foreignName = lc.selective( foreignName )
return localName .. foreignName
end
return p