Hopp til innhold

Modul:Sandkasse/JHS

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon


local p = {}

local adjektiver = {
	["Q16"] = "kanadisk",
	["Q17"] = "japansk",
	["Q20"] = "norsk",
	["Q27"] = "irsk",
	["Q28"] = "ungarsk",
	["Q29"] = "spansk",
	["Q30"] = "amerikansk",
	["Q31"] = "belgisk",
	["Q32"] = "luxembourgsk",
	["Q33"] = "finsk",
	["Q34"] = "svensk",
	["Q35"] = "dansk",
	["Q36"] = "polsk",
	["Q37"] = "litauisk",
	["Q38"] = "italiensk",
	["Q39"] = "sveitsisk",
	["Q40"] = "østerriksk",
	["Q41"] = "gresk",
	["Q43"] = "tyrkisk",
	["Q55"] = "nederlandsk",
	["Q77"] = "uruguayansk",
	["Q79"] = "egyptisk",
	["Q96"] = "meksikansk",
	["Q114"] = "kenyansk",
	["Q115"] = "etiopisk",
	["Q117"] = "ghanesisk",
	["Q142"] = "fransk",
	["Q148"] = "kinesisk",
	["Q155"] = "brasiliansk",
	["Q159"] = "russisk",
	["Q183"] = "tysk",
	["Q184"] = "hviterussisk",
	["Q189"] = "islandsk",
	["Q191"] = "estisk",
	["Q211"] = "latvisk",
	["Q212"] = "britisk",
	["Q213"] = "tsjekkisk",
	["Q214"] = "slovakisk",
	["Q215"] = "slovensk",
	["Q217"] = "moldovsk",
	["Q218"] = "rumensk",
	["Q219"] = "bulgarsk",
	["Q221"] = "makedonsk",
	["Q222"] = "albansk",
	["Q224"] = "kroatisk",
	["Q225"] = "bosnisk",
	["Q227"] = "aserbajdsjansk",
	["Q228"] = "andorransk",
	["Q229"] = "kypriotisk",
	["Q230"] = "georgisk",
	["Q232"] = "kasakhstansk",
	["Q233"] = "maltesisk",
	["Q235"] = "monegaskisk",
	["Q236"] = "montenegrinsk",
	["Q237"] = "vatikansk",
	["Q238"] = "sanmarinsk",
	["Q241"] = "kubansk",
	["Q242"] = "belizisk",
	["Q244"] = "barbadisk",
	["Q252"] = "indonesisk",
	["Q258"] = "sørafrikansk",
	["Q262"] = "algerisk",
	["Q265"] = "usbekisk",
	["Q298"] = "chilensk",
	["Q334"] = "singaporsk",
	["Q347"] = "liechtensteinsk",
	["Q398"] = "bahrainsk",
	["Q399"] = "armensk",
	["Q403"] = "serbisk",
	["Q408"] = "australsk",
	["Q414"] = "argentinsk",
	["Q419"] = "peruansk",
	["Q423"] = "nordkoreansk",
	["Q424"] = "kambodsjansk",
	["Q574"] = "østtimoresisk",
	["Q657"] = "tsjadisk",
	["Q664"] = "newzealandsk",
	["Q668"] = "indisk",
	["Q672"] = "tuvalsk",
	["Q678"] = "tongansk",
	["Q683"] = "samoansk",
	["Q685"] = "salomonsk",
	["Q686"] = "vanuatisk",
	["Q691"] = "papuansk",
	["Q695"] = "palauisk",
	["Q697"] = "naurisk",
	["Q702"] = "mikronesisk",
	["Q709"] = "marshallesisk",
	["Q710"] = "kiribatisk",
	["Q711"] = "mongolsk",
	["Q712"] = "fijisk",
	["Q717"] = "venezuelansk",
	["Q730"] = "surinamsk",
	["Q733"] = "paraguayansk",
	["Q734"] = "guyansk",
	["Q736"] = "ecuadoriansk",
	["Q739"] = "kolombiansk",
	["Q750"] = "boliiansk",
	["Q757"] = "sanktvinsentisk",
	["Q760"] = "sanktlusiansk",
	["Q763"] = "sanktkittisk",
	["Q765"] = "trinidadisk",
	["Q766"] = "jamaikansk",
	["Q769"] = "grenadisk",
	["Q774"] = "guatemalansk",
	["Q778"] = "bahamansk",
	["Q781"] = "antiguansk",
	["Q783"] = "honduransk",
	["Q784"] = "dominikisk",
	["Q786"] = "dominikansk",
	["Q790"] = "haitisk",
	["Q792"] = "salvadoransk",
	["Q794"] = "iransk",
	["Q796"] = "irakisk",
	["Q800"] = "kostarikansk",
	["Q801"] = "israelsk",
	["Q804"] = "panamansk",
	["Q805"] = "jemenittisk",
	["Q810"] = "jordansk",
	["Q811"] = "nicaraguansk",
	["Q813"] = "kirgisisk",
	["Q817"] = "kuwaitisk",
	["Q819"] = "laotisk",
	["Q822"] = "libanesisk",
	["Q826"] = "maldivisk",
	["Q833"] = "malaysisk",
	["Q836"] = "myanmarsk",
	["Q837"] = "nepalsk",
	["Q842"] = "omansk",
	["Q843"] = "pakistansk",
	["Q846"] = "qatarsk",
	["Q851"] = "saudiarabisk",
	["Q854"] = "srilankisk",
	["Q858"] = "syrisk",
	["Q863"] = "tadsjikisk",
	["Q869"] = "thailandsk",
	["Q874"] = "turkmensk",
	["Q878"] = "emiratarabisk",
	["Q881"] = "vietnamesisk",
	["Q884"] = "sørkoreansk",
	["Q889"] = "afghansk",
	["Q902"] = "bangladeshisk",
	["Q912"] = "malisk",
	["Q916"] = "angolansk",
	["Q917"] = "bhutansk",
	["Q921"] = "bruneisk",
	["Q924"] = "tanzaniansk",
	["Q928"] = "filippinsk",
	["Q929"] = "sentralafrikansk",
	["Q945"] = "togolesisk",
	["Q948"] = "tunisisk",
	["Q953"] = "zambisk",
	["Q954"] = "zimbabwisk",
	["Q958"] = "sørsudansk",
	["Q962"] = "beninsk",
	["Q963"] = "botswansk",
	["Q965"] = "burkinsk",
	["Q967"] = "burundisk",
	["Q970"] = "komorisk",
	["Q971"] = "brazzavillekongolesisk",
	["Q974"] = "kongolesisk",
	["Q977"] = "djiboutisk",
	["Q983"] = "ekvatorialguineansk",
	["Q986"] = "eritreisk",
	["Q1000"] = "gabonsk",
	["Q1005"] = "gambisk",
	["Q1006"] = "guineansk",
	["Q1007"] = "bissauguineansk",
	["Q1008"] = "ivoriansk",
	["Q1009"] = "kamerunsk",
	["Q1011"] = "kappverdisk",
	["Q1013"] = "lesothisk",
	["Q1014"] = "liberisk",
	["Q1016"] = "libysk",
	["Q1019"] = "madagassisk",
	["Q1020"] = "malawisk",
	["Q1025"] = "mauritansk",
	["Q1027"] = "mauritisk",
	["Q1028"] = "marokkansk",
	["Q1029"] = "mosambikisk",
	["Q1030"] = "namibisk",
	["Q1032"] = "nigersk",
	["Q1033"] = "nigariansk",
	["Q1036"] = "ugandisk",
	["Q1037"] = "rwandisk",
	["Q1039"] = "saotomesisk",
	["Q1041"] = "senegalesisk",
	["Q1042"] = "seychellisk",
	["Q1044"] = "sierraleonsk",
	["Q1045"] = "somalisk",
	["Q1050"] = "swazilandsk",
	["Q6250"] = "saharawisk",
	["Q219060"] = "palestinsk",
	}

