Modul:WikimediaCEESpring

Documentația acestui modul poate fi creată la Modul:WikimediaCEESpring/doc

local p = {}
local getArgs = require('Modul:Arguments').getArgs
local capitalize = require('Modul:StringUtils')._capitalize

COUNTRY_ALIASES = {
	['Bașchiria'] = { 'Bașkortostan' },
	['Bașkiria'] = { 'Bașkortostan' },
	['Bashkortostan'] = { 'Bașkortostan' },
	['Bashkiria'] = { 'Bașkortostan' },
	['Bașcortostan'] = { 'Bașkortostan' },
	['Bosnia and Herzegovina'] = { 'Bosnia și Herțegovina' },
	['Cehia'] = { 'Republica Cehă' },
	['Federația Rusă'] = { 'Rusia' },
	['Regiunea Donului'] = {'Râul Don (Rusia)', 'Regiunea Donului' },
	['Esperanto'] = { 'Esperanto', 'mișcarea esperantistă' },
	['Macedonia'] = { 'Macedonia de Nord' },
	['Romi'] = { 'Romi', 'romi' },
	['Tătari crimeeni'] = { 'Tătari crimeeni', 'tătarii crimeeni' },
	['Sorabi'] = { 'Sorabi', 'sorabi' },
	['Võro'] = { 'Võro', 'võro' }
}
COUNTRY_ALIASES['Don'] = COUNTRY_ALIASES['Regiunea Donului']
COUNTRY_ALIASES['Don Region'] = COUNTRY_ALIASES['Regiunea Donului']
COUNTRY_ALIASES['Mișcarea esperantistă'] = COUNTRY_ALIASES['Esperanto']
COUNTRY_ALIASES['Mișcarea Esperantistă'] = COUNTRY_ALIASES['Esperanto']
COUNTRY_ALIASES['Esperantism'] = COUNTRY_ALIASES['Esperanto']
COUNTRY_ALIASES['Sorabia'] = COUNTRY_ALIASES['Sorabi']
COUNTRY_ALIASES['Tătarii crimeeni'] = COUNTRY_ALIASES['Tătari crimeeni']
COUNTRY_ALIASES['Crimean tatars'] = COUNTRY_ALIASES['Tătari crimeeni']
COUNTRY_ALIASES['Crimean Tatars'] = COUNTRY_ALIASES['Tătari crimeeni']
COUNTRY_ALIASES['Tătarii din Crimeea'] = COUNTRY_ALIASES['Tătari crimeeni']

TOPIC_ALIASES = {
	['Agricultura'] = 'Agricultură',
	['Agriculture'] = 'Agricultură',
	['Architectura'] = 'Arhitectură',
	['Architecture'] = 'Arhitectură',
	['Arhitecți'] = 'Arhitectură',
	['Architects'] = 'Arhitectură',
	['Buildings and structures'] = 'Arhitectură',
	['Clădiri și structuri'] = 'Arhitectură',
	['Clădiri'] = 'Arhitectură',
	--['Men'] = 'Biografii',
	--['People'] = 'Biografii',
	--['Biographies'] = 'Biografii',
	['Cultura'] = 'Cultură',
	['Culture'] = 'Cultură',
	['Painters and paintings'] = 'Cultură',
	['Visual artists'] = 'Cultură',
	['Artiști vizuali'] = 'Cultură',
	['Pictură'] = 'Cultură',
	['Picturi'] = 'Cultură',
	['Arte vizuale'] = 'Cultură',
	['Arte plastice'] = 'Cultură',
	['Dans'] = 'Cultură',
	['Dansuri'] = 'Cultură',
	['Tradiții'] = 'Etnografie',
	['Traditions'] = 'Etnografie',
	['Cinematografie'] = 'Filme',
	['Film'] = 'Filme',
	['Films'] = 'Filme',
	['Opere literare'] = 'Literatură',
	['Literary works'] = 'Literatură',
	['Sculptures & Monuments'] = 'Monumente',
	['Sculpturi și monumente'] = 'Monumente',
	--['Cuisine'] = 'Gastronomie',
	--['Bucătărie'] = 'Gastronomie',
	--['Food'] = 'Gastronomie',
	--['Mâncare'] = 'Gastronomie',
	--['Language'] = 'Lingvistică',
	--['Limbă'] = 'Lingvistică',
	--['Limbi'] = 'Lingvistică',
	['Muzica'] = 'Muzică',
	['Muzicieni'] = 'Muzică',
	['Music'] = 'Muzică',
	['Musicians'] = 'Muzică',
	['Muzică/Eurovision'] = 'Muzică',
	['Music/Eurovision'] = 'Muzică',
	['Dramaturgie'] = 'Teatru',
	['Technology and industry'] = 'Economie',
	['Tehnologie și industrie'] = 'Economie',
	--['Events'] = 'Evenimente',
	--['Events in CEE'] = 'Evenimente',
	['Universități'] = 'Economie',
	['Women'] = 'Femei',
	['History'] = 'Istorie',
	['Medicine'] = 'Medicină',
	['Nature / Geography'] = 'Natură și geografie',
	['Natură'] = 'Natură și geografie',
	['Geografie'] = 'Natură și geografie',
	['Geography'] = 'Natură și geografie',
	['Rezervații naturale'] = 'Arii protejate',
	['Protected areas'] = 'Arii protejate',
	--['Organizations'] = 'Organizații',
	--['Organizations in CEE'] = 'Organizații',
	['Politicieni'] = 'Politică',
	['Politics'] = 'Politică',
	['Biserică'] = 'Religie',
	['Biserici'] = 'Religie',
	['Demografie'] = 'Societate',
	['Relations'] = 'Societate',
	['Relații'] = 'Societate',
	['Society'] = 'Societate',
	['Fotbal'] = 'Sport',
	['Jocurile olimpice'] = 'Sport',
	['Science and Technology'] = 'Științe',
	['Știință și tehnologie'] = 'Științe',
	['Science / Education'] = 'Științe',
	['Știință și educație'] = 'Științe',
	['Science'] = 'Științe',
	['Știință'] = 'Științe',
	['Fizică'] = 'Științe',
	['Chimie'] = 'Științe',
	['Biologie'] = 'Științe',
	['Technology / IT'] = 'Tehnologie și IT',
	['Technology'] = 'Tehnologie și IT',
	['IT'] = 'Tehnologie și IT',
	['Tehnologie / IT'] = 'Tehnologie și IT',
	['Tehnologie'] = 'Tehnologie și IT',
	['Transport / Infrastructure'] = 'Transport și infrastructură',
	['Transport'] = 'Transport și infrastructură',
	['Infrastructură'] = 'Transport și infrastructură',
	['Infrastructure'] = 'Transport și infrastructură'
}

