انتقل إلى المحتوى

وحدة:Wikidata.Ca/Units

من ويكيبيديا، الموسوعة الحرة
local convert_default = {
	Q218593 = "Q174789", -- in > mm
	Q3710 = "Q174728", -- ft > cm
	Q482798 = "Q11573", -- yd > m
	Q253276 = "Q828224", -- mi > km
	Q232291 = "Q712226", -- mi² > km²
	Q128822 = "Q180154", -- nus > km/h
	Q48013 = "Q41803", -- ounce > gram 
}

local wikidata_units = {
	Q11573 = {
		label = 'متر',
		ucode = 'م',
		},
	Q174789 = {
		label = 'ميليمتر',
		ucode = 'مم',
		},
	Q174728 = {
		label = 'سنتيمتر',
		ucode = 'سم',
		},
	Q828224 = {
		label = 'كيلومتر',
		ucode = 'كم',
		},
	Q712226 = {
		label = 'كيلومتر مربع',
		ucode = 'كم²',
		},
	Q25343 = {
		label = 'متر مربع',
		ucode = 'م²',
		},
	}

local function getUnit(amount, label, unitID, code)
	local id_data = wikidata_units[unitID] or {}
	local unit_text = ''
    amount= tonumber(amount)
	if code then
		unit_text = id_data.ucode or id_data.label or label
	else
		unit_text = id_data.label or label
	end
	return unit_text
end

function convert2M(value)
    local xmath_round = require("Module:Math").round
    
    value = tonumber(value)
    if value == 0 then
        return value
    end

    if (math.abs(value) > 1E15) then
        return xmath_round({precision = 3, value = value / 1E15}) , " [[كوادريليون|بليار]]"
    elseif (math.abs(value) > 1E12) then
        return xmath_round({precision = 3, value = value / 1E12}) , " [[تريليون]]"
    elseif (math.abs(value) > 1E9) then
        return xmath_round({precision = 3, value = value / 1E9}) , " [[بليون]]"
    elseif (math.abs(value) > 1E6) then
        return xmath_round({precision = 3, value = value / 1E6}) , " [[مليون]]"
    elseif (math.abs(value) > 1E3) then
        return xmath_round({precision = 3, value = value / 1E3}) , " ألف"
    end

    return xmath_round({precision = 3, value = value}),""
end

return {
	getUnit = getUnit,
	convert_default = convert_default,
	convert2M = convert2M
}