stringtranslate.com

Módulo: Flagg

local  titleSelf  =  mw . title . new (...  o  mw . getCurrentFrame (): getTitle ()) local  titleCountryData  =  mw . title . new [[Módulo:CountryData]] si  titleSelf . isSubpage  entonces local sandbox = titleSelf . subpageText : match [[^sandbox]] si sandbox entonces titleCountryData = titleCountryData : subPageTitle ( sandbox ) fin fin local CountryData = require ( tostring ( titleCountryData )) local p = {} función p . main ( frame ) --Obtener argumentos de entrada local args = require ( 'Módulo:Argumentos' ). getArgs ( frame ,{ valueFunc = function ( key , value ) if value then value = mw.text.trim ( value ) --Cambia la cadena vacía a nula para todos los argumentos excepto 'image' y 'border' if key == " image " or key == " border " or value ~ = " " then return value end end return nil end }) --Llama a la función principal return p.luaMain ( frame , args ) end function p.luaMain ( frame , args ) función local emp2nil ( x ) if x == " " then return nil else return x end end función local space2emp (                                            x ) si string.find ( x , "^%s*$" ) entonces devuelve "" de lo contrario devuelve x fin fin función local nopx ( x ) si x ~= nil y ( string.find ( x , "^%d+$" ) o string.find ( x , "^%d+px$" )) entonces devuelve string.gsub ( x , "^(.*)px" , "%1" ) de lo contrario devuelve nil fin fin --Parámetros país y modo modo local = string.lower ( args [ 1 ] o "usc" ) mi local = string.sub ( modo , 1 , 1 ) ms local = string.sub ( modo , 2 , 2 ) mn local = string.sub ( modo , 3 , 3 ) me local = string.sub ( modo , 4 , - 1 ) país local = args [ 2 ] o "" paísDataCountry local = país si string.find ( me , " i" ) entonces local titleIocCountryData = mw.title.new [ [Módulo:Alias/datos de país ] ] local IocCountryData = require ( tostring ( titleIocCountryData ) ) local iocCountryAlias ​​= IocCountryData.countryAliases [ país ] o país countryDataCountry = IocCountryData.countrys [ iocCountryAlias ] [ " nombre_de_datos_de_país " ]                                                                    o  IocCountryData . países [ iocCountryAlias ​​][ "nombre" ] end local avar = args [ "avar" ] o args [ "altvar" ] local clink = args [ "clink" ] o args [ "link" ] --Obtener datos del país y datos altvar datos locales , alink , amap , asuf si avar entonces local age = args [ "age" ] o "" alias local amap , aalias = require ( " Module :Flagg/Altvar data" ). alttable ( edad ) avar = string.gsub ( string.lower ( avar o "" ), "[ -]" , "" ) avar = aalias [ avar ] o avar si no es amap [ avar ] entonces error ( "Avar desconocido" ) fin local apar = { altvar = amap [ avar ]. altvar ; mw = amap [ avar ]. mw ; edad = amap [ avar ]. edad ; variante = args [ "variante" ] o args [ 3 ]} datos = CountryData . getcachedtable ( frame , countryDataCountry , apar ) asuf = amap [ avar ] . altlink alink = data [ "alias de enlace-" .. amap [ avar ].altvar ] o ( clink o datos [                                                       "alias de nombre corto" ]  o  datos . alias  o  país ) .. " " .. asuf else datos = ( args [ "nodata" ] y {}) o CountryData . getcachedtable ( frame , countryDataCountry , { variante = args [ "variant" ] o args [ 3 ]}) avar = "" amap = {[ "" ] = { altvar = "" }} fin --Parámetros de nombre y enlace clink = clink o datos .alias o país local pref = args [ "pref" ] local suff = args [ "suff" ] o asuf local pref2 = args [ "pref2" ] local suff2 = args [ "suff2" ] si no es pref y no suff entonces - Prefijo predeterminado pref = "Bandera de" fin local yn_map = {[ "" ] = 0 ; [ "0" ] = 0 ; [ "no" ] = 0 ; [ "n" ] = 0 ; [ "1" ] = 1 ; [ "sí" ] = 1 ; [ "y" ] = 1 } local fthe = ( args [ "pthe " ] y yn_map [ args [ "pthe " ]] ~= 0 ) o ( args [ "the " ] y yn_map [ args [ "the"                                                             ]] ~= 0 ) local nthe = ( args [ "nthe" ] y yn_map [ args [ " nthe " ]] ~= 0 ) o ( args [ "the" ] y yn_map [ args [ "the" ]] ~= 0 ) fthe = fthe y ( pref y "t" o "T" ) .. "él " o "" nthe = nthe y ( pref y "t" o "T" ) .. "él " o "" local flink = args [ "plink" ] o args [ "flink" ] o alink o clink == "" y "" o space2emp (( pref o "" ) .. " " ) .. fthe .. clink .. space2emp ( " " .. ( suff o "" )) local flink2 si args [ "plink2" ] o args [ "flink2" ] o pref2 o suff2 entonces flink2 = args [ "plink2" ] o args [ "flink2" ] o clink == "" y "" o space2emp (( pref2 o "" ) .. " " ) .. fthe .. clink .. space2emp ( " " ..( suff2 o "" )) de lo contrario flink2 = flink fin local fsec = args [ "psection" ] o args [ "section" ]                                                                             fsec2  local =  args [ "psection2" ]  o  args [ "section" ] csec local = args [ "csection" ] o args [ "section" ] fsec = fsec y "#" .. fsec o "" fsec2 = fsec2 y "#" .. fsec2 o "" csec = csec y "#" .. csec o "" si string.find ( me , "f" ) entonces si mw . title . new ( flink ). exists == false entonces si flink2 ~= flink y mw . title . new ( flink2 ). existe == verdadero entonces flink = flink2 fsec = fsec2 de lo contrario flink = clink fin fin fin nombre local = args [ "nombre" ] si no es nombre entonces cname local = string.find ( me , "e" ) y ( datos [ "nombre alias-" .. amap [ avar ]. altvar ] o datos [ "alias de nombre corto" ] o datos . alias ) o país si mn == "f" entonces nombre = cname == "" y "" o space2emp (( pref o "" ) .. " " ) .. nthe .. cname .. space2emp ( " " ..( suff o "" )) de lo contrario nombre =                                                                                 cname end end --Parámetros de imagen pimage local = args [ "image" ] placeholder local = "Flag placeholder.svg" variant local = args [ "variant" ] o args [ 3 ] o "" image_map local = {[ "" ] = placeholder ; [ "none" ] = placeholder ; [ "blank" ] = placeholder } if pimage then --Eliminar espacio de nombres pimage = string.gsub ( pimage , "^[Ff][Ii][Ll][Ee]:" , "" ) pimage = string.gsub ( pimage , "^[Ii][Mm][Aa][Gg][Ee]:" , "" ) end iname local = image_map [ pimage ] o pimage size local = args [ "size" ] o args [ "sz" ] size_map local = { xs = "12x8px" ; s = "17x11px" ; m = "23x15px" ; l = "32x21px" ; xl = "46x30px" } si tamaño == nil o string.find ( tamaño , "^%d*x?%d+px$" ) entonces --tamaño EIS válido (..px, x..px o ..x..px) o no establecido de lo contrario si string.find ( tamaño , "^%d*x?%d+$" ) entonces --tamaño EIS sin el sufijo "px" tamaño = tamaño .. "px" de lo contrario --tamaño del mapa,o valor no válido tamaño = size_map [ tamaño ] o nulo fin local borde = args [ "border" ] si iname entonces tamaño =                                                             tamaño  o  "23x15px" si yn_map [ borde ] == 0 entonces borde = "" de lo contrario borde = "|borde" fin de lo contrario iname = datos [ "alias de bandera-" .. amap [ avar ]. altvar .. "-" .. variante ] o datos [ "alias de bandera-" .. variante ] o datos [ "alias de bandera-" .. amap [ avar ]. altvar ] o datos [ "alias de bandera" ] o marcador de posición tamaño = tamaño o emp2nil ( datos . tamaño ) o "23x15px" si borde entonces si yn_map [ borde ] == 0 entonces borde = "" de lo contrario borde = "|borde" fin de lo contrario local autoborder = datos [ "borde-" .. variante ] o datos [ "borde-" .. amap [ avar ]. altvar ] o datos . borde si autoborder y autoborder ~= "border" entonces borde = "" de lo contrario borde = "|border" fin fin fin local am = "" si args [ "alt" ] o string.find ( yo , "a" ) entonces am = args [ "alt" ] o args [ "nombre" ] o país am = am .. "|" ..soy fin --Crear nombre para mostrar texto local = args [ "texto" ]                                                                           si  no es  texto  entonces si mn == "x" entonces --no es texto texto = "" si no es texto mn == "p" o mn == "f" o mn == "*" entonces --prefijo/sufijo enlace texto = flink == "" y nombre o "[[" .. flink .. fsec .. "|" .. nombre .. "]]" -- Por el principio de menor sorpresa, debería haber alguna -- indicación de que el enlace [[X de País|País]] no -- va a [[País]]. si mn == "*" y clink ~= flink entonces texto = texto : sub ( 1 , - 3 ) .. " \226\128\175 *]]" fin si no es texto mn == "l" entonces --mostrar enlace destino texto = flink == "" y nombre o "[[" .. flink .. fsec .. "|" .. ( args [ "nombre" ] o flink ) .. "]]" elseif mn == "b" then --ambos prefijo/sufijo y enlace de país normal local preflink = pref and ( flink == "" and pref .. " " o "[[" .. flink .. fsec .. "|" .. pref .. "]] " ) o "" local sufflink = suff and ( flink == "" and " " .. suff o " [[" .. flink .. fsec .. "|" .. suff .."]]" ) o "" nombre local = ( nombre ==                                                                         ""  y  ""  o  nthe ) .. ( clink == ""  y  nombre  o  "[[" .. clink .. csec .. "|" .. nombre .. "]]" ) texto = preflink .. namelink .. sufflink elseif mn == "d" then --data plantilla local título = mw . título . nuevo ( "Plantilla:Datos del país " .. país ) --check si redirige si título . esRedirect entonces texto = "<span class= \" plainlinks \" >[" .. título : URL completa ( "redirección=no" ) .. " " .. nombre .. "]</span>" de lo contrario texto = "[[" .. título . Texto completo .. "|" .. nombre .. "]]" fin elseif mn == "u" entonces --unlinked texto = nombre elseif mn == "a" entonces --abbr texto = nombre == país y ( clink == país y país o "<abbr title='" .. clink .. "'>" .. país .. "</abbr>" ) o ( "<abbr title='" .. nombre .. "'>" .. país .. "</abbr>" ) else --country enlace (predeterminado) texto = clink == "" y nombre o "[[" .. clink .. csec .. "|" .. nombre .."]]" fin si cadena.find ( yo , "p" ) entonces texto = "("                                           .. texto .. ")" fin fin si tipo ( texto ) == 'función' entonces texto = texto ( datos ) fin --Definir separador separador local = " " --espacio no divisible (n) si ms == "x" entonces --sin separador separador = "" de lo contrario si ms == "l" entonces --salto de línea separador = "<br />" fin --Añadir prefijo, si se usa prefijo local = args [ "prefijo" ] si ( prefijo o "" ) ~= "" entonces texto = prefijo .. separador .. texto fin --Crear imagen ilink local = args [ "ilink" ] si no ilink entonces si mi == "x" o ( iname == placeholder y pimage ~= placeholder ) entonces --sin imagen/imagen invisible iname = placeholder border = "" ilink = "|link=" am = "" de lo contrario mi == "i" entonces --enlace de página de imagen ilink = "" de lo contrario mi == "c" entonces --enlace de país ilink = "|link=" .. clink .. ( clink == "" y "" o csec ) de lo contrario mi == "p" o mi == "f" entonces --prefijo/sufijo enlace ilink = "|link=" .. flink ..( flink == "" y "" o fsec ) de lo contrario, si mi == "d", entonces --data plantilla                                                                                 título  local =  mw . título . nuevo ( "Plantilla:Datos del país " .. país ) --verificar si redirección si título . esRedirect entonces ilink = "|link=" .. título : URL completa ( "redirección=no" ) de lo contrario ilink = "|link=" .. título . Texto completo fin de lo contrario --sin enlace (predeterminado) ilink = "|link=" fin fin si am == "" y cadena. buscar ( yo , "l" ) entonces am = mw . ustring . sub ( ilink , 7 , - 1 ) fin imagen local = "[[Archivo:" .. iname .. "|" .. tamaño .. borde .. ilink .. "|alt=" .. am .. "]]" si iname == marcador de posición entonces si require ( 'Módulo:yesno' )( ​​args [ "noredlink" ]) == falso o args [ "noredlink" ] == "notext" entonces si país ~= '' y datos . alias == nil entonces iname = '' imagen = "[[:Plantilla:Datos de país " .. país .. "]]" si args [ "noredlink" ] == "notext" entonces texto = '' fin fin fin si ( args [ "missingcategory" ] o '' ) ~= '' entonces imagen = imagen ..args [ "categoría faltante" ] fin si cadena.find (                                                         yo , "b" )  entonces texto = '' fin fin --Combinar imagen y nombre con separador local align_map = { left = "izquierda" , l = "izquierda" , center = "centro" , centre = "centro" , c = "centro" , middle = "centro" , m = "centro" , right = "derecha" , r = "derecha" } local align = align_map [ args [ "align" ] o args [ "al" ]] local nalign = align_map [ args [ "nalign" ] o args [ "nal" ]] local out if string.find ( yo , "r" ) then --image derecha del nombre if ( ms == "x" y mi == "x" ) o ( string.find ( yo , "o" ) y iname == placeholder y pimage ~= placeholder ) then --name solamente out = text elseif ms == "x" o ms == "n" o ms == "l" entonces --sin separador, espacio indivisible o salto de línea out = text .. "<span class= \" flagicon \" >" .. separador .. imagen .. "</span>" elseif ms == "t" entonces --table cell out = "style= \" text-align:" ..( nalign o "izquierda" ) .. " \" |" .. texto .. "||estilo=                                                       \" text-align:" .. ( alinear  o  "centro" ) .. " \" |<span class= \" flagicon \" >" .. imagen .. "</span>" else --fixed-width span box (predeterminado) local width = args [ "ancho" ] o args [ "w" ] o require ( "Módulo:Flaglist" ). luawidth ( tamaño ) out = text .. " <span class= \" flagicon \" style= \" display:inline-block;width:" .. width .. "px;text-align:" .. ( alinear o "derecha" ) .. " \" >" .. imagen .. "</span>" end else --image izquierda del nombre if ( ms == "x" y mi == "x" ) o ( string.find ( me , "o" ) e iname == marcador de posición y pimage ~= marcador de posición ) entonces --nombre solamente out = texto elseif ms == "x" o ms == "n" o ms == "l" entonces --sin separador, espacio indivisible o salto de línea out = "<span class= \" flagicon \" >" .. imagen .. separador .. "</span>" .. texto elseif ms == "t" entonces --tabla celda out = "style= \" text-align:" .. ( align o "center" ) .."; \" |<span class= \" flagicon \" >" .. imagen .. "</span>||style= \" text-align:" .. ( nalign                                           o  "izquierda" ) .. " \" |" .. texto else --fixed-width span box (predeterminado) local width = nopx ( args [ "ancho" ] o args [ "w" ]) o require ( "Módulo:Flaglist" ). luawidth ( tamaño ) out = "<span class= \" flagicon \" style= \" display:inline-block;width:" .. width .. "px;text-align:" .. ( align o "izquierda" ) .. " \" >" .. imagen .. "</span> " .. texto end end if string.find ( me , "w" ) then --avoid wrap out = "<span class= \" nowrap \" >" .. out .. "</span>" end -- align in table if me : find ( "t" ) then out = 'style="text-align:' .. ( align o 'left' ) .. '"|' .. out end --Categorías de seguimiento local cat = "" if pimage and not image_map [ pimage ] and country ~= "" and data [ "alias de bandera" ] and not args . demo then cat = "[[Categoría:Páginas que usan Flagg con la imagen especificada en lugar de la imagen de la plantilla de datos]]" end return out .. cat end p [ '' ] = p . main return p