Módulo protegido permanentemente
De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda
Documentación del módulo [ ver ] [ editar ] [ historial ] [ purgar ]

Este módulo convierte un valor de una unidad de medida a otra. Por ejemplo:

  • {{convert|123|lb|kg}} → 123 libras (56 kg)

El módulo se llama mediante una plantilla: este módulo utiliza los parámetros que se pasan a la plantilla para controlar cómo se realiza una conversión. Por ejemplo, las unidades pueden abreviarse (como kg) o mostrarse como nombres (como kilogram), y el valor de salida se puede redondear a una precisión especificada. Para obtener información de uso, consulte Ayuda: Convertir .

Plantillas y módulos

Las plantillas que invocan este módulo son:

Se requieren los siguientes módulos:

Los siguientes módulos son opcionales y se utilizan solo si es necesario y si el módulo existe:

Para la compatibilidad con Wikidata, se requieren los siguientes módulos:

Están disponibles las siguientes páginas de ayuda:

Una página que contiene un error de conversión se agrega a la siguiente categoría oculta, siempre que la página esté en un espacio de nombres específico (artículos, por defecto):

Las unidades se definen en el wikitexto de la lista maestra de unidades.

Módulo: Convertir / los datos se transfieren a cada página utilizando el módulo de conversión, por lo que experimentar con una nueva unidad en ese módulo implicaría una sobrecarga significativa. El módulo: Convert / extra module es una alternativa que solo se incluye en las páginas con una unidad que no está definida en el módulo de datos principal.

Charla del módulo: Convertir / mostrar enumera todos los enlaces de unidades para que se puedan verificar.

Salvadera

Al realizar un cambio, copie los módulos actuales en las páginas de la zona de pruebas y luego edite las copias de la zona de pruebas:

  • Módulo: ConvertirMódulo: Convertir / sandboxdiferente ( diff )
  • Módulo: Convertir / datos • Módulo: Convertir / datos / sandbox • diferente ( diff )
  • Módulo: Convertir / texto • Módulo: Convertir / texto / sandbox • diferente ( diff )
  • Módulo: Convertir / extra • Módulo: Convertir / extra / sandbox • diferente ( diff )
  • Módulo: Convert / wikidata • Módulo: Convert / wikidata / sandbox • diferente ( diff )
  • Módulo: Convertir / wikidata / data • Módulo: Convertir / wikidata / data / sandbox • mismo contenido

Utilice la siguiente plantilla para probar los resultados (ejemplo {{convert/sandbox|123|lb|kg}}):

  • Plantilla: Convertir / caja de arena

Plantilla: Convert / sandbox invoca Module: Convert / sandbox con un parámetro |sandbox=sandboxque hace que convert utilice los módulos de la caja de arena en lugar de los módulos normales.

Se debe utilizar lo siguiente para probar los resultados de la edición de los módulos de conversión.

  • Plantilla: Convertir / casos de prueba # casos de prueba de Sandbox - enlaces a casos de prueba
  • Módulo: Convert / tester : módulo para ejecutar pruebas comparando la salida de la plantilla con texto fijo

No es necesario guardar una página de casos de prueba antes de ver los resultados de la prueba. Por ejemplo, Template: Convert / testcases / sandbox4 podría editarse para cambiar las pruebas. Mientras sigue editando esa página, pegue " Template talk:Convert/testcases/sandbox4" (sin comillas) en el cuadro de título de la página en "Vista previa de la página con esta plantilla", luego haga clic en "Mostrar vista previa".

Configuración

