Modul:Cite
Vzhled
Cite může být použit k převedení cizojazyčných citačních šablon na české.
Použití
Do šablony, kterou chcete převést:
{{{{{|safesubst:}}}#invoke:Cite|cite| původní šablona | nová šablona }}
['původní šablona'] = { ['původní parametr'] = 'nový parametr', ['původní parametr'] = 'nový parametr', },
local p = {}
function p.cite(context)
-- Get parameters
local args = require('Modul:Arguments')
local parameters = args.getArgs(context:getParent())
-- Get convert table for template
local all_templates = mw.loadData('Modul:Cite/convert')
local template = args.getArgs(context)[1]
local new_template = args.getArgs(context)[2]
local convert_table = all_templates[template]
-- Convert parameters
local result = {}
for p, v in pairs(parameters) do
if convert_table[p] then
result[convert_table[p]] = v
else
result[p] = v
end
end
-- Combine partial parameters
if convert_table['~části'] then
for _, parts in pairs(convert_table['~části']) do
part = parts[1]
separator = parts[2]
if result[part .. '-před'] and result[part .. '-za'] then
result[part] = result[part .. '-před'] .. separator .. result[part .. '-za']
result[part .. '-před'] = nil
result[part .. '-za'] = nil
elseif result[part .. '-před'] then
result[part] = result[part .. '-před']
result[part .. '-před'] = nil
elseif result[part .. '-za'] then
result[part] = result[part .. '-za']
result[part .. '-za'] = nil
end
end
end
-- Extract default language
if not result['jazyk'] then
result['jazyk'] = template:sub(1, 2)
end
-- Prepare new template
local text='{{' .. new_template .. '\n'
for p, v in pairs(result) do
text = text .. ' | ' .. p .. ' = ' .. v .. '\n'
end
text = text .. '}}'
text = context:preprocess(text)
-- Print output
return text
end
return p