Module:Latin
Appearance
local p = {}
function p.removeaccents(frame)
local rv= mw.ustring.toNFC (frame.args[1])
-- if (true) then return mw.ustring.isutf8 (rv) end
rv = mw.ustring.gsub(rv,"[ÁÀÂÄǍĂĀÃÅĄ]","A")
rv = mw.ustring.gsub(rv,"[ÆǢ]","Ae")
rv = mw.ustring.gsub(rv,"[ĆĊĈČÇ]","C")
rv = mw.ustring.gsub(rv,"[ĎĐḌÐ]","D")
rv = mw.ustring.gsub(rv,"[ÉÈĖÊËĚĔĒẼĘẸƐƎƏ]","E")
rv = mw.ustring.gsub(rv,"[ĠĜĞĢ]","G")
rv = mw.ustring.gsub(rv,"[ĤĦḤ]","H")
rv = mw.ustring.gsub(rv,"[İÍÌÎÏǏĬĪĨĮỊ]","I")
rv = mw.ustring.gsub(rv,"[Ĵ]","J")
rv = mw.ustring.gsub(rv,"[Ķ]","K")
rv = mw.ustring.gsub(rv,"[ĹĿĽĻŁḶḸ]","L")
rv = mw.ustring.gsub(rv,"[Ṃ]","M")
rv = mw.ustring.gsub(rv,"[ŃŇÑŅṆŊ]","N")
rv = mw.ustring.gsub(rv,"[ÓÒÔÖǑŎŌÕǪỌŐØƆ]","O")
rv = mw.ustring.gsub(rv,"[Œ]","Oe")
rv = mw.ustring.gsub(rv,"[ŔŘŖṚṜ]","R")
rv = mw.ustring.gsub(rv,"[ŚŜŠŞȘṢ]","S")
rv = mw.ustring.gsub(rv,"[ŤŢȚṬ]","T")
rv = mw.ustring.gsub(rv,"[Þ]","Th")
rv = mw.ustring.gsub(rv,"[ÚÙÛÜǓŬŪŨŮŲỤŰǗǛǙǕ]","U")
rv = mw.ustring.gsub(rv,"[Ŵ]","W")
rv = mw.ustring.gsub(rv,"[ÝŶŸỸȲ]","Y")
rv = mw.ustring.gsub(rv,"[ŹŻŽ]","Z")
rv = mw.ustring.gsub(rv,"[áàâäǎăāãåą]","a")
rv = mw.ustring.gsub(rv,"[æǣ]","ae")
rv = mw.ustring.gsub(rv,"[ćċĉčç]","c")
rv = mw.ustring.gsub(rv,"[ďđḍð]","d")
rv = mw.ustring.gsub(rv,"[éèėêëěĕēẽęẹɛǝə]","e")
rv = mw.ustring.gsub(rv,"[ġĝğģ]","g")
rv = mw.ustring.gsub(rv,"[ĥħḥ]","h")
rv = mw.ustring.gsub(rv,"[ıíìîïǐĭīĩįị]","i")
rv = mw.ustring.gsub(rv,"[ĵ]","j")
rv = mw.ustring.gsub(rv,"[ķ]","k")
rv = mw.ustring.gsub(rv,"[ĺŀľļłḷḹ]","l")
rv = mw.ustring.gsub(rv,"[ṃ]","m")
rv = mw.ustring.gsub(rv,"[ńňñņṇŋ]","n")
rv = mw.ustring.gsub(rv,"[óòôöǒŏōõǫọőøɔ]","o")
rv = mw.ustring.gsub(rv,"[œ]","oe")
rv = mw.ustring.gsub(rv,"[ŕřŗṛṝ]","r")
rv = mw.ustring.gsub(rv,"[śŝšşșṣ]","s")
rv = mw.ustring.gsub(rv,"[ß]","ss")
rv = mw.ustring.gsub(rv,"[ťţțṭ]","t")
rv = mw.ustring.gsub(rv,"[þ]","th")
rv = mw.ustring.gsub(rv,"[úùûüǔŭūũůųụűǘǜǚǖ]","u")
rv = mw.ustring.gsub(rv,"[ŵ]","w")
rv = mw.ustring.gsub(rv,"[ýŷÿỹȳ]","y")
rv = mw.ustring.gsub(rv,"[źżž]","z")
return rv
end
--[[
The next function returns a % encoding concomitant with ISO/IEC 8859-1. It encodes % and any non-reserved and non-unreserved
characters.
Space is currently encoded as an underscore.
Reserved characters are currently not encoded.
]]
function p.urlencodeISO88591(frame)
local rv= mw.ustring.toNFC (frame.args[1])
-- % first to avoid double encoding
-- rv = mw.ustring.gsub(rv,"\000\037","%%25")
-- space to underscore, then punctuation which is not reserved
-- rv = mw.ustring.gsub(rv," ","_")
-- rv = mw.ustring.gsub(rv,"\000\034;","%%22") -- quote mark
-- rv = mw.ustring.gsub(rv,"<","%%3C")
-- rv = mw.ustring.gsub(rv,">","%%3E")
-- rv = mw.ustring.gsub(rv,"\000\093","%%5C") -- backslash
-- rv = mw.ustring.gsub(rv,"^","%%5E")
-- rv = mw.ustring.gsub(rv,"`","%%60")
-- rv = mw.ustring.gsub(rv,"{","%%7B")
-- rv = mw.ustring.gsub(rv,"|","%%7C")
-- rv = mw.ustring.gsub(rv,"}","%%7D")
rv = mw.ustring.gsub(rv,"xy","%%A0")
return rv
end
return p