function p.test(frame)
	local artikkel, nasjonalitet, yrke, yob, yod = frame.args["artikkel"] .. ",", frame.args["nasjonalitet"], frame.args["yrke"], frame.args["yob"], frame.args["yod"]
	local tekst = {artikkel}
	if nasjonalitet then
		local nasjonaliteter = mw.text.split(nasjonalitet, ";")
		for i,v in ipairs(nasjonaliteter) do
			nasjonaliteter[i] = adjektiver[v]
		end
		table.sort(nasjonaliteter, function(a,b) return #a<#b end)
		if #nasjonaliteter == 1 then
			table.insert(tekst, nasjonaliteter[1])
		elseif #nasjonaliteter == 2 then
			table.insert(tekst, nasjonaliteter[1] .. "-" .. nasjonaliteter[2])
		end
	end
	if yrke then
		local yrker = mw.text.split(yrke, ";")
		if #yrker == 1 then
			table.insert(tekst, table.concat(yrker, " og "))
		else
			table.insert(tekst, table.concat(yrker, ", ", 1, #yrker-1) .. " og " .. yrker[#yrker])
		end
	end
	if (yob and #yob ~= 0) or (yod and #yod ~= 0) then
		if (yob and #yob ~= 0) and (yod and #yod ~= 0) then
			table.insert(tekst, "(" .. yob .. "–" .. yod .. ")")
		elseif (yob and #yob ~= 0) then
			table.insert(tekst, "(f. " .. yob .. ")")
		else
			table.insert(tekst, "(d. " .. yod .. ")")
		end
	end
	return table.concat(tekst, " ")
end

return p