Module:Langue
local langue = { }
local datalangue = mw.loadData( 'Module:langue/Data' )
-- premierParametre renvoi le premier paramètre de Frame, que celui-ci ait été transmi par au modèle, au module par invoke, ou à l'intérieur d'un module sous forme de string dans un tableau ou direstement de string. -- si le deuxième paramètre est true, la chaine est rendue trimé et en minuscule. local function premierParametre ( frame, lowerCase )
local arg if type ( frame ) == 'table' then arg = ( frame.args and frame.args [1] ) or frame [1] or elseif type ( frame ) == 'string' then arg = frame end if type ( arg ) ~= 'string' then arg = end if lowerCase then arg = mw.ustring.lower ( mw.text.trim ( arg ) ) end return arg
end
-- voir Modèle:Direction langue function langue.directionLangue ( frame )
local arg = premierParametre ( frame, true )
local direction = 'ltr' for i, v in ipairs( datalangue.languesRtl ) do if arg == v then direction = 'rtl' break end end return direction
end
-- voir Modèle:Code langue function langue.codeLangue ( frame )
local arg = premierParametre ( frame, true ) local code = datalangue.dataCodeLangue [ arg ] return code or arg
end
-- voir Modèle:Code langue 2 function langue.codeLangue2 ( frame )
local arg = premierParametre ( frame, true ) local code = datalangue.dataCodeLangue [ arg ] return code or
end
-- voir Modèle:Nom langue function langue.nomLangue ( frame )
local arg = premierParametre ( frame, true ) local nom = datalangue.dataNomLangue [ arg ] or '?????' return '' .. nom .. ''
end
-- voir Modèle:Lang function langue.lang ( frame )
local args = frame.args or frame or { } -- préparation pour appel par modèle ou direct. local code = mw.ustring.lower ( mw.text.trim( args [1] or ) ) local texte = args.texte or args [2] or local dir = mw.ustring.lower ( args.dir or ) local trans = args.trans local wikiText =
-- détection de la direction du texte if code == 'ltr' or code == 'rtl' then dir = code code = mw.ustring.lower ( mw.text.trim ( args [2] ) ) texte = args.texte or args [3] or end
-- prépatation du rendu de direction du texte. if dir == 'ltr' or dir == 'rtl' then dir = 'dir=' .. dir else dir = end
-- transliteration
if trans and trans ~= then
trans = ' (' .. trans
.. ')'
else
trans =
end
-- compilation du texte à retourner
wikiText = '' .. texte
.. '' .. trans
-- ajout de la catégorie Page avec code de langue invalide si le code langue est dans la table dataCodeInvalide for i, v in ipairs( datalangue.dataCodeInvalide ) do if code == v then wikiText = wikiText .. break end end
return wikiText
end
-- voir Modèle:Langue function langue.langue ( frame )
local args = frame.args or frame or { } args [1] = langue.codeLangue ( args [1] ) args.dir = args.dir or langue.directionLangue ( args [1] ) return langue.lang ( args )
end
-- voir Modèle:Indication de langue function langue.indicationDeLangue ( frame )
local args = frame.args or frame or { } local nomLangue = args [1] or local code = mw.ustring.lower ( args.langue or mw.text.trim( args [2] or ) ) local texte = args.texte local dir = args.dir local wikiText =
if texte and texte ~= then texte = ' ' .. langue.lang { code, dir = dir, texte = texte } else texte = end
wikiText = '('
.. code .. ')'
.. texte
return wikiText
end
-- voir Modèle:Langue avec nom function langue.langueAvecNom ( frame )
local args = frame.args or frame or { } local code = mw.ustring.lower ( args.lang or mw.text.trim ( args [1] or ) ) local texte = args.texte or args [2] local dir = args.dir local wikiText =
-- définition du nom de la langue en français local nom = langue.nomLangue { code }
-- détection de la direction du texte if code == 'ltr' or code == 'rtl' then dir = code code = mw.ustring.lower ( mw.text.trim ( args [2] ) ) texte = args.texte or args [3] or end
if texte and texte ~= then texte = ' ' .. langue.lang { code, dir = dir, texte = texte } else texte = end
wikiText = nom .. ' :' .. texte
return wikiText
end
return langue