« Module:Catégorisation badges » : différence entre les versions

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
correction erreur Lua que j'ai quelquefois rencontrée « bad argument #1 to 'pairs' (table expected, got nil) » (en théorie il devrait toujours y avoir un sitelinks avec au moins la page frwiki vu qu'on est dessus, mais en pratique il y a quelquefois des déplacements/merges d'éléments wikidata et le temps de la propagation les liens peuvent être manquants)
cf. révisions du 3 mars 2023 de Module:Catégorisation badges/Bac à sable pour les crédits à Zebulon84 ; cette révision est une copie de la dernière version pour répondre à la demande formulée par Zebulon84 sur DIPP.
Ligne 1 : Ligne 1 :
local p = { }
local p = { }


--[=[
local badgesList = {
local badgesList = {
Q6540291 = 'portail de qualité',
Q6540291 = 'portail de qualité',
Ligne 15 : Ligne 16 :
Q17580682 = 'Top-importance articles',
Q17580682 = 'Top-importance articles',
}
}
]=]


local badgesCategory = {
local badgesCategory = {
Ligne 22 : Ligne 24 :
}
}


local default = ' dans une default langue'
local linkCategorySuffix = {
local linkCategorySuffix = {
-- cf. https://meta.wikimedia.org/wiki/List_of_Wikipedias (les wiki avec moins de 5 000 articles sans catégorie dédièe ont été ignorés)
default = ' dans une autre langue',
abwiki = default,
acewiki = default,
afwiki = ' en afrikaans',
afwiki = ' en afrikaans',
alswiki = ' en alsacien',
alswiki = ' en alsacien',
Ligne 29 : Ligne 34 :
anwiki = ' en aragonais',
anwiki = ' en aragonais',
arwiki = ' en arabe',
arwiki = ' en arabe',
arywiki = default,
arzwiki = ' en arabe égyptien',
arzwiki = ' en arabe égyptien',
astwiki = ' en asturien',
aswiki = ' en assamais',
aswiki = ' en assamais',
astwiki = ' en asturien',
avkwiki = default,
aywiki = default,
azwiki = ' en azéri',
azwiki = ' en azéri',
azbwiki = default,
bawiki = ' en bachkir',
bawiki = ' en bachkir',
banwiki = default,
barwiki = ' en bavarois',
barwiki = ' en bavarois',
bat_smgwiki = ' en samogitien',
bat_smgwiki = ' en samogitien',
bclwiki = default,
bewiki = ' en biélorusse',
bewiki = ' en biélorusse',
be_x_oldwiki = ' en biélorusse',
be_x_oldwiki = ' en biélorusse', -- https://be-tarask.wikipedia.org, mais son code interne est be_x_oldwiki
bgwiki = ' en bulgare',
bgwiki = ' en bulgare',
bhwiki = default,
bjnwiki = default,
bnwiki = ' en bengali',
bnwiki = ' en bengali',
bowiki = default,
bpywiki = ' en bishnupriya',
bpywiki = ' en bishnupriya',
brwiki = ' en breton',
brwiki = ' en breton',
bswiki = ' en bosnien',
bswiki = ' en bosnien',
bugwiki = default,
bxrwiki = ' en bouriate',
bxrwiki = ' en bouriate',
cawiki = ' en catalan',
cawiki = ' en catalan',
cdowiki = ' en mindong',
cdowiki = ' en mindong',
cewiki = ' en tchétchène',
cebwiki = ' en cebuano',
cebwiki = ' en cebuano',
cewiki = ' en tchétchène',
ckbwiki = ' en sorani',
ckbwiki = ' en sorani',
cowiki = default,
crhwiki = default,
cswiki = ' en tchèque',
cswiki = ' en tchèque',
csbwiki = default,
cvwiki = ' en tchouvache',
cvwiki = ' en tchouvache',
cywiki = ' en gallois',
cywiki = ' en gallois',
dawiki = ' en danois',
dawiki = ' en danois',
dagwiki = default,
dewiki = ' en allemand',
dewiki = ' en allemand',
diqwiki = ' en zazaki',
diqwiki = ' en zazaki',
dvwiki = ' en divehi',
dvwiki = ' en divehi',
elwiki = ' en grec',
elwiki = ' en grec',
emlwiki = default,
simplewiki = ' en anglais',
simplewiki = ' en anglais',
enwiki = ' en anglais',
enwiki = ' en anglais',
Ligne 66 : Ligne 86 :
fawiki = ' en persan',
fawiki = ' en persan',
fiwiki = ' en finnois',
fiwiki = ' en finnois',
['fiu-vrowiki'] = default,
fowiki = ' en féroïen',
fowiki = ' en féroïen',
frpwiki = default,
frrwiki = ' en frison septentrional',
frrwiki = ' en frison septentrional',
fywiki = ' en frison occidental',
fywiki = ' en frison occidental',
gawiki = ' en irlandais',
gawiki = ' en irlandais',
ganwiki = default,
gdwiki = ' en gaélique écossais',
gdwiki = ' en gaélique écossais',
glwiki = ' en galicien',
glwiki = ' en galicien',
glkwiki = default,
gnwiki = default,
gorwiki = default,
guwiki = ' en gujarati',
guwiki = ' en gujarati',
gvwiki = ' en mannois',
gvwiki = ' en mannois',
hawiki = default,
hakwiki = default,
hewiki = ' en hébreu',
hewiki = ' en hébreu',
hiwiki = ' en hindi',
hiwiki = ' en hindi',
hifwiki = default,
hrwiki = ' en croate',
hrwiki = ' en croate',
hsbwiki = default,
htwiki = ' en haïtien',
htwiki = ' en haïtien',
huwiki = ' en hongrois',
huwiki = ' en hongrois',
hywiki = ' en arménien',
hywiki = ' en arménien',
hywwiki = default,
iawiki = ' en interlingua',
iawiki = ' en interlingua',
idwiki = ' en indonésien',
idwiki = ' en indonésien',
iewiki = default,
igwiki = default,
ilowiki = default,
iowiki = default,
iswiki = ' en islandais',
iswiki = ' en islandais',
itwiki = ' en italien',
itwiki = ' en italien',
Ligne 87 : Ligne 122 :
jvwiki = ' en javanais',
jvwiki = ' en javanais',
kawiki = ' en géorgien',
kawiki = ' en géorgien',
kabwiki = default,
klwiki = ' en groenlandais',
kkwiki = ' en kazakh',
kkwiki = ' en kazakh',
klwiki = ' en groenlandais',
kmwiki = ' en khmer',
kmwiki = ' en khmer',
knwiki = ' en kannada',
knwiki = ' en kannada',
Ligne 95 : Ligne 131 :
kuwiki = ' en kurde',
kuwiki = ' en kurde',
kvwiki = ' en komi',
kvwiki = ' en komi',
kwwiki = default,
kywiki = default,
lawiki = ' en latin',
lawiki = ' en latin',
lbwiki = ' en luxembourgeois',
lbwiki = ' en luxembourgeois',
liwiki = ' en limbourgeois',
liwiki = ' en limbourgeois',
lijwiki = default,
lldwiki = default,
lmowiki = ' en lombard',
lmowiki = ' en lombard',
lowiki = ' en lao',
lowiki = ' en lao',
Ligne 105 : Ligne 145 :
map_bmswiki = ' en banyumasan',
map_bmswiki = ' en banyumasan',
mgwiki = ' en malgache',
mgwiki = ' en malgache',
mhrwiki = default,
miwiki = default,
minwiki = default,
mkwiki = ' en macédonien',
mkwiki = ' en macédonien',
mlwiki = ' en malayâlam',
mlwiki = ' en malayâlam',
mnwiki = ' en mongol',
mnwiki = ' en mongol',
mniwiki = default,
mrwiki = ' en marâthî',
mrwiki = ' en marâthî',
mrjwiki = default,
mswiki = ' en malais',
mswiki = ' en malais',
mtwiki = ' en maltais',
mtwiki = ' en maltais',
mywiki = ' en birman',
mywiki = ' en birman',
myvwiki = default,
mznwiki = ' en mazandarani',
mznwiki = ' en mazandarani',
nahwiki = ' en nahuatl',
nahwiki = ' en nahuatl',
napwiki = default,
ndswiki = default,
nds_nlwiki = ' en bas-saxon néerlandais',
nds_nlwiki = ' en bas-saxon néerlandais',
newiki = ' en népalais',
newiki = ' en népalais',
newwiki = default,
nlwiki = ' en néerlandais',
nlwiki = ' en néerlandais',
nnwiki = ' en norvégien nynorsk',
nnwiki = ' en norvégien nynorsk',
nowiki = ' en norvégien',
nowiki = ' en norvégien',
nsowiki = default,
nvwiki = default,
ocwiki = ' en occitan',
ocwiki = ' en occitan',
orwiki = default,
oswiki = default,
pawiki = default,
pamwiki = ' en pampangan',
pamwiki = ' en pampangan',
pcdwiki = default,
piwiki = ' en pali',
piwiki = ' en pali',
plwiki = ' en polonais',
plwiki = ' en polonais',
pmswiki = default,
pnbwiki = default,
pswiki = default,
ptwiki = ' en portugais',
ptwiki = ' en portugais',
quwiki = ' en quechua',
quwiki = ' en quechua',
rowiki = ' en roumain',
rowiki = ' en roumain',
['roa-tarawiki'] = default,
ruwiki = ' en russe ',
ruwiki = ' en russe ',
ruewiki = default,
sawiki = ' en sanskrit',
sawiki = ' en sanskrit',
sahwiki = default,
satwiki = default,
scwiki = default,
scnwiki = ' en sicilien',
scnwiki = ' en sicilien',
scowiki = ' en scots',
scowiki = ' en scots',
sdwiki = ' en sindhi',
sdwiki = ' en sindhi',
sewiki = default,
shwiki = ' en serbo-croate',
shwiki = ' en serbo-croate',
shnwiki = default,
siwiki = ' en cingalais',
siwiki = ' en cingalais',
skwiki = ' en slovaque',
skwiki = ' en slovaque',
skrwiki = default,
slwiki = ' en slovène',
slwiki = ' en slovène',
smnwiki = default,
snwiki = default,
sowiki = default,
sqwiki = ' en albanais',
sqwiki = ' en albanais',
srwiki = ' en serbe',
srwiki = ' en serbe',
Ligne 141 : Ligne 210 :
swwiki = ' en swahili',
swwiki = ' en swahili',
szlwiki = ' en silésien',
szlwiki = ' en silésien',
uzwiki = ' en ouzbek',
tawiki = ' en tamoul',
tawiki = ' en tamoul',
tewiki = ' en télougou',
tewiki = ' en télougou',
tgwiki = default,
thwiki = ' en thaï',
thwiki = ' en thaï',
tkwiki = default,
tlwiki = ' en tagalog',
tlwiki = ' en tagalog',
tnwiki = ' en tswana',
tnwiki = ' en tswana',
trwiki = ' en turc',
trwiki = ' en turc',
ttwiki = ' en tatar',
ttwiki = ' en tatar',
tumwiki = default,
udmwiki = default,
ugwiki = default,
ukwiki = ' en ukrainien',
ukwiki = ' en ukrainien',
urwiki = ' en ourdou',
urwiki = ' en ourdou',
uzwiki = ' en ouzbek',
uzwiki = ' en ouzbek',
vecwiki = ' en vénitien',
vecwiki = ' en vénitien',
vepwiki = default,
viwiki = ' en vietnamien',
viwiki = ' en vietnamien',
vlswiki = ' en flamand occidental',
vlswiki = ' en flamand occidental',
Ligne 158 : Ligne 232 :
wawiki = ' en wallon',
wawiki = ' en wallon',
warwiki = ' en waray-waray',
warwiki = ' en waray-waray',
wuuwiki = default,
yiwiki = ' en yiddish',
xmfwiki = ' en mingrélien',
xmfwiki = ' en mingrélien',
yiwiki = ' en yiddish',
yowiki = ' en yoruba',
yowiki = ' en yoruba',
zeawiki = default,
zhwiki = ' en chinois',
zhwiki = ' en chinois',
zh_classicalwiki = ' en chinois classique',
zh_classicalwiki = ' en chinois classique',
zh_min_nanwiki = ' en minnan',
zh_min_nanwiki = ' en minnan',
zh_yuewiki = ' en cantonais',
zh_yuewiki = ' en cantonais',
zuwiki = default,
}
}


