« Module:Langues » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
m A modifié le niveau de protection de « Module:langues » : Module sensible ou répandu ([Modifier=Autoriser uniquement les administrateurs] (infini) [Renommer=Autoriser uniquement les administrateurs] (infini)) [protection en cascade]
+fonction pouvant être utilisée pour remplacer directement les modèles de langue actuels
Ligne 40 : Ligne 40 :
-- Pas trouvé : on renvoie un message d'erreur.
-- Pas trouvé : on renvoie un message d'erreur.
return "Pas de nom de langue pour ''" .. code .. "''"
return "Pas de nom de langue pour ''" .. code .. "''"
end
end

-- Fonction pouvant remplacer les appels de type {{ {{{lang}}} }} dans les modèles
-- Cette fonction marche pour un modèle
function p.nom_langue(frame)
local args = frame.args and frame.args or frame:getParent().args
local code = args[1]
local langue = p.get_nom(code)
if (langue == nil or langue == '') then
return ''
else
return langue
end
end
end
end

Version du 23 avril 2013 à 18:48

La documentation pour ce module peut être créée à Module:Langues/Documentation

local p = {}

-- Cherche et renvoie le nom de la langue depuis notre liste locale [[Module:langues/data]].
-- Fonction utilisable dans d'autres modules seulement
function p.get_nom(code)
    -- Pas de code langue ? Renvoie nil.
    if (code == nil) then return nil end
    
    -- Récupère la table des langues entière (en cache)
    local langues = mw.loadData('Module:langues/data')
    
    -- A-t-on la langue correspondant au code donné ?
    if (langues[code] and langues[code]['nom']) then
        -- Trouvé ! Renvoie le nom
        return langues[code]['nom']
    else
        -- Pas trouvé : on renvoie nil
        return nil
    end
end

-- Affiche directement le nom de la langue retourné par get_nom()
-- À utiliser directement avec #invoke
function p.affiche_nom(frame)
    local code = frame.args[1]
    
    -- Pas de code langue ? Renvoie un message d'erreur.
    if (code == nil or code == '') then
        return 'Pas de code langue donné'
    end
    
    -- Récupère le nom de la langue correspondant au code donné
    local langue = p.get_nom(code)
    
    -- A-t-on trouvé une langue ?
    if (langue ~= nil and langue ~= '') then
        -- Trouvé ! On renvoie le nom de la langue
        return langue
    else
        -- Pas trouvé : on renvoie un message d'erreur.
        return "Pas de nom de langue pour ''" .. code .. "''"
    end
end

-- Fonction pouvant remplacer les appels de type {{ {{{lang}}} }} dans les modèles
-- Cette fonction marche pour un modèle
function p.nom_langue(frame)
    local args = frame.args and frame.args or frame:getParent().args
    local code = args[1]
    
    local langue = p.get_nom(code)
    
    if (langue == nil or langue == '') then
        return ''
    else
        return langue
    end
end

return p