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

local math_mod = require "Module:Math" local formatnum = require "Module:Format".do_formatnum local params = require "Module:Conversion/Données" local defaultlang = 'fr'  local p = {}  local i18n = { 	invalidunit = 'Page avec une unité de mesure non supportée' }  local function numString(val, rounding, displayformat) -- transforme un nombre en chaîne 	if rounding then 		val = math_mod._round( val, rounding ) 	end 	val = formatnum({tostring(val)}) 	if displayformat and displayformat.suffix then 		val = val .. suffix 	end 	return val end  local function convert(value, sourceunitdata, targetunitdata) -- convertir une valeur numérique en son équivalent dans une autre unité de mesure 	if not value then 		return nil 	end 	if type(value) ~= 'number' then 		return error("bad datatype: " .. type(value)) 	end 	if (not sourceunitdata) or (not targetunitdata) then 		return value 	end 	return value * sourceunitdata[2] / targetunitdata[2] end  function p.displayvalue(val, sourceunit, displayformat, errhandling) -- affiche une valeur formatée) 	 	-- préparation des paramètres 	local numval = tonumber(val) 	if not numval then -- si les données sont inhabituelles, on laisse la fonction appelante se débrouiller 		return val 	end 	 	if not displayformat or type(displayformat) ~= 'table' then 		displayformat = {} 	end 	local showunit, showlink, rounding, targetunit = displayformat.showunit, displayformat.showlink, displayformat.rounding, displayformat.targetunit 	 	-- récupération des donnnées concernant les unités 	if sourceunit and not targetunit then 		targetunit = sourceunit 	end 	local sourceunitdata, targetunitdata = sourceunit, targetunit 	if type(sourceunitdata) ~= 'table' then 		sourceunitdata = params.units[sourceunit] or params.units[params.redirects[sourceunit]] 	end 	if type(targetunitdata) ~= 'table' then	 		targetunitdata = params.units[targetunit] or params.units[params.redirects[targetunit]] 	end 	 	if sourceunitdata and targetunitdata and (targetunitdata[1] ~= sourceunitdata[1]) then 		return error("measurement unit mismatch: " .. sourceunitdata[1] .. ' and ' .. targetunitdata[1] ) 	end 	 	-- partie numérique 	local failure = false 	if (sourceunit and targetunit) and (sourceunit ~= targetunit) then 		numval = convert(numval, sourceunitdata, targetunitdata) 		if (not targetunitdata) or (not targetunitdata[1]) or (not sourceunitdata) or (not sourceunitdata[1]) then 			failure = true 		end 	end 	local maintenancestr = "" 	if failure then 		maintenancestr = maintenancestr ..  '[[Category:' .. i18n.invalidunit .. ']]' 	end  	if displayformat.raw == true then -- nombre non formaté chaîne convertible en nombre sauf si catégorie de maintenance 		return (tostring(numval) or "") .. maintenancestr 	end  	local numstr = numString(numval, rounding)  	-- affichage de l'unité 	local unitstr, link 	if not targetunitdata then -- pour éviter les bugs 		targetunitdata = {} 	end 	if showunit == 'long' then -- format long = montrer l'unité en entier 		if (numval or 0) > 1 then 			unitstr = targetunitdata[7] 		else 			unitstr = targetunitdata[6] 		end 	elseif showunit then 		unitstr = targetunitdata[3] 	end  	-- showlink 	if type( displayformat.showlink == 'string') then --liens personnalisés 		link = displayformat.showlink 	elseif displayformat.showlink == true then -- liens vers l'article dédié 		link =  targetunitdata[5] 	end 	if unitstr and link then 		unitstr = '[[' .. link .. '|' .. unitstr .. ']]' 	end  	return numstr .. ' ' .. (unitstr or '') .. maintenancestr end  function p.display(frame) 	local args = frame.args 	local value, origunit, targetunit = args[1], args[2], args[3] 	local rounding = args.rounding 	local showlink, showunit = 	args.showlink, args.showunit 	if showunit == 'true' then 		showunit = true 	end 	if showlink == 'true' then 		showlink = true 	end 	displayformat = {showunit = showunit, showlink = showlink, rounding = rounding, targetunit = targetunit} 	return p.displayvalue(value, origunit, displayformat) end return p