Modulo:Software/Configurazione/sandbox

local config = {}

--[[
* "Vecchi" parametri del Template:Software/Linguaggio associati all'elemento Wikidata
]]
config.languageSlugToWikidata = {
	['action']        = 'Q343587',
	['action!']       = 'Q343587',
	['actionscript']  = 'Q234657',
	['ada']           = 'Q154755',
	['assembly']      = 'Q165436',
	['bash']          = 'Q189248',
	['basic']         = 'Q42979',
	['c']             = 'Q15777',
	['c++']           = 'Q2407',
	['c ++']          = 'Q2407',
	['cpp']           = 'Q2407',
	['coffescript']   = 'Q1106819',
	['css']           = 'Q46441',
	['c#']            = 'Q2370',
	['c #']           = 'Q2370',
	['c sharp']       = 'Q2370',
	['delphi']        = 'Q487378',
	['embarcadero delphi']
	                  = 'Q487378',
	['erlang']        = 'Q334879',
	['fortran']       = 'Q83303',
	['go']            = 'Q37227',
	['groovy']        = 'Q504453',
	['haskell']       = 'Q34010',
	['html']          = 'Q8811',
	['html5']         = 'Q2053',
	['java']          = 'Q251',
	['javascript']    = 'Q2005',
	['js']            = 'Q2005',
	['lisp']          = 'Q132874',
	['lua']           = 'Q207316',
	['objective-c']   = 'Q188531',
	['objective c']   = 'Q188531',
	['object pascal'] = 'Q633894',
	['pascal']        = 'Q81571',
	['php']           = 'Q59',
	['python']        = 'Q28865',
	['perl']          = 'Q42478',
	['pl']            = 'Q2044345',
	['pgsql']         = 'Q2044345',
	['pl-pgsql']      = 'Q2044345',
	['pl/pgsql']      = 'Q2044345',
	['ruby']          = 'Q161053',
	['scala']         = 'Q460584',
	['scheme']        = 'Q187560',
	['swift']         = 'Q17118377',
	['tex']           = 'Q5301',
	['qml']           = 'Q961543',
	['qt']            = 'Q201904',
	['tcl']           = 'Q5288',
	['vala']          = 'Q1138939',
	['visual basic']  = 'Q2378',
	['web']           = 'Q1141484',
	['xul']           = 'Q726218'
}

--[[
* Per dare un po' di robustezza a questa configurazione su lungo termine.
*
* Per disabilitare la categoria impostare `cat` a false.
*
* @param cat string|false Il placeholder (%s) di "Categoria:Software in %s"
* @param free true|nil Ha la categoria per software libero?
* @param nonfree true|nil Ha la categoria per software proprietà?
* @param catf string|nil Categoria da mandare a sprintf
]]
local langcat = function(cat, free, nonfree)
	return {
		cat     = cat,
		free    = free,
		nonfree = nonfree
	}
end