function p.badgesCategories( frame )
function p.badgesCategories( frame )
local entity = mw.wikibase.getEntity()
local entity = mw.wikibase.getEntityIdForCurrentPage()
local wikitext = {}
local wikitext = {}
local categoryNs = mw.site.namespaces[14].name
local categoryNs = mw.site.namespaces[14].name
if not entity or not entity.sitelinks then
if not entity then
return ''
return ''
end
end


for siteid, linkTable in pairs( entity.sitelinks ) do
for siteid, suffix in pairs( linkCategorySuffix ) do
local badges = mw.wikibase.getBadges( entity, siteid )
if siteid:sub( -4 ) == 'wiki' and siteid ~= 'frwiki' then
for i, badgeId in ipairs( linkTable.badges ) do
for i, badgeId in ipairs( badges ) do
if badgesCategory[ badgeId ] then
if badgesCategory[ badgeId ] then
local main = badgesCategory[ badgeId ]
local main = badgesCategory[ badgeId ]
local suffix = linkCategorySuffix[ siteid ] or linkCategorySuffix.default
local category = string.format('[[%s:%s]]', categoryNs, main .. suffix )
local category = string.format('[[%s:%s]]', categoryNs, main .. suffix )
table.insert( wikitext, category )
table.insert( wikitext, category )
end
end
end
end
end
end
end
return table.concat( wikitext )
return table.concat( wikitext )
end
end

