Modulo:Software/Archivio/Linguaggi di programmazione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Categoria:Linguaggio di programmazione letto da Wikidata è applicata solo se il dato letto è anche mostrato
m Valerio Bozzolan ha spostato la pagina Modulo:Linguaggi di programmazione a Modulo:Software/Archivio/Linguaggi di programmazione senza lasciare redirect: template obsoleto
 
(13 versioni intermedie di uno stesso utente non sono mostrate)
Riga 6:
 
local mWikidata = require('Modulo:Wikidata')
local mSoftware = require('Modulo:Software')
local conf = mw.loadData('Modulo:Software/Configurazione')
local p = {}
 
local languageSlug = {
['Q15777'] = 'c',
['Q2407'] = 'c++',
['Q2370'] = 'c#',
['Q8811'] = 'html',
['Q2053'] = 'html5',
['Q251'] = 'java',
['Q2005'] = 'javascript',
['Q207316'] = 'lua',
['Q188531'] = 'objective-c',
['Q59'] = 'php',
['Q28865'] = 'python',
['Q42478'] = 'perl',
['Q5288'] = 'tcl',
['Q726218'] = 'xul'
}
 
--[[
* Alcuni linguaggi non hanno ancora (o non necessitano) della categoria per il software proprietario
]]
local hasProprietaryCategory = {
['c'] = true,
['c++'] = true
}
 
local SEPARATOR = '<br />'
Line 38 ⟶ 15:
local wd_languages = mWikidata._getClaims('P277')
 
local nszero = mw.title.getCurrentTitle().namespace == 0
local s = ''
local allFound = true
local improved = false
local tplEmpty = frame.args[1]
local categorizzare = frame.args[2]
local libero = frame.args[3]
 
--[[
Line 61 ⟶ 37:
if wd_languages then
for i, language in pairs(wd_languages) do
languagelocal wikidataQ = languageSlug[ mWikidata._formatStatement(language, {formatting = 'raw'}) ]
language = conf.wikidataToLanguageSlug[wikidataQ]
if language then
if tplEmpty then
 
--[[
* Di default non ha la categoria proprietaria
]]
if hasProprietaryCategory[language] == nil then
hasProprietaryCategory[language] = false
end
 
local separator = i > 1 and SEPARATOR or ''
 
s = s .. separator .. frame:expandTemplate{
title = 'Software/Linguaggio',
args = {language, frame.args[2], mSoftware.isFreeSoftware(frame)}
args = {
language,
categorizzare,
libero,
proprietaria_on = hasProprietaryCategory[language] and 'sì' or 'no'
}
}
 
Line 97 ⟶ 61:
end
end
if improved and nszero then
--[[
* Categoria applicata solo se si mostra tale informazione
Line 104 ⟶ 68:
end
else
if not tplEmpty and nszero then
s = s .. '[[Categoria:Linguaggio di programmazione assente su Wikidata]]'
--[[
end
* Categoria applicata solo se il template specifica linguaggi ma Wikidata no
 
]]
if noLanguages then
s = s .. '[[Categoria:Linguaggio di programmazione assente su Wikidata]]'
if libero then
libero = string.lower( mw.text.trim( libero ) )
libero = libero == 'sì' or libero == 'si'
end
end
 
if liberonoLanguages and nszero then
if mSoftware._isFreeSoftware(frame) then
s = s .. '[[Categoria:Software libero senza linguaggio]]'
else
Line 120 ⟶ 84:
end
 
if not allFound and nszero then
s = s .. '[[Categoria:Linguaggio di programmazione da Wikidata non previsto]]'
end