پودمان:Latin

    از ویکی‌نور

    توضیحات این پودمان می‌تواند در پودمان:Latin/توضیحات قرار گیرد.

    local p = {}
    
    function p._removeaccents(rv)
    	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
    
    function p.removeaccents(frame)
    	local rv = mw.ustring.toNFC (frame.args[1])
    	--   if (true) then return mw.ustring.isutf8 (rv) end
    	return p._removeaccents(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,"%%","%%%%")
    	
    	-- 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,"\\","%%5C") -- backslash does not work with "\092", "%\" or "\"
    	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")
    	
    	-- all the rest of the codepoints that are printable
    	rv = mw.ustring.gsub(rv,"\194\160","%%A0")
    	rv = mw.ustring.gsub(rv,"\194\161","%%A1")
    	rv = mw.ustring.gsub(rv,"\194\162","%%A2")
    	rv = mw.ustring.gsub(rv,"\194\163","%%A3")
    	rv = mw.ustring.gsub(rv,"\194\164","%%A4")
    	rv = mw.ustring.gsub(rv,"\194\165","%%A5")
    	rv = mw.ustring.gsub(rv,"\194\166","%%A6")
    	rv = mw.ustring.gsub(rv,"\194\167","%%A7")
    	rv = mw.ustring.gsub(rv,"\194\168","%%A8")
    	rv = mw.ustring.gsub(rv,"\194\169","%%A9")
    	rv = mw.ustring.gsub(rv,"\194\170","%%AA")
    	rv = mw.ustring.gsub(rv,"\194\171","%%AB")
    	rv = mw.ustring.gsub(rv,"\194\172","%%AC")
    	rv = mw.ustring.gsub(rv,"\194\173","%%AD")
    	rv = mw.ustring.gsub(rv,"\194\174","%%AE")
    	rv = mw.ustring.gsub(rv,"\194\175","%%AF")
    	rv = mw.ustring.gsub(rv,"\194\176","%%B0")
    	rv = mw.ustring.gsub(rv,"\194\177","%%B1")
    	rv = mw.ustring.gsub(rv,"\194\178","%%B2")
    	rv = mw.ustring.gsub(rv,"\194\179","%%B3")
    	rv = mw.ustring.gsub(rv,"\194\180","%%B4")
    	rv = mw.ustring.gsub(rv,"\194\181","%%B5")
    	rv = mw.ustring.gsub(rv,"\194\182","%%B6")
    	rv = mw.ustring.gsub(rv,"\194\183","%%B7")
    	rv = mw.ustring.gsub(rv,"\194\184","%%B8")
    	rv = mw.ustring.gsub(rv,"\194\185","%%B9")
    	rv = mw.ustring.gsub(rv,"\194\186","%%BA")
    	rv = mw.ustring.gsub(rv,"\194\187","%%BB")
    	rv = mw.ustring.gsub(rv,"\194\188","%%BC")
    	rv = mw.ustring.gsub(rv,"\194\189","%%BD")
    	rv = mw.ustring.gsub(rv,"\194\190","%%BE")
    	rv = mw.ustring.gsub(rv,"\194\191","%%BF")
    	rv = mw.ustring.gsub(rv,"\195\128","%%C0")
    	rv = mw.ustring.gsub(rv,"\195\129","%%C1")
    	rv = mw.ustring.gsub(rv,"\195\130","%%C2")
    	rv = mw.ustring.gsub(rv,"\195\131","%%C3")
    	rv = mw.ustring.gsub(rv,"\195\132","%%C4")
    	rv = mw.ustring.gsub(rv,"\195\133","%%C5")
    	rv = mw.ustring.gsub(rv,"\195\134","%%C6")
    	rv = mw.ustring.gsub(rv,"\195\135","%%C7")
    	rv = mw.ustring.gsub(rv,"\195\136","%%C8")
    	rv = mw.ustring.gsub(rv,"\195\137","%%C9")
    	rv = mw.ustring.gsub(rv,"\195\138","%%CA")
    	rv = mw.ustring.gsub(rv,"\195\139","%%CB")
    	rv = mw.ustring.gsub(rv,"\195\140","%%CC")
    	rv = mw.ustring.gsub(rv,"\195\141","%%CD")
    	rv = mw.ustring.gsub(rv,"\195\142","%%CE")
    	rv = mw.ustring.gsub(rv,"\195\143","%%CF")
    	rv = mw.ustring.gsub(rv,"\195\144","%%D0")
    	rv = mw.ustring.gsub(rv,"\195\145","%%D1")
    	rv = mw.ustring.gsub(rv,"\195\146","%%D2")
    	rv = mw.ustring.gsub(rv,"\195\147","%%D3")
    	rv = mw.ustring.gsub(rv,"\195\148","%%D4")
    	rv = mw.ustring.gsub(rv,"\195\149","%%D5")
    	rv = mw.ustring.gsub(rv,"\195\150","%%D6")
    	rv = mw.ustring.gsub(rv,"\195\151","%%D7")
    	rv = mw.ustring.gsub(rv,"\195\152","%%D8")
    	rv = mw.ustring.gsub(rv,"\195\153","%%D9")
    	rv = mw.ustring.gsub(rv,"\195\154","%%DA")
    	rv = mw.ustring.gsub(rv,"\195\155","%%DB")
    	rv = mw.ustring.gsub(rv,"\195\156","%%DC")
    	rv = mw.ustring.gsub(rv,"\195\157","%%DD")
    	rv = mw.ustring.gsub(rv,"\195\158","%%DE")
    	rv = mw.ustring.gsub(rv,"\195\159","%%DF")
    	rv = mw.ustring.gsub(rv,"\195\160","%%E0")
    	rv = mw.ustring.gsub(rv,"\195\161","%%E1")
    	rv = mw.ustring.gsub(rv,"\195\162","%%E2")
    	rv = mw.ustring.gsub(rv,"\195\163","%%E3")
    	rv = mw.ustring.gsub(rv,"\195\164","%%E4")
    	rv = mw.ustring.gsub(rv,"\195\165","%%E5")
    	rv = mw.ustring.gsub(rv,"\195\166","%%E6")
    	rv = mw.ustring.gsub(rv,"\195\167","%%E7")
    	rv = mw.ustring.gsub(rv,"\195\168","%%E8")
    	rv = mw.ustring.gsub(rv,"\195\169","%%E9")
    	rv = mw.ustring.gsub(rv,"\195\170","%%EA")
    	rv = mw.ustring.gsub(rv,"\195\171","%%EB")
    	rv = mw.ustring.gsub(rv,"\195\172","%%EC")
    	rv = mw.ustring.gsub(rv,"\195\173","%%ED")
    	rv = mw.ustring.gsub(rv,"\195\174","%%EE")
    	rv = mw.ustring.gsub(rv,"\195\175","%%EF")
    	rv = mw.ustring.gsub(rv,"\195\176","%%F0")
    	rv = mw.ustring.gsub(rv,"\195\177","%%F1")
    	rv = mw.ustring.gsub(rv,"\195\178","%%F2")
    	rv = mw.ustring.gsub(rv,"\195\179","%%F3")
    	rv = mw.ustring.gsub(rv,"\195\180","%%F4")
    	rv = mw.ustring.gsub(rv,"\195\181","%%F5")
    	rv = mw.ustring.gsub(rv,"\195\182","%%F6")
    	rv = mw.ustring.gsub(rv,"\195\183","%%F7")
    	rv = mw.ustring.gsub(rv,"\195\184","%%F8")
    	rv = mw.ustring.gsub(rv,"\195\185","%%F9")
    	rv = mw.ustring.gsub(rv,"\195\186","%%FA")
    	rv = mw.ustring.gsub(rv,"\195\187","%%FB")
    	rv = mw.ustring.gsub(rv,"\195\188","%%FC")
    	rv = mw.ustring.gsub(rv,"\195\189","%%FD")
    	rv = mw.ustring.gsub(rv,"\195\190","%%FE")
    	rv = mw.ustring.gsub(rv,"\195\191","%%FF")
    	return rv
    end
    
    return p