Version du 11 mars 2023 à 01:55

 Documentation[voir] [modifier] [historique] [purger]

Ce module permet de catégoriser les pages ayant un label de qualité dans une autre langue. Voir Catégorie:Article de qualité dans une autre langue.

Il est appelé par le modèle {{Portail}} via le modèle {{Catégorisation badges}}.




local p = { }

--[=[
local badgesList = {
	Q6540291 = 'portail de qualité',
	Q6540326 = 'thème de qualité',
	Q17437796 = 'article de qualité',
	Q17437798 = 'bon article',
	Q17506997 = 'liste de qualité',
	Q17507019 = 'Le saviez-vous',
	Q17559452 = 'recommended article',
	Q17580674 = 'featured portal',
	Q17580678 = 'A-Class articles',
	Q17580679 = 'B-Class articles',
	Q17580680 = 'C-Class articles',
	Q17580682 = 'Top-importance articles',
}
]=]

local badgesCategory = {
	Q17437796 = 'Article de qualité',
	Q17437798 = 'Bon article',
	Q17506997 = 'Article de qualité'  -- 'liste de qualité',
}

local default = ' dans une default langue'
local linkCategorySuffix = {
	-- cf. https://meta.wikimedia.org/wiki/List_of_Wikipedias (les wiki avec moins de 5 000 articles sans catégorie dédièe ont été ignorés)
	abwiki = default,
	acewiki = default,
	afwiki = ' en afrikaans',
	alswiki = ' en alsacien',
	amwiki = ' en amharique',
	anwiki = ' en aragonais',
	arwiki = ' en arabe',
	arywiki = default,
	arzwiki = ' en arabe égyptien',
	aswiki = ' en assamais',
	astwiki = ' en asturien',
	avkwiki = default,
	aywiki = default,
	azwiki = ' en azéri',
	azbwiki = default,
	bawiki = ' en bachkir',
	banwiki = default,
	barwiki = ' en bavarois',
	bat_smgwiki = ' en samogitien',
	bclwiki = default,
	bewiki = ' en biélorusse',
	be_x_oldwiki = ' en biélorusse',   -- https://be-tarask.wikipedia.org, mais son code interne est  be_x_oldwiki
	bgwiki = ' en bulgare',
	bhwiki = default,
	bjnwiki = default,
	bnwiki = ' en bengali',
	bowiki = default,
	bpywiki = ' en bishnupriya',
	brwiki = ' en breton',
	bswiki = ' en bosnien',
	bugwiki = default,
	bxrwiki = ' en bouriate',
	cawiki = ' en catalan',
	cdowiki = ' en mindong',
	cewiki = ' en tchétchène',
	cebwiki = ' en cebuano',
	ckbwiki = ' en sorani',
	cowiki = default,
	crhwiki = default,
	cswiki = ' en tchèque',
	csbwiki = default,
	cvwiki = ' en tchouvache',
	cywiki = ' en gallois',
	dawiki = ' en danois',
	dagwiki = default,
	dewiki = ' en allemand',
	diqwiki = ' en zazaki',
	dvwiki = ' en divehi',
	elwiki = ' en grec',
	emlwiki = default,
	simplewiki = ' en anglais',
	enwiki = ' en anglais',
	eowiki = ' en espéranto',
	eswiki = ' en espagnol',
	etwiki = ' en estonien',
	euwiki = ' en basque',
	extwiki = ' en estrémègne',
	fawiki = ' en persan',
	fiwiki = ' en finnois',
	['fiu-vrowiki'] = default,
	fowiki = ' en féroïen',
	frpwiki = default,
	frrwiki = ' en frison septentrional',
	fywiki = ' en frison occidental',
	gawiki = ' en irlandais',
	ganwiki = default,
	gdwiki = ' en gaélique écossais',
	glwiki = ' en galicien',
	glkwiki = default,
	gnwiki = default,
	gorwiki = default,
	guwiki = ' en gujarati',
	gvwiki = ' en mannois',
	hawiki = default,
	hakwiki = default,
	hewiki = ' en hébreu',
	hiwiki = ' en hindi',
	hifwiki = default,
	hrwiki = ' en croate',
	hsbwiki = default,
	htwiki = ' en haïtien',
	huwiki = ' en hongrois',
	hywiki = ' en arménien',
	hywwiki = default,
	iawiki = ' en interlingua',
	idwiki = ' en indonésien',
	iewiki = default,
	igwiki = default,
	ilowiki = default,
	iowiki = default,
	iswiki = ' en islandais',
	itwiki = ' en italien',
	jawiki = ' en japonais',
	jvwiki = ' en javanais',
	kawiki = ' en géorgien',
	kabwiki = default,
	kkwiki = ' en kazakh',
	klwiki = ' en groenlandais',
	kmwiki = ' en khmer',
	knwiki = ' en kannada',
	kowiki = ' en coréen',
	krcwiki = ' en karatchaï balkar',
	kuwiki = ' en kurde',
	kvwiki = ' en komi',
	kwwiki = default,
	kywiki = default,
	lawiki = ' en latin',
	lbwiki = ' en luxembourgeois',
	liwiki = ' en limbourgeois',
	lijwiki = default,
	lldwiki = default,
	lmowiki = ' en lombard',
	lowiki = ' en lao',
	ltwiki = ' en lituanien',
	lvwiki = ' en letton',
	maiwiki = ' en maïthili',
	map_bmswiki = ' en banyumasan',
	mgwiki = ' en malgache',
	mhrwiki = default,
	miwiki = default,
	minwiki = default,
	mkwiki = ' en macédonien',
	mlwiki = ' en malayâlam',
	mnwiki = ' en mongol',
	mniwiki = default,
	mrwiki = ' en marâthî',
	mrjwiki = default,
	mswiki = ' en malais',
	mtwiki = ' en maltais',
	mywiki = ' en birman',
	myvwiki = default,
	mznwiki = ' en mazandarani',
	nahwiki = ' en nahuatl',
	napwiki = default,
	ndswiki = default,
	nds_nlwiki = ' en bas-saxon néerlandais',
	newiki = ' en népalais',
	newwiki = default,
	nlwiki = ' en néerlandais',
	nnwiki = ' en norvégien nynorsk',
	nowiki = ' en norvégien',
	nsowiki = default,
	nvwiki = default,
	ocwiki = ' en occitan',
	orwiki = default,
	oswiki = default,
	pawiki = default,
	pamwiki = ' en pampangan',
	pcdwiki = default,
	piwiki = ' en pali',
	plwiki = ' en polonais',
	pmswiki = default,
	pnbwiki = default,
	pswiki = default,
	ptwiki = ' en portugais',
	quwiki = ' en quechua',
	rowiki = ' en roumain',
	['roa-tarawiki'] = default,
	ruwiki = ' en russe ',
	ruewiki = default,
	sawiki = ' en sanskrit',
	sahwiki = default,
	satwiki = default,
	scwiki = default,
	scnwiki = ' en sicilien',
	scowiki = ' en scots',
	sdwiki = ' en sindhi',
	sewiki = default,
	shwiki = ' en serbo-croate',
	shnwiki = default,
	siwiki = ' en cingalais',
	skwiki = ' en slovaque',
	skrwiki = default,
	slwiki = ' en slovène',
	smnwiki = default,
	snwiki = default,
	sowiki = default,
	sqwiki = ' en albanais',
	srwiki = ' en serbe',
	suwiki = ' en soudanais',
	svwiki = ' en suédois',
	swwiki = ' en swahili',
	szlwiki = ' en silésien',
	tawiki = ' en tamoul',
	tewiki = ' en télougou',
	tgwiki = default,
	thwiki = ' en thaï',
	tkwiki = default,
	tlwiki = ' en tagalog',
	tnwiki = ' en tswana',
	trwiki = ' en turc',
	ttwiki = ' en tatar',
	tumwiki = default,
	udmwiki = default,
	ugwiki = default,
	ukwiki = ' en ukrainien',
	urwiki = ' en ourdou',
	uzwiki = ' en ouzbek',
	vecwiki = ' en vénitien',
	vepwiki = default,
	viwiki = ' en vietnamien',
	vlswiki = ' en flamand occidental',
	vowiki = ' en volapük',
	wawiki = ' en wallon',
	warwiki = ' en waray-waray',
	wuuwiki = default,
	xmfwiki = ' en mingrélien',
	yiwiki = ' en yiddish',
	yowiki = ' en yoruba',
	zeawiki = default,
	zhwiki = ' en chinois',
	zh_classicalwiki = ' en chinois classique',
	zh_min_nanwiki = ' en minnan',
	zh_yuewiki = ' en cantonais',
	zuwiki = default,
}

function p.badgesCategories( frame )
	local entity = mw.wikibase.getEntityIdForCurrentPage()
	local wikitext = {}
	local categoryNs = mw.site.namespaces[14].name
	if not entity then
		return ''
	end

	for siteid, suffix in pairs( linkCategorySuffix ) do
			local badges = mw.wikibase.getBadges( entity, siteid )
			for i, badgeId in ipairs( badges ) do
				if badgesCategory[ badgeId ] then
					local main = badgesCategory[ badgeId ]
					local category = string.format('[[%s:%s]]', categoryNs, main .. suffix )
					table.insert( wikitext, category )
				end
			end
	end
	
	return table.concat( wikitext )
end

return p