Module:typing-aids/data/Cyrs

local U = mw.ustring.char

local caron = U(0x30C) local breve = U(0x306) local grave = U(0x300) local hook = U(0x328)

local data = { {		-- Letters with diacritics in a shortcut sequence are decomposed before -- being run through the substitutions ["s" .. caron .. "t"] = "щ", },	{		["jo~"] = "ѭ", ["je~"] = "ѩ", ["i" .. breve] = "ь",	-- ĭ ["e" .. caron] = "ѣ",	-- ě ["o" .. hook] = "ѫ",	-- ǫ ["e" .. hook] = "ѧ",	-- ę ["i" .. grave] = "і",	-- ì ["z" .. caron] = "ж",	-- ž ["c" .. caron] = "ч",	-- č ["s" .. caron] = "ш",	-- š ["sht"] = "щ", ["u" .. breve] = "ъ",	-- ŭ },	{		["zh"] = "ж", ["d^z"] = "ѕ", ["i\\"] = "і", ["o_"] = "ѡ", ["ch"] = "ч", ["sh"] = "ш", ["uh"] = "ъ", ["ih"] = "ь", ["eh"] = "ѣ", ["ja"] = "ꙗ", ["je"] = "ѥ", ["ju"] = "ю", ["o~"] = "ѫ", ["jǫ"] = "ѭ", ["e~"] = "ѧ", ["ję"] = "ѩ", ["k^s"] = "ѯ", ["p^s"] = "ѱ", ["th"] = "ѳ", ["y\\"] = "ѵ", },	{		["a"] = "а", ["b"] = "б", ["v"] = "в", ["g"] = "г", ["d"] = "д", ["e"] = "е", ["z"] = "з", ["i"] = "и", ["k"] = "к", ["l"] = "л", ["m"] = "м", ["n"] = "н", ["o"] = "о", ["p"] = "п", ["r"] = "р", ["s"] = "с", ["t"] = "т", ["u"] = "оу", ["f"] = "ф", ["x"] = "х", ["ō"] = "ѡ", ["c"] = "ц", ["y"] = "ꙑ", ["ξ"] = "ѯ", ["ѱ"] = "ѱ", ["θ"] = "ѳ", ["ü"] = "ѵ", ["q"] = "ҁ", }, }

-- Add replacements for capitals: both an all-caps version ("JA") -- and capitalized version ("Ja"). for _, replacements in ipairs(data) do	-- sortedPairs saves the list of table keys so that we can modify the table -- while iterating over it. for text, replacement in require "Module:table".sortedPairs(replacements) do		replacement = mw.ustring.upper(replacement) replacements[mw.ustring.upper(text)] = replacement replacements[mw.ustring.gsub(text, "^.", mw.ustring.upper)] = replacement end end

return data