Module:Automatik/Communes françaises

La documentation pour ce module peut être créée à Module:Automatik/Communes françaises/Documentation

local p = {}

	local f = { 'Charente', 'Charente-Maritime', 'Corrèze', 'Corse-du-Sud', 'Côte-d’Or', 'Creuse', 'Dordogne', 'Drôme',
		'Haute-Garonne', 'Gironde', 'Haute-Corse', 'Loire', 'Haute-Loire', 'Loire-Atlantique', 'Lozère', 'Manche',
		'Marne', 'Haute-Marne', 'Mayenne', 'Meurthe-et-Moselle', 'Meuse', 'Moselle', 'Moselle', 'Nièvre', 'Haute-Saône',
		'Saône-et-Loire', 'Sarthe', 'Savoie', 'Haute-Savoie', 'Seine-Maritime', 'Seine-et-Marne', 'Somme', 'Vendée',
		'Vienne', 'Haute-Vienne', 'Seine-Saint-Denis', 'Guadeloupe', 'Martinique', 'Guyane', 'Mayotte'
	}
	
	local m = { 'Calvados', 'Cantal', 'Cher', 'Doubs', 'Finistère', 'Gard', 'Gers', 'Jura', 'Loir-et-Cher', 'Loiret', 'Lot',
		'Lot-et-Garonne', 'Maine-et-Loire', 'Morbihan', 'Nord', 'Pas-de-Calais', 'Puy-de-Dôme', 'Bas-Rhin', 'Haut-Rhin',
		'Rhône', 'Tarn', 'Tarn-et-Garonne', 'Var', 'Vaucluse', 'Territoire-de-Belfort', 'Val-de-Marne', 'Val d’Oise'
	}
	
	local el = { 'Ain', 'Aisne', 'Allier', 'Ardèche', 'Ariège', 'Ariège', 'Aube', 'Aude', 'Aveyron', 'Eure', 'Eure-et-Loir',
		 'Hérault', 'Ille-et-Vilaine', 'Indre', 'Isère', 'Oise', 'Orne', 'Yonne', 'Essonne'
	 }
	 
	local des = { 'Alpes-de-Haute-Provence', 'Hautes-Alpes', 'Alpes-Maritimes', 'Ardennes', 'Bouches-du-Rhône', 'Côtes-d’Armor',
		'Landes', 'Pyrénées-Atlantiques', 'Hautes-Pyrénées', 'Pyrénées-Orientales', 'Yvelines', 'Deux-Sèvres', 'Vosges',
		'Hauts-de-Seine'
	}
	
	local de = { 'La Réunion' }
	
	function genre( departement )
		for i = 1, #f
			do
				if f[i] == departement then
					genre = true
					return "de la "
				end
			end
		
		for i = 1, #m
			do
				if m[i] == departement then
					genre = true
					return "du "
				end
			end

		for i = 1, #el
			do
				if el[i] == departement then
					genre = true
					return "de l’"
				end
			end
		
		for i = 1, #des
			do
				if des[i] == departement then
					genre = true
					return "des "
				end
			end
		
		for i = 1, #de
			do
				if de[i] == departement then
					genre = true
					return "de "
				end
			end
	end

	function p.texte_final( frame )
		local texte = frame.args[1]
		local departement = mw.ustring.gsub( texte, ".-Localité du département (: )?%[%[([%w-]+)%]%],.*", "%2")
		local texte_final = "# Localité du département " .. genre( departement ) .. "[[" .. departement .. "]] en [[France]]."
		if genre then return texte_final
			else return texte
		end
	end

return p