Ouvrir le menu principal

Modifications

568 octets ajoutés ,  7 août 2020 à 18:42
m
1 révision importée
local function getDataLangue( frame ) -- Obtenir le code de la langue local codeLangue = premierParametre( frame, true ) -- Si le paramètre est incorrect, retourner un message d'erreur if type( codeLangue ) ~= 'string' or codeLangue == '' then return nil, '<span class="error">langue non précisée</span>' end  -- Obtenir le tableau contenant les informations sur la langue local tabLangue = dataLangue[ codeLangue ] -- Si le code étendu n'est pas trouvé, chercher à nouveau avec le code racine if not tabLangue then tabLangue = dataLangue[ mw.ustring.match( codeLangue, '^(%a-)%-' ) ] end -- Si on n'a toujours rien trouvé, retourner un message d'erreur if not tabLangue then return nil, langErrorMess:format( codeLangue ) end  return tabLangueend -- Fonction fournissant un wikilien vers l'article-- traitant d'une langue à partir de son code.-- Voir Modèle:Nom Lien langue
-- Paramètre :
-- 1 : code IETF de langue.
function Langue.nomLanguelienLangue( frame ) local arg tabLangue, erreur = premierParametregetDataLangue( frame, true ) if type( arg ) ~= 'string' or arg == '' then return '<span class="error">langue non précisée</span>' end local tabLangue = dataLangue[ arg ] if tabLangue == nil then tabLangue = dataLangue[ mw.ustring.match( arg, '^(%a-)%-' ) ] end
if not tabLangue then
return string.format( langErrorMess, arg )erreur
end
 
-- Créer un lien pour la langue depuis le tableau
if type( tabLangue.page ) == 'string' then
if tabLangue.page ~= '' then
end
-- Fonction permettant de récupérer le nom d'une langue à partir de son code.
-- Voir Modèle:Nom langue
-- Paramètre :
-- 1 : code IETF de langue.
-- Retourne :
-- Le nom de la langue, un message d'erreur sinon.
function Langue.nomLangue( frame )
local tabLangue, erreur = getDataLangue( frame )
if not tabLangue then
return erreur
end
 
-- Extraire le nom de la langue depuis le tableau
return tabLangue.nom
end
 
-- Fonction permettant de récupérer le nom de l'article
-- portant sur une langue à partir de son code.
-- Voir Modèle:Article langue
-- Paramètre :
-- 1 : code IETF de langue.
-- Retourne :
-- Le nom de l'article portant sur la langue
-- si le code est trouvé, un message d'erreur sinon.
function Langue.articleLangue( frame )
local tabLangue, erreur = getDataLangue( frame )
if not tabLangue then
return erreur
end
 
-- Extraire le titre de l'article depuis le tableau
if type( tabLangue.page ) == 'string' and tabLangue.page ~= '' then
return tabLangue.page
else
return tabLangue.nom
end
end
-- Voir Modèle:Langue
-- Définition du nom de la langue en français.
local nom = Langue.nomLanguelienLangue{ code }
if texte ~= '' then
!scope=col|Code IETF
!scope=col|Nom principal
!scope=col|Page Titre de l'article<br>(si différente différent du nom)!scope=col|Lien vers l'article
!scope=col|RTL
!scope=col|Invalide]]
local ligneTab, ligneSrt
for ik, v in pairs( dataLangue ) do
if v.code then
ligneTab = {
ik,
v.code,
v.nom,
v.page or '',
Langue.lienLangue(v.code), v.rtl and '[[ImageFichier:Yes check.svg|15px|oui|lien=]]' or '', v.invalide and '[[ImageFichier:Yes check.svg|15px|oui|lien=]]' or '',
}
ligneSrt = table.concat( ligneTab, '\n|' )
local languesTab, listeCodesAlias = { }, { }
local code, alias, codeAlias
for ik, v in pairs( dataLangue ) do
-- on construit un table avec pour indices les codes de langue, et pour valeurs une table avec la liste des alias
code = v.code
if code and not v.invalide then
languesTab[code] = languesTab[code] or { }
if i k ~= mw.ustring.lower( code ) then table.insert( languesTab[code], i k )
end
end
end
for ik, v in pairs( languesTab ) do
-- transformation en un table séquence, avec pour valeur une chaine correspondant à une ligne de la liste
alias = table.concat( v, ', ' )
if alias == '' then
codeAlias = '* <code>' .. i k .. '</code>'
else
codeAlias = '* <code>' .. i k .. '</code> : ' .. alias
end
table.insert( listeCodesAlias, codeAlias )
local languesTab = { }
local code
for ik, v in pairs( dataLangue ) do
-- on construit un table avec pour indices les codes de langue, et pour valeurs une table avec la liste des alias
code = v.code
if code and i k ~= code and not v.invalide then table.insert( languesTab, '* ' .. i k .. ' = ' .. code )
end
end
return table.concat( languesTab, '\n' )
end
 
-- Fonction permettant de récupérer le nom de l'article
-- portant sur une langue à partir de son code.
-- Utilisée par MediaWiki:Babel-portal pour générer
-- le lien vers l'article de la langue dans les modèles Babel.
-- Paramètre :
-- 1 : code IETF de langue.
-- Retourne :
-- Le nom de l'article portant sur la langue
-- si le code est trouvé, une chaine vide sinon.
function Langue.articleLangue( frame )
-- Obtenir le code de la langue
local codeLangue = premierParametre( frame, true )
-- Si le paramètre est incorrect, retourner une chaine vide
if type( codeLangue ) ~= 'string' or codeLangue == '' then
return ''
end
-- Obtenir le tableau contenant les informations sur la langue
local tabLangue = dataLangue[ codeLangue ]
-- Si le code étendu n'est pas trouvé, chercher à nouveau avec le code racine
if tabLangue == nil then
tabLangue = dataLangue[ mw.ustring.match( codeLangue, '^(%a-)%-' ) ]
end
-- Si on n'a toujours rien trouvé, retourner une chaine vide
if tabLangue == nil then
return ''
end
-- Extraire le lien vers l'article depuis le tableau
if type( tabLangue.page ) == 'string' and tabLangue.page ~= '' then
return tabLangue.page
else
return tabLangue.nom
end
end
return Langue