Hopp til innhold

Modul:Sandkasse/jeblad/Modul:External links/conf

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon


local languageWeights = {}
languageWeights['en'] = {
	['Q9043'] = 100,	-- norsk
	['Q25167'] = 110,	-- bokmål (målform av norsk)
	['Q25164'] = 90,	-- nynorsk (målform av norsk)
	['Q9035'] = 80,	-- dansk (nærstående språk)
	['Q9027']= 80,	-- svensk (nærstående språk)
	['Q1860'] = 70,	-- engelsk (vanlig å kunne dette språket)
	['Q7979'] = 70,	-- britisk-engelsk (variant av engelsk)
	['Q7976'] = 70,	-- amerikansk-engelsk (variant av engelsk)
						-- flere varianter av engelsk...
	['Q188'] = 60,	-- tysk (vanlig å kunne dette språket)
	['Q150'] = 50,	-- fransk (vanlig å kunne dette språket)	
	['Q33947'] = 40,	-- nordsamisk (offisielt språk i norge)
	['Q13293'] = 40,	-- sørsamisk (offisielt språk i norge)
	['Q56322'] = 40,	-- lulesamisk (offisielt språk i norge)
	['Q165795'] = 30,	-- kvensk (offisielt språk i norge)
	['Q36641'] = 20,	-- romani (offisielt språk i norge)
	['Q13201'] = 30,	-- romanes (offisielt språk i norge)
}
languageWeights['nb'] = languageWeights['en']
languageWeights['nn'] = languageWeights['en']

local fragmentWeights = {}
fragmentWeights['en'] = {
	['com'] = 20,
	['net'] = 20,
	['org'] = 20,
	['no'] = 30,
	['sv'] = 20,
	['dk'] = 20,
	['en'] = 20,
	['de'] = 10,
	['nl'] = 10,
}
fragmentWeights['nb'] = fragmentWeights['en']
fragmentWeights['nn'] = fragmentWeights['en']

--the following will be removed
local prioritize = {}
prioritize['en'] = {
	['Q9043'] = true,	-- norsk
	['Q25167'] = true,	-- bokmål (målform av norsk)
	['Q25164'] = true,	-- nynorsk (målform av norsk)
	['Q9035'] = true,	-- dansk (nærstående språk)
	['Q9027']= true,	-- svensk (nærstående språk)
	['Q1860'] = true,	-- engelsk (vanlig å kunne dette språket)
	['Q7979'] = true,	-- britisk-engelsk (variant av engelsk)
	['Q7976'] = true,	-- amerikansk-engelsk (variant av engelsk)
						-- flere varianter av engelsk...
	['Q188'] = true,	-- tysk (vanlig å kunne dette språket)
	['Q150'] = true,	-- fransk (vanlig å kunne dette språket)	
	['Q33947'] = true,	-- nordsamisk (offisielt språk i norge)
	['Q13293'] = true,	-- sørsamisk (offisielt språk i norge)
	['Q56322'] = true,	-- lulesamisk (offisielt språk i norge)
	['Q165795'] = true,	-- kvensk (offisielt språk i norge)
	['Q36641'] = true,	-- romani (offisielt språk i norge)
	['Q13201'] = true,	-- romanes (offisielt språk i norge)
}
prioritize['nb'] = prioritize['en']
prioritize['nn'] = prioritize['en']

local domain = {}
domain['en'] = {
	['com'] = '"com-domain"',
	['net'] = '"net-domain"',
	['org'] = '"org-domain"',
	['no'] = '"Norwegian domain"',
	['sv'] = '"Swedish domain"',
	['dk'] = '"Danish domain"',
	['de'] = '"German domain"',
	['nl'] = '"Dutch domain"',
}
domain['no'] = {
	['com'] = '«com-domene»',
	['net'] = '«net-domene»',
	['org'] = '«org-domene»',
	['no'] = '«norsk domene»',
	['sv'] = '«svensk domene»',
	['dk'] = '«dansk domene»',
	['de'] = '«tysk domene»',
	['nl'] = '«nederlandsk domene»',
}
domain['nb'] = domain['no']
domain['nn'] = domain['no']