La plantilla que invoca este módulo puede definir opciones para configurar el módulo. Por ejemplo:

  • {{#invoke:convert|convert|numdot=,|numsep=.}}
Establece la marca decimal como una coma y el separador de miles como un punto.

Otras opciones, con valores predeterminados, son:

  • |maxsigfig=14 - número máximo de cifras significativas
  • |nscat=0- espacios de nombres (separados por comas) en los que un error o advertencia agrega una categoría a la página
  • |warnings=0- 0 (cero) desactiva las advertencias; 1 muestra advertencias importantes; 2 muestra todas las advertencias

Una opción en la plantilla puede especificar que se utilicen las versiones sandbox de los módulos. Si se especifica, el texto en el lado derecho del signo igual debe ser el nombre de la subpágina de cada módulo de espacio aislado.

  • |sandbox=sandbox - omitir para funcionamiento normal

Todo el texto utilizado para los parámetros de entrada y para los mensajes de salida y las categorías se puede personalizar. Por ejemplo, en enwiki |lk=onse puede utilizar la opción para vincular cada unidad mostrada a su artículo. El " lk" y " on" se pueden reemplazar con cualquier texto deseado. Además, los números de entrada y salida pueden formatearse y pueden usar dígitos en el idioma local. Consulte la guía de traducción para obtener más información.

Hacer

¡Documente los módulos para acceder a Wikidata!

Historial de versiones del módulo

  • Versión 1 de diciembre de 2013
  • Versión 2 de enero de 2014
  • Versión 3 de abril de 2014
  • Versión 4 de julio de 2014
  • Versión 5 de septiembre de 2014
  • Versión 6 de noviembre de 2014
  • Versión 7 de diciembre de 2014
  • Versión 8 de febrero de 2015
  • Versión 9 de febrero de 2015
  • Versión 10 de mayo de 2015
  • Versión 11 de junio de 2015
  • Versión 12 de agosto de 2015
  • Versión 13 de marzo de 2016
  • Versión 14 de junio de 2016 (manejo introducido de Wikidata)
  • Versión 15 de septiembre de 2016
  • Versión 16 de enero de 2017
  • Versión 17 de mayo de 2017
  • Versión 18 de julio de 2017
  • Versión 19 de agosto de 2017
  • Versión 20 de diciembre de 2017 (símbolos modificados para dot y micro)
  • Versión 21 de enero de 2018 (elimine muchas opciones obsoletas)
  • Versión 22 de febrero de 2018 (muchos cambios en el enlace de la unidad)
  • Versión 23 de junio de 2018 (advertencias por parámetros numerados ignorados; adj = pre / disp = cambios previos a la unidad; unidades monetarias eliminadas)
  • Versión 24 de mayo de 2019 (la clave de clasificación oculta utiliza el valor de clasificación de datos; evite usar el módulo de datos adicional)

- Convertir un valor de una unidad de medida a otra.- Ejemplo: {{convertir | 123 | lb | kg}} -> 123 libras (56 kg)- Consulte [[: en: Plantilla: Guía de conversión / Transwiki]] si está copiando a otra wiki.local MENOS = '-' - Unicode U + 2212 SIGNO MENOS (UTF-8: e2 88 92)abs local = math.abspiso local = math.floorformato local = cadena.formatolocal log10 = math.log10ustring local = mw.ustringulen local = ustring.lenusub local = ustring.sub- Opciones de configuración para mantener los valores mágicos en un solo lugar.- Los datos de conversión y el texto del mensaje se definen en módulos separados.configuración local, maxsigfignumdot local - debe ser '.' o ',' o un carácter que funciona en una expresión regularlocal numsep, numsep_remove, numsep_remove2código_de_datos local, todas_unidadescódigo_texto localvarname local: puede ser un código para usar nombres de variables que dependen del valorlocal from_en_table - para traducir una cadena de salida de dígitos en al idioma locallocal to_en_table - para traducir una cadena de entrada de dígitos en el idioma local a en- Use translation_table en convert / text para cambiar lo siguiente.local en_default - true usa lang = en a menos que la conversión tenga lang = dígitos locales o localesmétodo_grupo local = 3 - código de cuántos dígitos hay en un grupolocal per_word = 'per' - para unidades como "litros por kilómetro"local plural_suffix = 's' - solo otro valor útil es probablemente '' para deshabilitar los nombres de unidades pluraleslocal omitsep - verdadero para omitir el separador antes del símbolo / nombre local- Todas las unidades deben estar definidas en el módulo de datos. Sin embargo, para atender cambios rápidos- y experimentos, cualquier unidad desconocida se busca en un módulo de datos adicional, si existe.- Ese módulo se transcluiría en solo una pequeña cantidad de páginas, por lo que debería haber- poca sobrecarga del servidor por realizar cambios, y los cambios deberían propagarse rápidamente.local extra_module - nombre del módulo con unidades adicionaleslocal extra_units - nulo o tabla de unidades extra de extra_module- Algunas opciones de la plantilla de invocación pueden establecer variables que se utilizarán más adelante en el módulo.texto_moneda local - para un símbolo de moneda definido por el usuario: {{convertir | 12 | $ / ha | $ = €}} (el euro reemplaza al dólar)función local from_en (texto)- La entrada es una cadena que representa un número en dígitos con '.' marca decimal,- sin agrupación de dígitos (que se realiza justo después de llamar a esto).- Devuelve la traducción de la cadena con numdot y dígitos en el idioma local.si numdot ~ = '.' entoncestexto = texto: gsub ('%.', numdot)finsi from_en_table entoncestexto = texto: gsub ('% d', from_en_table)findevolver textofinfunción local to_en (texto)- La entrada es una cadena que representa un número en el idioma local con- una marca decimal numdot opcional y agrupación de dígitos numsep.- Devuelve la traducción de la cadena con '.' marca y en dígitos,- y sin separadores (deben eliminarse aquí para manejar casos como- numsep = '.' y numdot = ',' con la entrada "1.234.567,8").si to_en_table entoncestext = ustring.gsub (texto, '% d', to_en_table)finsi numsep_remove entoncestexto = texto: gsub (numsep_remove, '')finsi numsep_remove2 entoncestexto = texto: gsub (numsep_remove2, '')finsi numdot ~ = '.' entoncestexto = texto: gsub (numdot, '.')findevolver textofinfunción local decimal_mark (texto)- Devuelve ',' si el texto probablemente usa una coma como marca decimal o no tiene una marca decimal.-- Regreso '.' si el texto probablemente usa un punto como marca decimal.- De lo contrario, no devuelva nada (marca decimal desconocida).si no es texto: busque ('[.,]') luego regrese ',' finaltexto = texto: gsub ('^% -', ''): gsub ('% +% d + /% d + $', ''): gsub ('[Ee]% -?% d + $', '')decimal local =texto: coincidencia ('^ 0? ([.,])% d + $') otexto: coincidencia ('% d ([.,])% d?% d? $') otexto: coincidencia ('% d ([.,])% d% d% d% d + $')si es decimal, devuelve el final decimalif text: match ('%.% d +%.') entonces return ',' endif text: match ('%,% d +,') entonces devuelve '.' finfinadd_warning local, with_separator - declaraciones de reenvíofunción local to_en_with_check (texto, parms)- Versión de to_en () para un wiki usando numdot = ',' y numsep = '.' verificar- texto (un número de entrada como una cadena) que podría haber sido copiado de enwiki.- Por ejemplo, en '1.234' el '.' podría ser una marca decimal o un separador de grupo.- De viwiki.si to_en_table entoncestext = ustring.gsub (texto, '% d', to_en_table)finif marca_decimales (texto) == '.' entoncesoriginal local = textotext = text: gsub (',', '') - por ejemplo, interprete "1,234.5" como un valor enwikisi parms entoncesadd_warning (parms, 0, 'cvt_enwiki_num', original, with_separator ({}, text))findemássi numsep_remove entoncestexto = texto: gsub (numsep_remove, '')finsi numsep_remove2 entoncestexto = texto: gsub (numsep_remove2, '')finsi numdot ~ = '.' entoncestexto = texto: gsub (numdot, '.')finfindevolver textofinfunción local omit_separator (id)- Devuelve verdadero si no debe haber un separador antes de id (un símbolo de unidad o nombre).- Para zhwiki, no debería haber un separador si id usa caracteres locales.- El siguiente error debería ser una prueba suficiente.si se omite, entoncesif id: sub (1, 2) == '- {' entonces - para "- {...} -" variante de idioma del contenidovolver verdaderofinsi id: byte ()> 127 entonceslocal primero = usub (id, 1, 1)si primero ~ = 'Å' y primero ~ = '°' y primero ~ = 'µ' entoncesvolver verdaderofinfinfinreturn id: sub (1, 1) == '/' - sin separador antes de unidades como "/ ha"finlocal spell_module - nombre del módulo que puede deletrear númeroscorrector ortográfico local: función desde ese módulo para manejar la ortografía (establecer si es necesario)wikidata_module local, wikidata_data_module - nombres de los módulos de Wikidatawikidata_code local, wikidata_data: tablas exportadas de esos módulos (establecer si es necesario)función local set_config (args)- Establecer opciones de configuración desde la plantilla #invoke o por defecto.config = argumentosmaxsigfig = config.maxsigfig o 14 - número máximo de cifras significativasmódulo_de_datos local, módulo_de_textocaja de arena local = config.sandbox y ('/' .. config.sandbox) o ''data_module = "Módulo: Convertir / datos" .. sandboxtext_module = "Módulo: Convertir / texto" .. sandboxextra_module = "Módulo: Convertir / extra" .. sandboxwikidata_module = "Módulo: Convertir / wikidata" .. sandboxwikidata_data_module = "Módulo: Convertir / wikidata / data" .. sandboxspell_module = "Módulo: ConvertNumeric"código_datos = mw.loadData (módulo_datos)código_texto = mw.loadData (módulo_texto)all_units = código_datos.todas_unidadestraducción local = text_code.translation_tablesi la traducción entoncesnumdot = traducción.numdotnumsep = traducción.numsepif numdot == ',' y numsep == '.' entoncessi text_code.all_messages.cvt_enwiki_num entoncesto_en = to_en_with_checkfinfinsi translation.group entoncesmétodo_grupo = traducción.grupofinsi traducción.por_palabra, entoncesper_word = traducción.per_wordfinsi translation.plural_suffix entoncessufijo_plural = traducción.sufijo_pluralfinvarname = traducción.varnamefrom_en_table = traducción.from_enuse_workaround local = verdaderosi use_workaround entonces- 2013-07-05 error de solución al hacer una copia de la tabla requerida.- mw.ustring.gsub falla con una tabla (to_en_table) como reemplazo,- si se accede a la tabla a través de mw.loadData.fuente local = translation.to_ensi la fuente entoncesto_en_table = {}para k, v en pares (fuente) hacerto_en_table [k] = vfinfindemásto_en_table = traducción.to_enfinif translation.lang == 'en default' entoncesen_default = true - para hiwikifinomitsep = translation.omitsep - para zhwikifinnumdot = config.numdot o numdot o '.' - marca decimal antes de dígitos fraccionariosnumsep = config.numsep o numsep o ',' - separador de grupo para números- numsep debe ser ',' o '.' o '' o '& nbsp;' o un carácter Unicode.- numsep_remove debe funcionar en una expresión regular para identificar los separadores que se eliminarán.si numsep ~ = '' entoncesnumsep_remove = (numsep == '.') y '%.' o numsepfinsi numsep ~ = ',' y numdot ~ = ',' entoncesnumsep_remove2 = ',' - entonces los números copiados de enwiki funcionaránfinfincolección de funciones locales ()- Devuelve una mesa para guardar objetos.regreso {n = 0,add = function (self, item)self.n = self.n + 1self [self.n] = elementofin,}finfunción local dividir (numerador, denominador)- Devuelve el cociente de números enteros, el resto resultante de dividir los dos- números dados, que deben ser enteros sin signo.cociente local, resto = piso (numerador / denominador), numerador% denominadorsi no (0 <= resto y resto <denominador) entonces- Los límites de coma flotante pueden necesitar esto, como en {{convert | 160.02 | Ym | ydftin}}.resto = 0fincociente de retorno, restofindivisión de función local (texto, delimitador)- Devuelve una tabla numerada con campos a partir de la división de texto.- El delimitador se usa en una expresión regular sin escapar (por ejemplo, '.' Fallaría).- Cada campo tiene cualquier espacio en blanco inicial / final eliminado.local t = {}texto = texto .. delimitador - para obtener el último elementopara el elemento en el texto: gmatch ('% s * (.-)% s *' .. delimitador) dotable.insert (t, artículo)finvolver tfintira de función local (texto)- Si el texto es una cadena, devuelve su contenido sin principio / final- espacio en blanco. De lo contrario, devuelve nil (un argumento nil da un resultado nulo).si tipo (texto) == 'cadena' entoncesdevolver texto: match ("^% s * (.-)% s * $")finfinfunción local table_len (t)