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

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Fonctions de création des éléments de tableau déplacés dans le module:bases
get_nom et affiche_nom sont les seules fonctions restantes (=locale). Les mêmes version Wikimedia sont déplacées dans /analyse, de même que p.affiche_tableau_langues_locales
Ligne 2 : Ligne 2 :


-- AFFICHAGE DES LANGUES
-- AFFICHAGE DES LANGUES
-- Cherche la langue dans notre liste locale.
-- Cherche et renvoie le nom de la langue depuis notre liste locale [[Module:langues/data]].
function p.get_nom_local(code)
function p.get_nom(code)
if (code == nil) then return nil end
if (code == nil) then return nil end
Ligne 17 : Ligne 17 :
end
end


-- Affiche directement le nom de la langue
-- RCherche la langue dans la liste de Wikimedia.
function p.get_nom_wikimedia(code)
function p.affiche_nom(frame)
if (code) then
local langue = mw.language.fetchLanguageName(code, 'fr') -- fr = nom en français
-- Langue trouvée ? On renvoit nil si c'est vide, pas ''
if (langue ~= nil and langue ~= '') then
return langue
else
return nil
end
else
return nil
end
end

-- Renvoit le nom d'une langue.
function p.get_nom(code)
if (code == nil) then return nil end
-- Essaye d'abord de trouver la langue localement
local langue_local = p.get_nom_local(code)
-- Trouvé localement ?
if (langue_local ~= nil) then
return langue_local
end
-- Pas trouvé localement : regarde dans la liste Wikimédia
local nom = p.get_nom_wikimedia(code)
-- Renvoit le résultat, qu'il s'agisse du nom, ou de nil
return nom
end

-- AFFICHAGE DES LANGUES
-- Affiche directement le nom de la langue.
function p.affiche_nom(frame, methode)
local code = frame.args[1]
local code = frame.args[1]
if (code == nil) then
if (code == nil) then
Ligne 58 : Ligne 24 :
end
end
-- Récupère la langue selon la méthode demandée
-- Récupère la langue dans le liste Wikimedia
local langue = nil
local langue = p.get_nom(code)
if (methode == 'local') then
langue = p.get_nom_local(code)
elseif(methode == 'wikimedia') then
langue = p.get_nom_wikimedia(code)
else
langue = p.get_nom(code)
end
-- A-t-on un résultat ?
-- A-t-on un résultat ?
Ligne 72 : Ligne 31 :
return langue
return langue
else
else
return '-'
return "Pas de nom de langue pour ''" .. code .. "''"
end
end
end

-- Affiche directement le nom de la langue local.
function p.affiche_nom_local(frame)
return p.affiche_nom(frame, 'local')
end

-- Affiche directement le nom de la langue Wikimedia.
function p.affiche_nom_wikimedia(frame)
return p.affiche_nom(frame, 'wikimedia')
end

-- Affiche les langues
-- (seules les langues locales, je ne sais pas si on peut récupérer un tableau de Wikimédia)
function p.affiche_tableau_langues_locales(frame)
local titres = {'code', 'nom'}
local textet_tableau = {b.tableau_entete(titres)}
local wlangues = mw.loadData('Module:langues/data')
for code, infos in pairs(wlangues) do
local langue = infos['nom'] or 'NOM MANQUANT'
local ligne = {code, langue}
table.insert(textet_tableau, b.tableau_ligne(ligne))
end
table.insert(textet_tableau, b.tableau_fin())
return table.concat(textet_tableau, "\r\n")
end
end



Version du 20 mars 2013 à 00:09

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

local p = {}

-- AFFICHAGE DES LANGUES
-- Cherche et renvoie le nom de la langue depuis notre liste locale [[Module:langues/data]].
function p.get_nom(code)
    if (code == nil) then return nil end
    
    -- Récupère la table
    local wlangues = mw.loadData('Module:langues/data')
    
    -- Récupère le nom de langue, s'il y est
    if (wlangues[code] and wlangues[code]['nom']) then
        return wlangues[code]['nom']
    else
        return nil
    end
end

-- Affiche directement le nom de la langue
function p.affiche_nom(frame)
    local code = frame.args[1]
    if (code == nil) then
        return 'Pas de code langue donné'
    end
    
    -- Récupère la langue dans le liste Wikimedia
    local langue = p.get_nom(code)
    
    -- A-t-on un résultat ?
    if (langue ~= nil and langue ~= '') then
        return langue
    else
        return "Pas de nom de langue pour ''" .. code .. "''"
    end
end

return p