Module:Armenian
From Wikipedia, the free encyclopedia
Page Module:Documentation/styles.css has no content.
File:Test Template Info-Icon - Version (2).svg Module documentation[view] [edit] [history] [purge]
- REDIRECT Template:Template rating
Template:Redirect category shell This module converts Arabic numerals into Armenian numerals. It currently works for any whole number between 1 and 29999.
Usage
To use it, enter {{#invoke:Armenian|main|YOURNUMBER}}, replacing "YOURNUMBER" with a number.
| Arabic Numerals | Template Call | Armenian Numerals |
|---|---|---|
| 1 | {{#invoke:Armenian|main|1}} | Ա |
| 2 | {{#invoke:Armenian|main|2}} | Բ |
| 49 | {{#invoke:Armenian|main|49}} | ԽԹ |
| 50 | {{#invoke:Armenian|main|50}} | Ծ |
| 51 | {{#invoke:Armenian|main|51}} | ԾԱ |
| 1024 | {{#invoke:Armenian|main|1024}} | ՌԻԴ |
| 4999 | {{#invoke:Armenian|main|4999}} | ՏՋՂԹ |
| 5000 | {{#invoke:Armenian|main|5000}} | Ր |
| 5001 | {{#invoke:Armenian|main|5001}} | ՐԱ |
If given a value larger than 29999, the output is blank and returns no value.
-- This module implements {{Armenian}}. It converts numbers to old Armenian
-- numerals, for numbers from 1-29999.
local p = {}
function p.main( frame )
-- If we are being called from #invoke, then the number is the first positional
-- argument. If not, it is the frame parameter.
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