config.language = {
	Q343587   = langcat('Action!'                  ),
	Q234657   = langcat(false                      ),
	Q154755   = langcat('Ada'                      ),
	Q165436   = langcat('Assembly'                 ),
	Q189248   = langcat('Bash'                     ),
	Q42979    = langcat('BASIC'                    ),
	Q15777    = langcat('C',             true, true),
	Q2370     = langcat('C sharp',       true, true),
	Q2407     = langcat('C++',           true, true),
	Q1106819  = langcat('CoffeeScript'             ),
	Q46441    = langcat('CSS'                      ),
	Q487378   = langcat('Delphi',        true      ),
	Q334879   = langcat('Erlang'                   ),
	Q83303    = langcat('Fortran'                  ),
	Q37227    = langcat('Go'                       ),
	Q504453   = langcat('Groovy'                   ),
	Q34010    = langcat('Haskell'                  ),
	Q8811     = langcat('HTML'                     ),
	Q2053     = langcat('HTML5'                    ),
	Q251      = langcat('Java',          true      ),
	Q2005     = langcat('JavaScript',    true      ),
	Q132874   = langcat('Lisp',          true      ),
	Q207316   = langcat('Lua'                      ),
	Q633894   = langcat('Object Pascal', true, true),
	Q188531   = langcat('Objective-C',   true      ),
	Q81571    = langcat('Pascal'                   ),
	Q42478    = langcat('Perl',          true      ),
	Q59       = langcat('PHP',           true      ),
	Q2044345  = langcat('PL/pgSQL'                 ),
	Q28865    = langcat('Python',        true      ),
	Q961543   = langcat('QML'                      ),
	Q161053   = langcat('Ruby'                     ),
	Q460584   = langcat('Scala'                    ),
	Q187560   = langcat('Scheme'                   ),
	Q17118377 = langcat('Swift'                    ),
	Q5301     = langcat('TeX'                      ),
	Q5288     = langcat('Tcl'                      ),
	Q726218   = langcat('XUL'                      ),
	Q1138939  = langcat('Vala'                     ),
	Q2378     = langcat('Visual Basic'             ),
	Q1141484  = langcat('WEB'                      ),

--	Toolkits:
	Q189464   = langcat('GTK+',          true      ),
	Q201904   = langcat('Qt',            true, true),
	Q310974   = langcat('ncurses'                  ),
	Q284982   = langcat('wxWidgets'                )
}

--[[
* Categoria:Software in licenza $1
* Vediamo se proseguire con questa configurazione o se fruire della proprietà Wikidata short name P1813
]]
config.licenseCategory = {
	Q7603      = 'GNU GPL',
	Q27126812  = 'GNU GPL v1',
	Q27016750  = 'GNU GPL v1+',
	Q10513450  = 'GNU GPL v2',
	Q27016752  = 'GNU GPL v2+',
	Q10513445  = 'GNU GPL v3',
	Q27016754  = 'GNU GPL v3+',
	Q192897    = 'GNU LGPL',
	Q23035974  = 'GNU LGPL v2',
	Q27016756  = 'GNU LGPL v2',
	Q18534390  = 'GNU LGPL v2.1',
	Q27016757  = 'GNU LGPL v2.1+',
	Q18534393  = 'GNU LGPL v3',
	Q27016762  = 'GNU LGPL v3+',
	Q1131681   = 'GNU AGPL',
	Q27017230  = 'GNU AGPL v1',
	Q27017232  = 'GNU AGPL v3',
	Q27020062  = 'GNU AGPL v3+',
	Q616526    = 'Apache',
	Q13785927  = 'Apache 2.0',
	Q334661    = 'MIT',
	Q308915    = 'MPL',
	Q18526202  = 'X11',
	Q191307    = 'BSD',
	Q18517294  = 'BSD 2-clausole',
	Q18491847  = 'BSD 3-clausole',
	Q21503790  = 'BSD 4-clausole',
	Q178285    = 'freeware',

-- Override di categorie minori da far (temporaneamente?) convergere:

	Q27126812  = 'GNU GPL',  -- GNU GPL v1
	Q27016750  = 'GNU GPL',  -- GNU GPL v1+

	Q27017230  = 'GNU AGPL', -- GNU AGPL v1
	Q27017232  = 'GNU AGPL', -- GNU AGPL v3
	Q27020062  = 'GNU AGPL', -- GNU AGPL v3-

	Q23035974  = 'GNU LGPL', -- GNU LGPL v2
	Q27016756  = 'GNU LGPL', -- GNU LGPL v2+
	Q18534390  = 'GNU LGPL', -- GNU LGPL v2.1
	Q27016757  = 'GNU LGPL', -- GNU LGPL v2.1+
	Q18534393  = 'GNU LGPL', -- GNU LGPL v3
	Q27016762  = 'GNU LGPL', -- GNU LGPL v3+

	Q18517294  = 'BSD',      -- BSD 2-clausole
	Q18491847  = 'BSD',      -- BSD 3-clausole
	Q21503790  = 'BSD',      -- BSD 4-clausole

	Q13785927  = 'Apache',   -- Apache 2.0

	Q18526202  = 'MIT'       -- X11 License
}

