« Module:Drapeau » : différence entre les versions

De Baripedia
m (1 version)
 
m (1 version)
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 4 : Ligne 4 :
]]
]]


math_mod = require( "Module:Math" );
drapeau = {};
gdata = require( "Module:Drapeau/Data" );
--math_mod = mw.loadData( "Module:Math" );
 
-- Chargement du de la base de donnée des langues avec gestion d'erreur.
local gdata
local success, resultat = pcall (mw.loadData, "Module:Drapeau/Data" )
if success then
    gdata = resultat
else
    -- Base de donnée à minima en cas de bug sur le Module:Langue/Data
    gdata={}
    gdata.data={};
    gdata.idByName={};
    gdata.idByCIO={};
    gdata.data[142]={qid="Q142", flag="Flag_of_France.svg", label="France", sitelink="$label", cio="FRA", genre="fs"}
    gdata.idByName['france']=142;
    gdata.idByCIO['FRA']=142;
end
 
local gflag
local success, resultat = pcall (mw.loadData, "Module:Drapeau/Image" )
if success then
    gflag = resultat
else
    -- Base de donnée à minima en cas de bug sur le Module:Langue/Data
    gflag={}
    gflag.flag={};
end
 
local gdomaine
local success, resultat = pcall (mw.loadData, "Module:Drapeau/Domaine" )
if success then
    gdomaine = resultat
else
    -- Base de donnée à minima en cas de bug sur le Module:Langue/Data
    gdomaine={}
    gdomaine.domainelist={
    defaut = {regexp="[[$sitelink|$label]]" , desc="article sur le pays"}
    ,drapeau = {regexp="drapeau", desc=""}
    }
    gdomaine.genre={ms={},msa={},msi={},msia={},fs={},fsa={},fsi={},fsia={},mp={},fp={}}
    gdomaine.jo={}
end
globalFrame = nil
globalFrame = nil


