Module:Prononciation
Utilisation
modifierCe module est utilisé par le modèle {{Prononciation}}.
Fonctions exportables :
prononciation()
– récupère le nom d'un unique fichier avec la propriété P443 sur Wikidata, avec la prononciation en français si disponible, la meilleure sinon, et ajoute la Catégorie:Demande de prononciation audio s'il n'y a rien.
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
mw.wikibase
: pour récupérer l'item ;Module:Wikidata
: pour récupérer les déclarations et les formater.
Exemples
modifierPour des exemples, voir la page de test permettant de tester diverses modifications apportées.
local p = {}
function p.prononciation(frame) --récupère la prononciation telle qu'indiquée sur l'item
local parent = frame:getParent(frame) --récupère les paramètres passés au modèle
if (parent.args[2] and parent.args[2] ~= '') then --si le paramètre {{{2}}} existe (on présume que {{{1}}} existe du coup)
return '<sup class="prononciation noprint">[[:Fichier:' .. parent.args[1] .. '|' .. parent.args[2] .. ']]</sup>' -- (fin de la fonction)
end
if (parent.args[1] and parent.args[1] ~= '') then --si le paramètre {{{1}}} existe — seul
return '<sup class="prononciation noprint">[[:Fichier:' .. parent.args[1] .. '|Écouter]]</sup>' -- (fin de la fonction)
end
local entity = mw.wikibase.getEntity() --si aucun des paramètres n'existe, on charge l'item Wikidata associé à l'article
if not entity then --si cet élément n'existe pas ajoute la page à la catégorie de demande (fin de la fonction)
return "[[Catégorie:Demande de prononciation audio]]"
end
local wikidataMod = require "Module:Wikidata"
local pron_fr = wikidataMod.formatStatements({entity=entity, property='P443', qualifier='P407', qualifiervalue='Q150'}) --récupère la prononciation en français
if pron_fr then
return '<sup class="prononciation noprint">[[:Fichier:' .. pron_fr .. '|Écouter]]</sup>' --retourne la prononciation si elle a été trouvée (fin de la fonction)
end
local pron = wikidataMod.formatStatements({entity=entity, property='P443', rank='best', numval=1}) --récupère la prononciation tout court
if pron then
return '<sup class="prononciation noprint">[[:Fichier:' .. pron .. '|Écouter]]</sup>' --retourne la prononciation si elle a été trouvée (fin de la fonction)
end
return "[[Catégorie:Demande de prononciation audio]]" --s'il n'y a décidément pas ajoute la page à la catégorie de demande (fin de la fonction)
end
return p