Wiktionary
omwiktionary
https://om.wiktionary.org/wiki/Fuula_Dura
MediaWiki 1.47.0-wmf.12
case-sensitive
Media
Special
Talk
User
User talk
Wiktionary
Wiktionary talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
TimedText
TimedText talk
Module
Module talk
Event
Event talk
tokko
0
3142
82009
40727
2026-07-21T08:25:54Z
EyobAbebeBot
3562
/* */
82009
wikitext
text/x-wiki
{{#invoke:Numbers|main|3}}
{{k}} [[lama]], [[0]]
{{-om-}}
{{Xinj}}
Jecha durjireessa Afaan Oromooti. {{Sag|Birsaga_to.wav|to}} + {{Sag|Birsaga kko.wav|kko}}
{{t|Om-aangawuu.ogg|Afán Oromó}}
{{maq|tokko|tokko}}
# [[takka]], lakkoofsa jalqaba Afaan Oromooti.
{{mog}}
# [[tokkoffaa]]
# [[tokkicha]]
# [[takkaffaa]]
{{(|lakoofa kaardinaalii 1}}
* {{ab}}: {{t+|ab|акы}}
* {{af}}: {{t+|af|een}}
* {{ain}}: {{t+|ain|シネ}}
* {{ak}}: {{t+|ak|ishten}}
* {{sq}}: {{t+|sq|një}}
* {{de}}: {{t+|de|eins}}
* {{als}}: {{t+|als|eins}}
* {{am}}: {{t+|am|አንድ}}
* {{ASL}}: {{t+|ASL|Image:LSQ 1.jpg|25 px}}
* {{ang}}: {{t+|ang|an}}
* {{ar}}: {{t+|ar|واحد}}
* {{hy}}: {{t+|hy|մեկ}}, {{t+|hy|մի}}
* {{as}}: {{t+|as|এক}}
* {{ast}}: {{t+|ast|ún}}
* {{av}}: {{t+|av|aeva}}
* {{ay}}: {{t+|ay|maya}}
* {{az}}: {{t+|az|بیر}}
* {{bn}}: {{t+|bn|এক}}
* {{be}}: {{t+|be|адзін}}
* {{bs}}: {{t+|bs|jedan}}
* {{br}}: {{t+|br|unan}}
* {{bg}}: {{t+|bg|едно}}
* {{ceb}}: {{t+|ceb|usa}}
* {{chy}}: {{t+|chy|náʼėstse}}
* {{da}}: {{t+|da|én}}, {{t+|da|et}}
* {{ro}}: {{t+|ro|unu}}
* {{ru}}: {{t+|ru|один}}, {{t+|ru|раз}}
* {{gd}}: {{t+|gd|aon}}, {{t+|gd|aonar}}
* {{sk}}: {{t+|sk|jeden}}
* {{sl}}: {{t+|sl|ena}}
* {{eo}}: {{t+|eo|unu}}
* {{et}}: {{t+|et|üks}}
* {{fo}}: {{t+|fo|eitt}}
* {{fi}}: {{t+|fi|yksi}}
* {{fj}}: {{t+|fj|dua}}
* {{fr}}: {{t+|fr|un}}
* {{fy}}: {{t+|fy|ien}}
* {{ga}}: {{t+|ga|aon}}, {{t+|ga|amháin}}
* {{cy}}: {{t+|cy|un}}
* {{gl}}: {{t+|gl|un}}
* {{es}}: {{t+|es|uno}}
* {{ka}}: {{t+|ka|ერთი}}
* {{el}}: {{t+|el|ένας}}
* {{el-a}}: {{t+|el-a|εἷς}}
* {{gn}}: {{t+|gn|peteï}}
* {{gu}}: {{t+|gu|એકડો}}
* {{ha}}: {{t+|ha|gùdáá}}
* {{haw}}: {{t+|haw|'ekahi}}
* {{he}}: {{t+|he|חד}}, {{t+|he|חדא}}
* {{hi}}: {{t+|hi|एक}}
* {{hu}}: {{t+|hu|egy}}
* {{io}}: {{t+|io|un}}
* {{id}}: {{t+|id|satu}}
* {{ig}}: {{t+|ig|otu}}
* {{en}}: {{t+|en|one}}
* {{ia}}: {{t+|ia|un}}
* {{is}}: {{t+|is|einn}}
* {{it}}: {{t+|it|uno}}
* {{ja}}: {{t+|ja|一}}
* {{jv}}: {{t+|jv|siji}}
* {{kn}}: {{t+|kn|ಒಂದು}}
* {{ca}}: {{t+|ca|un}}
{{-}}
* {{csb}}: {{t+|csb|jeden}}
* {{kk}}: {{t+|kk|бір}}
* {{qu}}: {{t+|qu|shuc}}
* {{ko}}: {{t+|ko|하나}}, {{t+|ko|한}}
* {{kk}}: {{t+|kk|бір}}
* {{co}}: {{t+|co|unu}}
* {{ku}}: {{t+|ku|yek}}
* {{ky}}: {{t+|ky|бир}}
* {{la}}: {{t+|la|unus}}
* {{lo}}: {{t+|lo|ໜຶ່ງ}}
* {{lv}}: {{t+|lv|viens}}
* {{li}}: {{t+|li|ein}}
* {{lt}}: {{t+|lt|vienas}}, {{t+|lt|viena}}
* {{lb}}: {{t+|lb|een}}
* {{mi}}: {{t+|mi|tahi}}
* {{ml}}: {{t+|ml|ഒന്ന്}}
* {{gv}}: {{t+|gv|'nane}}
* {{mr}}: {{t+|mr|एक}}
* {{mt}}: {{t+|mt|wieħed}}
* {{mk}}: {{t+|mk|еден}}
* {{mo}}: {{t+|mo|уну}}
* {{mn}}: {{t+|mn|нэг}}
* {{nah}}: {{t+|nah|ce}}
* {{nv}}: {{t+|nv|łáa'ii}}
* {{nl}}: {{t+|nl|één}}
* {{no}}: {{t+|no|en}}
* {{oc}}: {{t+|oc|un}}
* {{oj}}: {{t+|oj|bezhig}}
* {{or}}: {{t+|or|ଏକ}}
* {{os}}: {{t+|os|иу}}
* {{fa}}: {{t+|fa|یک}}
* {{pi}}: {{t+|pi|eka}}
* {{pl}}: {{t+|pl|jeden}}
* {{pt}}: {{t+|pt|um}}
* {{pa}}: {{t+|pa|ਇੱਕ}}
* {{sa}}: {{t+|sa|एक}}
* {{sc}}: {{t+|sc|unu}}
* {{nds}}: {{t+|nds|een}}
* {{sd}}: {{t+|sd|هِڪُ}}
* {{scn}}: {{t+|scn|unu}}
* {{so}}: {{t+|so|kow}}
* {{st}}: {{t+|st|nngwe}}
* {{sw}}: {{t+|sw|moja}}
* {{sv}}: {{t+|sv|ett}}
* {{tl}}: {{t+|tl|isa}}
* {{tg}}: {{t+|tg|як}}
* {{th}}: {{t+|th|หนึ่ง}}
* {{te}}: {{t+|te|ఒకటి}}
* {{bo}}: {{t+|bo|གཅིག}}
* {{tr}}: {{t+|tr|bir}}
* {{tk}}: {{t+|tk|bir}}
* {{cs}}: {{t+|cs|jeden}}
* {{chr}}: {{t+|chr|ᏌᏊᎢ}}
* {{zh}}: {{t+|zh|壹}}
* {{ug}}: {{t+|ug|بىر}}
* {{uk}}: {{t+|uk|один}}
* {{ur}}: {{t+|ur|ایک}}
* {{uz}}: {{t+|uz|бир}}
* {{wa}}: {{t+|wa|onk}}
* {{vi}}: {{t+|vi|một}}
* {{vo}}: {{t+|vo|bal}}
* {{yi}}: {{t+|yi|איינס}}
{{)}}
m4x4g37mr2dtpcdhe7uj21if2x48xp0
82012
82009
2026-07-21T08:32:29Z
EyobAbebeBot
3562
/* */
82012
wikitext
text/x-wiki
{{k}} [[lama]], [[0]]
{{-om-}}
{{Xinj}}
Jecha durjireessa Afaan Oromooti. {{Sag|Birsaga_to.wav|to}} + {{Sag|Birsaga kko.wav|kko}}
{{t|Om-aangawuu.ogg|Afán Oromó}}
{{maq|tokko|tokko}}
# [[takka]], lakkoofsa jalqaba Afaan Oromooti.
{{mog}}
# [[tokkoffaa]]
# [[tokkicha]]
# [[takkaffaa]]
{{(|lakoofa kaardinaalii 1}}
* {{ab}}: {{t+|ab|акы}}
* {{af}}: {{t+|af|een}}
* {{ain}}: {{t+|ain|シネ}}
* {{ak}}: {{t+|ak|ishten}}
* {{sq}}: {{t+|sq|një}}
* {{de}}: {{t+|de|eins}}
* {{als}}: {{t+|als|eins}}
* {{am}}: {{t+|am|አንድ}}
* {{ASL}}: {{t+|ASL|Image:LSQ 1.jpg|25 px}}
* {{ang}}: {{t+|ang|an}}
* {{ar}}: {{t+|ar|واحد}}
* {{hy}}: {{t+|hy|մեկ}}, {{t+|hy|մի}}
* {{as}}: {{t+|as|এক}}
* {{ast}}: {{t+|ast|ún}}
* {{av}}: {{t+|av|aeva}}
* {{ay}}: {{t+|ay|maya}}
* {{az}}: {{t+|az|بیر}}
* {{bn}}: {{t+|bn|এক}}
* {{be}}: {{t+|be|адзін}}
* {{bs}}: {{t+|bs|jedan}}
* {{br}}: {{t+|br|unan}}
* {{bg}}: {{t+|bg|едно}}
* {{ceb}}: {{t+|ceb|usa}}
* {{chy}}: {{t+|chy|náʼėstse}}
* {{da}}: {{t+|da|én}}, {{t+|da|et}}
* {{ro}}: {{t+|ro|unu}}
* {{ru}}: {{t+|ru|один}}, {{t+|ru|раз}}
* {{gd}}: {{t+|gd|aon}}, {{t+|gd|aonar}}
* {{sk}}: {{t+|sk|jeden}}
* {{sl}}: {{t+|sl|ena}}
* {{eo}}: {{t+|eo|unu}}
* {{et}}: {{t+|et|üks}}
* {{fo}}: {{t+|fo|eitt}}
* {{fi}}: {{t+|fi|yksi}}
* {{fj}}: {{t+|fj|dua}}
* {{fr}}: {{t+|fr|un}}
* {{fy}}: {{t+|fy|ien}}
* {{ga}}: {{t+|ga|aon}}, {{t+|ga|amháin}}
* {{cy}}: {{t+|cy|un}}
* {{gl}}: {{t+|gl|un}}
* {{es}}: {{t+|es|uno}}
* {{ka}}: {{t+|ka|ერთი}}
* {{el}}: {{t+|el|ένας}}
* {{el-a}}: {{t+|el-a|εἷς}}
* {{gn}}: {{t+|gn|peteï}}
* {{gu}}: {{t+|gu|એકડો}}
* {{ha}}: {{t+|ha|gùdáá}}
* {{haw}}: {{t+|haw|'ekahi}}
* {{he}}: {{t+|he|חד}}, {{t+|he|חדא}}
* {{hi}}: {{t+|hi|एक}}
* {{hu}}: {{t+|hu|egy}}
* {{io}}: {{t+|io|un}}
* {{id}}: {{t+|id|satu}}
* {{ig}}: {{t+|ig|otu}}
* {{en}}: {{t+|en|one}}
* {{ia}}: {{t+|ia|un}}
* {{is}}: {{t+|is|einn}}
* {{it}}: {{t+|it|uno}}
* {{ja}}: {{t+|ja|一}}
* {{jv}}: {{t+|jv|siji}}
* {{kn}}: {{t+|kn|ಒಂದು}}
* {{ca}}: {{t+|ca|un}}
{{-}}
* {{csb}}: {{t+|csb|jeden}}
* {{kk}}: {{t+|kk|бір}}
* {{qu}}: {{t+|qu|shuc}}
* {{ko}}: {{t+|ko|하나}}, {{t+|ko|한}}
* {{kk}}: {{t+|kk|бір}}
* {{co}}: {{t+|co|unu}}
* {{ku}}: {{t+|ku|yek}}
* {{ky}}: {{t+|ky|бир}}
* {{la}}: {{t+|la|unus}}
* {{lo}}: {{t+|lo|ໜຶ່ງ}}
* {{lv}}: {{t+|lv|viens}}
* {{li}}: {{t+|li|ein}}
* {{lt}}: {{t+|lt|vienas}}, {{t+|lt|viena}}
* {{lb}}: {{t+|lb|een}}
* {{mi}}: {{t+|mi|tahi}}
* {{ml}}: {{t+|ml|ഒന്ന്}}
* {{gv}}: {{t+|gv|'nane}}
* {{mr}}: {{t+|mr|एक}}
* {{mt}}: {{t+|mt|wieħed}}
* {{mk}}: {{t+|mk|еден}}
* {{mo}}: {{t+|mo|уну}}
* {{mn}}: {{t+|mn|нэг}}
* {{nah}}: {{t+|nah|ce}}
* {{nv}}: {{t+|nv|łáa'ii}}
* {{nl}}: {{t+|nl|één}}
* {{no}}: {{t+|no|en}}
* {{oc}}: {{t+|oc|un}}
* {{oj}}: {{t+|oj|bezhig}}
* {{or}}: {{t+|or|ଏକ}}
* {{os}}: {{t+|os|иу}}
* {{fa}}: {{t+|fa|یک}}
* {{pi}}: {{t+|pi|eka}}
* {{pl}}: {{t+|pl|jeden}}
* {{pt}}: {{t+|pt|um}}
* {{pa}}: {{t+|pa|ਇੱਕ}}
* {{sa}}: {{t+|sa|एक}}
* {{sc}}: {{t+|sc|unu}}
* {{nds}}: {{t+|nds|een}}
* {{sd}}: {{t+|sd|هِڪُ}}
* {{scn}}: {{t+|scn|unu}}
* {{so}}: {{t+|so|kow}}
* {{st}}: {{t+|st|nngwe}}
* {{sw}}: {{t+|sw|moja}}
* {{sv}}: {{t+|sv|ett}}
* {{tl}}: {{t+|tl|isa}}
* {{tg}}: {{t+|tg|як}}
* {{th}}: {{t+|th|หนึ่ง}}
* {{te}}: {{t+|te|ఒకటి}}
* {{bo}}: {{t+|bo|གཅིག}}
* {{tr}}: {{t+|tr|bir}}
* {{tk}}: {{t+|tk|bir}}
* {{cs}}: {{t+|cs|jeden}}
* {{chr}}: {{t+|chr|ᏌᏊᎢ}}
* {{zh}}: {{t+|zh|壹}}
* {{ug}}: {{t+|ug|بىر}}
* {{uk}}: {{t+|uk|один}}
* {{ur}}: {{t+|ur|ایک}}
* {{uz}}: {{t+|uz|бир}}
* {{wa}}: {{t+|wa|onk}}
* {{vi}}: {{t+|vi|một}}
* {{vo}}: {{t+|vo|bal}}
* {{yi}}: {{t+|yi|איינס}}
{{)}}
kz1m78bivla05pnk1lky09bphix744b
Module:Numbers
828
62067
82007
81969
2026-07-21T08:05:51Z
EyobAbebeBot
3562
82007
Scribunto
text/plain
local p = {}
-- Array'wwan sagalee Afaan Oromoo
local ones = {"zeeroo", "tokko", "lama", "sadii", "afur", "shan", "jaha", "torba", "saddeet", "sagal"}
local oneSuffix = {"zeeroo", "tokkoo", "lamaa", "sadii", "afurii", "shanii", "jahaa", "torbaa", "saddeetii", "sagalii"}
local tensBase = {"kudhan", "digdama", "soddoma", "afurtama", "shantama", "jahaatama", "torbaatama", "saddeettama", "sagaltama"}
local tensBaseSuffix = {"kudhanii", "digdamaa", "soddomaa", "afurtamaa", "shantamaa", "jahaatamaa", "torbaatamaa", "saddeettamaa", "sagaltamaa"}
local tensWithSuffix = {"kudha", "digdamii", "soddomii", "afurtamii", "shantamii", "jahaatamii", "torbaatamii", "saddeettamii", "sagaltamii"}
-- Sadarkaalatatti gargar qooduuf
local scales = {
{val = 10^12, word = "tiriliyoona"},
{val = 10^9, word = "biiliyoona"},
{val = 10^6, word = "miiliyoona"},
{val = 10^3, word = "kuma"},
{val = 10^2, word = "dhibba"}
}
-- 1 - 99
local function under100(n, isSuffix)
if n == 0 then return "" end
if n < 10 then
return isSuffix and oneSuffix[n + 1] or ones[n + 1]
end
local t = math.floor(n / 10)
local o = n % 10
if o == 0 then
return isSuffix and tensBaseSuffix[t] or tensBase[t]
else
local oName = isSuffix and oneSuffix[o + 1] or ones[o + 1]
return tensWithSuffix[t] .. " " .. oName
end
end
-- Lakkoofsa guutuu afaan Oromootti jijjiiruu (Recursive algorithm)
local function toOromo(n, isSuffix)
if n == 0 then return "zeeroo" end
if n < 100 then return under100(n, isSuffix) end
for _, scale in ipairs(scales) do
if n >= scale.val then
local count = math.floor(n / scale.val)
local rem = n % scale.val
local prefix = (scale.word == "dhibba" or scale.word == "kuma") and scale.word or scale.word
local countStr = toOromo(count, rem > 0 or isSuffix)
local out = prefix .. " " .. countStr
if rem > 0 then
out = out .. " fi " .. toOromo(rem, isSuffix)
end
return out
end
end
end
-- Chaekii mallattoo (-)
local function toOromoWithSign(n)
if n < 0 then
return "negatiiva " .. toOromo(math.abs(n), false)
end
return toOromo(n, false)
end
-- Chaekii tuqaa (Decimal)
local function toOromoDecimal(x)
local s = tostring(x)
local intStr, decStr = s:match("^(%-?%d+)%.(%d+)$")
if not intStr then return toOromoWithSign(x) end
local intWord = toOromoWithSign(tonumber(intStr))
local parts = {}
for i = 1, #decStr do
local d = tonumber(decStr:sub(i, i))
table.insert(parts, ones[d + 1])
end
return intWord .. " tuqaa " .. table.concat(parts, " ")
end
-- MAIN FUNCTION (MediaWiki Frame)
function p.main(frame)
local arg = frame.args[1] or (frame:getParent() and frame:getParent().args[1])
if not arg or arg == "" then return "" end
local n = tonumber(arg)
if not n then return "" end
if math.floor(n) == n then
return toOromoWithSign(n)
else
return toOromoDecimal(n)
end
end
return p
7tdvw36jkwphoxgdecr7hzbn1hkhhip
82008
82007
2026-07-21T08:20:14Z
EyobAbebeBot
3562
82008
Scribunto
text/plain
local p = {}
-- =====================================
-- DATA (Original)
-- =====================================
local ones = { "zeeroo", "tokko", "lama", "sadii", "afur", "shan", "jaha", "torba", "saddeet", "sagal" }
local oneSuffix = { "zeeroo", "tokkoo", "lamaa", "sadii", "afurii", "shanii", "jahaa", "torbaa", "saddeetii", "sagalii" }
local tensBase = { "kudhan", "digdama", "soddoma", "afurtama", "shantama", "jahaatama", "torbaatama", "saddeettama", "sagaltama" }
local tensBaseSuffix = { "kudhanii", "digdamaa", "soddomaa", "afurtamaa", "shantamaa", "jahaatamaa", "torbaatamaa", "saddeettamaa", "sagaltamaa" }
local tensWithSuffix = { "kudha", "digdamii", "soddomii", "afurtamii", "shantamii", "jahaatamii", "torbaatamii", "saddeettamii", "sagaltamii" }
local hundreds = {"dhibba"}
local thousand = {"kuma"}
local million = {"miiliyoona"}
local billion = {"biiliyoona"}
local trillion = {"tiriliyoona"}
-- =====================================
-- 1 - 99
-- =====================================
local function under100(n)
if n >= 0 and n <= 9 then
return ones[n + 1]
end
if n >= 10 and n <= 90 and n % 10 == 0 then
return tensBase[(n / 10)]
end
if n >= 11 and n <= 99 then
local t = math.floor(n / 10)
local o = n % 10
return tensWithSuffix[t] .. " " .. ones[o + 1]
end
return ""
end
-- =====================================
-- 1 - 999
-- =====================================
local function under1000(n)
if n <= 99 then
return under100(n)
end
if n >= 100 and n <= 900 and n % 100 == 0 then
local h = n / 100
return hundreds[1] .. " " .. ones[h + 1]
end
if n >= 101 and n <= 999 then
local h = math.floor(n / 100)
local r = n % 100
local out = hundreds[1] .. " " .. oneSuffix[h + 1]
if r > 0 then
out = out .. " fi " .. under100(r)
end
return out
end
return ""
end
-- =====================================
-- HELPER: Block-level processor (Original Logic)
-- =====================================
local function processBlock(n, unitName, nextFunc)
local unit = unitName[1]
-- 1,000 ... 9,000
if n >= 1000 and n <= 9000 and n % 1000 == 0 then
return unit .. " " .. ones[(n / 1000) + 1]
end
-- 1,001 ... 9,999
if n <= 9999 then
local th = math.floor(n / 1000)
local rem = n % 1000
local out = unit .. " " .. oneSuffix[th + 1]
if rem > 0 then out = out .. " fi " .. nextFunc(rem) end
return out
end
-- 10,000 ... 90,000
if n >= 10000 and n <= 90000 and n % 10000 == 0 then
return unit .. " " .. tensBase[(n / 1000) / 10]
end
-- 10,001 ... 90,999
if n >= 10001 and n <= 90999 and math.floor(n / 1000) % 10 == 0 then
local tensIndex = math.floor(n / 1000) / 10
local rem = n % 1000
local out = unit .. " " .. tensBaseSuffix[tensIndex]
if rem > 0 then out = out .. " fi " .. nextFunc(rem) end
return out
end
-- 11,000 ... 99,000
if n >= 11000 and n <= 99000 and n % 1000 == 0 then
local thousands = math.floor(n / 1000)
return unit .. " " .. tensWithSuffix[math.floor(thousands / 10)] .. " " .. ones[(thousands % 10) + 1]
end
-- 11,001 ... 99,999
if n >= 11001 and n <= 99999 then
local thousands = math.floor(n / 1000)
local t = math.floor(thousands / 10)
local o = thousands % 10
local rem = n % 1000
local out = unit .. " " .. tensWithSuffix[t]
if o > 0 then out = out .. " " .. oneSuffix[o + 1] end
if rem > 0 then out = out .. " fi " .. nextFunc(rem) end
return out
end
-- 100,000 ... 900,000
if n >= 100000 and n <= 900000 and n % 100000 == 0 then
return unit .. " " .. hundreds[1] .. " " .. ones[(n / 100000) + 1]
end
-- 100,001 ... 999,999
if n >= 100001 and n <= 999999 then
local h = math.floor(n / 100000)
local rem = n % 100000
local out = unit .. " " .. hundreds[1] .. " " .. oneSuffix[h + 1]
if rem > 0 then out = out .. " fi " .. nextFunc(rem) end
return out
end
return ""
end
-- =====================================
-- MAIN LOGIC
-- =====================================
local function toOromo(n)
if n == 0 then return "zeeroo" end
if n <= 99 then return under100(n) end
if n >= 100 and n <= 900 and n % 100 == 0 then return hundreds[1] .. " " .. ones[(n / 100) + 1] end
if n <= 999 then return under1000(n) end
-- Kuma (1,000 - 999,999)
if n <= 999999 then
return processBlock(n, thousand, under1000)
end
-- Miiliyoona (1,000,000 - 999,999,999)
if n <= 999999999 then
local m = math.floor(n / 1000000)
local rem = n % 1000000
return processBlock(m * 1000, million, toOromo) .. (rem > 0 and (" fi " .. toOromo(rem)) or "")
end
-- Biiliyoona (1,000,000,000 - 999,999,999,999)
if n <= 999999999999 then
local b = math.floor(n / 1000000000)
local rem = n % 1000000000
return processBlock(b * 1000, billion, toOromo) .. (rem > 0 and (" fi " .. toOromo(rem)) or "")
end
-- Tiriliyoona (1,000,000,000,000+)
local t = math.floor(n / 1000000000000)
local rem = n % 1000000000000
return processBlock(t * 1000, trillion, toOromo) .. (rem > 0 and (" fi " .. toOromo(rem)) or "")
end
-- =====================================
-- NEGATIVE & DECIMAL (Original)
-- =====================================
local function toOromoWithSign(n)
if n < 0 then
return "negatiiva " .. toOromo(math.abs(n))
end
return toOromo(n)
end
local function toOromoDecimal(x)
if math.floor(x) == x then
return toOromo(x)
end
local s = tostring(x)
local intStr, decStr = s:match("^(%-?%d+)%.(%d+)$")
local intWord = toOromo(math.abs(tonumber(intStr)))
local parts = {}
for i = 1, #decStr do
local d = tonumber(decStr:sub(i, i))
table.insert(parts, ones[d + 1])
end
local out = intWord .. " tuqaa " .. table.concat(parts, " ")
if x < 0 then
out = "negatiiva " .. out
end
return out
end
-- =====================================
-- MAIN (Wiki Module Entry)
-- =====================================
function p.main(frame)
local arg = frame.args[1] or (frame:getParent() and frame:getParent().args[1])
if not arg or arg == "" then
return ""
end
local n = tonumber(arg)
if not n then
return ""
end
if math.floor(n) == n then
return toOromoWithSign(n)
else
return toOromoDecimal(n)
end
end
return p
kumnpygh6hxj9ob42ivzwtd2f02z2vw
82010
82008
2026-07-21T08:28:48Z
EyobAbebeBot
3562
82010
Scribunto
text/plain
local p = {}
-- =====================================
-- DATA (Original)
-- =====================================
local ones = {
"zeeroo", "tokko", "lama", "sadii", "afur",
"shan", "jaha", "torba", "saddeet", "sagal"
}
local oneSuffix = {
"zeeroo", "tokkoo", "lamaa", "sadii", "afurii",
"shanii", "jahaa", "torbaa", "saddeetii", "sagalii"
}
local tensBase = {
"kudhan", "digdama", "soddoma", "afurtama", "shantama",
"jahaatama", "torbaatama", "saddeettama", "sagaltama"
}
local tensBaseSuffix = {
"kudhanii", "digdamaa", "soddomaa", "afurtamaa", "shantamaa",
"jahaatamaa", "torbaatamaa", "saddeettamaa", "sagaltamaa"
}
local tensWithSuffix = {
"kudha", "digdamii", "soddomii", "afurtamii", "shantamii",
"jahaatamii", "torbaatamii", "saddeettamii", "sagaltamii"
}
local hundreds = {"dhibba"}
local thousand = {"kuma"}
local million = {"miiliyoona"}
local billion = {"biiliyoona"}
local trillion = {"tiriliyoona"}
-- =====================================
-- 1 - 99
-- =====================================
local function under100(n)
if n >= 0 and n <= 9 then
return ones[n + 1]
end
if n >= 10 and n <= 90 and n % 10 == 0 then
return tensBase[math.floor(n / 10)]
end
if n >= 11 and n <= 99 then
local t = math.floor(n / 10)
local o = n % 10
return tensWithSuffix[t] .. " " .. ones[o + 1]
end
return ""
end
-- =====================================
-- 1 - 999
-- =====================================
local function under1000(n)
if n <= 99 then
return under100(n)
end
if n >= 100 and n <= 900 and n % 100 == 0 then
local h = math.floor(n / 100)
return hundreds[1] .. " " .. ones[h + 1]
end
if n >= 101 and n <= 999 then
local h = math.floor(n / 100)
local r = n % 100
local out = hundreds[1] .. " " .. oneSuffix[h + 1]
if r > 0 then
out = out .. " fi " .. under100(r)
end
return out
end
return ""
end
-- =====================================
-- LOOJIKII LAKKOOFSA GURGUDDOO (ORIGINAL RULE)
-- =====================================
local function processGroup(n, unitName)
if n == 0 then return "" end
if n <= 999 then
return unitName .. " " .. under1000(n)
end
return ""
end
local function toOromo(n)
if n == 0 then
return "zeeroo"
end
if n <= 999 then
return under1000(n)
end
-- TIRILIYOONA (10^12)
if n >= 10^12 then
local tr = math.floor(n / 10^12)
local rem = n % 10^12
local out = processGroup(tr, trillion[1])
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- BIILIYOONA (10^9)
if n >= 10^9 then
local b = math.floor(n / 10^9)
local rem = n % 10^9
local out = processGroup(b, billion[1])
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- MIILIYOONA (10^6)
if n >= 10^6 then
local m = math.floor(n / 10^6)
local rem = n % 10^6
local out = processGroup(m, million[1])
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- KUMA (10^3)
if n >= 10^3 then
local k = math.floor(n / 10^3)
local rem = n % 10^3
local out = processGroup(k, thousand[1])
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
return ""
end
-- =====================================
-- NEGATIVE & DECIMAL (Original)
-- =====================================
local function toOromoWithSign(n)
if n < 0 then
return "negatiiva " .. toOromo(math.abs(n))
end
return toOromo(n)
end
local function toOromoDecimal(x)
if math.floor(x) == x then
return toOromoWithSign(x)
end
local s = tostring(x)
local intStr, decStr = s:match("^(%-?%d+)%.(%d+)$")
if not intStr then
return toOromoWithSign(x)
end
local intWord = toOromoWithSign(tonumber(intStr))
local parts = {}
for i = 1, #decStr do
local d = tonumber(decStr:sub(i, i))
table.insert(parts, ones[d + 1])
end
local out = intWord .. " tuqaa " .. table.concat(parts, " ")
return out
end
-- =====================================
-- MAIN (Wiki Module Entry)
-- =====================================
function p.main(frame)
local arg = frame.args[1] or (frame:getParent() and frame:getParent().args[1])
if not arg or arg == "" then
return ""
end
local n = tonumber(arg)
if not n then
return ""
end
if math.floor(n) == n then
return toOromoWithSign(n)
else
return toOromoDecimal(n)
end
end
return p
npat7clpklpzeu4m5ph6sfxhv9ikbol
82011
82010
2026-07-21T08:30:48Z
EyobAbebeBot
3562
82011
Scribunto
text/plain
local p = {}
-- =====================================
-- DATA
-- =====================================
local ones = {
"zeeroo",
"tokko",
"lama",
"sadii",
"afur",
"shan",
"jaha",
"torba",
"saddeet",
"sagal"
}
local oneSuffix = {
"zeeroo",
"tokkoo",
"lamaa",
"sadii",
"afurii",
"shanii",
"jahaa",
"torbaa",
"saddeetii",
"sagalii"
}
local tensBase = {
"kudhan",
"digdama",
"soddoma",
"afurtama",
"shantama",
"jahaatama",
"torbaatama",
"saddeettama",
"sagaltama"
}
local tensBaseSuffix = {
"kudhanii",
"digdamaa",
"soddomaa",
"afurtamaa",
"shantamaa",
"jahaatamaa",
"torbaatamaa",
"saddeettamaa",
"sagaltamaa"
}
local tensWithSuffix = {
"kudha",
"digdamii",
"soddomii",
"afurtamii",
"shantamii",
"jahaatamii",
"torbaatamii",
"saddeettamii",
"sagaltamii"
}
local hundreds = {"dhibba"}
local thousand = {"kuma"}
local million = {"miiliyoona"}
local billion = {"biiliyoona"}
local trillion = {"tiriliyoona"}
-- =====================================
-- 1 - 99
-- =====================================
local function under100(n)
if n >= 0 and n <= 9 then
return ones[n + 1]
end
if n >= 10 and n <= 90 and n % 10 == 0 then
return tensBase[(n / 10)]
end
if n >= 11 and n <= 99 then
local t = math.floor(n / 10)
local o = n % 10
return tensWithSuffix[t] .. " " .. ones[o + 1]
end
return ""
end
-- =====================================
-- 1 - 999
-- =====================================
local function under1000(n)
if n <= 99 then
return under100(n)
end
if n >= 100 and n <= 900 and n % 100 == 0 then
local h = n / 100
return hundreds[1] .. " " .. ones[h + 1]
end
if n >= 101 and n <= 999 then
local h = math.floor(n / 100)
local r = n % 100
local out = hundreds[1] .. " " .. oneSuffix[h + 1]
if r > 0 then
out = out .. " fi " .. under100(r)
end
return out
end
return ""
end
-- =====================================
-- 1000 - 99,999
-- =====================================
local function toOromo(n)
if n == 0 then
return "zeeroo"
end
if n <= 99 then
return under100(n)
end
if n >= 100 and n <= 900 and n % 100 == 0 then
return hundreds[1] .. " " .. ones[(n / 100) + 1]
end
if n <= 999 then
return under1000(n)
end
-- 1,000 ... 9,000
if n >= 1000 and n <= 9000 and n % 1000 == 0 then
local th = n / 1000
return thousand[1] .. " " .. ones[th + 1]
end
-- 1,001 ... 9,999
if n <= 9999 then
local th = math.floor(n / 1000)
local rem = n % 1000
local out = thousand[1] .. " " .. oneSuffix[th + 1]
if rem > 0 then
out = out .. " fi " .. under1000(rem)
end
return out
end
-- 10,000 ... 90,000
if n >= 10000 and n <= 90000 and n % 10000 == 0 then
local t = (n / 1000) / 10
return thousand[1] .. " " .. tensBase[t]
end
-- 10,001 ... 90,999
if n >= 10001 and n <= 90999 and math.floor(n / 1000) % 10 == 0 then
local thousands = math.floor(n / 1000)
local tensIndex = (thousands / 10)
local rem = n % 1000
local out = thousand[1] .. " " .. tensBaseSuffix[tensIndex]
if rem > 0 then
out = out .. " fi " .. under1000(rem)
end
return out
end
-- 11,000 ... 99,000
if n >= 11000 and n <= 99000 and n % 1000 == 0 then
local thousands = math.floor(n / 1000)
local t = math.floor(thousands / 10)
local o = thousands % 10
return thousand[1] .. " " ..
tensWithSuffix[t] .. " " ..
ones[o + 1]
end
-- 11,001 ... 99,999
if n >= 11001 and n <= 99999 then
local thousands = math.floor(n / 1000)
local t = math.floor(thousands / 10)
local o = thousands % 10
local rem = n % 1000
local out = thousand[1] .. " " ..
tensWithSuffix[t]
if o > 0 then
out = out .. " " .. oneSuffix[o + 1]
end
if rem > 0 then
out = out .. " fi " .. under1000(rem)
end
return out
end
-- 100,000 ... 900,000
if n >= 100000 and n <= 900000 and n % 100000 == 0 then
local h = n / 100000
return thousand[1] .. " " ..
hundreds[1] .. " " ..
ones[h + 1]
end
-- 100,001 ... 999,999
if n >= 100001 and n <= 999999 then
local h = math.floor(n / 100000)
local rem = n % 100000
local out = thousand[1] .. " " ..
hundreds[1] .. " " ..
oneSuffix[h + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- =====================================
-- MIILIYOONA
-- =====================================
-- 1,000,000 ... 9,000,000
if n >= 1000000 and n <= 9000000 and n % 1000000 == 0 then
local m = n / 1000000
return million[1] .. " " .. ones[m + 1]
end
-- 1,000,001 ... 9,999,999
if n >= 1000001 and n <= 9999999 then
local m = math.floor(n / 1000000)
local rem = n % 1000000
local out = million[1] .. " " .. oneSuffix[m + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 10,000,000 ... 90,000,000
if n >= 10000000 and n <= 90000000 and n % 10000000 == 0 then
local t = n / 10000000
return million[1] .. " " .. tensBase[t]
end
-- 10,000,001 ... 90,999,999
if n >= 10000001 and n <= 90999999 and math.floor(n / 1000000) % 10 == 0 then
local millions = math.floor(n / 1000000)
local tensIndex = millions / 10
local rem = n % 1000000
local out = million[1] .. " " .. tensBaseSuffix[tensIndex]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 11,000,000 ... 99,000,000
if n >= 11000000 and n <= 99000000 and n % 1000000 == 0 then
local millions = math.floor(n / 1000000)
local t = math.floor(millions / 10)
local o = millions % 10
return million[1] .. " " ..
tensWithSuffix[t] .. " " ..
ones[o + 1]
end
-- 11,000,001 ... 99,999,999
if n >= 11000001 and n <= 99999999 then
local millions = math.floor(n / 1000000)
local t = math.floor(millions / 10)
local o = millions % 10
local rem = n % 1000000
local out = million[1] .. " " ..
tensWithSuffix[t] .. " " ..
oneSuffix[o + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 100,000,000 ... 900,000,000
if n >= 100000000 and n <= 900000000 and n % 100000000 == 0 then
local h = n / 100000000
return million[1] .. " " ..
hundreds[1] .. " " ..
ones[h + 1]
end
-- 100,000,001 ... 999,999,999
if n >= 100000001 and n <= 999999999 then
local h = math.floor(n / 100000000)
local rem = n % 100000000
local out = million[1] .. " " ..
hundreds[1] .. " " ..
oneSuffix[h + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- =====================================
-- BIILIYOONA
-- =====================================
-- 1,000,000,000 ... 9,000,000,000
if n >= 1000000000 and n <= 9000000000 and n % 1000000000 == 0 then
local b = n / 1000000000
return billion[1] .. " " .. ones[b + 1]
end
-- 1,000,000,001 ... 9,999,999,999
if n >= 1000000001 and n <= 9999999999 then
local b = math.floor(n / 1000000000)
local rem = n % 1000000000
local out = billion[1] .. " " .. oneSuffix[b + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 10,000,000,000 ... 90,000,000,000
if n >= 10000000000 and n <= 90000000000 and n % 10000000000 == 0 then
local t = n / 10000000000
return billion[1] .. " " .. tensBase[t]
end
-- 10,000,000,001 ... 90,999,999,999
if n >= 10000000001 and n <= 90999999999 and math.floor(n / 1000000000) % 10 == 0 then
local b = math.floor(n / 1000000000)
local tensIndex = b / 10
local rem = n % 1000000000
local out = billion[1] .. " " .. tensBaseSuffix[tensIndex]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 11,000,000,000 ... 99,999,999,999
if n >= 11000000001 and n <= 99999999999 then
local b = math.floor(n / 1000000000)
local t = math.floor(b / 10)
local o = b % 10
local rem = n % 1000000000
local out = billion[1] .. " " ..
tensWithSuffix[t] .. " " ..
oneSuffix[o + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 100,000,000,000 ... 900,000,000,000
if n >= 100000000000 and n <= 900000000000 and n % 100000000000 == 0 then
local h = n / 100000000000
return billion[1] .. " " ..
hundreds[1] .. " " ..
ones[h + 1]
end
-- 100,000,000,001 ... 999,999,999,999
if n >= 100000000001 and n <= 999999999999 then
local h = math.floor(n / 100000000000)
local rem = n % 100000000000
local out = billion[1] .. " " ..
hundreds[1] .. " " ..
oneSuffix[h + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- =====================================
-- TIRILIYOONA
-- =====================================
-- 1,000,000,000,000 ... 9,000,000,000,000
if n >= 1000000000000 and n <= 9000000000000 and n % 1000000000000 == 0 then
local t = n / 1000000000000
return trillion[1] .. " " .. ones[t + 1]
end
-- 1,000,000,000,001 ... 9,999,999,999,999
if n >= 1000000000001 and n <= 9999999999999 then
local t = math.floor(n / 1000000000000)
local rem = n % 1000000000000
local out = trillion[1] .. " " .. oneSuffix[t + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 10,000,000,000,000 ... 90,000,000,000,000
if n >= 10000000000000 and n <= 90000000000000 and n % 10000000000000 == 0 then
local t = n / 10000000000000
return trillion[1] .. " " .. tensBase[t]
end
-- 10,000,000,000,001 ... 90,999,999,999,999
if n >= 10000000000001 and n <= 90999999999999 and math.floor(n / 1000000000000) % 10 == 0 then
local tr = math.floor(n / 1000000000000)
local tensIndex = tr / 10
local rem = n % 1000000000000
local out = trillion[1] .. " " .. tensBaseSuffix[tensIndex]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 11,000,000,000,001 ... 99,999,999,999,999
if n >= 11000000000001 and n <= 99999999999999 then
local tr = math.floor(n / 1000000000000)
local t = math.floor(tr / 10)
local o = tr % 10
local rem = n % 1000000000000
local out = trillion[1] .. " " ..
tensWithSuffix[t] .. " " ..
oneSuffix[o + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
-- 100,000,000,000,000 ... 900,000,000,000,000
if n >= 100000000000000 and n <= 900000000000000 and n % 100000000000000 == 0 then
local h = n / 100000000000000
return trillion[1] .. " " ..
hundreds[1] .. " " ..
ones[h + 1]
end
-- 100,000,000,000,001 ... 999,999,999,999,999
if n >= 100000000000001 and n <= 999999999999999 then
local h = math.floor(n / 100000000000000)
local rem = n % 100000000000000
local out = trillion[1] .. " " ..
hundreds[1] .. " " ..
oneSuffix[h + 1]
if rem > 0 then
out = out .. " fi " .. toOromo(rem)
end
return out
end
return ""
end
-- =====================================
-- NEGATIVE
-- =====================================
local function toOromoWithSign(n)
if n < 0 then
return "negatiiva " .. toOromo(math.abs(n))
end
return toOromo(n)
end
-- =====================================
-- DECIMAL
-- =====================================
local function toOromoDecimal(x)
if math.floor(x) == x then
return toOromo(x)
end
local s = tostring(x)
local intStr, decStr = s:match("^(%-?%d+)%.(%d+)$")
local intWord = toOromo(math.abs(tonumber(intStr)))
local parts = {}
for i = 1, #decStr do
local d = tonumber(decStr:sub(i, i))
table.insert(parts, ones[d + 1])
end
local out = intWord .. " tuqaa " .. table.concat(parts, " ")
if x < 0 then
out = "negatiiva " .. out
end
return out
end
-- =====================================
-- MAIN
-- =====================================
function p.main(frame)
local arg = frame.args[1]
if not arg or arg == "" then
return ""
end
local n = tonumber(arg)
if not n then
return ""
end
if math.floor(n) == n then
return toOromoWithSign(n)
else
return toOromoDecimal(n)
end
end
return p
1s6mp3wwcz1v3qf6k6xlijjstwy9jxu