drapeau = {};
function _getFlag(image,aaaammjj,imagesecours)
domainelist={
     local indexdate=(aaaammjj..mw.ustring.rep( 0, 8 )):sub (1, 8)
    defaut = {regexp="[[$main|$name]]" , desc="article sur le pays"}
      
     ,drapeau = {regexp="Drapeau $du$name" , desc="label du drapeau"}
     if (indexdate ~= '00000000' and image~=nil) then     
     ,formelongue = {regexp="[[$main|$namelong]]" , desc="lien vers le pays sous la forme longue"}
        for k,v in pairs( image) do
     ,football = {regexp="[[Équipe $de$name de football|$name]]" , desc="lien vers la sélection nationale de [[football]] masculin"}
            if v["debut"] <= indexdate and indexdate <= v["fin"] then
    ,footballF = {regexp="[[Équipe $de$name de football féminin|$name]]" , desc="lien vers la sélection nationale de [[football]] féminin"}
                return v
    ,football21 = {regexp="[[Équipe $de$name espoirs de football|$name]]" , desc="lien versla sélection nationale de [[football]] espoirs masculin"}
            end
     ,football17 = {regexp="[[Équipe $de$name de football des moins de 17 ans|$name]]" , desc="lien vers la sélection nationale de [[Coupe du monde de football des moins de 17 ans|football des moins de 17 ans]] masculin"}
        end
     ,football20 = {regexp="[[Équipe $de$name de football des moins de 20 ans|$name]]" , desc="lien vers la sélection nationale de [[Coupe du monde de football des moins de 20 ans|football des moins de 20 ans]] masculin"}
     end
     ,basketball = {regexp="[[Équipe $de$name de basket-ball|$name]]" , desc="lien vers la sélection nationale de [[basket-ball]] masculin"}
     if(image~=nil) then
    ,basketballF = {regexp="[[Équipe $de$name de basket-ball féminin|$name]]" , desc="lien vers la sélection nationale de [[basket-ball]] féminin"}
        d= image[1];
    ,volleyball = {regexp="[[Équipe $de$name de volley-ball|$name]]" , desc="lien vers la sélection nationale de [[volley-ball]] masculin"}
     elseif(imagesecours["flag"]~=nil) then
    ,volleyballF = {regexp="[[Équipe $de$name de volley-ball féminin|$name]]" , desc="lien vers la sélection nationale de [[volley-ball]] féminin"}
        local f=imagesecours["flag"]
    ,waterpolo = {regexp="[[Équipe $de$name de water-polo masculin|$name]]" , desc="lien vers la sélection nationale de [[water-polo]] masculin"}
        d= {civilflag=f,stateflag=f,warflag=f,civilensign=f,stateensign=f,warensign=f};
    ,waterpoloF = {regexp="[[Équipe $de$name de water-polo féminin|$name]]" , desc="lien vers la sélection nationale de [[water-polo]] féminin"}
     else
     ,handball = {regexp="[[Équipe $de$name de handball masculin|$name]]" , desc="lien vers la sélection nationale de [[handball]] masculin"}
        local f="Flag_of_None.svg"
    ,handballF = {regexp="[[Équipe $de$name de handball féminin|$name]]" , desc="lien vers la sélection nationale de [[handball]] féminin"}
        d= {civilflag=f,stateflag=f,warflag=f,civilensign=f,stateensign=f,warensign=f};
    ,hockeysurglace = {regexp="[[Équipe $de$name de hockey sur glace|$name]]" , desc="lien vers la sélection nationale de [[hockey sur glace]] masculin"}
     end
    ,hockeysurglaceF = {regexp="[[Équipe $de$name de hockey sur glace féminin|$name]]" , desc="lien vers la sélection nationale de [[hockey sur glace]] féminin"}
      
    ,hockeysurgazon = {regexp="[[Équipe $de$name de hockey sur gazon|$name]]" , desc="lien vers la sélection nationale de [[hockey sur gazon]] masculin"}
     return d;
     ,hockeysurgazonF = {regexp="[[Équipe $de$name de hockey sur gazon féminin|$name]]" , desc="lien vers la sélection nationale de [[hockey sur gazon]] féminin"}
end
     ,beachsoccer = {regexp="[[Équipe $de$name de beach soccer|$name]]" , desc="lien vers la sélection nationale de [[beach soccer]]"}
 
     ,cricket = {regexp="[[Équipe $de$name de cricket|$name]]" , desc="lien vers la sélection nationale de [[cricket]]"}
function _getCompetition(c,aaaa)
    ,footballamericain = {regexp="[[Équipe $de$name de football américain|$name]]" , desc="lien vers la sélection nationale de [[football américain]]"}
     local rep="";
    ,footballaustralien = {regexp="[[Équipe $de$name de football américain|$name]]" , desc="lien vers la sélection nationale de [[football australien]]"}
     if(c=="CM" or c=="coupedumonde") then
    ,futsal = {regexp="[[Équipe $de$name de futsal|$name]]" , desc="lien vers la sélection nationale de [[futsal]]"}
        rep="à la Coupe du monde"
     ,gymnastique = {regexp="[[Équipe $de$name de gymnastique artistique masculine|$name]]" , desc="lien vers la sélection nationale de [[gymnastique artistique]] masculine"}
     elseif(c=="CE" or c=="euro") then
     ,gymnastiqueF = {regexp="[[Équipe $de$name de gymnastique artistique féminine|$name]]" , desc="lien vers la sélection nationale de [[gymnastique artistique]] féminine"}
        rep="au championnat d'Europe"
    ,jo = {regexp="[[$name aux Jeux olympiques|$name]]" , desc="lien vers la délégation olympique"}
     elseif(c=="ChM") then
    ,jocio = {regexp="[[$name aux Jeux olympiques|$cio]]" , desc="lien vers la délégation olympique mais label sous forme du code CIO"}
        rep="au championnat du monde"
     ,rugby = {regexp="[[Équipe $de$name de rugby à XV|$name]]" , desc="lien vers la sélection nationale de [[rugby à XV]] masculin"}
     elseif(c=="CAN" or c=="coupedesconfederations") then
    ,rugbyF = {regexp="[[Équipe $de$name de rugby à XV féminin|$name]]" , desc="lien vers la sélection nationale de [[rugby à XV]] féminin"}
        rep="à la Coupe des Confédérations"
     ,rugby7 = {regexp="[[Équipe $de$name de rugby à 7|$name]]" , desc="lien versla sélection nationale de [[rugby à 7]] masculin"}
     elseif(c=="en" ) then
     ,rugby13 = {regexp="[[Équipe $de$name de rugby à XIII|$name]]" , desc="lien vers la sélection nationale de [[rugby à XIII]] masculin"}
        rep="en"
    ,tennis = {regexp="[[Équipe $de$name de Coupe Davis|$name]]" , desc="lien vers la sélection nationale de [[tennis]] de [[Coupe Davis]]"}
     elseif(c=="jo" ) then
     ,tennisF = {regexp="[[Équipe $de$name de Fed Cup|$name]]" , desc="lien vers la sélection nationale de [[tennis]] de [[Fed Cup]]"}
        rep="aux Jeux olympiques"
    ,futsal = {regexp="[[Équipe $de$name de futsal|$name]]" , desc="lien vers la sélection nationale de [[futsal]] masculin"}
     elseif(c=="jp" ) then
     ,futsalF = {regexp="[[Équipe $de$name de futsal féminin|$name]]" , desc="lien vers la sélection nationale de [[futsal]] féminin"}
        rep="aux Jeux paralympiques"
    ,cyclismesurpiste = {regexp="[[Équipe $de$name de cyclisme sur piste|$name]]" , desc="lien vers la sélection nationale de [[cyclisme sur piste]] masculin"}
     end
     ,cyclismesurpisteF = {regexp="[[Équipe $de$name de cyclisme sur piste féminin|$name]]" , desc="lien vers la sélection nationale de [[cyclisme sur piste]] féminin"}
      
    ,cyclismesurroute = {regexp="[[Équipe $de$name de cyclisme sur route|$name]]" , desc="lien vers la sélection nationale de [[cyclisme sur route]] masculin"}
     --edition
     ,cyclismesurrouteF = {regexp="[[Équipe $de$name de cyclisme sur route féminin|$name]]" , desc="lien vers la sélection nationale de [[cyclisme sur route]] féminin"}
     if(aaaa ~= nil and aaaa ~= "") then
     ,gentileMS = {regexp="[[$name|$gentileMS]]" , desc="lien vers la nationalité"}
        if(c=="joor c=="jp" ) then
     ,gentileFS = {regexp="[[$name|$gentileFS]]" , desc="lien vers la nationalité"}
            local o=gdomaine.jo["_"..aaaa];
     ,gentileMP = {regexp="[[$name|$gentileMP]]" , desc="lien vers la nationalité"}
            if(o ~= nil) then
    ,gentileFP = {regexp="[[$name|$gentileFP]]" , desc="lien vers la nationalité"}
                rep=rep.." "..o
}
            end           
--Aide:Fonction_genre
        else
genre={
            rep=rep.." "..aaaa
  ms= {le="le " ,du="du " ,de="de " ,au="au " ,en="au "}
        end
,msa= {le="l'" ,du="de l'" ,de="d'" ,au="à l'" ,en="en "}
    end
,msi= {le=""    ,du="de " ,de="de " ,au="à " ,en="à "}
 
,msia={le="" ,du="d'" ,de="d'" ,au="à " ,en="à "}
    return rep
,fs=  {le="la " ,du="de la ",de="de  "  ,au="à la " ,en="en "}
end
,fsa= {le="l'" ,du="de l'" ,de="de l'" ,au="à l'" ,en="en "}
,fsi= {le="" ,du="de " ,de="de " ,au="à " ,en="à "}
,fsia={le="" ,du="de l'" ,de="d'" ,au="à " ,en="à "}
,mp=  {le="les ",du="des " ,de="des " ,au="aux " ,en="aux "}
,fp=  {le="les ",du="des " ,de="des " ,au="aux " ,en="aux "}
}
--[[
--[[
pays
pays
Ligne 78 : Ligne 113 :
      
      
]]
]]
function printDrapeau(imgsrc,size)     
function printIcon(data,image,domaine,size,day)     
     local border='';   
     local border='';   
     local alt='';
     local alt='';
     if imgsrc["flagborder"] ~= "no" then
     if data["flagborder"] ~= "no" then
         border='border|'
         border='border|'
     end
     end
      
      
     alt=string.gsub(domainelist["drapeau"]["regexp"], "%$(%w+)", genre[imgsrc["genre"]])
    local datagenre=data["genre"] or "ms"
     alt=string.gsub(alt, "%$(%w+)", imgsrc)
     alt=string.gsub(gdomaine.domainelist["drapeau"]["regexp"], "%$(%w+)",gdomaine.genre[datagenre])
     alt=string.gsub(alt, "%$(%w+)", imgsrc) --dernière passe pour $name
     alt=string.gsub(alt, "%$(%w+)", data)
     alt=string.gsub(alt, "%$(%w+)", data) --dernière passe pour $name
   
    local filescr="$civilflag"  ;
    if(gdomaine.domainelist[domaine]~=nil and gdomaine.domainelist[domaine]["flag"]~=nil) then
        --drapeau adequat
        filescr=gdomaine.domainelist[domaine]["flag"]
    end   
   
    pastimage=_getFlag(image,day,data)   
   
    filescr=string.gsub(filescr, "%$(%w+)", pastimage)
    filescr=string.gsub(filescr, "%$(%w+)", pastimage)
      
      
     return '<span class="flagicon">' ..
     return '<span class="flagicon">' ..
                 '[[Fichier:' .. imgsrc["flag"] .. '|' .. size ..'px|' .. border .. alt ..']]' ..
                 '[[Fichier:' .. filescr .. '|' .. size ..'px|' .. border .. alt ..']]' ..
             '</span>';
             '</span>';
end
end


function printCible(text,domaine)     
function printData(text,domaine,extra)     
     local target='';
     local target='';
     if text["main"] ~= nil then
    local datagenre=text["genre"] or "ms"
         target=string.gsub(domainelist[domaine]["regexp"], "%$(%w+)", genre[text["genre"]])
     if text["label"] ~= nil and gdomaine.domainelist[domaine] ~= nil then
         target=string.gsub(gdomaine.domainelist[domaine]["regexp"], "%$(%w+)", gdomaine.genre[datagenre])
         target=string.gsub(target, "%$(%w+)", text)
         target=string.gsub(target, "%$(%w+)", text)
         target=string.gsub(target, "%$(%w+)", text) --dernière passe pour $name
         target=string.gsub(target, "%$(%w+)", text) --dernière passe pour $name
        target=string.gsub(target, "%$(%w+)", extra)
        target=string.gsub(target, "%$(%w+)", "") --une toute dernière pour supprimer les non-attribué
     end
     end
     return target;
     return target;
Ligne 125 : Ligne 175 :


function _cletri(tmparg)
function _cletri(tmparg)
    local pays=tmparg;
             --2>--remove case
             --2>--remove case
             tmparg=mw.ustring.lower(tmparg);
             tmparg=mw.ustring.lower(tmparg);
Ligne 146 : Ligne 197 :
             tmparg=mw.ustring.gsub(tmparg, "^du ", "");
             tmparg=mw.ustring.gsub(tmparg, "^du ", "");
              
              
             return '<span class="datasortkey" data-sort-value="'..tmparg..'" style="display:none;">&zwj;</span>';
             return '<span class="datasortkey" data-sort-value="'..tmparg..'" style="display:none;">'..pays..'</span>';
end
end


Ligne 167 : Ligne 218 :
      
      


    local extra={}
     if(args[1]=='libelle') then     
     if(args[1]=='libelle') then     
         res="{|class='wikitable' \n!code!!descriptif!!exemple "..mw.wikibase.sitelink(gdata.data[142]["qid"] ).."!!exemple "..mw.wikibase.sitelink(gdata.data[31]["qid"] ).."!!exemple "..mw.wikibase.sitelink(gdata.data[30]["qid"] ).."\n|-\n"
         res="{|class='wikitable sortable' \n!code!!descriptif!!exemple "..mw.wikibase.sitelink(gdata.data[142]["qid"] ).."!!exemple "..mw.wikibase.sitelink(gdata.data[31]["qid"] ).."!!exemple "..mw.wikibase.sitelink(gdata.data[30]["qid"] ).."\n|-\n"
         for k,v in pairs( domainelist ) do
         for k,v in pairs( gdomaine.domainelist ) do
             res= res .. "|<code>" .. k .. "<\code> ||".. domainelist[k]["desc"] .. "||" ..printCible(gdata.data[142],k) .. "||" ..printCible(gdata.data[31],k) .. "||" ..printCible(gdata.data[30],k) .. "\n|-\n"
             res= res .. "|<code>" .. k .. "<\code> ||".. v["desc"] .. "||" ..printData(gdata.data[142],k,extra) .. "||" ..printData(gdata.data[31],k,extra) .. "||" ..printData(gdata.data[30],k,extra) .. "\n|-\n"
         end
         end
         res=res .. "|}"
         res=res .. "|}"
     end
     end
     if(args[1]=='pays') then  
     if(args[1]=='pays') then    
        res="{|class='wikitable sortable' \n!Nom!!Code CIO!!usage classique!!Drapeau!!Équipe sportive (de football)\n|-\n"
         for k,v in pairs( gdata.data ) do
         for k,v in pairs( gdata.data ) do
             res= res .. "*<code>" .. gdata.data[k]["name"] .. "<\code> : "..mw.wikibase.sitelink(gdata.data[k]["qid"] ) .."\n"
            local cio=v["cio"] or ""
             res= res .. "|"..v["label"].."||<code>" .. cio .. "<\code> ||" .._cletri(v["label"])..printIcon(v,nil,"defaut",'20x15',"")..printData(v,"defaut",extra) .. "|| [[" ..printData(v,"drapeau",extra) .. "]] ||" ..printData(v,"football",extra) .. "\n|-\n"
         end
         end
        res=res .. "|}"
     end
     end
     return res;
     return res;
Ligne 206 : Ligne 261 :
             --1>--remove whitespace
             --1>--remove whitespace
             args[i]=args[i]:match( '^%s*(.-)%s*$' );
             args[i]=args[i]:match( '^%s*(.-)%s*$' );
            args[i]=_latinise(args[i]);
         end         
         end         
     end
     end
    local key=_latinise(args[1]);


     --par défaut
     --par défaut
     if (args["taille"] == nil) then args["taille"] = '20x15' end
     local taille = args["taille"] or '20x15'
     if (args["domaine"] == nil) then args["domaine"] = 'defaut' end
     if (args["domaine"] == nil) then args["domaine"] = 'defaut' else args["domaine"] = _latinise(args["domaine"]) end  
     if (args["align"] == nil) then args["align"] = 'left' end
     local align = args["align"] or 'left'
     if (args["lien"] == nil) then args["lien"] = 'oui' end
    local lien = args["lien"] or 'oui'
      
    local annee = args[2] or args["année"] or ''  
    local extra={}
     if (args["compétition"] ~= nil) then
        extra["competition"] = " ".._getCompetition(_latinise(args["compétition"]),args["édition"])
     end
      
      
     local q=0;
     local q=0;
     local data;
     local data;
     if(args["CIO"]~= nil) then
     if(#key==3) then
        q=gdata.idByCIO[mw.ustring.upper(key)]
    elseif(args["CIO"]~= nil) then
         q=gdata.idByCIO[args["CIO"]]
         q=gdata.idByCIO[args["CIO"]]
     else
     else
         q=gdata.idByName[args[1]]         
         q=gdata.idByName[key]         
     end
     end
     local data=gdata.data[q];  
     local data=gdata.data[q];  
     --local data=paysFlag[args[1]];
     local image=gflag.flag[q];  
   
     local res='';
     local res='';
     if(args["t"] == '1') then
    local reserror='';
         res=res .. _cletri(data["name"]);
    --le pays est inconnu!!
     end     
     if(data == nil) then
     if(args["align"] == 'left') then
        data={qid="", flag="Flag_of_None.svg", label=args[1], sitelink="$label", cio=""
         res=res .. printDrapeau(data,args["taille"])..'&nbsp;';
            , genre="ms" , namelong="$label", gentileMS="$label",gentileFS="$label",gentileMP="$label",gentileFP="$label"}
        reserror = reserror .. '<strong class="error">Aucun pays paramètré</strong>'
    end 
   
    --clé automatique if(args["t"] == '1') then
         res=res .. _cletri(data["label"]);
     --end     
     if(align == 'left') then
         res=res .. printIcon(data,image,args["domaine"],taille,annee)..'&nbsp;';
     end     
     end     
     if(args["cible"] ~= nil) then
     if(args["cible"] ~= nil) then
         res=res .. args["cible"] .. '&nbsp;<span style="font-size:90%;" class="nowrap">(';
         res=res .. args["cible"] .. '&nbsp;<span style="font-size:90%;" class="nowrap">(';
     end
     end
     if(args["lien"] == 'oui') then
     if(lien == 'oui' and data["label"] ~= '') then
         res=res ..printCible(data,_latinise(args["domaine"]));
         res=res ..printData(data,args["domaine"],extra);
     end
     end
     if(args["cible"] ~= nil) then
     if(args["cible"] ~= nil) then
         res=res  .. ')</span>';
         res=res  .. ')</span>';
     end     
     end     
     if(args["align"] == 'right') then
     if(align == 'right') then
         res=res .. '&nbsp;' .. printDrapeau(data,args["taille"]);
         res=res .. '&nbsp;' .. printIcon(data,image,args["domaine"],taille,annee);
     end
     end
     return res;
     return res .. reserror;


end
end

Version du 14 janvier 2014 à 00:01

La documentation pour ce module peut être créée à Module:Drapeau/doc

Erreur de script : Erreur Lua : impossible de créer le processus : proc_open n’est pas disponible. Vérifiez la directive de configuration PHP « disable_functions ».

--[[
This module is intended to replace the functionality of {{drapeau2}} and related
templates.  It provides several methods, including
]]

drapeau = {};
--math_mod = mw.loadData( "Module:Math" );

-- Chargement du de la base de donnée des langues avec gestion d'erreur.
local gdata
local success, resultat = pcall (mw.loadData, "Module:Drapeau/Data" )
if success then
    gdata = resultat
else
    -- Base de donnée à minima en cas de bug sur le Module:Langue/Data
    gdata={}
    gdata.data={};
    gdata.idByName={};
    gdata.idByCIO={};
    gdata.data[142]={qid="Q142", flag="Flag_of_France.svg", label="France", sitelink="$label", cio="FRA", genre="fs"}
    gdata.idByName['france']=142;
    gdata.idByCIO['FRA']=142;
end

local gflag
local success, resultat = pcall (mw.loadData, "Module:Drapeau/Image" )
if success then
    gflag = resultat
else
    -- Base de donnée à minima en cas de bug sur le Module:Langue/Data
    gflag={}
    gflag.flag={};
end

local gdomaine
local success, resultat = pcall (mw.loadData, "Module:Drapeau/Domaine" )
if success then
    gdomaine = resultat
else
    -- Base de donnée à minima en cas de bug sur le Module:Langue/Data
    gdomaine={}
    gdomaine.domainelist={
     defaut = {regexp="[[$sitelink|$label]]" , desc="article sur le pays"}
     ,drapeau = {regexp="drapeau", desc=""}
     }
    gdomaine.genre={ms={},msa={},msi={},msia={},fs={},fsa={},fsi={},fsia={},mp={},fp={}}
    gdomaine.jo={}
end
globalFrame = nil

function _getFlag(image,aaaammjj,imagesecours)
    local indexdate=(aaaammjj..mw.ustring.rep( 0, 8 )):sub (1, 8)
    
    if (indexdate ~= '00000000' and image~=nil) then       
        for k,v in pairs( image) do
            if v["debut"] <= indexdate and indexdate <= v["fin"] then
                return v
            end
        end
    end
    if(image~=nil) then
        d= image[1];
    elseif(imagesecours["flag"]~=nil) then
        local f=imagesecours["flag"]
        d= {civilflag=f,stateflag=f,warflag=f,civilensign=f,stateensign=f,warensign=f};
    else
        local f="Flag_of_None.svg"
        d= {civilflag=f,stateflag=f,warflag=f,civilensign=f,stateensign=f,warensign=f};
    end
    
    return d;
end

function _getCompetition(c,aaaa)
    local rep="";
    if(c=="CM" or c=="coupedumonde") then
        rep="à la Coupe du monde"
    elseif(c=="CE" or c=="euro") then
        rep="au championnat d'Europe"
    elseif(c=="ChM") then
        rep="au championnat du monde"
    elseif(c=="CAN" or c=="coupedesconfederations") then
        rep="à la Coupe des Confédérations"
    elseif(c=="en" ) then
        rep="en"
    elseif(c=="jo" ) then
        rep="aux Jeux olympiques"
    elseif(c=="jp" ) then
        rep="aux Jeux paralympiques"
    end
    
    --edition
    if(aaaa ~= nil and aaaa ~= "") then
        if(c=="jo"  or c=="jp" ) then
            local o=gdomaine.jo["_"..aaaa];
            if(o ~= nil) then
                rep=rep.." "..o
            end            
        else
            rep=rep.." "..aaaa
        end
    end

    return rep
end
--[[
pays

Affiche le pays accompagné de son drapeau {{drapeau2}}

Usage:
    {{ Invoke:Drapeau | pays | France }}
    
]]
function printIcon(data,image,domaine,size,day)    
    local border='';  
    local alt='';
    if data["flagborder"] ~= "no" then
        border='border|'
    end
    
    local datagenre=data["genre"] or "ms"
    alt=string.gsub(gdomaine.domainelist["drapeau"]["regexp"], "%$(%w+)",gdomaine.genre[datagenre])
    alt=string.gsub(alt, "%$(%w+)", data)
    alt=string.gsub(alt, "%$(%w+)", data) --dernière passe pour $name
    
    local filescr="$civilflag"  ;
    if(gdomaine.domainelist[domaine]~=nil and gdomaine.domainelist[domaine]["flag"]~=nil) then
        --drapeau adequat
        filescr=gdomaine.domainelist[domaine]["flag"]
    end    
    
    pastimage=_getFlag(image,day,data)    
    
    filescr=string.gsub(filescr, "%$(%w+)", pastimage)
    filescr=string.gsub(filescr, "%$(%w+)", pastimage)
    
    return '<span class="flagicon">' ..
                '[[Fichier:' .. filescr .. '|' .. size ..'px|' .. border .. alt ..']]' ..
            '</span>';
end

function printData(text,domaine,extra)    
    local target='';
    local datagenre=text["genre"] or "ms"
    if text["label"] ~= nil and gdomaine.domainelist[domaine] ~= nil then
        target=string.gsub(gdomaine.domainelist[domaine]["regexp"], "%$(%w+)", gdomaine.genre[datagenre])
        target=string.gsub(target, "%$(%w+)", text)
        target=string.gsub(target, "%$(%w+)", text) --dernière passe pour $name
        target=string.gsub(target, "%$(%w+)", extra)
        target=string.gsub(target, "%$(%w+)", "") --une toute dernière pour supprimer les non-attribué
    end
    return target;
end

function _latinise(tmparg)
            --2>--remove case
            tmparg=mw.ustring.lower(tmparg);
            --2>--remove acccent
            tmparg=mw.ustring.gsub(tmparg, "[àáâãäå]", "a");
            tmparg=mw.ustring.gsub(tmparg, "[æ]", "ae");
            tmparg=mw.ustring.gsub(tmparg, "[ç]", "c");
            tmparg=mw.ustring.gsub(tmparg, "[èéêë]", "e");
            tmparg=mw.ustring.gsub(tmparg, "[ìíîï]", "i");
            tmparg=mw.ustring.gsub(tmparg, "[ñ]", "n");
            tmparg=mw.ustring.gsub(tmparg, "[òóôõö]", "o");
            tmparg=mw.ustring.gsub(tmparg, "[œ]", "oe");
            tmparg=mw.ustring.gsub(tmparg, "[ùúûü]", "u");
            tmparg=mw.ustring.gsub(tmparg, "[ýÿ]", "y");
            --3>--remove ponct
            tmparg=mw.ustring.gsub(tmparg, "[' -_]", "");
            
            return tmparg;
end

function _cletri(tmparg)
    local pays=tmparg;
            --2>--remove case
            tmparg=mw.ustring.lower(tmparg);
            --2>--remove acccent
            tmparg=mw.ustring.gsub(tmparg, "[àáâãäå]", "a");
            tmparg=mw.ustring.gsub(tmparg, "[æ]", "ae");
            tmparg=mw.ustring.gsub(tmparg, "[ç]", "c");
            tmparg=mw.ustring.gsub(tmparg, "[èéêë]", "e");
            tmparg=mw.ustring.gsub(tmparg, "[ìíîï]", "i");
            tmparg=mw.ustring.gsub(tmparg, "[ñ]", "n");
            tmparg=mw.ustring.gsub(tmparg, "[òóôõö]", "o");
            tmparg=mw.ustring.gsub(tmparg, "[œ]", "oe");
            tmparg=mw.ustring.gsub(tmparg, "[ùúûü]", "u");
            tmparg=mw.ustring.gsub(tmparg, "[ýÿ]", "y");
            --3>--remove ponct
            tmparg=mw.ustring.gsub(tmparg, "['-_]", " ");
            --4>--remove forme longue            
            tmparg=mw.ustring.gsub(tmparg, "^republique ", "");
            tmparg=mw.ustring.gsub(tmparg, "^iles ", "");
            tmparg=mw.ustring.gsub(tmparg, "^de ", "");
            tmparg=mw.ustring.gsub(tmparg, "^du ", "");
            
            return '<span class="datasortkey" data-sort-value="'..tmparg..'" style="display:none;">'..pays..'</span>';
end


function drapeau.list(frame)
    globalFrame = frame
    local args = frame.args
    local res="";
    
    if args[1] == nil then
        local pFrame = frame:getParent();
        args = pFrame.args;
        for k,v in pairs( frame.args ) do
            args[k] = v;
        end
    end
    if args[2] == nil then
        args[2]=142 --France par défaut
    end
    

    local extra={}
    if(args[1]=='libelle') then    
        res="{|class='wikitable sortable' \n!code!!descriptif!!exemple "..mw.wikibase.sitelink(gdata.data[142]["qid"] ).."!!exemple "..mw.wikibase.sitelink(gdata.data[31]["qid"] ).."!!exemple "..mw.wikibase.sitelink(gdata.data[30]["qid"] ).."\n|-\n"
        for k,v in pairs( gdomaine.domainelist ) do
            res= res .. "|<code>" .. k .. "<\code> ||".. v["desc"] .. "||" ..printData(gdata.data[142],k,extra) .. "||" ..printData(gdata.data[31],k,extra) .. "||" ..printData(gdata.data[30],k,extra) .. "\n|-\n"
        end
        res=res .. "|}"
    end
    if(args[1]=='pays') then      
        res="{|class='wikitable sortable' \n!Nom!!Code CIO!!usage classique!!Drapeau!!Équipe sportive (de football)\n|-\n"
        for k,v in pairs( gdata.data ) do
            local cio=v["cio"] or ""
            res= res .. "|"..v["label"].."||<code>" .. cio .. "<\code> ||" .._cletri(v["label"])..printIcon(v,nil,"defaut",'20x15',"")..printData(v,"defaut",extra) .. "|| [[" ..printData(v,"drapeau",extra) .. "]] ||" ..printData(v,"football",extra) .. "\n|-\n"
        end
        res=res .. "|}"
    end
    return res;

end

function drapeau.List(frame)
    return drapeau.list(frame)
end


function drapeau.pays(frame)
    globalFrame = frame
    local args = frame.args
    local tmparg;
    if args[1] == nil then
        local pFrame = frame:getParent();
        args = pFrame.args;
        for k,v in pairs( frame.args ) do
            args[k] = v;
        end
    end
    
    for i=1,10 do 
        if args[i] == nil then 
            args[i] = ""
        else
            --1>--remove whitespace
            args[i]=args[i]:match( '^%s*(.-)%s*$' );
        end        
    end
    local key=_latinise(args[1]);

    --par défaut
    local taille = args["taille"] or '20x15'
    if (args["domaine"] == nil) then args["domaine"] = 'defaut' else args["domaine"] = _latinise(args["domaine"]) end 
    local align = args["align"] or 'left'
    local lien = args["lien"] or 'oui'
    local annee = args[2] or args["année"] or ''    
    local extra={}
    if (args["compétition"] ~= nil) then
        extra["competition"] = " ".._getCompetition(_latinise(args["compétition"]),args["édition"])
    end
    
    local q=0;
    local data;
    if(#key==3) then
        q=gdata.idByCIO[mw.ustring.upper(key)]
    elseif(args["CIO"]~= nil) then
        q=gdata.idByCIO[args["CIO"]]
    else
        q=gdata.idByName[key]        
    end
    local data=gdata.data[q];   
    local image=gflag.flag[q];   
    
    local res='';
    local reserror='';
    --le pays est inconnu!!
    if(data == nil) then
        data={qid="", flag="Flag_of_None.svg", label=args[1], sitelink="$label", cio=""
            , genre="ms" , namelong="$label", gentileMS="$label",gentileFS="$label",gentileMP="$label",gentileFP="$label"}
        reserror = reserror .. '<strong class="error">Aucun pays paramètré</strong>'
    end   
    
    --clé automatique if(args["t"] == '1') then
        res=res .. _cletri(data["label"]);
    --end    
    if(align == 'left') then
        res=res .. printIcon(data,image,args["domaine"],taille,annee)..'&nbsp;';
    end    
    if(args["cible"] ~= nil) then
        res=res .. args["cible"] .. '&nbsp;<span style="font-size:90%;" class="nowrap">(';
    end
    if(lien == 'oui' and data["label"] ~= '') then
        res=res ..printData(data,args["domaine"],extra);
    end
    if(args["cible"] ~= nil) then
        res=res  .. ')</span>';
    end    
    if(align == 'right') then
        res=res .. '&nbsp;' .. printIcon(data,image,args["domaine"],taille,annee);
    end
    return res .. reserror;

end

function drapeau.Pays(frame)
    return drapeau.pays(frame)
end


return drapeau