Módulo:Armênio

Fonte: Enciclopédia de conhecimento da Igreja de Deus
Revisão em 00h18min de 14 de maio de 2024 por Jaewoo (discussão | contribs) (Criou a página com "-- Este módulo implementa {{Armênio}}. Ele converte números para os númerais -- antigos Armênio, para números de 1-29999. local p = {} function p.main( frame ) -- Se estamos a ser chamados de #invoke, então o número é o primeiro -- argumento positional. Se não, ele não é o parâmetro do frame. local num if frame == mw.getCurrentFrame() then num = frame:getParent().args[ 1 ] local frameArgsNum = frame.args[ 1 ] if fram...")
(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)
Saltar para a navegação Saltar para a pesquisa

A documentação para este módulo pode ser criada na página Módulo:Armênio/doc

-- Este módulo implementa {{Armênio}}. Ele converte números para os númerais
-- antigos Armênio, para números de 1-29999.
local p = {}
function p.main( frame )
				-- Se estamos a ser chamados de #invoke, então o número é o primeiro
				-- argumento positional. Se não, ele não é o parâmetro do frame.
				local num
				if frame == mw.getCurrentFrame() then
								num = frame:getParent().args[ 1 ]
								local frameArgsNum = frame.args[ 1 ]
								if frameArgsNum then
												num = frameArgsNum
								end
				else
								num = frame
				end
				-- Convert the input to an integer if possible.
				if type( num ) ~= 'number' then
								num = tonumber( num )
				end
				if not num then return end
				num = math.floor( num )
				-- Exit if the number is not expressible in Armenian numerals.
				-- FIXME: Check if Armenian numerals can really be made 10,000x bigger through
				-- overlining them as it says in our article. (That claim is unsourced.) If they
				-- can, there is code at [[Module:Roman]] that can be stolen from to make it work.
				if num < 1 or num > 29999 then return end
				
				local numerals = {
								{ 20000, "Ֆ" }, { 10000, "Օ" },
								{ 9000, "Ք" },  { 8000, "Փ" },  { 7000, "Ւ" },  { 6000, "Ց" },  { 5000, "Ր" },  { 4000, "Տ" },  { 3000, "Վ" },  { 2000, "Ս" },  { 1000, "Ռ" },
								{ 900, "Ջ" },   { 800, "Պ" },   { 700, "Չ" },   { 600, "Ո" },   { 500, "Շ" },   { 400, "Ն" },   { 300, "Յ" },   { 200, "Մ" },   { 100, "Ճ" },
								{ 90, "Ղ" },    { 80, "Ձ" },    { 70, "Հ" },    { 60, "Կ" },    { 50, "Ծ" },    { 40, "Խ" },    { 30, "Լ" },    { 20, "Ի" },    { 10, "Ժ" },
								{ 9, "Թ" },     { 8, "Ը" },     { 7, "Է" },     { 6, "Զ" },     { 5, "Ե" },     { 4, "Դ" },     { 3, "Գ" },     { 2, "Բ" },     { 1, "Ա" }
				}
				
				local ret = {}
				for _, v in ipairs( numerals ) do
								local val, letter = unpack( v )
								while num >= val do
												num = num - val
												table.insert( ret, letter )
								end
				end
				return table.concat( ret )
end
return p