Wiktionary
omwiktionary
https://om.wiktionary.org/wiki/Fuula_Dura
MediaWiki 1.47.0-wmf.9
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
dhufuu
0
41521
81988
55777
2026-07-02T13:21:32Z
EyobAbebe7
3540
/* Gochima */
81988
wikitext
text/x-wiki
==Oromoo==
===Afaaneffannoo===
{{syllables}}
**{{Om-audio}}
===Gochima===
{{Om-verb}}
# bakka biraatii ka'anii bakka asii ga'uu.
:{{fkn}} ° (Gama sanaa ka'eetu dhufe).
===Latii Gochimaa===
{{Om-conjug|dhufuu|koottu}}
{{dag}}
ahf9xl1vtd5spg810mfa6tfj0krrnsu
Template:Om-conjug
10
62064
81985
81982
2026-07-02T12:43:09Z
EyobAbebe7
3540
/* */
81985
wikitext
text/x-wiki
<includeonly>{{#invoke:Om-conjug|generate}}</includeonly><includeonly>{{#invoke:Present|generate}}</includeonly><includeonly>{{#invoke:Perf|generate}}</includeonly><includeonly>{{#invoke:Continue|generate}}</includeonly><includeonly>{{#invoke:Inten|generate}}</includeonly><includeonly>{{#invoke:Om-imp|generate}}</includeonly><noinclude>
{{Documentation|content=
== Fayyadama (Usage) ==
Template kun gochimoota Afaan Oromoo (Oromo verbs) haala yeroo garaa garaatiin (Tenses) diiguuf (conjugate) gargaara.
=== Haala itti fayyadamnu ===
Fuula gochimaa tokko irratti (fakkeenyaaf fuula "deemuu" jedhu irratti), koodii armaan gadii qofa barreessaa:
<code><nowiki>{{Om-conjug}}</nowiki></code>
Yookiin, fuula biraa irra teessanii gochima barbaaddan tokkoof gabatee uumuu yoo barbaaddan, maqaa gochimichaa itti dabaluun akkasitti barreessaa:
<code><nowiki>{{Om-conjug|deemuu}}</nowiki></code>
<code><nowiki>{{Om-conjug|word=nyaachuu}}</nowiki></code>
}}
</noinclude>
g176zt8482u6pklwojq8859dbnd4lzm
Module:Perf
828
62068
81986
81983
2026-07-02T13:06:34Z
EyobAbebe7
3540
81986
Scribunto
text/plain
local p = {}
-- ===================================================
-- 1. FUNCTIONS GARGAARTUU (Helper Functions)
-- ===================================================
local function endsWith(str, suffix)
return mw.ustring.sub(str, -mw.ustring.len(suffix)) == suffix
end
local function slice(str, cut)
if cut == 0 then return str end
return mw.ustring.sub(str, 1, -(cut + 1))
end
-- ===================================================
-- 2. SEERA YEROO DARBEE (Bu'uura Yeroo Raawwatamaa Ammaatiif)
-- ===================================================
local function get_past_forms(root)
local full_rules = {
{"ooch", 0, "e", "ite", "e", "ite", "ine", "itan", "an"},
{"och", 2, "dhe", "ote", "dhe", "ote", "one", "otan", "dhan"},
{"ach", 2, "dhe", "tte", "te", "tte", "nne", "ttan", "tan"},
{"eech", 0, "e", "ite", "e", "ite", "ine", "itan", "an"},
{"ech", 2, "dhe", "tte", "dhe", "tte", "nne", "ttan", "dhan"},
{"kuch", 2, "te", "tte", "te", "tte", "nne", "ttan", "tan"},
{"uch", 0, "e", "ite", "e", "ite", "ine", "itan", "an"},
{"odh", 2, "dhe", "ote", "dhe", "ote", "one", "otan", "dhan"},
{"uudh", 2, "dhe", "te", "dhe", "te", "ne", "tan", "dhan"},
{"udh", 2, "dhe", "ute", "dhe", "ute", "une", "utan", "dhan"},
{"iidh", 2, "dhe", "te", "dhe", "te", "ne", "tan", "dhan"},
{"idh", 2, "dhe", "ite", "dhe", "ite", "ine", "itan", "dhan"},
{"aadh", 2, "dhe", "te", "dhe", "te", "ne", "tan", "dhan"},
{"adh", 0, "e", "ite", "e", "ite", "ine", "itan", "an"},
{"eedh", 0, "e", "ite", "e", "ite", "ine", "itan", "an"},
{"edh", 2, "dhe", "ete", "dhe", "ete", "ene", "etan", "dhan"},
{"sh", 0, "e", "te", "e", "te", "ne", "tan", "an"},
{"ny", 0, "e", "ite", "e", "ite", "ine", "itan", "an"},
{"uuph", 0, "e", "xe", "e", "xe", "ne", "xan", "an"},
{"iph", 0, "e", "xe", "e", "xe", "ne", "xan", "an"},
{"yy", 0, "e", "ite", "e", "ite", "ine", "itan", "an"}
}
for _, rule in ipairs(full_rules) do
if endsWith(root, rule[1]) then
local base = slice(root, rule[2])
return {
Ani = base .. rule[3], Ati = base .. rule[4], Inni = base .. rule[5],
Isheen = base .. rule[6], Nuti = base .. rule[7], Isin = base .. rule[8], Isaan = base .. rule[9]
}
end
end
local partial_rules = {
{"aaw", 3, "oofne", "oofte", "ooftan"}, {"caw", 2, "aane", "aate", "aatan"},
{"aw", 2, "oofne", "oofte", "ooftan"}, {"aay", 3, "oofne", "oofte", "ooftan"},
{"aah", 3, "oofne", "oofte", "ooftan"}, {"ooh", 3, "oone", "oote", "ootan"},
{"ah", 1, "ane", "ate", "atan"}, {"udha'", 1, "ane", "ate", "atan"},
{"aacha'", 2, "ofne", "ofte", "oftan"}, {"ooba'", 2, "ofne", "ofte", "oftan"},
{"dha'", 2, "oofne", "oofte", "ooftan"}, {"msha'", 2, "oofne", "oofte", "ooftan"},
{"iishaa'", 3, "ofne", "ofte", "oftan"}, {"ishaa'", 3, "oofne", "oofte", "ooftan"},
{"uushaa'", 3, "ofne", "ofte", "oftan"}, {"ushaa'", 3, "oofne", "oofte", "ooftan"},
{"uu'", 2, "une", "ute", "utan"}, {"u'", 1, "une", "ute", "utan"},
{"aari'", 1, "ne", "te", "tan"}, {"ooji'", 1, "ne", "te", "tan"},
{"i'", 1, "ine", "ite", "itan"}, {"aafa'", 2, "ofne", "ofte", "oftan"},
{"uufa'", 2, "ofne", "ofte", "oftan"}, {"uusa'", 2, "ofne", "ofte", "oftan"},
{"saasa'", 1, "ane", "ate", "atan"}, {"aassa'", 2, "ofne", "ofte", "oftan"},
{"eessa'", 2, "ofne", "ofte", "oftan"}, {"aasa'", 2, "ofne", "ofte", "oftan"},
{"akaa'", 3, "oofne", "oofte", "ooftan"}, {"naa'", 3, "oofne", "oofte", "ooftan"},
{"ana'", 3, "nofne", "nofte", "noftan"}, {"nna'", 3, "nofne", "nofte", "noftan"},
{"aara'", 2, "ofne", "ofte", "oftan"}, {"bja'", 2, "oofne", "oofte", "ooftan"},
{"jja'", 2, "ofne", "ofte", "oftan"}, {"oonja'", 2, "ofne", "ofte", "oftan"},
{"aaja'", 2, "ofne", "ofte", "oftan"}, {"ooja'", 2, "ofne", "ofte", "oftan"},
{"eeja'", 2, "ofne", "ofte", "oftan"}, {"ucca'", 2, "ofne", "ofte", "oftan"},
{"aanca'", 2, "ofne", "ofte", "oftan"}, {"aanxa'", 2, "ofne", "ofte", "oftan"},
{"aaxa'", 2, "ofne", "ofte", "oftan"}, {"eexa'", 2, "ofne", "ofte", "oftan"},
{"iixa'", 2, "ofne", "ofte", "oftan"}, {"ooxa'", 2, "ofne", "ofte", "oftan"},
{"uuxa'", 2, "ofne", "ofte", "oftan"}, {"uura'", 2, "ofne", "ofte", "oftan"},
{"eela'", 2, "ofne", "ofte", "oftan"}, {"kaakka'", 1, "ane", "ate", "atan"},
{"uuka'", 2, "ofne", "ofte", "oftan"}, {"okka'", 1, "ane", "ate", "atan"},
{"kkaa'", 3, "oofne", "oofte", "ooftan"}, {"ukaa'", 3, "oofne", "oofte", "ooftan"},
{"kaa'", 3, "eenye", "eesse", "eessan"}, {"ottaa'", 3, "oofne", "oofte", "ooftan"},
{"aadda'", 2, "ofne", "ofte", "oftan"}, {"dda'", 1, "ane", "ate", "atan"},
{"ooda'", 2, "ofne", "ofte", "oftan"}, {"eda'", 1, "ane", "ate", "atan"},
{"ida'", 1, "ane", "ate", "atan"}, {"da'", 2, "eenye", "eesse", "eessan"},
{"mtaa'", 3, "oofne", "oofte", "ooftan"}, {"taa'", 3, "eenye", "eesse", "eessan"},
{"nga'", 2, "ofne", "ofte", "oftan"}, {"maaga'", 2, "ofne", "ofte", "oftan"},
{"oga'", 2, "ofne", "ofte", "oftan"}, {"aanga'", 2, "ofne", "ofte", "oftan"},
{"anga'", 1, "ane", "ate", "atan"}, {"rga'", 1, "ane", "ate", "atan"},
{"alga'", 2, "eenye", "eesse", "eessan"}, {"lga'", 1, "ane", "ate", "atan"},
{"enga'", 1, "ane", "ate", "atan"}, {"dhaga'", 2, "eenye", "eesse", "eessan"},
{"eega'", 2, "ane", "ate", "atan"}, {"aga'", 1, "ane", "ate", "atan"},
{"gga'", 1, "ane", "ate", "atan"}, {"ga'", 2, "eenye", "eesse", "eessan"},
{"omma'", 2, "ane", "ate", "atan"}, {"mma'", 2, "ofne", "ofte", "oftan"},
{"uma'", 2, "oofne", "oofte", "ooftan"}, {"aarra'", 2, "ofne", "ofte", "oftan"},
{"aata'", 2, "ofne", "ofte", "oftan"}, {"iita'", 2, "ofne", "ofte", "oftan"},
{"uqqa'", 1, "ane", "ate", "atan"}, {"qa'", 2, "ofne", "ofte", "oftan"},
{"yaa'", 2, "ane", "ate", "atan"}, {"ooyya'", 2, "oofne", "oofte", "ooftan"},
{"aa'", 3, "oofne", "oofte", "ooftan"}, {"a'", 1, "ane", "ate", "atan"},
{"boo'", 1, "nye", "sse", "ssan"}, {"oo'", 1, "ne", "te", "tan"},
{"o'", 1, "one", "ote", "otan"}
}
local nuti, ati, ishee, isin
local matched = false
if mw.ustring.match(root, "[bcdfghjklmnpqrstvwxz][bcdfghjklmnpqrstvwxz]$") then
nuti = root .. "ine"; ati = root .. "ite"; ishee = root .. "ite"; isin = root .. "itan"
matched = true
end
if not matched then
for _, rule in ipairs(partial_rules) do
if endsWith(root, rule[1]) then
local base = slice(root, rule[2])
nuti = base .. rule[3]; ati = base .. rule[4]; ishee = base .. rule[4]; isin = base .. rule[5]
matched = true
break
end
end
end
if not matched then
if endsWith(root, "d") then nuti = slice(root, 1) .. "nne"; ati = root .. "de"; ishee = root .. "de"; isin = root .. "dan"; matched = true
elseif endsWith(root, "l") then nuti = root .. "le"; ati = root .. "te"; ishee = root .. "te"; isin = root .. "tan"; matched = true
elseif endsWith(root, "b") then nuti = root .. "ne"; ati = root .. "de"; ishee = root .. "de"; isin = root .. "dan"; matched = true
elseif endsWith(root, "c") then nuti = root .. "ne"; ati = root .. "ce"; ishee = root .. "ce"; isin = root .. "can"; matched = true
elseif endsWith(root, "g") then nuti = root .. "ne"; ati = root .. "de"; ishee = root .. "de"; isin = root .. "dan"; matched = true
elseif endsWith(root, "n") then nuti = slice(root, 1) .. "nne"; ati = root .. "te"; ishee = root .. "te"; isin = root .. "tan"; matched = true
elseif endsWith(root, "m") then nuti = slice(root, 1) .. "mne"; ati = root .. "te"; ishee = root .. "te"; isin = root .. "tan"; matched = true
elseif endsWith(root, "j") then nuti = root .. "ne"; ati = root .. "je"; ishee = root .. "je"; isin = root .. "jan"; matched = true
elseif endsWith(root, "q") then nuti = root .. "ne"; ati = root .. "xe"; ishee = root .. "xe"; isin = root .. "xan"; matched = true
elseif endsWith(root, "r") then nuti = root .. "re"; ati = root .. "te"; ishee = root .. "te"; isin = root .. "tan"; matched = true
elseif endsWith(root, "x") then nuti = root .. "ne"; ati = root .. "xe"; ishee = root .. "xe"; isin = root .. "xan"; matched = true
end
end
if not matched then
nuti = root .. "ne"; ati = root .. "te"; ishee = root .. "te"; isin = root .. "tan"
end
return {
Ani = root .. "e", Ati = ati, Inni = root .. "e",
Isheen = ishee, Nuti = nuti, Isin = isin, Isaan = root .. "an"
}
end
-- ===================================================
-- 3. SEERA YEROO RAAWWATAMAA AMMAA (Present Perfect)
-- ===================================================
local function get_present_perfect_forms(past_forms)
local aff = {}
local neg = {}
-- Eeyyamaa (Affirmative): Xumura jechoota yeroo darbee irratti jijjiirama gochuu
aff.Ani = mw.ustring.sub(past_forms.Ani, 1, -2) .. "eera"
aff.Ati = mw.ustring.sub(past_forms.Ati, 1, -2) .. "eetta"
aff.Inni = mw.ustring.sub(past_forms.Inni, 1, -2) .. "eera"
aff.Isheen = mw.ustring.sub(past_forms.Isheen, 1, -2) .. "eetti"
aff.Nuti = mw.ustring.sub(past_forms.Nuti, 1, -2) .. "eerra"
-- Isin fi Isaan xumura 'an' qabu. 'an' haquun bakka buusna:
aff.Isin = mw.ustring.sub(past_forms.Isin, 1, -3) .. "aniittu"
aff.Isaan = mw.ustring.sub(past_forms.Isaan, 1, -3) .. "aniiru"
-- Diigamaa (Negative): Yeroo hunda 'hin' + xumura bumbaa maqaa "Nuti"
local neg_word = past_forms.Nuti
neg.Ani = neg_word
neg.Ati = neg_word
neg.Inni = neg_word
neg.Isheen = neg_word
neg.Nuti = neg_word
neg.Isin = neg_word
neg.Isaan = neg_word
return aff, neg
end
-- ===================================================
-- 4. KUTAA MOOJULII WAAMAMU (Main Generate Function)
-- ===================================================
function p.generate(frame)
local args = frame.args
if frame:getParent() then
args = frame:getParent().args
end
local verb = args[1] or args.word
if not verb or mw.text.trim(verb) == "" then
verb = mw.title.getCurrentTitle().text
end
verb = mw.ustring.lower(mw.text.trim(verb))
local root = verb
if endsWith(verb, "uu") then
root = mw.ustring.sub(verb, 1, -3)
end
local past_forms = get_past_forms(root)
local perf_aff, perf_neg = get_present_perfect_forms(past_forms)
local pronouns = {"Ani", "Ati", "Inni", "Isheen", "Nuti", "Isin", "Isaan"}
-- GABATEE YEROO RAAWWATAMAA AMMAA
local html = "{| class=\"wikitable\" style=\"text-align:center;\"\n"
html = html .. "|+ '''Yeroo Raawwatamaa Ammaa (Present Perfect Tense): [[" .. verb .. "]]'''\n"
html = html .. "! Bumbaa Maqaa !! Eeyyamaa (Affirmative) !! Diigamaa (Negative)\n"
for _, p_name in ipairs(pronouns) do
local aff_link = "[[" .. perf_aff[p_name] .. "]]"
local neg_link = "[[hin]] [[" .. perf_neg[p_name] .. "]]"
html = html .. "|-\n! " .. p_name .. "\n| " .. aff_link .. " || " .. neg_link .. "\n"
end
html = html .. "|}"
return html
end
return p
s867zl18u6ggewc5nsmtbc3xkwi6spy
Module:Continue
828
62071
81987
81981
2026-07-02T13:10:50Z
EyobAbebe7
3540
81987
Scribunto
text/plain
local p = {}
-- ===================================================
-- 1. FUNCTIONS GARGAARTUU (Helper Functions)
-- ===================================================
local function endsWith(str, suffix)
return mw.ustring.sub(str, -mw.ustring.len(suffix)) == suffix
end
-- ===================================================
-- 2. KUTAA MOOJULII WAAMAMU (Main Generate Function)
-- ===================================================
function p.generate(frame)
local args = frame.args
if frame:getParent() then
args = frame:getParent().args
end
local verb = args[1] or args.word
if not verb or mw.text.trim(verb) == "" then
verb = mw.title.getCurrentTitle().text
end
verb = mw.ustring.lower(mw.text.trim(verb))
-- Hundee gochimaa (root) baasuu: 'uu' dhumaa irraa haquu
local root = verb
if endsWith(verb, "uu") then
root = mw.ustring.sub(verb, 1, -3)
end
-- Bifa itti fufiinsaa uumuu
local cont_base_aa = root .. "aa" -- Fkn: deemaa (Kaan hundaaf)
local cont_base_aan = root .. "aan" -- Fkn: deemaan (Ani qofaaf - eeyyamaa irratti)
-- Gargaaraa Gochimaa (Auxiliary Verbs): Eeyyamaa
local aux_aff = {
Ani = "jira",
Ati = "jirta",
Inni = "jira",
Isheen = "jirti",
Nuti = "jirra",
Isin = "jirtu",
Isaan = "jiru"
}
-- Gargaaraa Gochimaa (Auxiliary Verbs): Diigamaa
local aux_neg = {
Ani = "jiru",
Ati = "jirtu",
Inni = "jiru",
Isheen = "jirtu",
Nuti = "jirru",
Isin = "jirtan",
Isaan = "jiran"
}
local pronouns = {"Ani", "Ati", "Inni", "Isheen", "Nuti", "Isin", "Isaan"}
-- GABATEE YEROO AMMAA ITTI FUFAA (Present Continuous)
local html = "{| class=\"wikitable\" style=\"text-align:center;\"\n"
html = html .. "|+ '''Yeroo Ammaa Itti Fufaa (Present Continuous): [[" .. verb .. "]]'''\n"
html = html .. "! Bumbaa Maqaa !! Eeyyamaa (Affirmative) !! Diigamaa (Negative)\n"
for _, p_name in ipairs(pronouns) do
-- Eeyyamaa irratti 'Ani' qofaaf "-aan", warreen biroof "-aa" fayyadamuu
local current_aff_base = cont_base_aa
if p_name == "Ani" then
current_aff_base = cont_base_aan
end
-- Eeyyamaa: Fkn: [[deemaan]] [[jira]] YKN [[deemaa]] [[jirta]]
local aff_link = "[[" .. current_aff_base .. "]] [[" .. aux_aff[p_name] .. "]]"
-- Diigamaa: Fkn: [[deemaa]] [[hin]] [[jiru]] (Hundaafuu "-aa" dhaan)
local neg_link = "[[" .. cont_base_aa .. "]] [[hin]] [[" .. aux_neg[p_name] .. "]]"
html = html .. "|-\n! " .. p_name .. "\n| " .. aff_link .. " || " .. neg_link .. "\n"
end
html = html .. "|}"
return html
end
return p
b9s7ky07fk2s54vq46u4krh66lnpl2y
Module:Inten
828
62072
81984
2026-07-02T12:39:11Z
EyobAbebe7
3540
Created page with "local p = {} -- =================================================== -- 1. FUNCTIONS GARGAARTUU (Helper Functions) -- =================================================== local function endsWith(str, suffix) return mw.ustring.sub(str, -mw.ustring.len(suffix)) == suffix end -- =================================================== -- 2. KUTAA MOOJULII WAAMAMU (Main Generate Function) -- =================================================== function p.generate(frame) lo..."
81984
Scribunto
text/plain
local p = {}
-- ===================================================
-- 1. FUNCTIONS GARGAARTUU (Helper Functions)
-- ===================================================
local function endsWith(str, suffix)
return mw.ustring.sub(str, -mw.ustring.len(suffix)) == suffix
end
-- ===================================================
-- 2. KUTAA MOOJULII WAAMAMU (Main Generate Function)
-- ===================================================
function p.generate(frame)
local args = frame.args
if frame:getParent() then
args = frame:getParent().args
end
local verb = args[1] or args.word
if not verb or mw.text.trim(verb) == "" then
verb = mw.title.getCurrentTitle().text
end
verb = mw.ustring.lower(mw.text.trim(verb))
-- Bu'uura gochimaa bifa raawwii (infinitive) ta'uu mirkaneessuu
local infinitive = verb
if not endsWith(verb, "uu") then
infinitive = verb .. "uu"
end
-- Bifa karooraa uumuu (Fkn: deemuu + f = deemuuf)
local int_base_uuf = infinitive .. "f" -- Kaan hundaaf (Fkn: deemuuf)
local int_base_uufan = infinitive .. "fan" -- Ani qofaaf (Fkn: deemuufan)
-- Gargaaraa Gochimaa (Auxiliary Verbs): Eeyyamaa
local aux_aff = {
Ani = "jira",
Ati = "jirta",
Inni = "jira",
Isheen = "jirti",
Nuti = "jirra",
Isin = "jirtu",
Isaan = "jiru"
}
-- Gargaaraa Gochimaa (Auxiliary Verbs): Diigamaa
local aux_neg = {
Ani = "jiru",
Ati = "jirtu",
Inni = "jiru",
Isheen = "jirtu",
Nuti = "jirru",
Isin = "jirtan",
Isaan = "jiran"
}
local pronouns = {"Ani", "Ati", "Inni", "Isheen", "Nuti", "Isin", "Isaan"}
-- GABATEE KUTAA KAROORA FUULDURAA (Intentional Future)
local html = "{| class=\"wikitable\" style=\"text-align:center;\"\n"
html = html .. "|+ '''Kutaa Karoora Fuulduraa (Intentional Future Aspect): [[" .. verb .. "]]'''\n"
html = html .. "! Bumbaa Maqaa !! Eeyyamaa (Affirmative) !! Diigamaa (Negative)\n"
for _, p_name in ipairs(pronouns) do
-- Eeyyamaa irratti 'Ani' qofaaf "-uufan", warreen biroof "-uuf" fayyadamuu
local current_aff_base = int_base_uuf
if p_name == "Ani" then
current_aff_base = int_base_uufan
end
-- Eeyyamaa: Fkn: [[deemuufan]] [[jira]] YKN [[deemuuf]] [[jirta]]
local aff_link = "[[" .. current_aff_base .. "]] [[" .. aux_aff[p_name] .. "]]"
-- Diigamaa: Fkn: [[deemuuf]] [[hin]] [[jiru]] (Hundaafuu "-uuf" dhaan)
local neg_link = "[[" .. int_base_uuf .. "]] [[hin]] [[" .. aux_neg[p_name] .. "]]"
html = html .. "|-\n! " .. p_name .. "\n| " .. aff_link .. " || " .. neg_link .. "\n"
end
html = html .. "|}"
return html
end
return p
j5vxxyyp1vngdc6x5hpfxoxxuu9te3g