Dokumentation [visa] [redigera] [historik] [rensa sidcachen]


p = {}

local lokalstatus = { 	['se'] 			= 'Ej hotad',
					['secure'] 			= 'Ej hotad',
					['ej hotad'] 		= 'Ej hotad',
  					['dom']				= 'Husdjur',
  					['domesticated'] 	= 'Husdjur',
  					['dd']				= '[[Kunskapsbrist]]',
  					['data']			= '[[Kunskapsbrist]]',
  					['lc']				= '[[Livskraftig]]',
  					['nt']				= '[[Nära hotad]]',
  					['vu']				= '[[Sårbar]]',
  					['en']				= '[[Starkt hotad]]',
  					['cr']				= '[[Akut hotad]]',
  					['re']				= '[[Nationellt utdöd]]',
  					['fossil']			= '[[Fossil]]',
  					['pre']				= '[[Förhistorisk]]',
  					['text']			= 'Se text'
					}
local sverigekat = { 
	['dom']				= '[[Kategori:Husdjur]]',
	['domesticated']	= '[[Kategori:Husdjur]]',
  	['dd']				= '[[Kategori:Arter med kunskapsbrist som bevarandestatus]]',
  	['data']			= '[[Kategori:Arter med kunskapsbrist som bevarandestatus]]',
  	['lc']				= '[[Kategori:Livskraftiga arter]]',
  	['nt']				= '[[Kategori:Nära hotade arter]]',
  	['vu']				= '[[Kategori:Sårbara arter]]',
  	['en']				= '[[Kategori:Hotade arter i svensk flora och fauna]]',
  	['cr']				= '[[Kategori:Hotade arter i svensk flora och fauna]]',
  	['fossil']			= '[[Kategori:Fossila arter]]',
  	['pre']				= '[[Kategori:Förhistoriska arter]]'
  	}
	

function p.LokalStatus(frame)
	local args = frame:getParent().args
	return p.LokalStatusFromLua(args)
end
function p.LokalStatusFromLua(args)
	local s = {}
	local t = {}
	if args.sverigestatus and args.sverigestatus ~= '' then
		if lokalstatus[string.lower(args.sverigestatus)] then
			local typ = mw.text.tag('br', {}).. mw.text.tag('span', {style="font-size:.8em"}, '[[Rödlistning|Status]] i Sverige: ' .. lokalstatus[string.lower(args.sverigestatus)])
			if args['sverigestatus_ref'] or args['sverigestatus ref']  then
				typ = typ .. (args['sverigestatus_ref'] or args['sverigestatus ref'])
			end
			table.insert(s, typ)
			if sverigekat[args.sverigestatus] then
				table.insert(t, sverigekat[string.lower(args.sverigestatus)])
			end
		end
	end
	for i, j in pairs(args) do
		if type(i) == 'string' then
			local a = mw.text.split( i, '%s' )
			if #a > 1 and a[1] == 'status' and a[#a] ~= 'ref' then
				if lokalstatus[string.lower(j)] then
					local typ = mw.text.tag('br', {}).. mw.text.tag('span', {style="font-size:.8em"}, '[[Rödlistning|Status]] i ' .. mw.text.trim(string.sub(i, 8)) .. ': ' .. lokalstatus[string.lower(j)])
					local i2 = i .. ' ref'
					typ = typ .. (args[i2] or '')
					table.insert(s, typ)
					if i == 'status Sverige' and sverigekat[string.lower(j)] then
						table.insert(t, sverigekat[string.lower(j)])
					end
				end
			end
			local b = mw.text.split( i, '_' )
			if #b > 1 and b[1] == 'status' and b[#b] ~= 'ref' then
				if lokalstatus[string.lower(j)] then
					local typ = mw.text.tag('br', {}).. mw.text.tag('span', {style="font-size:.8em"}, '[[Rödlistning|Status]] i ' .. mw.text.trim(string.sub(i, 8)) .. ': ' .. lokalstatus[string.lower(j)])
					local i2 = i .. '_ref'
					typ = typ .. (args[i2] or '')
					table.insert(s, typ)
					if i == 'status_Sverige' and sverigekat[string.lower(j)] then
						table.insert(t, sverigekat[string.lower(j)])
					end
				end
			end
		end
	end
	return (table.concat(s) or '') .. ( table.concat(t) or '')
end

return p