Modulo:Software: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m typo
Riga 102:
]]
function p._preferredLanguageSlug(slug)
if slug then
slug = string.lower(slug)
end
return conf.languageSlugAlias[slug] or slug
end
Riga 133 ⟶ 136:
local v = args['Linguaggio' .. i]
if v then
languages.insert(string p.lower_preferredLanguageSlug(v) )
end
end
return languages
end
 
function p.languages(frame)
local s = ''
 
--[[
* Argomenti ereditati dal Template:Software e da Wikidata
]]
local args = frame and getArgs(frame)
local categorizza = args['Categorie']
local libero = mSoftware.isFreeSoftware(frame)
 
--[[
* Linguaggi da Wikidata e dal Template:Software
]]
local wd_languages = mWikidata._getClaims('P277')
local tl_languages = p._getTemplateLanguages(frame)
 
local nszero = mw.title.getCurrentTitle().namespace == 0
 
-- Tutti i linguaggi sono identificati?
local allFound = true
 
-- Il template si è arricchito grazie a Wikidata?
local improved = false
 
-- Il template non mostra alcun linguaggio?
local noLanguages = true
 
if tl_languages then
noLanguages = false
end
 
local merge = {}
for _, language in pairs(tl_languages) do
merge[language] = true
end
 
if wd_languages then
for i, language in pairs(wd_languages) do
local wikidataID = mWikidata._formatStatement(language, {formatting = 'raw'})
language = conf.wikidataToLanguageSlug[wikidataID]
if language then
merge[language] = true
noLanguages = false
improved = true
else
allFound = false
end
end
if improved and nszero then
--[[
* Categoria applicata solo se si mostra tale informazione
]]
s = s .. '[[Categoria:Linguaggio di programmazione letto da Wikidata]]'
end
else
if tl_languages and nszero then
--[[
* Categoria applicata solo se il template specifica linguaggi ma Wikidata no
]]
s = s .. '[[Categoria:Linguaggio di programmazione assente su Wikidata]]'
end
end
 
if noLanguages and nszero then
if mSoftware._isFreeSoftware(frame) then
s = s .. '[[Categoria:Software libero senza linguaggio]]'
else
s = s .. '[[Categoria:Software senza linguaggio]]'
end
end
 
if not allFound and nszero then
s = s .. '[[Categoria:Linguaggio di programmazione da Wikidata non previsto]]'
end
 
local i = 0
for language, _ in pairs(merge) do
local glue = i > 1 and '<br />' or ''
s = s .. glue .. frame:expandTemplate{
title = 'Software/Linguaggio',
args = {language, categorizza, libero}
}
i = i + 1
end
 
return s
end