stringtranslate.com

Módulo: TNT

-- -- INTRODUCCIÓN: (!!! NO CAMBIE EL NOMBRE DE ESTA PÁGINA !!!) -- Este módulo permite copiar y pegar cualquier plantilla o módulo entre wikis sin realizar cambios en la traducción. Todo el texto traducido se almacena en las páginas globales Data:*.tab de Commons y se usa en todas partes. -- -- VEA: https://www.mediawiki.org/wiki/Module:TNT/Multilingual_Templates_and_Modules -- -- ATENCIÓN: -- NO cambie el nombre de este módulo: debe ser idéntico en todos los wikis. -- Este código se mantiene en https://www.mediawiki.org/wiki/Module:TNT/Module:TNT -- No lo modifique en ningún otro lugar, ya que puede copiarse y anular sus cambios. -- Se pueden hacer sugerencias en https://www.mediawiki.org/wiki/Module:TNT/Module_talk:TNT -- -- DESCRIPCIÓN: -- La función "msg" usa un conjunto de datos de Commons para traducir un mensaje con una clave dada (por ejemplo, tabla-fuente), más argumentos opcionales al marcado wiki en el idioma del contenido actual. -- Use lang=xx para configurar el idioma. Ejemplo: -- -- {{#invoke:TNT | msg -- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Module:TNT/Data:I18n/Template:Graphs.tab --> -- | source-table <!-- usa un mensaje de traducción con id = "source-table" --> -- | param1 }} <!-- parámetro opcional --> -- -- -- La función "doc" generará la documentación del parámetro <templatedata> para las plantillas. -- De esta manera, todos los parámetros de plantilla se pueden almacenar y localizar en un único conjunto de datos de Commons. -- NOTA: "doc" supone que toda la documentación se encuentra en Data:Templatedata/* en Commons. -- -- {{#invoke:TNT | doc | Graph:Lines }} -- usa https://commons.wikimedia.org/wiki/Module:TNT/Data:Templadata/Graph:Lines.tab -- si la página actual es Template:Graph:Lines/doc -- local p = {} local i18nDataset = 'I18n/Module:TNT.tab' -- Declaración adelantada de las funciones locales local sanitizeDataset , loadData , link , formatMessage function p . msg ( frame ) local dataset , id local params = {} local lang = nil para k , v en pares ( frame . args ) hacer                        si  k  ==  1  entonces dataset = mw . text . trim ( v ) de lo contrario si k == 2 entonces id = mw . text . trim ( v ) de lo contrario tipo ( k ) == 'número' entonces tabla. insert ( parámetros , mw . text . trim ( v )) de lo contrario k == 'lang' y v ~= '_' entonces lang = mw . text . trim ( v ) fin fin devolver formatMessage ( dataset , id , parámetros , lang ) fin -- Idéntico a p.msg() anterior, pero usado desde otros módulos lua -- Parámetros: nombre del conjunto de datos, clave del mensaje, argumentos opcionales -- Ejemplo con 2 parámetros: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset') función p . format ( dataset , key , ...) local checkType = require ( 'libraryUtil' ). checkType checkType ( 'format' , 1 , dataset , 'string' ) checkType ( 'format' , 2 , key , 'string' ) return formatMessage ( dataset , key , {...}) end -- Idéntico a p.msg() anterior, pero usado desde otros módulos lua con el parámetro language -- Parámetros: código de idioma, nombre del dataset, clave del mensaje, argumentos opcionales -- Ejemplo con 2 parámetros: formatInLanguage ('es', I18n/Module:TNT', ' error_bad_msgkey ', 'my-key', 'my-dataset') function p.formatInLanguage ( lang , dataset , key , ...) tipo de comprobación local = require (                                                 'libraryUtil' ). checkType checkType ( 'formatInLanguage' , 1 , lang , 'string' ) checkType ( 'formatInLanguage' , 2 , dataset , 'string' ) checkType ( 'formatInLanguage' , 3 , key , 'string' ) return formatMessage ( dataset , key , {...}, lang ) fin -- Función obsoleta que agrega un prefijo 'c:' al primer parámetro. -- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab' función p . link ( frame ) retorno link ( frame . args [ 1 ]) fin de la función p . doc ( frame ) local dataset = 'Templatedata/' .. sanitizeDataset ( frame . args [ 1 ]) return frame : extensionTag ( 'templatedata' , p . getTemplateData ( dataset )) .. formatMessage ( i18nDataset , 'edit_doc' , { link ( dataset )}) fin de la función p . getTemplateData ( dataset ) -- TODO: agregar el parámetro '_' una vez que lua comience a reindexar correctamente para "todos" los idiomas datos locales = loadData ( dataset ) nombres locales = {} para _ , campo en pares ( datos . schema . fields ) hacer tabla. insert ( nombres , campo . name ) fin parámetros locales = {} paramOrder local = {} para _ ,remar en pares                                                  ( data . data )  hacer local newVal = {} nombre local = nil para pos , val en pares ( row ) hacer local columnName = names [ pos ] si columnName == 'name' entonces nombre = val de lo contrario newVal [ columnName ] = val end end si name entonces params [ name ] = newVal table.insert ( paramOrder , name ) end end -- Solución alternativa a la codificación json que trata {"1":{...}} como un [{...}] params [ 'zzz123' ] = '' local json = mw . text . jsonEncode ({ params = params , paramOrder = paramOrder , description = data . description }) json = string. gsub ( json , '"zzz123":",?' , "" ) return json end -- Funciones locales sanitizeDataset = function ( dataset ) si no dataset entonces devuelve nil end dataset = mw . texto . trim ( conjunto de datos ) si conjunto de datos == '' entonces devuelve nil de lo contrario si string.sub ( conjunto de datos , - 4 ) ~= '.tab' entonces devuelve conjunto de datos .. '.tab' de lo contrario devuelve conjunto de datos fin fin loadData = function ( conjunto de datos , idioma ) conjunto de datos = sanitizeDataset ( conjunto de datos ) si                                                             no  dataset  entonces error ( formatMessage ( i18nDataset , 'error_no_dataset' , {})) fin - Proporciona un error útil a terceros que intenten copiar este módulo. si no es mw . ext o no mw . ext . data o no mw . ext . data . get entonces error ( 'Falta la extensión JsonConfig; No se puede cargar https://commons.wikimedia.org/wiki/Module:TNT/Data:' .. dataset ) fin local data = mw . ext . data . get ( dataset , lang ) if data == false then if dataset == i18nDataset then -- Prevenir llamadas cíclicas error ( 'Falta el conjunto de datos de Commons ' .. i18nDataset ) else error ( formatMessage ( i18nDataset , 'error_bad_dataset' , { link ( dataset )})) end end return data end -- Dado un nombre de conjunto de datos, conviértalo en un título con el prefijo 'commons:data:' link = function ( dataset ) return 'c:Data:' .. mw . text . trim ( dataset o '' ) end formatMessage = function ( dataset , key , params , lang ) for _ , row in pairs ( loadData ( dataset , lang ). data ) do local id , msg = unpack ( row ) if id == key then local result = mw . message . newRawMessage                                                           ( msg ,  descomprimir ( params  o  {})) devolver resultado : plain () fin fin si dataset == i18nDataset entonces -- Evitar llamadas cíclicas error ( 'Clave de mensaje no válida "' .. key .. '"' ) de lo contrario error ( formatMessage ( i18nDataset , 'error_bad_msgkey' , { key , link ( dataset )})) fin fin devolver p