Modulo:Software/Configurazione

Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Software/Configurazione/man (modifica · cronologia)
Sandbox: Modulo:Software/Configurazione/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Software/Configurazione/test (modifica · cronologia · Esegui)
Questa configurazione permette la categorizzazione automatica per linguaggio di programmazione e per licenza delle voci che utilizzano il template {{Software}}.
Vale anche per le categorie che utilizzano il template {{Categoria software}}.
Linguaggi di programmazione
Ogni voce può avere linguaggi di programmazione espressi sia in Wikidata alla proprietà linguaggio di programmazione (P277), oppure può averlo espresso direttamente nel template {{Software}} tramite alcuni parametri.
Aggiunte
Per aggiungere un linguaggio, bisogna in primis aggiungere una nuova riga in config.language
, variando alcuni parametri a seconda di quante categorie abilitare per tale linguaggio.
- Linguaggio poco diffuso
In particolare, questa riga permette la categoria Categoria:Software in Action!:
Q343587 = langcat('Action!')
Notando che Q343587
è il codice dell'elemento Wikidata Action! (Q343587).
- Linguaggio discretamente diffuso
Questa permette la categoria Categoria:Software in Delphi ed eventualmente Categoria:Software libero in Delphi:
Q487378 = langcat('Delphi', true)
- Linguaggio diffuso
Questa permette la categoria Categoria:Software in C ed eventualmente Categoria:Software libero in C e Categoria:Software proprietario in C:
Q15777 = langcat('C', true, true)
Inoltre, è necessario aggiungere una nuova riga in config.languageSlugToWikidata
inserendo:
['alias del linguaggio per il parametro del template'] = 'proprietà del linguaggio su Wikidata',
quindi, ad esempio:
['action'] = 'Q343587',
con la possibilità di includere anche le varianti:
['action!'] = 'Q343587',
Licenze
Le licenze sono lette dalla proprietà Wikidata licenza (P275).
La configurazione config.licenseCategory
serve a creare una categoria associata ad una certa licenza. Alcune licenze minori possono convergere.
- Esempio
Se la voce ha licenza (P275)=licenza MIT (Q334661) allora sarà categorizzata in Categoria:Software con licenza MIT grazie a questa riga:
config.licenseCategory = {Q334661 = 'MIT'}
- Abbreviata
Se la categoria della licenza è in una forma abbreviata si deve aggiungere l'eccezione in config.licenseCategoryShorter
. Ad esempio:
config.licenseCategoryShorter = { Q178285 = 1}
Se la voce ha la licenza freeware (Q178285) allora si avrà la Categoria:Software freeware invece che Categoria:Software con licenza freeware.
Librerie
Al momento le librerie sono recuperate dalla proprietà toolkit o framework dell'interfaccia grafica (P1414) e trattate in maniera riconducibile ai #Linguaggi di programmazione.
Pagine correlate
- Template:Software/Linguaggio/man
- Categoria:Software per linguaggio di programmazione
- Categoria:Software per licenza
- Categoria:Software per libreria utilizzata
local config = {}
--[[
* Qualificatori Wikidata associati ai codici per il Template:Software/Linguaggio
]]
config.wikidataToLanguageSlug = {
['Q343587'] = 'action!',
['Q165436'] = 'assembly',
['Q42979'] = 'basic',
['Q15777'] = 'c',
['Q2407'] = 'c++',
['Q2370'] = 'c#',
['Q487378'] = 'delphi',
['Q334879'] = 'erlang',
['Q37227'] = 'go',
['Q8811'] = 'html',
['Q2053'] = 'html5',
['Q251'] = 'java',
['Q2005'] = 'javascript',
['Q132874'] = 'lisp',
['Q207316'] = 'lua',
['Q188531'] = 'objective-c',
['Q633894'] = 'object pascal',
['Q59'] = 'php',
['Q28865'] = 'python',
['Q42478'] = 'perl',
['Q2044345'] = 'pl',
['Q161053'] = 'ruby',
['Q187560'] = 'scheme',
['Q201904'] = 'qt',
['Q5288'] = 'tcl',
['Q1138939'] = 'vala',
['Q726218'] = 'xul'
}
--[[
* Alias da mantenere per ragioni storiche del Template:Software/Linguaggio
]]
config.languageSlugAlias = {
['action'] = 'action!',
['c ++'] = 'c++',
['cpp'] = 'c++',
['c sharp'] = 'c#',
['c #'] = 'c#',
['embarcadero delphi'] = 'delphi',
['js'] = 'javascript',
['objective c'] = 'objective-c',
['pl'] = 'pl',
['pgsql'] = 'pl',
['pl-pgsql'] = 'pl',
['pl/pgsql'] = 'pl'
}
return config