Modul:Sandkasse/jeblad/Modul:External links/conf
Utseende
Moduldokumentasjon
[opprett]
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)
}
-- set up some aliases
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 p = {}
p.languageWeight = function (self, code)
local weight = 0
if self.languageWeights[code] then
weight = weight + self.languageWeights[code]
end
return weight
end
p.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.priority = function (self, code)
return self.prioritize[code]
end
p.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
---
-- metatable for the export
local mt = {}
---
-- adjust the installation of the module
mt.__call = function (self, 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