Module:Utilisateur:SyntaxTerror/2
Apparence
[voir] [modifier] [historique] [purger]
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.
local TraductionReference= { }
-- Chargement du de la base de données des langues avec gestion d'erreur.
local dataLangue
local success, resultat = pcall (mw.loadData, 'Module:Utilisateur:SyntaxTerror/Data' )
if success then
dataLangue = resultat
else
-- Base de données à minima en cas de bug sur le Module:Langue/Data
dataLangue = { en = { code = 'en', nom = anglais },
de = { code = 'de', nom = 'allemand' },
it = { code = 'it', nom = 'italien' },
es = { code = 'es', nom = 'espagnol' }, }
dataLangue.anglais = dataLangue.en
dataLangue.allemand = dataLangue.de
dataLangue.italien = dataLangue.it
dataLangue.espagnol = dataLangue.es
end
-- fonction principale : traductionReference
function TraductionReference.traductionReference(frame)
local args = frame:getParent().args
-- 1re langue
-- nettoyage et mise en minuscules de lang1
local lang1 = args[1] or args["lang"] or args["Lang"] or args["lang1"] or args["Lang1"] or ''
lang1 = mw.ustring.lower( mw.text.trim( lang1 ) )
-- message d'erreur si la langue n'est pas indiquée
if lang1 == '' then
return '<span style="color:red"> Erreur dans {{Traduction/Référence}} :'
.. 'langue non précisée. </span> [[Catégorie:Page avec code de langue invalide]]'
end
-- mise de lang1 dans wiki1 dans la cas où il ne correspond pas au code de langue IETF correct
local wiki1 = lang1
-- correction du code dans deux cas car il utilise celui d'une autre langue,
-- si le code est juste incorrect, il sera corrigé par les alias de Module:Langue/Data
if lang1 == 'als' then
lang1 = 'gws'
end
if lang1 == 'nrm' then
lang1 = 'fra-nor'
end
-- définition du nom de la langue et du code IETF correct
local tabLangue1 = dataLangue[ lang1 ]
local nom1
if tabLangue1 then
lang1 = tabLangue1.nom -- lang1 devient le nom de la langue
code1 = tabLangue1.code -- code1 devient le code IETF correct pour la langue
if type( tabLangue1.page ) == 'string' then
nom1 = tabLangue1.page .. '|' .. tabLangue1.nom -- lang1 devient le nom de la langue lié à son article si celui-ci n'a pas le même nom
else
nom1 = tabLangue1.nom -- sinon, nom1 devient le nom de la langue
end
else
return '<span style="color:red;"> Erreur dans {{Traduction/Référence}} : langue non reconnue : '
.. lang1 .. ' </span>[[Catégorie:Page avec code de langue invalide]]'
end
-- catégorisation dans « Page avec un oldid invalide » (invisible) s'il n'y a pas d'oldid ou s'il n'est pas un nombre
local id1 = args[3] or args["id1"] or args["Id1"] or args["oldid"] or args["Oldid"] or args["oldid1"] or args["Oldid1"] or ''
id1 = mw.text.trim( id1 )
local erreurid = ''
if id1 == '' or tonumber( id1 ) ~= 'number' then
id1 = '[[Catégorie:Page avec un oldid invalide|Reference]]'
erreurid = '<span style="color:red;"> oldid invalide.</span>'
end
-- paramètre "type" existe?
local debut = '* '
local fin = ''
local typ = args["type"] or args["note"] or ''
typ = mw.text.trim( typ )
if typ ~= '' then
debut = '<span style="padding-left: 1.2em;">'
fin = '</span>'
end
-- paramètre "projet" ou "projet1" rogné si existant, sinon = 'wikipedia'
local projet1 = args["projet"] or args["Projet"] or args["projet1"] or args["Projet1"] or 'wikipedia'
projet1 = mw.text.trim( projet1 )
-- création du texte à renvoyer
local art1 = args[2] or args["art"] or args["Art"] or args["art1"] or args["Art1"] or ''
art1 = mw.text.trim( art1 )
local wikitext = debut .. '<span class="indicateur-langue">(<abbr class="abbr" title="Langue : '
.. lang1 .. '">'
.. code1 .. '</abbr>)</span> Cet article est issu partiellement ou en totalité de l’article de Wikipédia en [['
.. nom1 .. ']] intitulé « <span class="plainlinks" lang="'
.. code1 .. '">[http://'
.. wiki1 .. '.'
.. projet1 .. '.org/wiki/'
.. mw.uri.encode( art1 , "WIKI" ) .. '?oldid='
.. id1 .. ' '
.. art1 .. ']</span> » <small>(<span class="plainlinks">[http://'
.. wiki1 .. '.wikipedia.org/wiki/'
.. mw.uri.encode( art1 , "WIKI" ) .. '?action=history voir la liste des auteurs]</span>)</small>'
.. fin .. erreurid
-- <span class="plainlinks" lang="{{{1}}}">
-- 2e langue (si existante)
local art2 = args[5] or args["art2"] or args["Art2"] or ''
art2 = mw.text.trim( mw.uri.encode( art2 , "WIKI" ) )
if art2 ~= '' then
-- nettoyage et mise en minuscules de lang2
local lang2 = args[4] or args["lang2"] or args["Lang2"] or ''
lang2 = mw.ustring.lower( mw.text.trim( lang2 ) )
-- message d'erreur si la langue n'est pas indiquée
if lang2 == '' then
return '<span style="color:red"> Erreur dans {{Traduction/Référence}} :'
.. 'langue non précisée. </span> [[Catégorie:Page avec code de langue invalide]]'
end
-- mise de lang1 dans wiki1 dans la cas où il ne correspond pas au code de langue IETF correct
local wiki2 = lang2
-- correction du code dans deux cas car il utilise celui d'une autre langue,
-- si le code est juste incorrect, il sera corrigé par les alias de Module:Langue/Data
if lang2 == 'als' then
lang2 = 'gws'
end
if lang2 == 'nrm' then
lang2 = 'fra-nor'
end
-- définition du nom de la langue et du code IETF correct
local tabLangue2 = dataLangue[ lang2 ]
local nom2
if tabLangue2 then
lang2 = tabLangue2.nom -- lang1 devient le nom de la langue
code2 = tabLangue2.code -- code1 devient le code IETF correct pour la langue
if type( tabLangue2.page ) == 'string' then
nom2 = tabLangue2.page .. '|' .. tabLangue2.nom -- lang1 devient le nom de la langue lié à son article si celui-ci n'a pas le même nom
else
nom2 = tabLangue2.nom -- sinon, nom1 devient le nom de la langue
end
else
return '<span style="color:red;"> Erreur dans {{Traduction/Référence}} : langue non reconnue : '
.. lang2 .. ' </span>[[Catégorie:Page avec code de langue invalide]]'
end
-- catégorisation dans « Page avec un oldid invalide » (invisible) s'il n'y a pas d'oldid ou s'il n'est pas un nombre
local id2 = args[6] or args["id2"] or args["Id2"] or args["oldid2"] or args["Oldid2"] or ''
id2 = mw.text.trim( id2 )
if id2 == '' or tonumber( id2 ) ~= 'number' then
id2 = '[[Catégorie:Page avec un oldid invalide|Reference]]'
erreurid = '<span style="color:red;"> oldid invalide.</span>'
end
-- paramètre "projet2" rogné si existant, sinon = 'wikipedia'
local projet2 = args["projet2"] or 'wikipedia'
projet2 = mw.text.trim( projet2 )
-- création du texte à renvoyer (replacement du texte pour un seul article car la syntaxe est différente)
wikitext = debut .. '<span class="indicateur-langue">(<abbr class="abbr" title="Langue : '
.. lang1 .. '">'
.. code1 .. '</abbr>)/(<abbr class="abbr" title="Langue : '
.. lang2 .. '">'
.. code2 .. '</abbr>)</span> Cet article est issu partiellement ou en totalité des articles de Wikipédia intitulés en [['
.. nom1 .. ']] « <span class="plainlinks" lang="'
.. code1 .. '">[http://'
.. wiki1 .. '.'
.. projet1 .. '.org/wiki/'
.. art1 .. '?oldid='
.. id1 .. ' '
.. mw.uri.decode( art1 , "WIKI" ) .. ']</span> » <small>(<span class="plainlinks">[http://'
.. wiki1 .. '.wikipedia.org/wiki/'
.. art1 .. '?action=history voir la liste des auteurs]</span>)</small> et en [['
.. nom2 .. ']] « <span class="plainlinks" lang="'
.. code2 .. '">[http://'
.. wiki2 .. '.'
.. projet2 .. '.org/wiki/'
.. art2 .. '?oldid='
.. id2 .. ' '
.. mw.uri.decode( art2 , "WIKI" ) .. ']</span> » <small>(<span class="plainlinks">[http://'
.. wiki2 .. '.wikipedia.org/wiki/'
.. art2 .. '?action=history voir la liste des auteurs]</span>)</small>'
.. fin .. erreurid
end
-- renvoi du texte
return wikitext
end
return TraductionReference