Aller au contenu

Module:Utilisateur:SyntaxTerror/2

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 18 août 2013 à 07:14 et modifiée en dernier par SyntaxTerror (discuter | contributions) ((voir la liste des auteurs) en "small"). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[voir] [modifier] [historique] [purger]
local Langue = { }

-- 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

-- traductionReference

function Langue.traductionReference(frame)
    local args = ( frame.getParent and frame:getParent().args ) or frame or { }
    local lang1 = args[1] or args["lang1"] or ''
    local art1 = args[2] or args["art1"] or ''
    local id1 = args[3] or args["id1"] or '[[Catégorie:Page avec un oldid invalide|Reference]]'  -- catégorisation dans « Page avec un oldid invalide » (invisible) s'il n'y a pas d'oldid
    local lang2 = args[4] or args["lang2"] or ''
    local art2 = args[5] or args["art2"] or ''
    local id2 = args[6] or args["id2"] or '[[Catégorie:Page avec un oldid invalide|Reference]]'
    
-- 1re langue

-- 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
 
-- nettoyage et mise en minuscule de lang1

    local lang1 = mw.ustring.lower( mw.text.trim( lang1 ) )
 
-- 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    
    
-- création du texte à renvoyer

    local wikitext = '* <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">[https://'
    .. wiki1 .. '.wikipedia.org/wiki/'
    .. mw.uri.encode( art1 , "WIKI" ) .. '?oldid='
    .. id1 .. ' '
    .. art1 .. ']</span> » <small>(voir la <span class="plainlinks">[https://'
    .. wiki1 .. '.wikipedia.org/wiki/'
    .. mw.uri.encode( art1 , "WIKI" ) .. '?action=history liste des auteurs]</span>)</small>'

-- 2e langue (si existante)    
    
    if art2 ~= '' then
 
-- 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
 
-- nettoyage et mise en minuscule de lang1

        local lang2 = mw.ustring.lower( mw.text.trim( lang2 ) )
 
-- 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    
    
-- création du texte à renvoyer             
        
        wikitext = '* <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">[https://'
        .. wiki1 .. '.wikipedia.org/wiki/'
        .. mw.uri.encode( art1 , "WIKI" ) .. '?oldid='
        .. id1 .. ' '
        .. art1 .. ']</span> » <small>(voir la <span class="plainlinks">[https://'
        .. wiki1 .. '.wikipedia.org/wiki/'
        .. mw.uri.encode( art1 , "WIKI" ) .. '?action=history liste des auteurs]</span>)</small> et en [['
        .. nom2 .. ']] « <span class="plainlinks">[https://'
        .. wiki2 .. '.wikipedia.org/wiki/'
        ..  mw.uri.encode( art2 , "WIKI" )  .. '?oldid='
        .. id2 .. ' '
        .. art2 .. ']</span> » <small>(voir la <span class="plainlinks">[https://'
        .. wiki2 .. '.wikipedia.org/wiki/'
        ..  mw.uri.encode( art2 , "WIKI" )  .. '?action=history liste des auteurs]</span>)</small>'   
    end

-- renvoi du texte

    return wikitext
    
end
    
return Langue

-- Utilisateur:SyntaxTerror/Brouillon/Module2

-- (en)/(es) Cet article est partiellement ou en totalité issu des articles intitulés en anglais « Odin » (voir la liste des auteurs) et en espagnol « Odin » (voir la liste des auteurs)