Jump to content

Module:Latin: Difference between revisions

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


-- % first to avoid double encoding
-- % first to avoid double encoding
rv = mw.ustring.gsub(rv,"%","%25")
rv = mw.ustring.gsub(rv,"\037","%25")


-- space to underscore, then punctuation which is not reserved
-- space to underscore, then punctuation which is not reserved
Line 86: Line 86:
rv = mw.ustring.gsub(rv,"}","%7D")
rv = mw.ustring.gsub(rv,"}","%7D")


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

Revision as of 21:59, 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,"\037","%25")

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

return p