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