Différences entre les versions de « Module:Currency »

De Semantic MediaWiki - Sandbox

(Page créée avec « -- Пересчёт валют, задание единиц измерения для валют: -- Numerals: local data = { -- Экспортируемые имена... »)
 
(anglicisation)
Ligne 1 : Ligne 1 :
-- Пересчёт валют, задание единиц измерения для валют:
+
-- Currency exchange rates, thousands, millions etc:
  
 
-- Numerals:
 
-- Numerals:
 
local data = {
 
local data = {
  
-- Экспортируемые имена функций:
+
-- Exported function names:
API = {'объявить', 'Объявить', 'declare', 'Declare'},
+
API = {'declare', 'Declare'},
  
-- Ошибки:
+
-- Errors:
     noNumber    = "Передайте аргумент",
+
     noNumber    = "Pass an argument",
  
     -- Аргументы:
+
     -- Arguments:
     argNumber = 1,          -- число
+
     argNumber = 1,          -- number
 
      
 
      
     -- Кратные:
+
     -- 000:
 
mils = {
 
mils = {
 
[1] = {''},
 
[1] = {''},
[1000] = {'тыс', 'тыс.', 'тысяч', 'тысячи', 'тысяча'},
+
[1000] = {'thousand', 'tousands', 'K'},
[1000000] = {'млн', 'млн.', 'миллионов', 'миллиона', 'миллион'},
+
[1000000] = {'mln', 'million', 'millions', 'M'},
[1000000000] = {'млрд', 'млрд.', 'миллиардов', 'миллиарда', 'миллиард'}
+
[1000000000] = {'bln', 'billion', 'billions', 'G'}
 
}, -- mils = {...}
 
}, -- mils = {...}
  
prop = 'Относится к'
+
prop = 'Corresponds to'
 
} -- local data = {...}
 
} -- local data = {...}
  
Ligne 31 : Ligne 31 :
 
end
 
end
  
--[[
+
-- Declare a currency:
НАЗНАЧЕНИЕ: Эта функция объявляет валюту.
 
 
ПАРАМЕТРЫ: names -- массив символов и названий валюты,
 
rate -- курс валюты к рублю.
 
 
 
ВЫВОД: нет.
 
 
ВОЗВРАТ: 0, сообщение об ошибке - Ошибка из-за неверного аргумента
 
            строка                - Объявление единиц измерения для валюты
 
 
ПРИМЕЧАНИЕ:  Все проверки аргумента уже проведены.
 
--]]
 
 
local function implementCurrency (names, rate)
 
local function implementCurrency (names, rate)
 
local declarations = {}
 
local declarations = {}

Version du 2 mai 2016 à 08:43

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

-- Currency exchange rates, thousands, millions etc:

-- Numerals:
local data = {

	-- Exported function names:
	API = {'declare', 'Declare'},

	-- Errors:
    noNumber    = "Pass an argument",

    -- Arguments:
    argNumber = 1,           -- number
    
    -- 000:
	mils = {
		[1]				= {''},
		[1000]			= {'thousand', 'tousands', 'K'},
		[1000000]		= {'mln', 'million', 'millions', 'M'},
		[1000000000]	= {'bln', 'billion', 'billions', 'G'}
	},	-- 	mils = {...}

	prop = 'Corresponds to'
}	-- local data = {...}

local function formatNumeralError (message, ...)
    if select('#', ... ) > 0 then
        message = string.format(message, ...)
    end
    return "<span class=\"error\">" .. message .. "</span>"
end

-- Declare a currency:
local function implementCurrency (names, rate)
	local declarations = {}
	for ratio, numerals in pairs (data.mils) do
		local units = {}
		for _, numeral in ipairs (numerals) do
			for __, name in ipairs (names) do
				units [#units + 1] = numeral .. ' ' .. name
			end
		end
		declarations [#declarations + 1] =  '*** [[' .. data.prop .. '::' .. tostring (1 / rate / ratio) .. ' ' .. table.concat (units, ', ') .. '|' .. units [1] .. ']]'
	end
	return declarations
end		-- local function implementCurrency (names, rate)
 
-- Загрузка аргументов и вызов реализации:
local function declareCurrency (args)
	local ok
	local rate = 1
	local names = {}
    
	-- Загрузка и проверка аргументов:
	for _, arg in ipairs (args) do
		if tonumber (arg) ~= nil then
			-- Exchange rate:
			rate = tonumber (arg)
		else
			-- Currency symbol or name:
			names [#names + 1] = arg
		end
	end

	return table.concat (implementCurrency (names, rate), '\n')
	
end		-- local function declareCurrency (args)

-- Export function:
local m = {}

for _, alias in pairs (data.API) do
	m [alias] = function (frame)
		return declareCurrency (frame.args)
    end
end

return m
Les cookies nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de cookies.