p.fromArgs = function(article, templateconfig)
	local tbl = mw.html.create('table')
		:addClass('messagebox')
		:addClass('standard-talk')
	
	local tabledata = tbl:tag('tr'):tag('td')

	local countryLink = COUNTRY_ALIASES[article.country] or {}
	countryLink.link = countryLink[1] or article.country
	countryLink.label = countryLink[2] or countryLink.link
	
	local topicName = TOPIC_ALIASES[article.topic] or article.topic
	
	local txt = '[[Fișier:Logo CEE-t.png|80px|left|Logo CEE Spring]] '
	if article.user then 
		txt = txt .. 'Acest articol a fost scris de '
		txt = txt .. mw.getCurrentFrame():expandTemplate{ title = 'Ut', args = { article.user } }
		txt = txt .. " în cadrul concursului '''[[Wikipedia:Wikimedia CEE Spring " .. templateconfig.year .. "|Wikimedia CEE Spring " .. templateconfig.year .. "]]''' și "
	else
		txt = txt .. "Acesta este unul din articolele înaintate la [[:m:Wikimedia CEE Spring " .. templateconfig.year .. "/Article Lists|listele de articole pe țări]] în cadrul concursului '''[[Wikipedia:Wikimedia CEE Spring " .. templateconfig.year .. "|Wikimedia CEE Spring " .. templateconfig.year .. "]]''', care "
	end

	txt = txt .. "se referă la un subiect din "
	if countryLink.link then
		txt = txt .. "[[" .. countryLink.link .. '|' .. countryLink.label .. "]]"
	else
		txt = txt .. '[SPECIFICAȚI PARAMETRUL "țară"!]'
	end
	txt = txt .. ', secțiunea ' .. (topicName or '[SPECIFICAȚI PARAMETRUL "secțiune"!]')
	tabledata:wikitext(txt)
	
	local categories = ''
	if not templateconfig.nocat and templateconfig.namespace == 1 and article.user then
		categories = categories .. '[[Categorie:Articole participante la Wikimedia CEE Spring ' .. templateconfig.year .. ']]'
		if topicName then
			categories = categories .. '[[Categorie:Articole participante la Wikimedia CEE Spring ' .. templateconfig.year .. ', secțiunea ' .. topicName .. ']]'
		end
		if article.country then
			categories = categories .. '[[Categorie:Articole despre ' .. countryLink.label .. ' la Wikimedia CEE Spring ' .. templateconfig.year .. ']]'
		end
	end
	return tostring(tbl) .. categories
end

p.fromFrame = function(frame)
	local args = getArgs(frame)
	local article = {}
	local templateconfig = {}
	templateconfig.year = args.year
	article.user = args.utilizator or args.username
	article.country = capitalize({args['țară'] or args.country or ''})
	article.topic = capitalize({args.subiect or args.topic or args['secțiune'] or ''})
	templateconfig.nocat = args.nocat
	
	local pageTitle = mw.title.getCurrentTitle()
	templateconfig.namespace = pageTitle.namespace
	
	return p.fromArgs(article, templateconfig)
end

return p