Modul:koda zimanî/inglîzî
Documentation for this module may be created at Modul:koda zimanî/inglîzî/belge
b = require('Modul:bases')
-- Çavkanî: ku.wiktionary [[Modul:koda zimanî]] ji bo wergera kodên zimanan ên inglîzî hatiye guherandin
local p = {}
-- Cherche et renvoie le code à partir du nom d'une langue depuis notre liste locale [[Module:langues/data]].
-- Fonction utilisable dans un modèle
function p.get_nav(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('Modul:ziman/inglîzî')
-- A-t-on la langue correspondant au code donné ?
if (langues[code] and langues[code]['nav']) then
-- Trouvé ! Renvoie le nom
return langues[code]['nav']
else
-- Pas trouvé : on renvoie nil
return nil
end
end
function p.nav_ziman(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_nav(code)
if (langue == nil or langue == '') then
return ''
else
return langue
end
end
function p.koda_zimani(frame)
-- Besoin que d'un paramètre, voire aucun si le nom de la page correspond exactement au nom dans la liste
if frame.args ~= nil and frame.args[1] ~= nil then
args = frame.args
else
args = frame:getParent().args
end
local nav = args[1]
-- Pas de nom de langue ? Récupère le nom à partir du nom de la page
if nav == nil or mw.text.trim(nav) == '' then
nav = mw.title.getCurrentTitle().text
else
-- On enlève les espaces du paramètre donné
nav = mw.text.trim(nav)
end
-- Récupère la table des langues entière (en cache)
local langues = mw.loadData('Modul:ziman/inglîzî')
--if nom then return nom end
-- A-t-on la langue correspondant au code donné?
-- On tourne sur toutes les langues pour trouver la bonne
-- Pas aussi efficace que d'avoir le tableau inversé (code-langue -> langue-code)
-- mais on n'en a besoin que d'une fois dans la page, donc pas la peine
for code, langue_table in pairs(langues) do
if nav == langue_table['nav'] then
-- Trouvé !
return code
end
end
-- Pas trouvé : renvoie une chaîne vide, plus facilement utilisable par les modèles
return ''
end
return p