Aller au contenu

Amṣada:langues

Seg Wikasegzawal
Ce module permet de renvoyer les informations des différentes langues, notamment leur nom, à partir de leur code (fr=français).

Importation dans un module : l = require("Module:langues")

Fonctions utilisables dans les modules

get_nom(code)
renvoie le nom de la langue s'il est défini dans la liste locale Module:langues/data. Si aucune langue ne correspond, la fonction renvoie nil.
  • nom_langue = l.get_nom('fr')
get_lien_Wikimedia(code)
renvoie le code correspondant à cette langue si le code diffère chez Wikimédia (Module:langues/data), à utiliser pour les liens vers les autres langues. S'il n'y a pas de code spécial chez Wikimédia, la fonction renvoie nil.
  • code_Wikimedia = l.get_lien_Wikimedia('fr')
has_portail(code)
renvoie true ou false selon que le code langue est associé à une langue qui a un portail ou non (les portails sont écrits en dur dans Module:langues/data).

Fonction utilisable dans un modèle ou dans une page

nom_langue(code)
affiche le nom de la langue ou, à défaut, une chaîne vide
  • {{#invoke:langues|nom_langue|fr}} affiche « tarumit »
  • {{#invoke:langues|nom_langue|blabla}} affiche «  »

Voir aussi


info Documentation du Amṣada:langues : v · d · m · h.

Catégorie:Modules Lua documentés


b = require('Module:bases')

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

-- Fonction pour écrire le nom d'une langue dans une liste (or traductions)
-- Cette fonction marche pour un modèle {{L}}
function p.langue_pour_liste(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]
    
    -- Un code est-il donné?
    if code == nil or mw.text.trim(code) == '' then
        return "''Pas de code donné''" .. b.fait_categorie_contenu('Wiktionnaire:Codes langue manquants')
    end
    
    code = mw.text.trim(code)
     
    local langue = p.get_nom(code)
    
    if (langue == nil or langue == '') then
        return code .. '*' .. b.fait_categorie_contenu('Wiktionnaire:Codes langue non définis')
    else
        return b.ucfirst(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

function p.has_portail(code)
	-- Récupère la table des langues entière (en cache)
	local langues = mw.loadData('Module:langues/data')

	if (langues[code] and langues[code]['portail']) then
		return true
	else
		return false
	end
end

return p