Module:ka-hyphen

local export = {} local vowels = "აეიოუ" local consonants = "ბგდვზთკლმნპჟრსტფქღყშჩცძწჭხჯჰ" .. "ABCDEF" .. "GHIJKL" --English letters are a hack for a harmonic group stuff

function export.main(frame) local args = frame:getParent.args term = args.term or mw.title.getCurrentTitle.text --debugmode or PAGENAME return export.hyphenateTerm(term) end

function export.hyphenateTerm(term) --for testing purposes only local hyphenated = nil

term = mw.ustring.gsub(term, "ფხ", "A") term = mw.ustring.gsub(term, "თხ", "B") term = mw.ustring.gsub(term, "ცხ", "C") term = mw.ustring.gsub(term, "ჩხ", "D") term = mw.ustring.gsub(term, "ბღ", "E") term = mw.ustring.gsub(term, "დღ", "F") term = mw.ustring.gsub(term, "ზღ", "G") term = mw.ustring.gsub(term, "ჯღ", "H") term = mw.ustring.gsub(term, "პყ", "I") term = mw.ustring.gsub(term, "ტყ", "J") term = mw.ustring.gsub(term, "წყ", "K") term = mw.ustring.gsub(term, "ჭყ", "L")

hyphenated = mw.ustring.gsub(term, "(["..vowels..consonants .."]+)", hyphenateWord)

hyphenated = mw.ustring.gsub(hyphenated, "A", "ფხ") hyphenated = mw.ustring.gsub(hyphenated, "B", "თხ") hyphenated = mw.ustring.gsub(hyphenated, "C", "ცხ") hyphenated = mw.ustring.gsub(hyphenated, "D", "ჩხ") hyphenated = mw.ustring.gsub(hyphenated, "E", "ბღ") hyphenated = mw.ustring.gsub(hyphenated, "F", "დღ") hyphenated = mw.ustring.gsub(hyphenated, "G", "ზღ") hyphenated = mw.ustring.gsub(hyphenated, "H", "ჯღ") hyphenated = mw.ustring.gsub(hyphenated, "I", "პყ") hyphenated = mw.ustring.gsub(hyphenated, "J", "ტყ") hyphenated = mw.ustring.gsub(hyphenated, "K", "წყ") hyphenated = mw.ustring.gsub(hyphenated, "L", "ჭყ")

return hyphenated end

function hyphenateWord(word) word = mw.ustring.gsub(word, "(["..vowels.."])", "‧%1‧") word = mw.ustring.gsub(word, "‧‧", "‧") if mw.ustring.sub(word, 1, 1) == "‧" then word = mw.ustring.sub(word, 2) end if mw.ustring.sub(word, -1, -1) == "‧" then word = mw.ustring.sub(word, 1, -2) end --თ‧ა‧ვქ‧უ‧დმ‧ო‧გლ‧ე‧ჯ‧ი‧ლ‧ი word = mw.ustring.gsub(word, "(["..vowels.."])‧(["..consonants.."])(["..consonants.."]+)‧(["..vowels.."])", "%1%2‧%3%4") --თ‧ავ‧ქუ‧დმ‧ოგ‧ლე‧ჯ‧ი‧ლ‧ი word = mw.ustring.gsub(word, "(["..vowels.."])‧(["..consonants.."])(["..consonants.."]+)‧(["..vowels.."])", "%1%2‧%3%4") --თ‧ავ‧ქუდ‧მოგ‧ლე‧ჯ‧ი‧ლ‧ი

word = mw.ustring.gsub(word, "(["..consonants.."]+)‧(["..vowels.."])", "%1%2") --თავ‧ქუდ‧მოგ‧ლე‧ჯი‧ლი word = mw.ustring.gsub(word, "(["..vowels.."])‧(["..consonants.."]*)$", "%1%2") --თავ‧ქუდ‧მოგ‧ლე‧ჯი‧ლი

--ე‧ნა to ენა word = mw.ustring.gsub(word, "^(["..vowels.."])‧", "%1")

--აუ‧ღი‧ა to აუ‧ღია word = mw.ustring.gsub(word, "‧(["..vowels.."])$", "%1")

return word end

return export