local messages = {}
messages['en'] = {
	['qualifier-default-empty'] = 'empty value (an error)',
	['qualifier-P407-empty'] = 'empty language (an error)',
	['qualifier-default-missing'] = 'missing qualifier',
	['qualifier-default-missing-P407'] = 'unknown language',
	['qualifier-P856-missing'] = 'unknown language',
	['qualifier-P1019-missing'] = 'unkown language',
	['qualifier-P1581-missing'] = 'unknown language',
	['qualifier-P856-missing-P407'] = 'unknown language',
	['qualifier-P1019-missing-P407'] = 'unkown language',
	['qualifier-P1581-missing-P407'] = 'unknown language',
	['ext-link-normal'] = '[$1 $2]',
	['ext-link-preferred'] = '[$1 $2] (preferred)',
	['initial-P407-combiner'] = '/',
	['final-P407-combiner'] = '$1/$2',
	['initial-default-combiner'] = ', ',
	['final-default-combiner'] = '$1 and $2',
	['first-list-item'] = '$1: $2',
	['rest-list-item'] = '* $1: $2',
	['first-list-item-with-additional'] = '$1: $2 $3',
	['rest-list-item-with-additional'] = '* $1: $2 $3',
	['no-list-available'] = 'No $1 available',
	['cat-inclusion'] = 'Articles with $1',
	['cat-exclusion'] = 'Articles without $1',
	['no-links-available'] = 'No automatic links available',
}
messages['nb'] = {
	['qualifier-default-empty'] = 'tom verdi (en feil)',
	['qualifier-P407-empty'] = 'tomt språk (en feil)',
	['qualifier-default-missing'] = 'mangler kvalifikator',
	['qualifier-default-missing-P407'] = 'ukjent språk',
	['qualifier-P856-missing'] = 'ukjent språk',
	['qualifier-P1019-missing'] = 'ukjent språk',
	['qualifier-P1581-missing'] = 'ukjent språk',
	['qualifier-P856-missing-P407'] = 'ukjent språk',
	['qualifier-P1019-missing-P407'] = 'ukjent språk',
	['qualifier-P1581-missing-P407'] = 'ukjent språk',
	['ext-link-normal'] = '[$1 $2]',
	['ext-link-preferred'] = '[$1 $2] (foretrukket)',
	['initial-P407-combiner'] = '/',
	['final-P407-combiner'] = '$1/$2',
	['initial-default-combiner'] = ', ',
	['final-default-combiner'] = '$1 og $2',
	['first-list-item'] = '$1 på $2',
	['rest-list-item'] = '* $1 på $2',
	['first-list-item-with-additional'] = '$1 på $2 $3',
	['rest-list-item-with-additional'] = '* $1 på $2 $3',
	['no-list-available'] = 'Ikke noe $1 tilgjengelig',
	['cat-inclusion'] = 'Artikler med $1',
	['cat-exclusion'] = 'Artikler uten $1',
	['no-links-available'] = 'Ingen automatiske lenker tilgjengelig',
}
messages['nn'] = {
	['qualifier-default-empty'] = 'tom verdi (ein feil)',
	['qualifier-P407-empty'] = 'tomt språk (ein feil)',
	['qualifier-default-missing'] = 'manglar kvalifikator',
	['qualifier-default-missing-P407'] = 'ukjend språk',
	['qualifier-P856-missing'] = 'ukjend språk',
	['qualifier-P1019-missing'] = 'ukjend språk',
	['qualifier-P1581-missing'] = 'ukjend språk',
	['qualifier-P856-missing-P407'] = 'ukjend språk',
	['qualifier-P1019-missing-P407'] = 'ukjend språk',
	['qualifier-P1581-missing-P407'] = 'ukjend språk',
	['ext-link-normal'] = '[$1 $2]',
	['ext-link-preferred'] = '[$1 $2] (foretrekt)',
	['initial-P407-combiner'] = '/',
	['final-P407-combiner'] = '$1/$2',
	['initial-default-combiner'] = ', ',
	['final-default-combiner'] = '$1 og $2',
	['first-list-item'] = '$1: $2',
	['rest-list-item'] = '* $1: $2',
	['first-list-item-with-additional'] = '$1: $2 $3',
	['rest-list-item-with-additional'] = '* $1: $2 $3',
	['no-list-available'] = 'Ikkje nokon $1 tilgjengeleg',
	['cat-inclusion'] = 'Artiklar med $1',
	['cat-exclusion'] = 'Artiklar utan $1',
	['no-links-available'] = 'Ingen automatisk lekk tilgjengeleg',
}

local p = {
	['languageWeight'] = function (self, code)
		local weight = 0
		if self.languageWeights[code] then
			weight = weight + self.languageWeights[code]
		end
		return weight
	end,
	['fragmentWeight'] = function (self, url)
		local maxWeight = 0
		for v in url:gfind("%a+") do
		--for _,v in url:gsub('%a') do
			if self.fragmentWeights[v] and self.fragmentWeights[v] > maxWeight then
				maxWeight = self.fragmentWeights[v]
			end
		end
		return maxWeight
	end,
	['p'] = function (self, code)
		return self.prioritize[code]
	end,
	['guess'] = function (self, uri)
		-- this is for country codes
		local _,_,code = uri:match('//([-%w]+)%.([-%w]+)%.(%w+)')
		if code and self.domain[code] then
			return self.domain[code]
		end
		local _,code = uri:match('//([-%w]+)%.(%w+)')
		if code and self.domain[code] then
			return self.domain[code]
		end
		return uri
	end,
	['g'] = function (self, ...)
		for _,v in ipairs(arg) do
			if self.messages[v] then
				return self.messages[v]
			end
		end
		return '<'..arg[1]..'>'
	end
}

-- metatable for the export
local mt = {
	-- adjust the installation of the module
	['__call'] = function (self, lang)
		self.messages = messages[lang]
		self.prioritize = prioritize[lang]
		self.domain = domain[lang]
		self.languageWeights = languageWeights[lang]
		self.fragmentWeights = fragmentWeights[lang]
		return self
	end
}

-- install the metatable
setmetatable(p, mt)

return p