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

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
suppression de affiche_nom : pas utilisé, voir le modèle {{nom langue}} plutôt (qui utilise la fonction nom_langue)
+fonction get_nom_Wikimedia pour faire les liens au cas où le wiki chez Wikimédia a un code différent (à ajouter dans la table langues/data avec le paramètre wmlien='code')
Ligne 40 : Ligne 40 :
else
else
return langue
return langue
end
end


-- Cherche et renvoie le code Wikimedia du Wiktionnaire correspondant s'il existe
function p.get_lien_Wikimedia(code)
-- Pas de code langue ? Renvoie nil.
if (code == nil) then return nil end
-- Espaces avant et après enlevés
code = mw.text.trim(code)
-- Récupère la table des langues Wikimedia (en cache)
local langues = mw.loadData('Module:langues/data')
-- A-t-on la langue correspondant au code donné ?
if (langues[code] and langues[code]['wmlien']) then
-- Trouvé ! Renvoie le nom
return langues[code]['wmlien']
else
-- Pas trouvé : on renvoie nil
return nil
end
end
end
end

Version du 11 juin 2013 à 14:34

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
    
    -- Espaces avant et après enlevés
     code = mw.text.trim(code)
    
    -- 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

-- 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
    if frame.args ~= nil and frame.args[1] ~= nil then
        args = frame.args
    else
        args = frame:getParent().args
    end
    local code = args[1]
    
    local langue = p.get_nom(code)
    
    if (langue == nil or langue == '') then
        return ''
    else
        return langue
    end
end


-- Cherche et renvoie le code Wikimedia du Wiktionnaire correspondant s'il existe
function p.get_lien_Wikimedia(code)
    -- Pas de code langue ? Renvoie nil.
    if (code == nil) then return nil end
    
    -- Espaces avant et après enlevés
     code = mw.text.trim(code)
    
    -- Récupère la table des langues Wikimedia (en cache)
    local langues = mw.loadData('Module:langues/data')
    
    -- A-t-on la langue correspondant au code donné ?
    if (langues[code] and langues[code]['wmlien']) then
        -- Trouvé ! Renvoie le nom
        return langues[code]['wmlien']
    else
        -- Pas trouvé : on renvoie nil
        return nil
    end
end

return p