Hopp til innhald

Modul:cr-translit

Frå Wiktionary - den frie ordboka

Dokumentasjon for modulen kan opprettast på Modul:cr-translit/dok

local export = {}

function export.tr(text, lang, sc)
	text = require("Module:Cans-translit").tr(text, lang, sc)
	text = mw.ustring.gsub(text,"ī","ii")
	text = mw.ustring.gsub(text,"ō","oo")
	text = mw.ustring.gsub(text,"ā","aa")
	text = mw.ustring.gsub(text,"š","sh")
	text = mw.ustring.gsub(text,"ð","th")
	return text
end

function export.transcribe(text)
	local replace = {"sh","th","hk","kw","sk"}
	local s = "ᐁᐃᐅᐊᐯᐱᐳᐸᑌᑎᑐᑕᑫᑭᑯᑲᒉᒋᒍᒐᒣᒥᒧᒪᓀᓂᓄᓇᓭᓯᓱᓴᔦᔨᔪᔭᖊᖋᖌᖍᕃᕆᕊᕍᔐᔑᔓᔕᕓᕕᕗᕙᘚᘛᘕᘔᓓᓕᓗᓚ"
	local s_tr1 = "0ptkcmnsyrl1f2z"
	local s_tr2 = "eioa"
	local w = "ᐍᐏᐓᐘᐻᐽᑁᑅᑘᑚᑞᑢᑵᑷᑻᑿᒓᒕᒙᒝᒭᒯᒳᒷᓊ ᓌ ᓷᓹᓽᔁᔰᔲᔶᔺᔘᔚᔞᔢᓝᓟᓣᓧ"
	local w_tr1 = "0ptkcmnsyrz"
	local w_tr2 = "eioa"
	local l = "ᐄᐆᐋᐲᐴᐹᑏᑑᑖᑮᑰᑳᒌᒎᒑᒦᒨᒫᓃᓅᓈᓰᓲᓵᔩᔫᔮᕇᕋᕎᔒᔔᔖᕖᕘᕚᓖᓘᓛᐐᐔᐙ"
	local l_tr1 = "0ptkcmnsyr1flw23"
	local l_tr2 = "īōā"
	local f = "ᐤᐦᕽᑉᑦᒡᒃᒻᓐᔅᔥᔾᓪᕐ‡ᒄᔉ"
	local f_tr = "wh3ptckmns1ylr45"
	text = mw.ustring.gsub(text,"ê","e")
	text = mw.ustring.gsub(text,"u","o")
	text = mw.ustring.gsub(text,"ii","ī")
	text = mw.ustring.gsub(text,"oo","ō")
	text = mw.ustring.gsub(text,"aa","ā")
	text = mw.ustring.gsub(text,"([aeioīōā])(w?[aeioīōā])","%1 0%2")
	text = mw.ustring.gsub(text,"^(w?[aeioīōā])"," 0%1")
	text = mw.ustring.gsub(text," 0","0")
	mw.log(text)
	text = mw.ustring.gsub(text,"(["..w_tr1.."])w(["..w_tr2.."])",function(a,b)
		a = w_tr1:find(a)
		b = w_tr2:find(b)
		local i = a*4+b-4
		return mw.ustring.sub(w,i,i)
	end)
	for i=1,3 do
		text = mw.ustring.gsub(text,replace[i],tostring(i))
	end
	mw.log(text)
	text = mw.ustring.gsub(text,"(["..s_tr1.."])(["..s_tr2.."])",function(a,b)
		a = s_tr1:find(a)
		b = s_tr2:find(b)
		local i = a*4+b-4
		return mw.ustring.sub(s,i,i)
	end)
	text = mw.ustring.gsub(text,"(["..l_tr1.."])(["..l_tr2.."])",function(a,b)
		a = l_tr1:find(a)
		b = l_tr2:find(b)
		local i = a*3+b-3
		return mw.ustring.sub(l,i,i)
	end)
	for i=4,5 do
		text = mw.ustring.gsub(text,replace[i],tostring(i))
	end
	mw.log(text)
	text = mw.ustring.gsub(text,"(["..f_tr.."])",function(a)
		a = f_tr:find(a)
		return mw.ustring.sub(f,a,a)
	end)
	return text
end

return export