Module:cr-translit
Jump to navigation
Jump to search
Documentation for this module may be created at Module:cr-translit/doc
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