Module:Ethi-translit/sandbox

Hello, you have come here looking for the meaning of the word Module:Ethi-translit/sandbox. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:Ethi-translit/sandbox, but we will also tell you about its etymology, its characteristics and you will know how to say Module:Ethi-translit/sandbox in singular and plural. Everything you need to know about the word Module:Ethi-translit/sandbox you have here. The definition of the word Module:Ethi-translit/sandbox will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:Ethi-translit/sandbox, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.


local export = {}

local tt = {
	="hä", ="hu", ="hi", ="ha", ="he", ="hə", ="ho", 
	="lä", ="lu", ="li", ="la", ="le", ="lə", ="lo", 
		="lʷa", 
	="ḥä", ="ḥu", ="ḥi", ="ḥa", ="ḥe", ="ḥə", ="ḥo", 
		="ḥʷa", 
	="mä", ="mu", ="mi", ="ma", ="me", ="mə", ="mo", 
		="mʷa", ="mʲä", 
	="śä", ="śu", ="śi", ="śa", ="śe", ="śə", ="śo", 
		="śʷa", 
	="rä", ="ru", ="ri", ="ra", ="re", ="rə", ="ro",
		="rʷa", ="rʲä", 
	="sä", ="su", ="si", ="sa", ="se", ="sə", ="so",
		="sʷa", 
	="šä", ="šu", ="ši", ="ša", ="še", ="šə", ="šo",
		="šʷa", 
	="ḳä", ="ḳu", ="ḳi", ="ḳa", ="ḳe", ="ḳə", ="ḳo",
		="ḳʷä", ="ḳʷi", ="ḳʷa", ="ḳʷe", ="ḳʷə", 
	="ḳʰä", ="ḳʰu", ="ḳʰi", ="ḳʰa", ="ḳʰe", ="ḳʰə", ="ḳʰo",
		="ḳʰʷä", ="ḳʰʷi", ="ḳʰʷa", ="ḳʰʷe", ="ḳʰʷə",
	="bä", ="bu", ="bi", ="ba", ="be", ="bə", ="bo", 
		="bʷa", 
	="vä", ="vu", ="vi", ="va", ="ve", ="və", ="vo", 
		="vʷa", 
	="tä", ="tu", ="ti", ="ta", ="te", ="tə", ="to", 
		="tʷa", 
	="čä", ="ču", ="či", ="ča", ="če", ="čə", ="čo", 
		="čʷa", 
	="ḫä", ="ḫu", ="ḫi", ="ḫa", ="ḫe", ="ḫə", ="ḫo", 
		="ḫʷä", ="ḫʷi", ="ḫʷa", ="ḫʷe", ="ḫʷə", 
	="nä", ="nu", ="ni", ="na", ="ne", ="nə", ="no",
		="nʷa", 
	="ñä", ="ñu", ="ñi", ="ña", ="ñe", ="ñə", ="ño", 
		="ñʷa", 
	="ʾä", ="ʾu", ="ʾi", ="ʾa", ="ʾe", ="ʾə", ="ʾo",
		="ʾʷa", 
	="kä", ="ku", ="ki", ="ka", ="ke", ="kə", ="ko", 
		="kʷä", ="kʷi", ="kʷa", ="kʷe", ="kʷə", 
	="xä", ="xu", ="xi", ="xa", ="xe", ="xə", ="xo",
	 = "xʷə",   = "xʷä",  = "xʷi", = "xʷa", = "xʷe",
	="wä", ="wu", ="wi", ="wa", ="we", ="wə", ="wo", 
	="ʿä", ="ʿu", ="ʿi", ="ʿa", ="ʿe", ="ʿə", ="ʿo", 
	="zä", ="zu", ="zi", ="za", ="ze", ="zə", ="zo",
		="zʷa", 
	="žä", ="žu", ="ži", ="ža", ="že", ="žə", ="žo", 
		="žʷa", 
	="yä", ="yu", ="yi", ="ya", ="ye", ="yə", ="yo", 
	="dä", ="du", ="di", ="da", ="de", ="də", ="do",
		="dʷa", 
	="ǧä", ="ǧu", ="ǧi", ="ǧa", ="ǧe", ="ǧə", ="ǧo", 
		="ǧʷa", 
	="gä", ="gu", ="gi", ="ga", ="ge", ="gə", ="go",
		="gʷä", ="gʷi", ="gʷa", ="gʷe", ="gʷə", 
	="ŋä", ="ŋu", ="ŋi", ="ŋa", ="ŋe", ="ŋə", ="ŋo",
		="ŋʷä", ="ŋʷi", ="ŋʷa", ="ŋʷe", ="ŋʷə", 
	="ṭä", ="ṭu", ="ṭi", ="ṭa", ="ṭe", ="ṭə", ="ṭo", 
		="ṭʷa", 
	="č̣ä", ="č̣u", ="č̣i", ="č̣a", ="č̣e", ="č̣ə", ="č̣o",
		="č̣ʷa", 
	="p̣ä", ="p̣u", ="p̣i", ="p̣a", ="p̣e", ="p̣ə", ="p̣o",
		="p̣ʷa",
	="ṣä", ="ṣu", ="ṣi", ="ṣa", ="ṣe", ="ṣə", ="ṣo", 
		="ṣʷa", 
	="ṣ́ä", ="ṣ́u", ="ṣ́i", ="ṣ́a", ="ṣ́e", ="ṣ́ə", ="ṣ́o", 
	="fä", ="fu", ="fi", ="fa", ="fe", ="fə", ="fo",
		="fʷa", ="fʲä", 
	="pä", ="pu", ="pi", ="pa", ="pe", ="pə", ="po", 
		="pʷa", 
	--punctuation
	="§", ="-", =".", =",", =";", =":", =":-", ="?", ="¶",
}

local number = {
	=1, =2, =3, =4, =5, =6, =7, =8, =9,
	=10, =20, =30, =40, =50, =60, =70, =80, =90
}

-- This works on small numbers. Please improve if you find any problems.
function export.number(geez)

	local val = 0
	if mw.ustring.find(geez, '^') then
		geez = '፩' .. geez -- prepend 1
	end
	local func = mw.text.gsplit(geez, '')
	
	while true do
		local digit = func()
		if (not digit) then break end
		if mw.ustring.find(digit, '') then
			val = val + number
		elseif digit == '፻' then
			val = val * 100
		elseif digit == '፼' then
			val = val * 10000
		end
	end
	
	return val

end

function export.tr(text, lang, sc)

	text = (mw.ustring.gsub(text, ".", tt))

	-- remove ə that is not in the first syllable
	-- *
	-- matches one transliterated consonant
	-- mw.log(text)
	local prev_end_pos
	local prev_schwa_removed = false
	text = mw.ustring.gsub(
		text,
		"()((*)ə)()",
		function(start_pos, syllable, consonant, end_pos)
			local ret
			if (start_pos == 1 or mw.ustring.find(text, "^", start_pos - 1))
				or (prev_end_pos == start_pos and prev_schwa_removed) then
				ret = syllable
			else
				ret = consonant
			end
			prev_schwa_removed = ret == consonant
			prev_end_pos = end_pos
			return ret
		end)
	text = mw.ustring.gsub(text, "+", export.number)

	return text

end

return export