Module:User:Mofvanes/translit

local export = {}

local lang = require("Module:languages").getByCode("oj") local m_string_utilities = require("Module:string utilities") local m_links = require("Module:links")

local rfind = mw.ustring.find local rsubn = mw.ustring.gsub local ulower = mw.ustring.lower local usub = mw.ustring.sub

local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end

local function get_index(str, list) if list == nil then return -1 end for i = 1, #list do		if str == list[i] then return i end end return -1 end

local function char_at(str, pos) return usub(str, pos, pos) end local function in_set(str, list) if get_index(str, list) ~= -1 then return true else return false end end

local syllables = { ["e"] = "ᐁ", ["i"] = "ᐃ", ["o"] = "ᐅ", ["a"] = "ᐊ", ["ii"] = "ᐄ", ["oo"] = "ᐆ", ["aa"] = "ᐋ", ["be"] = "ᐯ", ["bi"] = "ᐱ", ["bo"] = "ᐳ", ["ba"] = "ᐸ", ["bii"] = "ᐲ", ["boo"] = "ᐴ", ["baa"] = "ᐹ", ["de"] = "ᑌ", ["di"] = "ᑎ", ["do"] = "ᑐ", ["da"] = "ᑕ", ["dii"] = "ᑏ", ["doo"] = "ᑑ", ["daa"] = "ᑖ", ["ge"] = "ᑫ", ["gi"] = "ᑭ", ["go"] = "ᑯ", ["ga"] = "ᑲ", ["gii"] = "ᑮ", ["goo"] = "ᑰ", ["gaa"] = "ᑳ", ["je"] = "ᒉ", ["ji"] = "ᒋ", ["jo"] = "ᒍ", ["ja"] = "ᒐ", ["jii"] = "ᒌ", ["joo"] = "ᒎ", ["jaa"] = "ᒑ", ["me"] = "ᒣ", ["mi"] = "ᒥ", ["mo"] = "ᒧ", ["ma"] = "ᒪ", ["mii"] = "ᒦ", ["moo"] = "ᒨ", ["maa"] = "ᒫ", ["ne"] = "ᓀ", ["ni"] = "ᓂ", ["no"] = "ᓄ", ["na"] = "ᓇ", ["nii"] = "ᓃ", ["noo"] = "ᓅ", ["naa"] = "ᓈ", ["ze"] = "ᓭ", ["zi"] = "ᓯ", ["zo"] = "ᓱ", ["za"] = "ᓴ", ["zii"] = "ᓰ", ["zoo"] = "ᓲ", ["zaa"] = "ᓵ", ["zhe"] = "ᔐ", ["zhi"] = "ᔑ", ["zho"] = "ᔓ", ["zha"] = "ᔕ", ["zhii"] = "ᔒ", ["zhoo"] = "ᔔ", ["zhaa"] = "ᔖ", ["ye"] = "ᔦ", ["yi"] = "ᔨ", ["yo"] = "ᔪ", ["ya"] = "ᔭ", ["yii"] = "ᔩ", ["yoo"] = "ᔫ", ["yaa"] = "ᔮ", ["pe"] = "ᐦᐯ", ["pi"] = "ᐦᐱ", ["po"] = "ᐦᐳ", ["pa"] = "ᐦᐸ", ["pii"] = "ᐦᐲ", ["poo"] = "ᐦᐴ", ["paa"] = "ᐦᐹ", ["te"] = "ᐦᑌ", ["ti"] = "ᐦᑎ", ["to"] = "ᐦᑐ", ["ta"] = "ᐦᑕ", ["tii"] = "ᐦᑏ", ["too"] = "ᐦᑑ", ["taa"] = "ᐦᑖ", ["ke"] = "ᐦᑫ", ["ki"] = "ᐦᑭ", ["ko"] = "ᐦᑯ", ["ka"] = "ᐦᑲ", ["kii"] = "ᐦᑮ", ["koo"] = "ᐦᑰ", ["kaa"] = "ᐦᑳ", ["che"] = "ᐦᒉ", ["chi"] = "ᐦᒋ", ["cho"] = "ᐦᒍ", ["cha"] = "ᐦᒐ", ["chii"] = "ᐦᒌ", ["choo"] = "ᐦᒎ", ["chaa"] = "ᐦᒑ", ["se"] = "ᐦᓭ", ["si"] = "ᐦᓯ", ["so"] = "ᐦᓱ", ["sa"] = "ᐦᓴ", ["sii"] = "ᐦᓰ", ["soo"] = "ᐦᓲ", ["saa"] = "ᐦᓵ", ["she"] = "ᐦᔐ", ["shi"] = "ᐦᔑ", ["sho"] = "ᐦᔓ", ["sha"] = "ᐦᔕ", ["shii"] = "ᐦᔒ", ["shoo"] = "ᐦᔔ", ["shaa"] = "ᐦᔖ", ["we"] = "ᐧᐁ", ["wi"] = "ᐧᐃ", ["wo"] = "ᐧᐅ", ["wa"] = "ᐧᐊ", ["wii"] = "ᐧᐄ", ["woo"] = "ᐧᐆ", ["waa"] = "ᐧᐋ", ["b"] = "ᑉ", ["p"] = "ᑉ", ["d"] = "ᑦ", ["t"] = "ᑦ", ["g"] = "ᒃ", ["k"] = "ᒃ", ["j"] = "ᒡ", ["ch"] = "ᒡ", ["m"] = "ᒻ", ["n"] = "ᓐ", ["z"] = "ᔅ", ["s"] = "ᔅ", ["zh"] = "ᔥ", ["sh"] = "ᔥ", ["y"] = "ᔾ", ["w"] = "ᐤ", ["h"] = "ᐦ" }

local function translit(str) local Cans_str = "" local current_str = "" local next_symbol = "" for i = 1, #str do current_str = current_str .. char_at(str, i)		if syllables[current_str] ~= nil then next_symbol = syllables[current_str] else Cans_str = Cans_str .. next_symbol current_str = char_at(str, i)		end end Cans_str = Cans_str .. next_symbol return Cans_str end

function export.show(frame) text = frame.args["text"] or "anishinaabe" return translit(text) end

return export