local p = function p.salam(frame) do local t = -- perfect conjugations ገበረ t[1] = string.format("mə %s %sa %s", frame.args[1], frame.args[2], frame.args[3]) t[2] = string.format("%sä %sä %s ku",frame.args[1], frame.args[2], frame.args[3]) t[3] = string.format("%sä %sä %s na",frame.args[1], frame.args[2], frame.args[3]) t[4] = string.format("%sä %sä %s ka",frame.args[1], frame.args[2], frame.args[3]) t[5] = string.format("%sä %sä %s kum",frame.args[1], frame.args[2], frame.args[3]) t[6] = string.format("%sä %sä %s ki",frame.args[1], frame.args[2], frame.args[3]) t[7] = string.format("%sä %sä %s kən",frame.args[1], frame.args[2], frame.args[3]) t[8] = string.format("%sä %sä %sä",frame.args[1], frame.args[2], frame.args[3]) t[9] = string.format("%sä %sä %su",frame.args[1], frame.args[2], frame.args[3]) t[10] = string.format("%sä %sä %sä t",frame.args[1], frame.args[2], frame.args[3]) t[11] = string.format("%sä %sä %sa",frame.args[1], frame.args[2], frame.args[3]) --gerundive conjugations ገቢሩ t[12] = string.format("%sä %si %sä",frame.args[1], frame.args[2], frame.args[3]) t[13] = string.format("%sä %si %s na",frame.args[1], frame.args[2], frame.args[3]) t[14] = string.format("%sä %si %s ka",frame.args[1], frame.args[2], frame.args[3]) t[15] = string.format("%sä %si %s kum",frame.args[1], frame.args[2], frame.args[3]) t[16] = string.format("%sä %si %s ki",frame.args[1], frame.args[2], frame.args[3]) t[17] = string.format("%sä %si %s kən",frame.args[1], frame.args[2], frame.args[3]) t[18] = string.format("%sä %si %su",frame.args[1], frame.args[2], frame.args[3]) t[19] = string.format("%sä %si %som",frame.args[1], frame.args[2], frame.args[3]) t[20] = string.format("%sä %si %sa",frame.args[1], frame.args[2], frame.args[3]) t[21] = string.format("%sä %si %sän",frame.args[1], frame.args[2], frame.args[3]) --imperfect conjugations ይገብር t[22] = string.format("ʾə %sä %s %sə %s",frame.args[1], frame.args[2], frame.args[2], frame.args[3]) t[23] = string.format("nə %sä %s %sə %s",frame.args[1], frame.args[2], frame.args[2], frame.args[3]) t[24] = string.format("tə %sä %s %sə %s",frame.args[1], frame.args[2], frame.args[2], frame.args[3]) t[25] = string.format("tə %sä %s %su",frame.args[1], frame.args[2], frame.args[3]) t[26] = string.format("tə %sä %s %si",frame.args[1], frame.args[2], frame.args[3]) t[27] = string.format("tə %sä %s %sa",frame.args[1], frame.args[2], frame.args[3]) t[28] = string.format("yə %sä %s %sə %s",frame.args[1], frame.args[2], frame.args[2], frame.args[3]) t[29] = string.format("yə %sä %s %su",frame.args[1], frame.args[2], frame.args[3]) t[30] = string.format("tə %sä %s %sə %s",frame.args[1], frame.args[2], frame.args[2], frame.args[3]) t[31] = string.format("yə %sä %s %sa",frame.args[1], frame.args[2], frame.args[3]) --jussive conjugations ይግበር t[32] = string.format("ʾə %s %sä %s", frame.args[1], frame.args[2], frame.args[3]) t[33] = string.format("nə %s %sä %s", frame.args[1], frame.args[2], frame.args[3]) t[34] = string.format("tə %s %sä %s", frame.args[1], frame.args[2], frame.args[3]) t[35] = string.format("tə %s %sä %su", frame.args[1], frame.args[2], frame.args[3]) t[36] = string.format("tə %s %sä %si", frame.args[1], frame.args[2], frame.args[3]) t[37] = string.format("tə %s %sä %sa", frame.args[1], frame.args[2], frame.args[3]) t[38] = string.format("yə %s %sä %s", frame.args[1], frame.args[2], frame.args[3]) t[39] = string.format("yə %s %sä %su", frame.args[1], frame.args[2], frame.args[3]) t[40] = string.format("tə %s %sä %s", frame.args[1], frame.args[2], frame.args[3]) t[41] = string.format("yə %s %sä %sa", frame.args[1], frame.args[2], frame.args[3]) --affirmative command conjugations ግበር t[42] = string.format("%sə %sä %s", frame.args[1], frame.args[2], frame.args[3]) t[43] = string.format("%sə %sä %su", frame.args[1], frame.args[2], frame.args[3]) t[44] = string.format("%sə %sä %si", frame.args[1], frame.args[2], frame.args[3]) t[45] = string.format("%sə %sä %sa", frame.args[1], frame.args[2], frame.args[3]) --negative command conjugations t[46] = string.format("ʾa y tə %s %sä %s", frame.args[1], frame.args[2], frame.args[3]) t[47] = string.format("ʾa y tə %s %sä %su", frame.args[1], frame.args[2], frame.args[3]) t[48] = string.format("ʾa y tə %s %sä %si", frame.args[1], frame.args[2], frame.args[3]) t[49] = string.format("ʾa y tə %s %sä %sa", frame.args[1], frame.args[2], frame.args[3]) --t[22] = mw.ustring.gsub(t[22], "(%bbb)", function(a) return mw.ustring.sub(a,1,1) end) local tm = for var=1,49,1 do tm[var] = mw.ustring.gsub(t[var], "(%bhh)", function(a) return mw.ustring.sub(a,1,1) end) --not actually used, doesn't double tm[var] = mw.ustring.gsub(tm[var], "(%bll)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bḥḥ)", function(a) return mw.ustring.sub(a,1,1) end) --not used, the other letters that don't double won't appear tm[var] = mw.ustring.gsub(tm[var], "(%bss)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bšš)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bḳḳ)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bbb)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%btt)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bnn)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bkk)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bxx)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bww)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bzz)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%byy)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bdd)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bǧǧ)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bgg)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bṭṭ)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bčč)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bṣṣ)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bff)", function(a) return mw.ustring.sub(a,1,1) end) tm[var] = mw.ustring.gsub(tm[var], "(%bḳʰ)", function(a) return mw.ustring.sub(a,1,2) end) end -- consonant characters that hypothetically double in verbs: hlḥsšḳʰbtnʾkxwʿzydǧgṭčṣf local rtr = local tf = for var=1,49,1 do tf[var] = mw.ustring.gsub(tm[var], "%a%a", rtr) tf[var] = mw.ustring.gsub(tf[var],".", rtr) tf[var] = mw.ustring.gsub(tf[var], "%s+", "") t[var] = mw.ustring.gsub(t[var], "%s+","") end return string.format("| infinitive = %s\n",tf[1]), string.format("| perfect_1s = %s\n",tf[2]), string.format("| perfect_1p = %s\n",tf[3]), string.format("| perfect_2sm = %s\n",tf[4]), string.format("| perfect_2pm = %s\n",tf[5]), string.format("| perfect_2sf = %s\n",tf[6]), string.format("| perfect_2pf = %s\n",tf[7]), string.format("| perfect_3sm = %s\n",tf[8]), string.format("| perfect_3pm = %s\n",tf[9]), string.format("| perfect_3sf = %s\n",tf[10]), string.format("| perfect_3pf = %s\n",tf[11]), string.format("| gerundive_1s = %s\n",tf[12]), string.format("| gerundive_1p = %s\n",tf[13]), string.format("| gerundive_2sm = %s\n",tf[14]), string.format("| gerundive_2pm = %s\n",tf[15]), string.format("| gerundive_2sf = %s\n",tf[16]), string.format("| gerundive_2pf = %s\n",tf[17]), string.format("| gerundive_3sm = %s\n",tf[18]), string.format("| gerundive_3pm = %s\n",tf[19]), string.format("| gerundive_3sf = %s\n",tf[20]), string.format("| gerundive_3pf = %s\n",tf[21]), string.format("| imperfect_1s = %s\n",tf[22]), string.format("| imperfect_1p = %s\n",tf[23]), string.format("| imperfect_2sm = %s\n",tf[24]), string.format("| imperfect_2pm = %s\n",tf[25]), string.format("| imperfect_2sf = %s\n",tf[26]), string.format("| imperfect_2pf = %s\n",tf[27]), string.format("| imperfect_3sm = %s\n",tf[28]), string.format("| imperfect_3pm = %s\n",tf[29]), string.format("| imperfect_3sf = %s\n",tf[30]), string.format("| imperfect_3pf = %s\n",tf[31]), string.format("| jussive_1s = %s\n",tf[32]), string.format("| jussive_1p = %s\n",tf[33]), string.format("| jussive_2sm = %s\n",tf[34]), string.format("| jussive_2pm = %s\n",tf[35]), string.format("| jussive_2sf = %s\n",tf[36]), string.format("| jussive_2pf = %s\n",tf[37]), string.format("| jussive_3sm = %s\n",tf[38]), string.format("| jussive_3pm = %s\n",tf[39]), string.format("| jussive_3sf = %s\n",tf[40]), string.format("| jussive_3pf = %s\n",tf[41]), string.format("| imperative_2sm = %s\n",tf[42]), string.format("| imperative_2pm = %s\n",tf[43]), string.format("| imperative_2sf = %s\n",tf[44]), string.format("| imperative_2pf = %s\n",tf[45]), string.format("| imperative_2smN = %s\n",tf[46]), string.format("| imperative_2pmN = %s\n",tf[47]), string.format("| imperative_2sfN = %s\n",tf[48]), string.format("| imperative_2pfN = %s\n",tf[49]) end endreturn p