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
Amajjii
0
2320
81995
11725
2026-07-04T06:47:21Z
EyobAbebe7
3540
/* Afaaneffannoo */
81995
wikitext
text/x-wiki
{{-om-}}
===Afaaneffannoo===
{{syllables}}
==Maqqofee==
#Ji'a tokkoffaa waggaa akka dhahaa giregooriyaanitti.
#: Barri haaraan Amajji tokko jalqaba.
===Ka wali dhihaatu===
===Kanas laali===
[[ji'a]], [[waggaa]], [[dhahaa]], [[baatii]], [[Ammajjii]], [[Guraandhala]], [[Bitootessa]], [[Ebla]], [[Caamsaa]], [[Waxabajjii]], [[Adooleessa]],[[Hagayya]], [[Fulbaana]], [[Onkololeessa]], [[Sadaasa]], [[Muddee]]
# [[]]
{{(}}
:* {{is}}: [[janúar]] ''m'' [1]
:* {{it}}: [[gennaio]] ''m'' [1]
:* {{en}}: [[January]] [1]
:* {{fr}}: [[janvier]] ''m'' [1]
{{-}}
:* {{de}}: [[Januar]] ''m'' [1]
:* {{pt}}: [[janeiro]] ''m'' [1]
:* {{es}}: [[enero]] ''m'' [1]
{{)}}
k7ev7ee1b5l12jah0hgkzkzheqhpsoc
81996
81995
2026-07-04T06:53:58Z
EyobAbebe7
3540
/* */
81996
wikitext
text/x-wiki
==Afaan Oromoo==
===Afaaneffannoo===
{{syllables}}
==Maqqofee==
#Ji'a tokkoffaa waggaa akka dhahaa giregooriyaanitti.
#: Barri haaraan Amajji tokko jalqaba.
===Ka wali dhihaatu===
===Kanas laali===
[[ji'a]], [[waggaa]], [[dhahaa]], [[baatii]], [[Ammajjii]], [[Guraandhala]], [[Bitootessa]], [[Ebla]], [[Caamsaa]], [[Waxabajjii]], [[Adooleessa]],[[Hagayya]], [[Fulbaana]], [[Onkololeessa]], [[Sadaasa]], [[Muddee]]
# [[]]
{{(}}
:* {{is}}: [[janúar]] ''m'' [1]
:* {{it}}: [[gennaio]] ''m'' [1]
:* {{en}}: [[January]] [1]
:* {{fr}}: [[janvier]] ''m'' [1]
{{-}}
:* {{de}}: [[Januar]] ''m'' [1]
:* {{pt}}: [[janeiro]] ''m'' [1]
:* {{es}}: [[enero]] ''m'' [1]
{{)}}
qm0usz5kvooda66e3w06uqs2mnx6qjg
Module:syllables
828
26651
81993
40826
2026-07-04T06:23:11Z
EyobAbebe7
3540
81993
Scribunto
text/plain
local p = {}
local vowels = {a=true,e=true,i=true,o=true,u=true}
local digraphs = {
dh="D", ch="C", ny="N",
ph="P", sh="S", ts="T", zy="Z"
}
-- Gabatee qubee dachaa gara iddoo duraatti deebisuuf gargaaru
local reverse_digraphs = {
D="dh", C="ch", N="ny",
P="ph", S="sh", T="ts", Z="zy"
}
-- =====================
-- TOKENIZE (keeps real chars too)
-- =====================
local function tokenize(word)
local tokens = {}
local i = 1
while i <= #word do
local two = word:sub(i,i+1)
if digraphs[two] then
table.insert(tokens, digraphs[two])
i = i + 2
else
table.insert(tokens, word:sub(i,i))
i = i + 1
end
end
return tokens
end
-- =====================
-- DETOKENIZE (restores digraphs)
-- =====================
local function detokenize(str)
for k, v in pairs(reverse_digraphs) do
str = string.gsub(str, k, v)
end
return str
end
-- =====================
-- CHECK TYPE
-- =====================
local function isV(c)
return vowels[c] == true
end
local function isC(c)
return not isV(c)
end
-- =====================
-- SYLLABLE BUILDER (IMPORTANT FIX)
-- =====================
local function syllabify(word)
local t = tokenize(word)
local syllables = {}
local i = 1
while i <= #t do
local syll = {}
-- STEP 1: onset (C cluster)
while i <= #t and isC(t[i]) do
table.insert(syll, t[i])
i = i + 1
end
-- STEP 2: nucleus (V)
while i <= #t and isV(t[i]) do
table.insert(syll, t[i])
i = i + 1
end
-- STEP 3: coda (optional C, but stop before next vowel)
while i <= #t and isC(t[i]) do
-- lookahead: if next is vowel → break (onset rule)
if t[i+1] and isV(t[i+1]) then
break
end
table.insert(syll, t[i])
i = i + 1
end
table.insert(syllables, table.concat(syll))
end
return syllables
end
-- =====================
-- MAIN
-- =====================
function p.split(frame)
local word = mw.ustring.lower(frame.args[1] or "")
local s = syllabify(word)
-- Firiin erga walitti qabamee booda gara qubee dachaatti deebisuu
local result = table.concat(s, "-")
return detokenize(result)
end
function p.count(frame)
local word = mw.text.trim(frame.args[1] or "")
if word == "" then return "0" end
local syll = p.split(frame)
local _, n = mw.ustring.gsub(syll, "-", "-")
return tostring(n + 1)
end
return p
htltfg1i9bahw79hxgfhsx6lxgmnvxo
deebi'uu
0
41206
81990
55462
2026-07-03T14:23:05Z
EyobAbebe7
3540
/* Gochima */
81990
wikitext
text/x-wiki
==Oromoo==
===Afaaneffannoo===
{{syllables}}
**{{Om-audio}}
===Gochima===
{{Om-verb}}
# bakka dhaqanii dhufuu.
:{{fkn}} ° (Gabaa bayeen dafee deebi'uu barbaada).
# karaa irraa Ge'anii yookiin dogoggoranii karaa sirrii irra bu'uu.
:{{fkn}} ° (Balleessaa ofii irraa deebi'uun mallattoo beekumsa godhachuuti).
===Latii Gochimaa===
{{Om-conjug}}
{{dag}}
q374mblu5ovyadsgnyf09agil6szfib
Module:Om-conjug
828
62063
81989
81960
2026-07-03T14:20:34Z
EyobAbebe7
3540
81989
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 (Simple Past Tense Logic)
-- ===================================================
local function get_past_forms(root)
-- Kutaa 1ffaa: Gochimoota seera guutuu jijjiiran (Full form overrides)
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
-- Kutaa 2ffaa: Gochimoota walakkaan jijjiiraman (Partial suffix matches)
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"},
{"eebi'", 1, "ne", "te", "tan"}, {"aarri'", 2, "ofne", "ofte", "oftan"},
{"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
-- Dubbifamaa dachaa (Double Consonants Pattern)
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
-- Kutaa 3ffaa: Qubeewwan Dubbifamaa Qeenxee (Single Consonants Fallbacks)
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
-- Kutaa 4ffaa: Fallback Idilee (Default)
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. KUTAA MOOJULII WAAMAMU (Main Generate Function)
-- ===================================================
function p.generate(frame)
-- Template irraa ragaa argachuu ykn kallattiin argachuu
local args = frame.args
if frame:getParent() then
args = frame:getParent().args
end
-- Jecha parameter 1ffaa ykn maqaa fuulaa irraa fudhachuu
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))
-- "-uu" irraa kuta (Remove infinitive suffix)
local root = verb
if endsWith(verb, "uu") then
root = mw.ustring.sub(verb, 1, -3)
end
-- 1. Yeroo Darbee Eeyyamaa (Simple Past Affirmative)
local past_aff = get_past_forms(root)
-- 2. Yeroo Darbee Diigamaa (Negative past hundi isaa hin + nuti result ta'a)
local neg_word = past_aff.Nuti
-- Gabatee Uumuu (Building the Wikitext Table)
local html = "{| class=\"wikitable\" style=\"text-align:center;\"\n"
html = html .. "|+ '''Jijjiirama Gochimaa: [[" .. verb .. "]]'''\n"
html = html .. "! Bumbaa Maqaa !! Yeroo Darbee (Past) !! Yeroo Darbee Diigamaa (Neg. Past)\n"
local pronouns = {"Ani", "Ati", "Inni", "Isheen", "Nuti", "Isin", "Isaan"}
for _, p_name in ipairs(pronouns) do
-- Geessituu (Links) itti dabaluu
local aff_link = "[[" .. past_aff[p_name] .. "]]"
local neg_link = "[[hin]] [[" .. neg_word .. "]]"
html = html .. "|-\n! " .. p_name .. "\n| " .. aff_link .. " || " .. neg_link .. "\n"
end
html = html .. "|}"
return html
end
return p
dy6ne30zh32zewyy17uozr52je1oagg
Module:Perf
828
62068
81991
81986
2026-07-03T14:30:01Z
EyobAbebe7
3540
81991
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"},
{"eebi'", 1, "ne", "te", "tan"}, {"aarri'", 2, "ofne", "ofte", "oftan"},
{"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
qedz9aravlmlmj8415bcodspam4en0b
Module:Present
828
62069
81992
81974
2026-07-03T14:33:23Z
EyobAbebe7
3540
81992
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 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"},
{"eebi'", 1, "ne", "te", "tan"}, {"aarri'", 2, "ofne", "ofte", "oftan"},
{"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 AMMAA FI FUULDURAA (Present/Future)
-- ===================================================
local function get_present_forms(past_forms)
local aff = {}
local neg = {}
aff.Ani = mw.ustring.sub(past_forms.Ani, 1, -2) .. "a"
neg.Ani = mw.ustring.sub(past_forms.Ani, 1, -2) .. "u"
aff.Ati = mw.ustring.sub(past_forms.Ati, 1, -2) .. "a"
neg.Ati = mw.ustring.sub(past_forms.Ati, 1, -2) .. "u"
aff.Inni = mw.ustring.sub(past_forms.Inni, 1, -2) .. "a"
neg.Inni = mw.ustring.sub(past_forms.Inni, 1, -2) .. "u"
aff.Isheen = mw.ustring.sub(past_forms.Isheen, 1, -2) .. "i"
neg.Isheen = mw.ustring.sub(past_forms.Isheen, 1, -2) .. "u"
aff.Nuti = mw.ustring.sub(past_forms.Nuti, 1, -2) .. "a"
neg.Nuti = mw.ustring.sub(past_forms.Nuti, 1, -2) .. "u"
aff.Isin = mw.ustring.sub(past_forms.Isin, 1, -3) .. "u"
neg.Isin = past_forms.Isin
aff.Isaan = mw.ustring.sub(past_forms.Isaan, 1, -3) .. "u"
neg.Isaan = past_forms.Isaan
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 pres_aff, pres_neg = get_present_forms(past_forms)
local pronouns = {"Ani", "Ati", "Inni", "Isheen", "Nuti", "Isin", "Isaan"}
-- GABATEE YEROO AMMAA FI FUULDURAA
local html = "{| class=\"wikitable\" style=\"text-align:center;\"\n"
html = html .. "|+ '''Yeroo Ammaa / Fuulduraa (Simple Present & Future): [[" .. verb .. "]]'''\n"
html = html .. "! Bumbaa Maqaa !! Eeyyamaa (Affirmative) !! Diigamaa (Negative)\n"
for _, p_name in ipairs(pronouns) do
-- 'Ani' yoo ta'e 'nan', kaan hundaaf 'ni'
local aff_particle = "ni"
if p_name == "Ani" then
aff_particle = "nan"
end
local aff_link = "[[" .. aff_particle .. "]] [[" .. pres_aff[p_name] .. "]]"
local neg_link = "[[hin]] [[" .. pres_neg[p_name] .. "]]"
html = html .. "|-\n! " .. p_name .. "\n| " .. aff_link .. " || " .. neg_link .. "\n"
end
html = html .. "|}"
return html
end
return p
ekzp8kn3j59i1ulr15fqgvkj2eh6eoc
Module:syllables/doc
828
62073
81994
2026-07-04T06:44:26Z
EyobAbebe7
3540
Created page with "{{Documentation subpage}} Moojuliin kun jechoota Afaan Oromoo gara birsaga (syllables) isaaniitti addaan hiruu fi baay'ina birsaga jecha tokkoo lakkaa'uuf tajaajila. Keessumattuu, qubeewwan dachaa (digraphs) kan akka ''dh, ch, ny, ph, sh, ts, zy'' osoo hin bittinneessin sirritti adda baasee hojjeta. == Faayidaa (Functions) == Moojuliin kun faayidaawwan (functions) gurguddoo lama qaba: * '''<code>split</code>''': Jecha kenname gidduutti sarqa-tuqaa (<code>-</code>) galc..."
81994
wikitext
text/x-wiki
{{Documentation subpage}}
Moojuliin kun jechoota Afaan Oromoo gara birsaga (syllables) isaaniitti addaan hiruu fi baay'ina birsaga jecha tokkoo lakkaa'uuf tajaajila. Keessumattuu, qubeewwan dachaa (digraphs) kan akka ''dh, ch, ny, ph, sh, ts, zy'' osoo hin bittinneessin sirritti adda baasee hojjeta.
== Faayidaa (Functions) ==
Moojuliin kun faayidaawwan (functions) gurguddoo lama qaba:
* '''<code>split</code>''': Jecha kenname gidduutti sarqa-tuqaa (<code>-</code>) galchuun gara birsagaatti hira.
* '''<code>count</code>''': Jecha kenname tokko keessa birsagoota meeqatu akka jiru lakkaa'ee firiin deebisa.
== Akkaataa Itti Fayyadamaa (Usage) ==
Birsagatti hiruu (Syllable Splitting):
<pre>
{{#invoke:syllables|split|jecha}}
</pre>
Baay'ina birsagaa lakkaa'uu (Syllable Counting):
<pre>
{{#invoke:syllables|count|jecha}}
</pre>
== Fakkeenya (Examples) ==
{| class="wikitable"
! Koodii (Wikitext) !! Firiin (Output) !! Ibsa Dabalataa
|-
| <code><nowiki>{{#invoke:syllables|split|cidha}}</nowiki></code>
| {{#invoke:syllables|split|cidha}}
| ''Qubee dachaa 'dh' sirritti beekuun hiruu isaa agarsiisa (ci-dha).''
|-
| <code><nowiki>{{#invoke:syllables|count|cidha}}</nowiki></code>
| {{#invoke:syllables|count|cidha}}
| ''Baay'ina birsaga jechichaa (2) deebisa.''
|-
| <code><nowiki>{{#invoke:syllables|split|nyaata}}</nowiki></code>
| {{#invoke:syllables|split|nyaata}}
| ''Qubee dachaa 'ny' fi dubbachiiftuu dheeraa adda hin baasu (nyaa-ta).''
|-
| <code><nowiki>{{#invoke:syllables|split|muka}}</nowiki></code>
| {{#invoke:syllables|split|muka}}
| ''Jechoota salphaa gabaabaa (mu-ka).''
|-
| <code><nowiki>{{#invoke:syllables|count|Oromiyaa}}</nowiki></code>
| {{#invoke:syllables|count|Oromiyaa}}
| ''O-ro-mi-yaa jechuun birsaga 4 qaba.''
|}
== Yaada Koodii (Technical Note) ==
Moojuliin kun adeemsa (tokenize) fayyadamuun dura qubeewwan dachaa akka qubee tokkootti (fkn: dh -> D) jijjiira. Sana booda seerota birsagaa (Onset, Nucleus, Coda) erga itti hojjeteeti firiin walitti hidhamee booda deebisee qubee dachaa duraaniitti (detokenize) jijjiira.
6j36w9lf9sqo1xg8rjj9d09ipgi3dw3