Module:Infobox/Fonctions/Logiciel
Cette page réunit des fonctions qui peuvent être réutilisées pour construire des modules d'infobox visant à décrire un logiciel. Sauf mention contraire, les fonctions utilisent des données fournies en paramètre dans l'article, ou alors, lorsque celles-ci sont absentes, des données issues de Wikidata.
Qualificatifs temporels
Certaines valeurs ne sont valables qu'à une certaine date ou pour une période donnée. Ces informations sont ajoutées aux propriétés de l'élément en tant que qualificateurs. Ces informations :
- apparaîtrons, éventuellement, entre parenthèse après la valeur de la propriété,
- permettront de trier chronologiquement les valeurs affichées,
- de n'afficher que la valeur actuelle d'une propriété.
Les qualificatifs temporels sont : P585 (« date »), P580 (« date de début ») et P582 (« date de fin »).
Fonctions exportables
p.programmingLanguage(disableCat)
p.programmingLanguagesSupported()
p.internationalisation(nbmax)
p.developmentStart()
p.versionsNavigator()
p.firstVersion()
p.lastStableVersion()
p.advancedVersion()
p.softwareType()
p.creator()
p.developer()
p.license()
Affiche la ou les licences du logiciel. Si la licence dispose d’un identifiant SPDX, c’est celui-ci qui est affiché plutôt que le libellé de l’élément Wikidata de la licence.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Licence Licences
|
licence licences
|
P275 (« licence »)![]() ![]() P582 (« date de fin ») |
Licences du logiciel. Une erreur fréquente est d’utiliser un nom générique de licence plutôt que de préciser sa version précise (par exemple « GPL » au lieu de « GPL-2.0 ») : il faut bien préciser la version de la licence utilisée. Lorsque des propriétés de Wikidata sont utilisées le ou les formats s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Lorsque la licence utilisée dispose d’un identifiant SPDX, c’est ce dernier qui est affiché plutôt que le libellé de la licence. |
p.repository()
Affiche le lien vers le dépôt de code source de ce logiciel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Dépôt Dépôts
|
dépôt
|
P1324 (« dépôt du code source »)![]() ![]() P582 (« date de fin ») |
Lien vers le dépôt de code source de ce logiciel. Lorsque des propriétés de Wikidata sont utilisées le ou les formats s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Exemples : |
p.qualityAssurance()
Affiche l’assurance qualité de ce logiciel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Assurance qualité
|
assurance qualité
|
P2992 (« assurance qualité logicielle »)![]() ![]() P582 (« date de fin ») |
Assurance qualité pour ce logiciel. Lorsque des propriétés de Wikidata sont utilisées le ou les formats s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Exemples : |
p.graphicalInterface()
Affiche l’interface graphique utilisée par le logiciel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Interface Interfaces
|
interface interfaces
|
P1414 (« bibliothèque d'interface utilisateur »)![]() ![]() P582 (« date de fin ») |
Interface graphique utilisée par le logiciel. Lorsque des propriétés de Wikidata sont utilisées le ou les formats s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Exemples : |
p.operatingSystem()
Affiche le ou les systèmes d’exploitation sur lesquels peut fonctionner le logiciel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Système d’exploitation Systèmes d’exploitation
|
système d'exploitation systèmes d'exploitation environnement environnements
|
P306 (« système d'exploitation »)![]() ![]() P582 (« date de fin ») |
Systèmes d’exploitation sur lesquels peut fonctionner le logiciel. Lorsque des propriétés de Wikidata sont utilisées le ou les formats s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Exemples : |
p.platform()
Affiche la ou les plateformes sur lesquelles peut fonctionner le logiciel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Plate-forme Plate-formes
|
plateforme plateformes plate-forme plate-formes
|
P400 (« plateforme »)![]() ![]() P582 (« date de fin ») |
Plateformes sur lesquelles peut fonctionner le logiciel. Lorsque des propriétés de Wikidata sont utilisées le ou les formats s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Exemples : |
p.dataSize()
Affiche la taille d’un logiciel, d’un jeu de données, d’un réseau de neurones, ou d’un fichier individuel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Taille des données
|
taille des données
|
P3575 (« taille des données »)![]() ![]() P582 (« date de fin ») |
Taille d’un logiciel, d’un jeu de données, d’un réseau de neurones, ou d’un fichier individuel. Lorsque des propriétés de Wikidata sont utilisées la taille s'affiche en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Exemples : |
p.readFormats()
Affiche les formats de fichiers ou de flux de données lus ou importés par le logiciel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Formats lus
|
importe
|
P1072 (« format de fichier pouvant être lu »)![]() ![]() P582 (« date de fin ») |
Formats de fichiers ou de flux de données lus ou importés par le logiciel. Lorsque des propriétés de Wikidata sont utilisées le ou les formats s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Exemples : |
p.writtenFormats()
Affiche les formats de fichiers ou de flux de données écrits ou exportés par le logiciel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Formats écrits
|
exporte
|
P1073 (« format de fichier pouvant être écrit »)![]() ![]() P582 (« date de fin ») |
Formats de fichiers ou de flux de données écrits ou exportés par le logiciel. Lorsque des propriétés de Wikidata sont utilisées le ou les formats s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :
Exemples : |
p.documentation()
Affiche le lien vers la documentation du logiciel.
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Documentation
|
documentation
|
P2078 (« lien vers le mode d'emploi »)![]() ![]() P582 (« date de fin ») |
URL de la documentation du logiciel. L'adresse doit être complète en commençant par http:// ou https://.
Exemples : |
p.mainimage(cat, defaultimage)
Affiche une illustration du logiciel. Généralement, il s’agit d’une capture d’écran.
Libellé | Paramètre | Wikidata | Description |
---|---|---|---|
|
Fichier de l'image ou de la photographie à afficher dans l'infobox. Exemples : | ||
|
Qualificatif de l'image affichée : |
Légende de l'image. Exemples : | |
|
Facteur de redimensionnement de l'image. Utile en particulier lorsque l'image est en mode portrait[2]. Exemples : | ||
|
Largeur de l'image, en pixels. Exemples : | ||
|
Voir la proposition de propriété alt text |
Texte à afficher quand l'image ne peut l'être. Exemples : |
p.logo(upright)
Affiche le logo du logiciel.
Argument | Type | Description |
---|---|---|
upright |
nombre | Valeur par défaut du facteur de redimensionnement du logo. |
Libellé | Paramètre | Wikidata | Description |
---|---|---|---|
|
Fichier du logo à afficher dans l'infobox. Exemples : | ||
|
Légende du logo. Exemples : | ||
|
Facteur de redimensionnement du logo. Utile en particulier lorsque le logo est en mode portrait[2]. Exemples : | ||
|
Largeur du logo, en pixels. Exemples : | ||
|
Voir la proposition de propriété alt text |
Texte à afficher quand l'image ne peut l'être. Exemples : Alternative textuelle à un logo |
p.title()
Retourne le titre de l’infobox.
Libellé | Paramètre | Wikidata | Description |
---|---|---|---|
|
Texte à afficher dans la barre de titre de l'infobox.
Par défaut c'est le libellé en français de l'élément wikidata lié à la page. En son absence, c'est le nom de la page Wikipédia. Exemples : |
p.website(localparam)
Retourne le site web du logiciel.
Argument | Type | Description |
---|---|---|
localparam |
chaîne | Nom du paramètre à ajouter aux paramètres de l'infobox existants (site web , site_web , site officiel , site internet , web ).
|
Libellé | Paramètre | Wikidata | Description |
---|---|---|---|
|
|
P856 (« site officiel ») |
URL du site internet.
Remarques :
Exemples : |
|
Texte affiché pour le lien du site. Ce paramètre ne fonctionne que lorsque l'adresse est spécifiée par un paramètre. Exemples : |
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
--[[
Avant de mettre en production une nouvelle version avez-vous :
- mis en place des tests dans au moins une des pages de test d'un des modèles utilisant la fonction ?
- testé avec la version bac à sable ?
- modifié la documentation ?
]]
-- Fonctions utilisées par les infobox de logiciel
local p = {}
local localdata = require 'Module:Infobox/Localdata'
local item = localdata.item
local wikidata = require 'Module:Wikidata'
local page = mw.title.getCurrentTitle()
-- Liste locale de la fin des noms de catégories par langage de programmation
local programmingLanguageCat = {
Q234657 = 'ActionScript',
Q154755 = 'Ada',
Q165436 = 'Assembleur',
Q15777 = 'C',
Q2407 = 'C++',
Q487378 = 'Delphi',
Q334879 = 'Erlang',
Q83303 = 'Fortran',
Q189248 = 'GNU Bash',
Q37227 = 'Go',
Q34010 = 'Haskell',
Q776372 = 'Information Processing Language',
Q251 = 'Java',
Q2005 = 'JavaScript',
Q132874 = 'Lisp',
Q849146 = 'Common Lisp',
Q1334586 = 'Emacs Lisp',
Q633894 = 'Object Pascal',
Q188531 = 'Objective-C',
Q212587 = 'OCaml',
Q81571 = 'Pascal',
Q42478 = 'Perl',
Q59 = 'PHP',
Q28865 = 'Python',
Q161053 = 'Ruby',
Q575650 = 'Rust',
Q460584 = 'Scala',
Q959549 = 'Script shell',
Q235086 = 'Smalltalk',
Q1138939 = 'Vala',
Q2378 = 'Visual Basic',
-- catégorisation désactivée pour les langages qui suivent:
Q726218 = '-', -- XML-based User interface Language
}
--[[
-- Catégorise le logiciel en fonction du langage de programmation dans lequel il est écrit
-- (cette fonction était initialement implémentée dans Modèle:Infobox Logiciel en wikicode).
-- Lorsque la fonction parvient à catégoriser le logiciel, la catégorie
-- « Logiciel catégorisé automatiquement par langage d'écriture » est également ajoutée.
-- Lorsque la fonction ne parvient pas à catégoriser le logiciel car aucune catégorie n’est définie
-- pour ce langage, la catégorie « Logiciel écrit en un langage sans catégorie associée »
-- est ajoutée. On peut désactiver la catégorisation pour un langage en utilisant '-' dans
-- la liste des noms de langages (programmingLanguageCat).
--]]
local function catByProgrammingLanguage()
-- On vérifie qu’on est dans l’espace principal et que l’on a pas le paramètre nocat
if page.namespace ~= 0 or localdata['nocat'] then
return ''
end
-- S’il y a des données locales, on abandonne pour éviter toute confusion,
-- vu qu’on ne va pas utiliser les données locales (pas structurées, et avec des wikiliens)
-- et qu’on ne veut pas que la catégorisation diverge de l’affichage dans l’infobox
if localdata['langage de programmation'] then
return ''
end
local plang = wikidata.getIds(localdata.item, {
property = 'P277',
atdate= "today",
})
if #plang == 0 then
return ''
end
local ret = ''
local isCat = false
for i=1, #plang do
local cat = programmingLanguageCat[plang[i]]
if cat and cat ~= '-' then
-- on peut désactiver la tentative d’ajout dans une catégorie en renseignant '-'
-- à la place du nom d’un langage, afin d’éviter de remplir la catégorie
-- « Logiciel écrit dans un langage sans catégorie associée »
-- si on sait que la catégorie ne sera pas créée.
ret = ret .. '[['..'Category:Logiciel écrit en ' .. cat .. ']]'
isCat = true
else
-- Catégorie de maintenance
ret = ret .. '[[' .. 'Category:Logiciel écrit en un langage sans catégorie associée' .. ']]'
end
end
if isCat then
-- Catégorie de maintenance
ret = ret .. '[[' .. "Category:Logiciel catégorisé automatiquement par langage d'écriture" .. ']]'
end
return ret
end
--[[
-- Retourne les langages de programmation dans lesquels est écrit le logiciel.
-- Par défaut, catégorise le logiciel par langages d’écriture (désactivable en mettant disableCat à true).
--]]
function p.programmingLanguage(disableCat)
local catEnabled = not disableCat -- par défaut on active la catégorisation
return {
type = 'row',
label = '[[Langage de programmation|Écrit en]]',
value = 'langage de programmation',
wikidata = function()
local value, num = wikidata.formatAndCat {
entity = localdata.item,
property = 'P277',
atdate= "today", -- le logiciel peut avoir été ré-écrit en un autre langage
returnnumberofvalues = true,
}
return (value and (num ~= 0)) and (value .. (catEnabled and catByProgrammingLanguage())) or '', num
end,
}
end
return p