Modul:Taksoboks

Fra wikisida.no
Hopp til navigering Hopp til søk

Dokumentasjon for denne modulen kan opprettes på Modul:Taksoboks/dok

local p = {}

p.formattedScientificName = require('Modul:FormatertVitenskapsnavn')
--[[
Taksoboksens seksjon som viser biologisk klassifisering har en etikett i venstre kolonne og navnet på et nivå i hierarkiet i høyre kolonne. De forskjellige nivåenes etiketter baseres på de latinske navnene i tabellen translations. De oversatte etikettene på nivåene svarer til Petter Bøckmans Bruker:Petter_Bøckman/fornorske_rang.

Funksjonen tester først om parameteret inneholder virus, unranked_ eller ikke_rankert_ og vil returnere «Gruppe» hvis den oppdager det. Hvis ikke vil den gå gjennom nøklene i translations og returnere oversettelsen straks den finner den.
]]

p.translateRank = function (frame)
    
    local translations = {
    	['superdomain'] = 'Overdomene',
	    ['domain'] = 'Domene',
	    ['superregnum'] = 'Overrike',
	    ['regnum'] = 'Rike',
	    ['subregnum'] = 'Underrike',
	    ['superdivisio'] = 'Overdivisjon',
	    ['superphylum'] = 'Overrekke',
	    ['divisio'] = 'Divisjon',
	    ['phylum'] = 'Rekke',
	    ['zoodivisio'] = 'Divisjon',
	    ['subdivisio'] = 'Underdivisjon',
	    ['subphylum'] = 'Underrekke',
	    ['infraphylum'] = 'Infrarekke',
	    ['microphylum'] = 'Mikrorekke',
	    ['nanophylum'] = 'Nanorekke',
	    ['superclassis'] = 'Overklasse',
	    ['classis'] = 'Klasse',
	    ['subclassis'] = 'Underklasse',
	    ['infraclassis'] = 'Infraklasse',
	    ['magnordo'] = 'Hyperorden',
	    ['superordo'] = 'Overorden',
	    ['ordo'] = 'Orden',
	    ['subordo'] = 'Underorden',
	    ['infraordo'] = 'Infraorden',
	    ['parvordo'] = 'Parvorden',
	    ['superfamilia'] = 'Overfamilie',
	    ['familia'] = 'Familie',
	    ['subfamilia'] = 'Underfamilie',
	    ['supertribus'] = 'Overtribus',
	    ['tribus'] = 'Tribus',
	    ['subtribus'] = 'Undertribus',
	    ['alliance'] = 'Allianse',
	    ['genus'] = 'Slekt',
	    ['subgenus'] = 'Underslekt',
	    ['sectio'] = 'Seksjon',
	    ['zoosectio'] = 'Seksjon',
	    ['subsectio'] = 'Underseksjon',
	    ['zoosubsectio'] = 'Underseksjon',
	    ['series'] = 'Serien',
	    ['subseries'] = 'Underserie',
	    ['species_group'] = 'Artsgruppe',
	    ['species_subgroup'] = 'Artsundergruppe',
	    ['species_complex'] = 'Artskompleks',
	    ['species'] = 'Art',
	    ['subspecies'] = 'Underart',
	    ['variety'] = 'Varietet',
	    ['form'] = 'Form', -- Herfra og ut er ikke støttet av Mal:Taksoboks, og finnes derfor ikke i params
	    ['infraspecies'] = 'Infraart',
	    ['infratribus'] = 'Infratribus',
	    ['subzoodivisio'] = 'Subdivisjon',
	    ['micrordo'] = 'Mikro-orden',
	    ['grandordo'] = 'Grandorden',
	    ['cohort'] = 'Kohort', -- Skal kursiveres?
	    ['informal'] = 'Uformell gruppe', -- Skal kursiveres?
	    ['informal_group'] = 'Uformell gruppe', -- Skal kursiveres?
	    ['stem group'] = 'Kronegruppe', -- Skal kursiveres?
	    ['crown group'] = 'Kronegruppe', -- Skal kursiveres?
	    ['total group'] = 'Kronegruppe', -- Skal kursiveres?
	    ['legion'] = '{{ucfirst:{{{1}}}}}', -- Skal kursiveres?
	    ['infralegion'] = '{{ucfirst:{{{1}}}}}', -- Skal kursiveres?
	    ['superlegion'] = 'Overlegion', -- Skal kursiveres?
	    ['sublegion'] = 'Underlegion', -- Skal kursiveres?
	    ['cladus'] = 'Gruppe',
	    ['clade'] = 'Gruppe',
	    ['ichnostem-group'] = 'Iknokronegruppe', -- Skal kursiveres?
	    ['ichnosuperclassis'] = 'Iknooverklasse',
	    ['ichnoclassis'] = 'Iknoklasse',
	    ['ichnosubclassis'] = 'Iknounderklasse',
	    ['ichnoinfraclassis'] = 'Iknoinfraklasse',
	    ['ichnodivisio'] = 'Iknodivisjon',
	    ['ichnosubdivisio'] = 'Iknounderdivisjon',
	    ['ichnoinfradivisio'] = 'Iknoinfradivisjon',
	    ['ichnomagnordo'] = 'Iknohyperorden',
	    ['ichnosuperordo'] = 'Iknooverorden',
	    ['ichnograndordo'] = 'Iknograndorden',
	    ['ichnomicrordo'] = 'Iknomikrorden',
	    ['ichnoordo'] = 'Iknoorden',
	    ['ichnosubordo'] = 'Iknoudnerorden',
	    ['ichnoinfraordo'] = 'Iknoinfraorden',
	    ['ichnoparvordo'] = 'Iknoparvorden',
	    ['ichnosuperfamilia'] = 'Iknooverfamilie',
	    ['ichnofamilia'] = 'Iknofamilie',
	    ['ichnosubfamilia'] = 'Iknounderfamilie',
	    ['ichnogenus'] = 'Iknoslekt',
	    ['ichnosubgenus'] = 'Iknounderslekt',
	    ['ichnospecies'] = 'Iknoart',
	    ['ichnosubspecies'] = 'Iknounderart',
	    ['ichnoinfraspecies'] = 'Iknoinfraart',
	    ['ooclassis'] = 'Ooklasse',
	    ['oosubclassis'] = 'Oounderklasse',
	    ['oosupercohort'] = 'Oooverkohort', -- Skal kursiveres?
	    ['oocohort'] = 'Ookohort', -- Skal kursiveres?
	    ['oomagnordo'] = 'Oohyperorden',
	    ['oosuperordo'] = 'Ooverorden',
	    ['oordo'] = 'Oorden',
	    ['morphotype'] = 'Morfotype',
	    ['oofamilia'] = 'Oofamilie',
	    ['oogenus'] = 'Ooslekt',
	    ['oosubgenus'] = 'Oounderslekt',
	    ['oospecies'] = 'Ooart',
	    ['oosubspecies'] = 'Oounderart',
	    ['ooinfraspecies'] = 'Ooinfraart',
    }
    local label = ""
    local param_name = frame.args['param_name']
    
    local unranked = {
    	"ikke_rankert_",
    	"unranked_",
    	"virus",
    }
    
    for _,s in ipairs(unranked) do
    	if mw.ustring.match( param_name , s ) ~= nil then
    		return "Gruppe"
    	end
    end
    
    for k,v in pairs(translations) do

    	if param_name == k then
    		label = v
    	end
    	
    	if label ~= "" then
    		return label	
    	end
    	
    end

	return label
end

return p