--[[
* Categoria:Software $1
* Specificare le licenze che hanno una categorizzazione abbreviata.
]]
config.licenseCategoryShorter = {
	Q178285 = 1 -- freeware
}

--[[
* Per dare un po' di robustezza a questa configurazione su lungo termine.
*
* Per disabilitare la categoria impostare `cat` a false.
*
* @param cat string|false Categoria e.g. "Elaboratori di formule"
* @param free true|nil Ha la categoria per software libero?
* @param nonfree true|nil Ha la categoria per software proprietà?
* @param catf string|nil Categoria più generica rispetto alla presupposta "Elaboratori di formule %s"
* @param sing true|nil La categoria assume "libero" o "proprietario", invece che "liberi" o "proprietari"
]]
local genrecat = function(cat, free, nonfree, generic, catf, sing)
	return {
		cat      = cat,
		free     = free    == nil and true or free,
		nonfree  = nonfree == nil and true or nonfree,
		catf     = catf,
		sing     = sing
	}
end

config.genre = {}
config.genre.cat = {
	Q1200186   = genrecat('Software di accesso remoto'), -- remote desktop software
	Q498267    = genrecat('Aggregatori di notizie'), -- news aggregator
	Q29051918  = genrecat('Ambienti di sviluppo di videogiochi'), -- videogame integrated development environment
	Q193564    = genrecat('Motori grafici'), -- game engine
	missing    = genrecat('Software per l\'analisi dei dati'),
	missing    = genrecat('Software per l\'analisi numerica'),
	missing    = genrecat('Antispyware'),
	Q93249     = genrecat('Antivirus'),
	Q877886    = genrecat('Archiviatori di file'), -- file archiver
	Q2727468   = genrecat('Software per l\'automazione dello sviluppo'), -- automazione dello sviluppo
	Q194274    = genrecat('Software di backup'), -- backup
	Q8513      = genrecat('Software per basi di dati', nil, nil, 'Software %s per basi di dati'), -- database
	Q128570    = genrecat('Software per la bioinformatica', true, false), -- bioinformatic
	Q226264    = genrecat('BIOS', true, false),
	Q836795    = genrecat('Boot loader'),
	Q507703    = genrecat('Chatterbot', true, false) -- IRC bot
}
config.genre.alias = {}
config.genre.alias.slug = {
	['accesso remoto'] = 'Q1200186',
	['aggregatore']            = 'Q498267',
	['aggregatore di notizie'] = 'Q498267',
	['sviluppo videogiochi']                = 'Q29051918',
	['ambiente di sviluppo videogiochi']    = 'Q29051918',
	['ambiente di sviluppo di videogiochi'] = 'Q29051918',
	['analisi dati']     = nil,
	['analisi dei dati'] = nil,
	['analisi numerica'] = nil,
	['calcolo numerico'] = nil,
	['antispyware'] = nil,
	['antivirus'] = 'Q93249',
	['archiviazione']        = 'Q877886',
	['archiviatore']         = 'Q877886',
	['archiviatore di file'] = 'Q877886',
	['automazione dello sviluppo'] = 'Q2727468',
	['backup'] = 'Q194274',
	['base dati']    = 'Q8513',
	['base di dati'] = 'Q8513',
	['basi di dati'] = 'Q8513',
	['database']     = 'Q8513',
	['bioinformatica'] = 'Q128570',
	['bios'] = 'Q226264',
	['boot loader'] = 'Q836795',
	['bot irc'] = 'Q507703'
}
config.genre.alias.wd = {
	Q1200186 = 'Q607297'   -- remote desktop = remote desktop software
}

return config