Jump to content

Module:Latin: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Line 86: Line 86:


rv = mw.ustring.gsub(rv,"\000\160","%%A0")
rv = mw.ustring.gsub(rv,"\000\160","%%A0")
rv = mw.ustring.gsub(rv,"\000\161","%%A1")
rv = mw.ustring.gsub(rv,"\000\162","%%A2")
rv = mw.ustring.gsub(rv,"\000\163","%%A3")
rv = mw.ustring.gsub(rv,"\000\164","%%A4")
rv = mw.ustring.gsub(rv,"\000\165","%%A5")
rv = mw.ustring.gsub(rv,"\000\166","%%A6")
rv = mw.ustring.gsub(rv,"\000\167","%%A7")
rv = mw.ustring.gsub(rv,"\000\168","%%A8")
rv = mw.ustring.gsub(rv,"\000\169","%%A9")
rv = mw.ustring.gsub(rv,"\000\170","%%AA")
rv = mw.ustring.gsub(rv,"\000\171","%%AB")
rv = mw.ustring.gsub(rv,"\000\172","%%AC")
rv = mw.ustring.gsub(rv,"\000\173","%%AD")
rv = mw.ustring.gsub(rv,"\000\174","%%AE")
rv = mw.ustring.gsub(rv,"\000\175","%%AF")
rv = mw.ustring.gsub(rv,"\000\176","%%B0")
rv = mw.ustring.gsub(rv,"\000\177","%%B1")
rv = mw.ustring.gsub(rv,"\000\178","%%B2")
rv = mw.ustring.gsub(rv,"\000\179","%%B3")
rv = mw.ustring.gsub(rv,"\000\180","%%B4")
rv = mw.ustring.gsub(rv,"\000\181","%%B5")
rv = mw.ustring.gsub(rv,"\000\182","%%B6")
rv = mw.ustring.gsub(rv,"\000\183","%%B7")
rv = mw.ustring.gsub(rv,"\000\184","%%B8")
rv = mw.ustring.gsub(rv,"\000\185","%%B9")
rv = mw.ustring.gsub(rv,"\000\186","%%BA")
rv = mw.ustring.gsub(rv,"\000\187","%%BB")
rv = mw.ustring.gsub(rv,"\000\188","%%BC")
rv = mw.ustring.gsub(rv,"\000\189","%%BD")
rv = mw.ustring.gsub(rv,"\000\190","%%BE")
rv = mw.ustring.gsub(rv,"\000\191","%%BF")
rv = mw.ustring.gsub(rv,"\000\192","%%C0")
rv = mw.ustring.gsub(rv,"\000\193","%%C1")
rv = mw.ustring.gsub(rv,"\000\194","%%C2")
rv = mw.ustring.gsub(rv,"\000\195","%%C3")
rv = mw.ustring.gsub(rv,"\000\196","%%C4")
rv = mw.ustring.gsub(rv,"\000\197","%%C5")
rv = mw.ustring.gsub(rv,"\000\198","%%C6")
rv = mw.ustring.gsub(rv,"\000\199","%%C7")
rv = mw.ustring.gsub(rv,"\000\200","%%C8")
rv = mw.ustring.gsub(rv,"\000\201","%%C9")
rv = mw.ustring.gsub(rv,"\000\202","%%CA")
rv = mw.ustring.gsub(rv,"\000\203","%%CB")
rv = mw.ustring.gsub(rv,"\000\204","%%CC")
rv = mw.ustring.gsub(rv,"\000\205","%%CD")
rv = mw.ustring.gsub(rv,"\000\206","%%CE")
rv = mw.ustring.gsub(rv,"\000\207","%%CF")
rv = mw.ustring.gsub(rv,"\000\208","%%D0")
rv = mw.ustring.gsub(rv,"\000\209","%%D1")
rv = mw.ustring.gsub(rv,"\000\210","%%D2")
rv = mw.ustring.gsub(rv,"\000\211","%%D3")
rv = mw.ustring.gsub(rv,"\000\212","%%D4")
rv = mw.ustring.gsub(rv,"\000\213","%%D5")
rv = mw.ustring.gsub(rv,"\000\214","%%D6")
rv = mw.ustring.gsub(rv,"\000\215","%%D7")
rv = mw.ustring.gsub(rv,"\000\216","%%D8")
rv = mw.ustring.gsub(rv,"\000\217","%%D9")
rv = mw.ustring.gsub(rv,"\000\218","%%DA")
rv = mw.ustring.gsub(rv,"\000\219","%%DB")
rv = mw.ustring.gsub(rv,"\000\220","%%DC")
rv = mw.ustring.gsub(rv,"\000\221","%%DD")
rv = mw.ustring.gsub(rv,"\000\222","%%DE")
rv = mw.ustring.gsub(rv,"\000\223","%%DF")
rv = mw.ustring.gsub(rv,"\000\224","%%E0")
rv = mw.ustring.gsub(rv,"\000\225","%%E1")
rv = mw.ustring.gsub(rv,"\000\226","%%E2")
rv = mw.ustring.gsub(rv,"\000\227","%%E3")
rv = mw.ustring.gsub(rv,"\000\228","%%E4")
rv = mw.ustring.gsub(rv,"\000\229","%%E5")
rv = mw.ustring.gsub(rv,"\000\230","%%E6")
rv = mw.ustring.gsub(rv,"\000\231","%%E7")
rv = mw.ustring.gsub(rv,"\000\232","%%E8")
rv = mw.ustring.gsub(rv,"\000\233","%%E9")
rv = mw.ustring.gsub(rv,"\000\234","%%EA")
rv = mw.ustring.gsub(rv,"\000\235","%%EB")
rv = mw.ustring.gsub(rv,"\000\236","%%EC")
rv = mw.ustring.gsub(rv,"\000\237","%%ED")
rv = mw.ustring.gsub(rv,"\000\238","%%EE")
rv = mw.ustring.gsub(rv,"\000\239","%%EF")
rv = mw.ustring.gsub(rv,"\000\240","%%F0")
rv = mw.ustring.gsub(rv,"\000\241","%%F1")
rv = mw.ustring.gsub(rv,"\000\242","%%F2")
rv = mw.ustring.gsub(rv,"\000\243","%%F3")
rv = mw.ustring.gsub(rv,"\000\244","%%F4")
rv = mw.ustring.gsub(rv,"\000\245","%%F5")
rv = mw.ustring.gsub(rv,"\000\246","%%F6")
rv = mw.ustring.gsub(rv,"\000\247","%%F7")
rv = mw.ustring.gsub(rv,"\000\248","%%F8")
rv = mw.ustring.gsub(rv,"\000\249","%%F9")
rv = mw.ustring.gsub(rv,"\000\250","%%FA")
rv = mw.ustring.gsub(rv,"\000\251","%%FB")
rv = mw.ustring.gsub(rv,"\000\252","%%FC")
rv = mw.ustring.gsub(rv,"\000\253","%%FD")
rv = mw.ustring.gsub(rv,"\000\254","%%FE")
rv = mw.ustring.gsub(rv,"\000\255","%%FF")


return rv
return rv

Revision as of 22:27, 7 December 2014

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,"\000\160","%%A0")

   return rv
end

return p