Module:Tími

Úr Wikipediu, frjálsa alfræðiritinu

Hægt er að búa til leiðbeiningar fyrir þessa skriftu á Module:Tími/doc

-- Skriftan Tími
-- Höfundur: Snaevar, byggt ofaná en:Module:User:Mr. Stradivarius/convertTime
-- eftir Mr. Stadivarius.

-- Tafla með orðaforða sem verður notaður síðar í skriftunni.

local conversionTable = {
   ['janúar'] = 'January',
   ['febrúar'] = 'February',
   ['mars'] = 'March',
   ['apríl'] = 'April',
   ['maí'] = 'May',
   ['júní'] = 'June',
   ['júlí'] = 'July',
   ['ágúst'] = 'August',
   ['september'] = 'September',
   ['október'] = 'October',
   ['nóvember'] = 'November',
   ['desember'] = 'December',
   ['jan'] = 'Jan',
   ['feb'] = 'Feb',
   ['mar'] = 'Mar',
   ['apr'] = 'Apr',
   ['maí'] = 'May',
   ['jún'] = 'Jun',
   ['júl'] = 'Jul',
   ['ágú '] = 'Aug ',
   ['sep'] = 'Sep',
   ['okt '] = 'Oct ',
   ['nóv'] = 'Nov',
   ['des'] = 'Dec',
   ['mánudagur'] = 'Monday',
   ['þriðjudagur'] = 'Tuesday',
   ['miðvikudagur'] = 'Wednesday',
   ['fimmtudagur'] = 'Thursday',
   ['föstudagur'] = 'Friday',
   ['laugardagur'] = 'Saturday',
   ['sunnudagur'] = 'Sunday',
   ['mán'] = 'Mon',
   ['þri'] = 'Tue',
   ['mið'] = 'Wed',
   ['fim'] = 'Thu',
   ['fös'] = 'Fri',
   ['lau'] = 'Sat',
   ['sun'] = 'Sun',
   ['e.h.'] = 'pm',
   ['f.h.'] = 'am',
   ['e.h.'] = 'PM',
   ['f.h.'] = 'AM',
}

-- Skilgreinir töflu fyrir aðgerðina
local p = {}

-- Aðgerð fyrir skriftuna.
function p.main(frame)
	local config = frame.args
	return p._main(config[1], config[2], config[3])
end

function p._main(form, timedate, lang)
    if timedate ~= nil then
    	date = mw.ustring.lower( timedate ) 
	else
		date = os.date()
	end
	local s = date
    if form == nil then
        return '<div style="color:red">Villa: Gildi 1 vantar</div>'
    end
    local format = form -- Ná í gildi 1
    if lang == nil then
    	lang = "is"
    end
    
    if timedate and (tonumber(string.match(timedate, "%d%d%d%d+")) or 1) > 9999 then
		return '<div style="color:red">Villa: Sniðið styður aðeins ár upp að 9999</div>'
	end
    for is, en in pairs(conversionTable) do -- Umbreyta öllum strengjum í töflunni yfir á ensku.
        s = mw.ustring.gsub(s, is, en)
    end
    local c = mw.getContentLanguage():formatDate( format, s, is ) -- Lua útgáfan af #timel.
    if assert(c) == "00" then -- Fanga villur.
        return '<div style="color:red">Villa: Gildi 1 er ógilt</div>'
    end
    if lang == "en" then
    	for is, en in pairs(conversionTable) do -- Umbreyta öllum strengjum í töflunni yfir á ensku.
    		c = mw.ustring.gsub(c, is, en)
    	end
    end
    if format == "r" then
        for is, en in pairs(conversionTable) do -- Umbreyta strengjunum aftur yfir á íslensku.
            c = mw.ustring.gsub(c, en, is) 
        end
    end
    return c
end

return p -- Skila töflunni