Fandom

Wikia Rock Lee : Les Péripéties d'un Ninja en Herb

Module:TableComédiens

47pages sur
ce wiki
Ajouter une page
Discussion0

Interférence d'un bloqueur de publicité détectée !


Wikia est un site gratuit qui compte sur les revenus de la publicité. L'expérience des lecteurs utilisant des bloqueurs de publicité est différente

Wikia n'est pas accessible si vous avez fait d'autres modifications. Supprimez les règles personnalisées de votre bloqueur de publicité, et la page se chargera comme prévu.

-- @author Dantman
-- Adapté en version française par Celdrøn
local p = {}
local names = mw.loadData( 'Module:TableComédiens/noms' )
 
local function parse(text)
	local blocks = mw.text.gsplit(mw.text.trim(text), '\n\n+')
 
	local credits = {}
	for block in blocks do
		local lines = mw.text.split(block, '\n')
		local nameline = table.remove(lines, 1)
 
		local credit = {}
		local link, name = mw.ustring.match(mw.text.trim(nameline), '^(.+)%[(.+)%]$')
		if not link then
			name = mw.ustring.match(mw.text.trim(nameline), '^%[(.+)%]$')
			if name then
				link = nil
			else
				link = nameline
				name = nameline
			end
		end
 
		credit.link = link and mw.text.trim(link)
		credit.name = mw.text.trim(name)
		credit.actors = {
			FR = {},
			JA = {}
		}
 
		for ii, line in ipairs(lines) do
			lang, person = mw.ustring.match(mw.text.trim(line), '^(%a+): *(.+)$')
			lang = mw.ustring.upper(lang)
			n = names[person] or {}
			if lang ~= 'JA' and lang ~= 'FR' then
				mw.log(mw.ustring.format("Le langage %s n\'est pas reconnu.", lang))
			else
 
			    if lang ~= 'JA' then
				    table.insert(credit.actors[lang], {
					    name = person,
					    link = "wikipedia:fr:"..person
				    })
 
				else
					table.insert(credit.actors[lang], {
					    name = person,
					    link = "wikipedia:fr:"..n[3]
				    })
				end
			end
		end
 
		table.insert(credits, credit)
	end
 
	return credits
end
 
local function link(target, text)
	if target then
		wt = mw.ustring.format('[[%s|%s]]', target, text)
	else
		wt = text
	end
 
	wt = tostring(mw.html.create('b'):wikitext(wt))
	return wt
end
 
local function render(credits)
	local t = mw.html.create('table'):attr('class', "wikitable fill-horiz cell-align-center")
	local hasfra = false
	for i, credit in ipairs(credits) do
		if #credit.actors.FR > 0 then
			hasfra = true
			break
		end
	end
 
	local tr = t:tag('tr')
	tr:tag('th'):wikitext("Rôle")
	tr:tag('th'):attr('colspan', 3):wikitext("Seiyû")
	if hasfra then
		tr:tag('th'):wikitext("Comédien de Doublage Français")
	end
 
	local tr = t:tag('tr')
	tr:tag('th'):wikitext("")
	tr:tag('th'):wikitext("Français")
	tr:tag('th'):wikitext("Japonais")
	tr:tag('th'):wikitext("Rômaji")
	if hasfra then
		tr:tag('th')
	end
 
	local function actorformat(actors)
		local results = {
			francais = {},
			japonais = {},
			romaji = {}
		}
 
		for i, actor in ipairs(actors) do
			table.insert(results.francais, link(actor.link, actor.name))
			n = names[actor.name] or {}
			table.insert(results.japonais, n[1] or '')
			table.insert(results.romaji, n[2] or '')
		end
 
		results.francais = table.concat(results.francais, '<br>')
		results.japonais = table.concat(results.japonais, '<br>')
		results.romaji = table.concat(results.romaji, '<br>')
		return results
	end
 
	for i, credit in ipairs(credits) do
		local jactor = actorformat(credit.actors.JA)
		tr = t:tag('tr')
		tr:tag('td'):wikitext(link(credit.link, credit.name))
		tr:tag('td'):wikitext(jactor.francais)
		tr:tag('td'):wikitext(jactor.japonais)
		tr:tag('td'):wikitext(jactor.romaji)
		if hasfra then
			tr:tag('td'):wikitext(actorformat(credit.actors.FR).francais)
		end
	end
 
	return tostring(t)
end
 
function p._main(text)
	local credits = parse(text)
	return render(credits)
end
 
function p.main(frame)
	local text = frame.args[1] or frame:getParent().args[1]
	return p._main(text)
end
 
return p
 
--[[Catégorie:Modules Lua]]

Sur le réseau Fandom

Wiki au hasard