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

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Renvoie nil s'il n'y a aucune langue qui correspond au code
Commentaires, un peu d'espace
Ligne 2 : Ligne 2 :


-- Wikimédia a une liste des codes langues avec leur nom en français : autant en profiter
-- Wikimédia a une liste des codes langues avec leur nom en français : autant en profiter
-- Fonction de module.
function p.get_nom_wikimedia(code)
function p.get_nom_wikimedia(code)
return code and mw.language.fetchLanguageName(code, 'fr') or nil
if (code) then
return mw.language.fetchLanguageName(code, 'fr')
else
return nil
end
end
end


-- Invocation directe.
-- Pour tester
function p.affiche_nom_wikimedia(frame)
function p.affiche_nom_wikimedia(frame)
return p.get_nom_wikimedia(frame.args[1])
return p.get_nom_wikimedia(frame.args[1])
end
end


-- Récupère le nom d'une langue à partir de son code
-- Fonction de module. Récupère le nom d'une langue à partir de son code.
function p.get_nom(code)
function p.get_nom(code)
if (code == nil) then return nil end
if (code == nil) then return nil end

Version du 16 mars 2013 à 21:49

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

local p = {}

-- Wikimédia a une liste des codes langues avec leur nom en français : autant en profiter
-- Fonction de module.
function p.get_nom_wikimedia(code)
    if (code) then
        return mw.language.fetchLanguageName(code, 'fr')
    else
        return nil
    end
end

-- Invocation directe.
function p.affiche_nom_wikimedia(frame)
    return p.get_nom_wikimedia(frame.args[1])
end

-- Fonction de module. Récupère le nom d'une langue à partir de son code.
function p.get_nom(code)
    if (code == nil) then return nil end
    
    -- Notre propre liste de langue (prioritaire)
    local wlangues = mw.loadData('Module:langues/data')
    
    -- Code défini chez nous?
    if (wlangues[code] ~= nil) then
        local nom = wlangues[code]['nom']
        return nom
    else
        -- Non défini chez nous: essaye la liste Wikimédia
        local nom = p.get_nom_wikimedia(code)
        
        -- On ne renvoit quelque chose que si le nom existe
        if (nom ~= nil and nom ~= '') then
            return nom
        else
            return nil
        end
    end
end

return p