« Module:Langues » : différence entre les versions
Contenu supprimé Contenu ajouté
Commentaires, un peu d'espace |
Rangement, fonctions d'affichage et de récupération du nom dans les trois cas : nom local, nom Wikimédia, et complémentation des deux |
||
Ligne 1 : | Ligne 1 : | ||
local p = {} |
local p = {} |
||
-- AFFICHAGE DES LANGUES |
|||
-- Wikimédia a une liste des codes langues avec leur nom en français : autant en profiter |
|||
-- Cherche la langue dans notre liste locale. |
|||
-- Fonction de module. |
|||
function p.get_nom_local(code) |
|||
⚫ | |||
⚫ | |||
-- Récupère la table |
|||
local wlangues = mw.loadData('Module:langues/data') |
|||
⚫ | |||
if (wlangues[code] and wlangues[code]['nom']) then |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
|||
-- RCherche la langue dans la liste de Wikimedia. |
|||
function p.get_nom_wikimedia(code) |
function p.get_nom_wikimedia(code) |
||
if (code) then |
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 '' |
|||
⚫ | |||
return langue |
|||
else |
|||
return nil |
|||
end |
|||
else |
else |
||
return nil |
return nil |
||
Ligne 11 : | Ligne 33 : | ||
end |
end |
||
-- Renvoit le nom d'une langue. |
|||
-- Invocation directe. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
function p.get_nom(code) |
function p.get_nom(code) |
||
if (code == nil) then return nil end |
if (code == nil) then return nil end |
||
-- |
-- Essaye d'abord de trouver la langue localement |
||
local |
local langue_local = p.get_nom_local(code) |
||
-- |
-- Trouvé localement ? |
||
if ( |
if (langue_local ~= nil) then |
||
return langue_local |
|||
end |
|||
⚫ | |||
⚫ | |||
-- 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] |
|||
if (code == nil) then |
|||
return 'Pas de code langue donné' |
|||
end |
|||
-- Récupère la langue selon la méthode demandée |
|||
local langue = nil |
|||
if (methode == 'local') then |
|||
⚫ | |||
elseif(methode == 'wikimedia') then |
|||
langue = p.get_nom_wikimedia(code) |
|||
else |
else |
||
langue = p.get_nom(code) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
-- On ne renvoit quelque chose que si le nom existe |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
-- A-t-on un résultat ? |
|||
if (langue ~= nil and langue ~= '') then |
|||
return langue |
|||
else |
|||
return 'Pas de langue pour le code ' .. code |
|||
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. |
|||
⚫ | |||
return p.affiche_nom(frame, 'wikimedia') |
|||
end |
end |
||
Version du 16 mars 2013 à 21:17
La documentation pour ce module peut être créée à Module:Langues/Documentation
local p = {}
-- AFFICHAGE DES LANGUES
-- Cherche la langue dans notre liste locale.
function p.get_nom_local(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
-- RCherche la langue dans la liste de Wikimedia.
function p.get_nom_wikimedia(code)
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]
if (code == nil) then
return 'Pas de code langue donné'
end
-- Récupère la langue selon la méthode demandée
local langue = nil
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 ?
if (langue ~= nil and langue ~= '') then
return langue
else
return 'Pas de langue pour le code ' .. code
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
return p