Module:Langue

De Lagny-sur-Marne Wiki
Version datée du 26 juillet 2013 à 17:28 par 0x010D (discussion | contributions) (Nouvelle page : 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 mo...)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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