-- Module:strConversion
-- 2021-09-29 -- V5.2 -- special extension for use with ang-diacritics (preliminary)
-- 2018-08-01 -- V5.1 -- +adverbium
-- {{#invoke:strConversion|laConvert|{{{1}}}}}
-- laConvert: Converting Latin string into text string without diacritics.
-- Recognized characters: Ā ā Ă ă Ē ē Ĕ ĕ Ë ë Ī ī Ĭ ĭ Ō ō Ŏ ŏ Ū ū Ŭ ŭ Û û Ȳ ȳ Y̆ y̆
-- Special extension: ċ ġ
-- {{#invoke:strConversion|inversio|{{{1}}}}}
-- laAncora: Replacing all tokens found in xTab.
-- inversio: Inverting all character positions of a string.
local export = {}
local cvTab =
{
["Ā"]='A', ["ā"]='a', ["Ă"]='A', ["ă"]='a', ["Ē"]='E', ["ē"]='e', ["Ĕ"]='E', ["ĕ"]='e', ["Ë"]='E', ["ë"]='e',
["Ī"]='I', ["ī"]='i', ["Ĭ"]='I', ["ĭ"]='i', ["Ō"]='O', ["ō"]='o', ["Ŏ"]='O', ["ŏ"]='o',
["Ū"]='U', ["ū"]='u', ["Ŭ"]='U', ["ŭ"]='u', ["Û"]='U', ["û"]='u', ["Ȳ"]='Y', ["ȳ"]='y',
["ċ"]='c', ["ġ"]='g',
}
local xTab =
{
["adiectivum"]="adj",
["adverbium"]="adv",
["coniunctio"]="con",
["gerundivum"]="gndv",
["interiectio"]="int",
["intransitivum"]="intr",
["participium"]="par",
["praepositio"]="prae",
["pronomen"]="pron",
["proprium"]="prop",
["substantivum"]="sub",
["transitivum"]="tran",
["verbum"]="verb",
}
function export.laConvert(frame)
return laString(frame.args[1])
end
function export.laAncora(frame)
return xTab[frame.args[1]]
end
function laString(str)
local newstr = ""
newstr = mw.ustring.gsub(str, '.', cvTab)
newstr = mw.ustring.gsub(newstr, 'Y̆', 'Y')
newstr = mw.ustring.gsub(newstr, 'y̆', 'y')
return newstr
end
function export.inversio(frame)
local newstr = ""
for i = mw.ustring.len( frame.args[1] ), 1, -1 do
newstr = newstr .. mw.ustring.char(mw.ustring.codepoint(frame.args[1],i))
end
return newstr
end
return export
-- End of Module:strConversion