<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.nations.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ALangue</id>
	<title>Module:Langue - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nations.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ALangue"/>
	<link rel="alternate" type="text/html" href="https://wiki.nations.fr/index.php?title=Module:Langue&amp;action=history"/>
	<updated>2026-04-06T22:09:53Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>https://wiki.nations.fr/index.php?title=Module:Langue&amp;diff=12669&amp;oldid=prev</id>
		<title>Administrateur : 1 révision importée</title>
		<link rel="alternate" type="text/html" href="https://wiki.nations.fr/index.php?title=Module:Langue&amp;diff=12669&amp;oldid=prev"/>
		<updated>2021-09-26T13:34:18Z</updated>

		<summary type="html">&lt;p&gt;1 révision importée&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 26 septembre 2021 à 13:34&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;fr&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Aucune différence)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Administrateur</name></author>
	</entry>
	<entry>
		<id>https://wiki.nations.fr/index.php?title=Module:Langue&amp;diff=12668&amp;oldid=prev</id>
		<title>wikifr_&gt;Od1n : je peux en citer deux par exemple, Module:Lien interlangue et Module:Site officiel</title>
		<link rel="alternate" type="text/html" href="https://wiki.nations.fr/index.php?title=Module:Langue&amp;diff=12668&amp;oldid=prev"/>
		<updated>2021-07-28T12:20:19Z</updated>

		<summary type="html">&lt;p&gt;je peux en citer deux par exemple, &lt;a href=&quot;/index.php?title=Module:Lien_interlangue&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Module:Lien interlangue (page inexistante)&quot;&gt;Module:Lien interlangue&lt;/a&gt; et &lt;a href=&quot;/index.php?title=Module:Site_officiel&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Module:Site officiel (page inexistante)&quot;&gt;Module:Site officiel&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 28 juillet 2021 à 12:20&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Ligne 2 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 2 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local dataLangue = mw.loadData 'Module:Langue/Data'&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local dataLangue = mw.loadData 'Module:Langue/Data'&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local langErrorMess = '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;langue non reconnue : %s&amp;lt;/span&amp;gt;'&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local langErrorMess = '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;langue non reconnue : %s&amp;lt;/span&amp;gt;' &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- attention, plusieurs modules recherchent ce message pour détecter des erreurs&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- premierParametre renvoie le premier paramètre de Frame, que celui-ci ait été passé au module par invoke, directement au modèle,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- premierParametre renvoie le premier paramètre de Frame, que celui-ci ait été passé au module par invoke, directement au modèle,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l345&quot;&gt;Ligne 345 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 345 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		code = 'mul'&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		code = 'mul'&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	local maxLang = tonumber(args.maxLang) or nil&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if not args[2] and not dataLangue[ mw.ustring.lower( code ) ] then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if not args[2] and not dataLangue[ mw.ustring.lower( code ) ] then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local split = mw.text.split( code, '[+,;:/ .]+' )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local split = mw.text.split( code, '[+,;:/ .]+' )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if #split &amp;gt; 1 then  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if #split &amp;gt; 1 then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			split.maxLang = maxLang&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			return Langue.indicationMultilingue( split )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			return Langue.indicationMultilingue( split )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l377&quot;&gt;Ligne 377 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 379 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if n == 0 then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if n == 0 then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return ''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return ''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if maxLang and n &gt; maxLang then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		listeCode = {'mul'}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local plusieurs = ( n &amp;gt; 1 )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local plusieurs = ( n &amp;gt; 1 )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l415&quot;&gt;Ligne 415 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 420 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if texte ~= '' then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if texte ~= '' then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		texte = '&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\194\160&lt;/del&gt;' .. Langue.lang{ code, dir = dir, texte = texte, trans = trans }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		texte = ' ' .. Langue.lang{ code, dir = dir, texte = texte, trans = trans }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l465&quot;&gt;Ligne 465 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 470 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local ligneTab, ligneSrt&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local ligneTab, ligneSrt&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i&lt;/del&gt;, v in pairs( dataLangue ) do&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k&lt;/ins&gt;, v in pairs( dataLangue ) do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if v.code then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if v.code then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			ligneTab = {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			ligneTab = {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i&lt;/del&gt;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k&lt;/ins&gt;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.code,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.code,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.nom,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.nom,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.page or '',&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.page or '',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				Langue.lienLangue(v.code),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				Langue.lienLangue(v.code),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.rtl and '[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Image&lt;/del&gt;:Yes check.svg|15px|oui|lien=]]' or '',&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.rtl and '[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fichier&lt;/ins&gt;:Yes check.svg|15px|oui|lien=]]' or '',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.invalide and '[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Image&lt;/del&gt;:Yes check.svg|15px|oui|lien=]]' or '',&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				v.invalide and '[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fichier&lt;/ins&gt;:Yes check.svg|15px|oui|lien=]]' or '',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			ligneSrt = table.concat( ligneTab, '\n|' )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			ligneSrt = table.concat( ligneTab, '\n|' )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l491&quot;&gt;Ligne 491 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 496 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local languesTab, listeCodesAlias = { }, { }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local languesTab, listeCodesAlias = { }, { }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local code, alias, codeAlias&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local code, alias, codeAlias&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i&lt;/del&gt;, v in pairs( dataLangue ) do&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k&lt;/ins&gt;, v in pairs( dataLangue ) do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		-- on construit un table avec pour indices les codes de langue, et pour valeurs une table avec la liste des alias&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		-- on construit un table avec pour indices les codes de langue, et pour valeurs une table avec la liste des alias&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		code = v.code&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		code = v.code&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if code and not v.invalide then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if code and not v.invalide then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			languesTab[code] = languesTab[code] or { }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			languesTab[code] = languesTab[code] or { }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			if &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i &lt;/del&gt;~= mw.ustring.lower( code ) then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			if &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k &lt;/ins&gt;~= mw.ustring.lower( code ) then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				table.insert( languesTab[code], &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i &lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				table.insert( languesTab[code], &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k &lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i&lt;/del&gt;, v in pairs( languesTab ) do&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k&lt;/ins&gt;, v in pairs( languesTab ) do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		-- transformation en un table séquence, avec pour valeur une chaine correspondant à une ligne de la liste&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		-- transformation en un table séquence, avec pour valeur une chaine correspondant à une ligne de la liste&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		alias = table.concat( v, ', ' )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		alias = table.concat( v, ', ' )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if alias == '' then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if alias == '' then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			codeAlias = '* &amp;lt;code&amp;gt;' .. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i &lt;/del&gt;.. '&amp;lt;/code&amp;gt;'&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			codeAlias = '* &amp;lt;code&amp;gt;' .. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k &lt;/ins&gt;.. '&amp;lt;/code&amp;gt;'&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		else&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		else&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			codeAlias = '* &amp;lt;code&amp;gt;' .. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i &lt;/del&gt;.. '&amp;lt;/code&amp;gt; : ' .. alias&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			codeAlias = '* &amp;lt;code&amp;gt;' .. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k &lt;/ins&gt;.. '&amp;lt;/code&amp;gt; : ' .. alias&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		table.insert( listeCodesAlias, codeAlias )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		table.insert( listeCodesAlias, codeAlias )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l520&quot;&gt;Ligne 520 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 525 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local languesTab = { }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local languesTab = { }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local code&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local code&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i&lt;/del&gt;, v in pairs( dataLangue ) do&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k&lt;/ins&gt;, v in pairs( dataLangue ) do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		-- on construit un table avec pour indices les codes de langue, et pour valeurs une table avec la liste des alias&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		-- on construit un table avec pour indices les codes de langue, et pour valeurs une table avec la liste des alias&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		code = v.code&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		code = v.code&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if code and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i &lt;/del&gt;~= code and not v.invalide then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if code and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k &lt;/ins&gt;~= code and not v.invalide then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			table.insert( languesTab, '* ' .. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i &lt;/del&gt;.. ' = ' .. code )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			table.insert( languesTab, '* ' .. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k &lt;/ins&gt;.. ' = ' .. code )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>wikifr_&gt;Od1n</name></author>
	</entry>
	<entry>
		<id>https://wiki.nations.fr/index.php?title=Module:Langue&amp;diff=318&amp;oldid=prev</id>
		<title>Administrateur : 1 révision importée</title>
		<link rel="alternate" type="text/html" href="https://wiki.nations.fr/index.php?title=Module:Langue&amp;diff=318&amp;oldid=prev"/>
		<updated>2019-06-26T22:35:31Z</updated>

		<summary type="html">&lt;p&gt;1 révision importée&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 26 juin 2019 à 22:35&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;fr&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Aucune différence)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Administrateur</name></author>
	</entry>
	<entry>
		<id>https://wiki.nations.fr/index.php?title=Module:Langue&amp;diff=317&amp;oldid=prev</id>
		<title>fr&gt;Epok : Ajout du lien vers l'article dans le tableau récapitulatif, ajout de quelques commentaires.</title>
		<link rel="alternate" type="text/html" href="https://wiki.nations.fr/index.php?title=Module:Langue&amp;diff=317&amp;oldid=prev"/>
		<updated>2019-04-24T19:13:03Z</updated>

		<summary type="html">&lt;p&gt;Ajout du lien vers l&amp;#039;article dans le tableau récapitulatif, ajout de quelques commentaires.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local Langue = { }&lt;br /&gt;
&lt;br /&gt;
local dataLangue = mw.loadData 'Module:Langue/Data'&lt;br /&gt;
local langErrorMess = '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;langue non reconnue : %s&amp;lt;/span&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
-- premierParametre renvoie le premier paramètre de Frame, que celui-ci ait été passé au module par invoke, directement au modèle,&lt;br /&gt;
-- ou à l'intérieur d'un module sous forme de string dans un tableau ou directement de string.&lt;br /&gt;
-- Si aucun de ces arguments ne contient de chaine, la fonction renvoie nil.&lt;br /&gt;
-- Si le deuxième paramètre est true, la chaine est renvoyée trimée et en minuscules.&lt;br /&gt;
local function premierParametre( frame, lowerCase )&lt;br /&gt;
	local arg&lt;br /&gt;
	if type( frame ) == 'table' then&lt;br /&gt;
		arg = ( frame.getParent and ( frame.args[1] or frame:getParent().args[1] ) ) or frame[1]&lt;br /&gt;
	elseif type( frame ) == 'string' then&lt;br /&gt;
		arg = frame&lt;br /&gt;
	end&lt;br /&gt;
	if type( arg ) ~= 'string' then&lt;br /&gt;
		arg = nil&lt;br /&gt;
	end&lt;br /&gt;
	if arg and lowerCase then&lt;br /&gt;
		arg = mw.ustring.lower( mw.text.trim( arg ) )&lt;br /&gt;
	end&lt;br /&gt;
	return arg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- determinationCode retourne une table contenant le code de langue principal et la liste des subcode&lt;br /&gt;
-- si le code de langue principal n'est pas reconnu, retourne nil.&lt;br /&gt;
function Langue.determinationCode( langue )&lt;br /&gt;
	if type( langue ) == 'string' and langue ~= '' then&lt;br /&gt;
		local tabCode = mw.text.split( langue, '-' )&lt;br /&gt;
		local tabLangue = dataLangue[ mw.ustring.lower( tabCode[1] ) ]&lt;br /&gt;
		if tabLangue and tabLangue.code then&lt;br /&gt;
			tabCode[1] = tabLangue.code&lt;br /&gt;
			if tabLangue.invalide then&lt;br /&gt;
				tabCode.invalide=true&lt;br /&gt;
			end&lt;br /&gt;
			return tabCode&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Voir Modèle:Code langue&lt;br /&gt;
-- Paramètre :&lt;br /&gt;
--     1  : nom de langue.&lt;br /&gt;
function Langue.codeLangue( frame )&lt;br /&gt;
	local arg = premierParametre( frame, true )&lt;br /&gt;
	local tabCode = Langue.determinationCode( arg )&lt;br /&gt;
	return ( tabCode and table.concat( tabCode, '-' ) ) or arg or ''&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Voir Modèle:Code langue 2&lt;br /&gt;
-- Paramètre :&lt;br /&gt;
--     1  : nom de langue.&lt;br /&gt;
function Langue.codeLangue2( frame )&lt;br /&gt;
	local arg = premierParametre( frame, true )&lt;br /&gt;
	local tabCode = Langue.determinationCode( arg )&lt;br /&gt;
	return ( tabCode and table.concat( tabCode, '-' ) ) or ''&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Voir Modèle:Direction langue&lt;br /&gt;
-- Paramètre :&lt;br /&gt;
--     1  : nom de langue ou code IETF.&lt;br /&gt;
function Langue.directionLangue( frame )&lt;br /&gt;
	local arg = premierParametre( frame, true )&lt;br /&gt;
	if type( arg ) ~= 'string' or arg == '' then&lt;br /&gt;
		return 'ltr'&lt;br /&gt;
	end&lt;br /&gt;
	-- séparation du code de langue en code principal et les différents subcode.&lt;br /&gt;
	local tabCode = Langue.determinationCode( arg )&lt;br /&gt;
	if tabCode then&lt;br /&gt;
		-- on essaye de savoir si la direction est de droite à gauche&lt;br /&gt;
		local codeScript = tabCode[2]&lt;br /&gt;
		if codeScript and string.len( codeScript ) == 4 and dataLangue[ 'rtl script' ] then&lt;br /&gt;
			-- il y a un subcode d'écritrure, c'est lui qui est pris en compte&lt;br /&gt;
			codeScript = string.upper( string.sub( codeScript, 1, 1 ) ) .. string.sub( codeScript, 2 )&lt;br /&gt;
			if dataLangue[ 'rtl script' ][ codeScript ] then&lt;br /&gt;
				return 'rtl'&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- il n'y a pas de sub-code d'écriture, on prend en compte le code de langue principal.&lt;br /&gt;
			local tabLangue = dataLangue[ tabCode[1] ]&lt;br /&gt;
			if tabLangue and tabLangue.rtl then&lt;br /&gt;
				return 'rtl'&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- la langue n'est pas écrite de droite à gauche, donc ltr.&lt;br /&gt;
	return 'ltr'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function getDataLangue( frame )&lt;br /&gt;
	-- Obtenir le code de la langue &lt;br /&gt;
	local codeLangue = premierParametre( frame, true )&lt;br /&gt;
	-- Si le paramètre est incorrect, retourner un message d'erreur&lt;br /&gt;
	if type( codeLangue ) ~= 'string' or codeLangue == '' then&lt;br /&gt;
		return nil, '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;langue non précisée&amp;lt;/span&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Obtenir le tableau contenant les informations sur la langue&lt;br /&gt;
	local tabLangue = dataLangue[ codeLangue ]&lt;br /&gt;
	-- Si le code étendu n'est pas trouvé, chercher à nouveau avec le code racine&lt;br /&gt;
	if not tabLangue then&lt;br /&gt;
		tabLangue = dataLangue[ mw.ustring.match( codeLangue, '^(%a-)%-' ) ]&lt;br /&gt;
	end&lt;br /&gt;
	-- Si on n'a toujours rien trouvé, retourner un message d'erreur&lt;br /&gt;
	if not tabLangue then&lt;br /&gt;
		return nil, langErrorMess:format( codeLangue )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tabLangue&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Fonction fournissant un wikilien vers l'article&lt;br /&gt;
-- traitant d'une langue à partir de son code.&lt;br /&gt;
-- Voir Modèle:Lien langue&lt;br /&gt;
-- Paramètre :&lt;br /&gt;
--     1  : code IETF de langue.&lt;br /&gt;
function Langue.lienLangue( frame )&lt;br /&gt;
	local tabLangue, erreur = getDataLangue( frame )&lt;br /&gt;
	if not tabLangue then&lt;br /&gt;
		return erreur&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Créer un lien pour la langue depuis le tableau&lt;br /&gt;
	if type( tabLangue.page ) == 'string' then&lt;br /&gt;
		if tabLangue.page ~= '' then&lt;br /&gt;
			return '[[' .. tabLangue.page .. '|' .. tabLangue.nom .. ']]'&lt;br /&gt;
		else&lt;br /&gt;
			return tabLangue.nom&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return '[[' .. tabLangue.nom .. ']]'&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Fonction permettant de récupérer le nom d'une langue à partir de son code.&lt;br /&gt;
-- Voir Modèle:Nom langue&lt;br /&gt;
-- Paramètre :&lt;br /&gt;
--     1  : code IETF de langue.&lt;br /&gt;
-- Retourne :&lt;br /&gt;
--     Le nom de la langue, un message d'erreur sinon.&lt;br /&gt;
function Langue.nomLangue( frame )&lt;br /&gt;
	local tabLangue, erreur = getDataLangue( frame )&lt;br /&gt;
	if not tabLangue then&lt;br /&gt;
		return erreur&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Extraire le nom de la langue depuis le tableau&lt;br /&gt;
	return tabLangue.nom&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Fonction permettant de récupérer le nom de l'article&lt;br /&gt;
-- portant sur une langue à partir de son code.&lt;br /&gt;
-- Voir Modèle:Article langue&lt;br /&gt;
-- Paramètre :&lt;br /&gt;
--     1  : code IETF de langue.&lt;br /&gt;
-- Retourne :&lt;br /&gt;
--     Le nom de l'article portant sur la langue&lt;br /&gt;
--     si le code est trouvé, un message d'erreur sinon.&lt;br /&gt;
function Langue.articleLangue( frame )&lt;br /&gt;
	local tabLangue, erreur = getDataLangue( frame )&lt;br /&gt;
	if not tabLangue then&lt;br /&gt;
		return erreur&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Extraire le titre de l'article depuis le tableau&lt;br /&gt;
	if type( tabLangue.page ) == 'string' and tabLangue.page ~= '' then&lt;br /&gt;
		return tabLangue.page&lt;br /&gt;
	else&lt;br /&gt;
		return tabLangue.nom&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Voir Modèle:Langue&lt;br /&gt;
-- Paramètres :&lt;br /&gt;
--    1 : code IETF de langue ;&lt;br /&gt;
--    texte ou 2 : texte dans cette langue ;&lt;br /&gt;
--    trans : translittération du texte ;&lt;br /&gt;
--    dir : direction de la langue (obsolète : peut être en paramètre 1, avec code en 2 et texte en 3).&lt;br /&gt;
function Langue.langue( frame )&lt;br /&gt;
	local args = ( frame.getParent and frame:getParent().args ) or frame         -- préparation pour appel par modèle ou direct.&lt;br /&gt;
	local code = mw.ustring.lower( mw.text.trim( args[1] or '' ) )&lt;br /&gt;
	local texte = args.texte or ''&lt;br /&gt;
	if texte == '' then&lt;br /&gt;
		texte = args[2] or ''&lt;br /&gt;
	end&lt;br /&gt;
	local dir = args.dir&lt;br /&gt;
	local namespaceCategorisation = { [0] = true, [4] = true, [10] = true, [12] = true, [14] = true, [100] = true }&lt;br /&gt;
	local categorisation = namespaceCategorisation[ mw.title.getCurrentTitle().namespace ] and not args.nocat&lt;br /&gt;
	&lt;br /&gt;
	-- Décalage des paramètres si code contient la direction du texte (obsolète mais toujours possible).&lt;br /&gt;
	if code == 'ltr' or code == 'rtl' then&lt;br /&gt;
		dir = code&lt;br /&gt;
		code = mw.ustring.lower( mw.text.trim( args[2] ) or '' )&lt;br /&gt;
		texte = args[3] or ''&lt;br /&gt;
	end&lt;br /&gt;
	local codeArg = code&lt;br /&gt;
	&lt;br /&gt;
	-- sortie immédiate s'il n'y a pas de texte&lt;br /&gt;
	if texte == '' then&lt;br /&gt;
		if categorisation then&lt;br /&gt;
			return '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;erreur du modèle [[modèle:Langue|{{langue}}]] : texte absent&amp;lt;/span&amp;gt;[[Catégorie:Page utilisant un modèle avec une syntaxe erronée|Langue]]'&lt;br /&gt;
		else&lt;br /&gt;
			return ''&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- récursion si texte contient des blocs&lt;br /&gt;
	if texte:match('\n *\n') or texte:match('\n[*#:]') then&lt;br /&gt;
		-- les parenthèses permettent d'éliminer la seconde valeur retournée par gsub (nombre de remplacement)&lt;br /&gt;
		return ( texte:gsub( &lt;br /&gt;
		 	'(\n?[*#:]?%s*)([^\n]+)', &lt;br /&gt;
		 	function ( init, ligne ) &lt;br /&gt;
		 		return init .. Langue.langue{ code, ligne }&lt;br /&gt;
		 	end&lt;br /&gt;
		 ) )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Si la langue est reconnue, la valeur de la table est prise en compte (permet de corriger les noms de langue en toutes lettres).&lt;br /&gt;
	local tabCode = Langue.determinationCode( code )&lt;br /&gt;
	local tabLangue&lt;br /&gt;
	if tabCode then&lt;br /&gt;
		code = table.concat( tabCode, '-' )&lt;br /&gt;
		tabLangue = dataLangue[ tabCode[1] ]&lt;br /&gt;
		&lt;br /&gt;
		local codeScript = tabCode[2]&lt;br /&gt;
		-- Si codeScript est bien un style d'écriture (len = 4) on applique sa direction&lt;br /&gt;
		if codeScript and  string.len( codeScript ) == 4 and dataLangue[ 'rtl script' ] then&lt;br /&gt;
			-- formatage type Latn correspondant au fromat dans dataLangue[ 'rtl script' ]&lt;br /&gt;
			codeScript = string.upper( string.sub(  codeScript, 1, 1 ) ) .. string.sub(  codeScript, 2 )&lt;br /&gt;
			tabLangue = { code = tabLangue.code,&lt;br /&gt;
				rtl = dataLangue[ 'rtl script' ][ codeScript ],&lt;br /&gt;
				invalide = tabLangue.invalide&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
		&lt;br /&gt;
	-- Préparation du rendu de direction du texte.&lt;br /&gt;
	dir = dir and dir:lower()&lt;br /&gt;
	if dir ~= 'ltr' and dir ~= 'rtl' then&lt;br /&gt;
		dir = ( tabLangue and tabLangue.rtl and 'rtl' )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Compilation du texte à retourner.&lt;br /&gt;
	local html = mw.html.create( '' )&lt;br /&gt;
	if code == '' then&lt;br /&gt;
		html:wikitext( texte )&lt;br /&gt;
	else&lt;br /&gt;
		html:tag( 'span' )&lt;br /&gt;
				:addClass( 'lang-' .. code )&lt;br /&gt;
				:addClass( args.class )&lt;br /&gt;
				:attr{ lang = code, dir = dir }&lt;br /&gt;
				:wikitext( texte )&lt;br /&gt;
				:done()&lt;br /&gt;
		&lt;br /&gt;
		-- Translittération.&lt;br /&gt;
		if ( args.trans or '' ) ~= '' then&lt;br /&gt;
			local trans = args.trans:gsub( &amp;quot;^''([^'].*[^'])''$&amp;quot;, &amp;quot;%1&amp;quot; )&lt;br /&gt;
			html:wikitext( &amp;quot; (''&amp;quot; )&lt;br /&gt;
				:tag( 'span' )&lt;br /&gt;
					:addClass( 'transcription lang-' .. code )&lt;br /&gt;
					:attr( 'lang', code .. '-Latn' )&lt;br /&gt;
					:attr( 'dir', 'ltr' )&lt;br /&gt;
					:wikitext( trans )&lt;br /&gt;
					:done()&lt;br /&gt;
				:wikitext( &amp;quot;'')&amp;quot; )&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Ajout de la catégorie Page avec code de langue invalide si le code langue non reconnu ou invalide.&lt;br /&gt;
	if categorisation and ( type( tabLangue ) ~= 'table' or tabCode.invalide ) then&lt;br /&gt;
		local erreur = string.format( langErrorMess, codeArg )&lt;br /&gt;
		if codeArg == '' then&lt;br /&gt;
			erreur = '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;langue non précisée&amp;lt;/span&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
		html:wikitext( '[[Catégorie:Page avec code de langue invalide|Langue]] ' .. erreur )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring( html )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Alias nom de fonction&lt;br /&gt;
Langue.lang = Langue.langue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Voir Modèle:Indication de langue&lt;br /&gt;
-- Paramètres :&lt;br /&gt;
--    1 : nom de langue ;&lt;br /&gt;
--    2 : code IETF ;&lt;br /&gt;
--    texte : texte dans cette langue ;&lt;br /&gt;
--    dir : direction de la langue.&lt;br /&gt;
function Langue.indicationDeLangue( frame )&lt;br /&gt;
	local args = ( frame.getParent and frame:getParent().args ) or frame&lt;br /&gt;
	local nomLangue = mw.text.trim( args[1] or '' )&lt;br /&gt;
	local code = mw.text.trim( args[2] or '' )&lt;br /&gt;
	local texte = args.texte&lt;br /&gt;
	local dir = args.dir&lt;br /&gt;
	local wikiText = ''&lt;br /&gt;
	-- Cas où le premier et/ou le deuxième paramètre est vide.&lt;br /&gt;
	if code == '' and nomLangue == '' then&lt;br /&gt;
		return texte&lt;br /&gt;
	elseif nomLangue == '' then&lt;br /&gt;
		nomLangue = dataLangue[ mw.ustring.lower( code ) ]&lt;br /&gt;
		nomLangue = (nomLangue and nomLangue.nom or '???')&lt;br /&gt;
	elseif code == '' then&lt;br /&gt;
		code = dataLangue[ nomLangue ]&lt;br /&gt;
		code = ( code and code.code or '' )&lt;br /&gt;
		if code == '' then&lt;br /&gt;
			return texte&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Gestion du texte.&lt;br /&gt;
	if texte and texte ~= '' then&lt;br /&gt;
		texte = '\194\160' .. Langue.lang{ code, dir = dir, texte = texte }&lt;br /&gt;
	else&lt;br /&gt;
		texte = ''&lt;br /&gt;
	end&lt;br /&gt;
	-- Compilation de l'indicateur de langue et du texte.&lt;br /&gt;
	local html = mw.html.create()&lt;br /&gt;
	html:tag( 'abbr' )&lt;br /&gt;
			:addClass( 'abbr' )&lt;br /&gt;
			:addClass( 'indicateur-langue' )&lt;br /&gt;
			:attr( 'title', 'Langue : ' .. nomLangue )&lt;br /&gt;
			:wikitext( '(' .. code .. ')' )&lt;br /&gt;
			:done()&lt;br /&gt;
		:wikitext( texte )&lt;br /&gt;
	&lt;br /&gt;
	return tostring( html )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Voir Modèle:Mul&lt;br /&gt;
-- Paramètres : codes IETF ou noms de langue, en nombre indéfini (string ou nil uniquement).&lt;br /&gt;
function Langue.indicationMultilingue( frame )&lt;br /&gt;
	local args = (frame.getParent and frame:getParent().args) or frame&lt;br /&gt;
	local listeNom = { }&lt;br /&gt;
	local listeCode = { }&lt;br /&gt;
	local tabLangue&lt;br /&gt;
	-- Valeur par défaut du premier paramètre = 'mul'.&lt;br /&gt;
	local code = mw.text.trim( args[1] or '' )&lt;br /&gt;
	if code == '' then&lt;br /&gt;
		code = 'mul'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not args[2] and not dataLangue[ mw.ustring.lower( code ) ] then&lt;br /&gt;
		local split = mw.text.split( code, '[+,;:/ .]+' )&lt;br /&gt;
		if #split &amp;gt; 1 then &lt;br /&gt;
			return Langue.indicationMultilingue( split )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Ajout des noms et codes de langue de chaque paramètre dans listeNom et ListeCode.&lt;br /&gt;
	local i = 1&lt;br /&gt;
	repeat&lt;br /&gt;
		code = mw.ustring.lower( code )&lt;br /&gt;
		local tabLangue = dataLangue[ code ]&lt;br /&gt;
		if not tabLangue then&lt;br /&gt;
			code = mw.text.split( code, '-' )[1]&lt;br /&gt;
			tabLangue = dataLangue[ code ]&lt;br /&gt;
		end&lt;br /&gt;
		if type( tabLangue ) == 'table' then&lt;br /&gt;
			table.insert( listeNom, tabLangue.nom )&lt;br /&gt;
			table.insert( listeCode, tabLangue.code )&lt;br /&gt;
		else&lt;br /&gt;
			table.insert( listeNom, '???' )&lt;br /&gt;
			local erreur = string.format( langErrorMess, code )&lt;br /&gt;
			table.insert( listeCode, erreur )&lt;br /&gt;
		end&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		code = mw.text.trim( args[i] or '' )&lt;br /&gt;
	until code == ''&lt;br /&gt;
	&lt;br /&gt;
	-- Préparation et renvoi du texte.&lt;br /&gt;
	local n = #listeCode&lt;br /&gt;
	if n == 0 then&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
	local plusieurs = ( n &amp;gt; 1 )&lt;br /&gt;
	&lt;br /&gt;
	local html = mw.html.create( 'abbr' )&lt;br /&gt;
		:addClass( 'abbr' )&lt;br /&gt;
		:addClass( 'indicateur-langue' )&lt;br /&gt;
		:attr( 'title', 'Langue' .. ( plusieurs and 's' or '' ) .. ' : ' .. mw.text.listToText( listeNom ) )&lt;br /&gt;
		:wikitext( '(' .. table.concat( listeCode, '\194\160+\194\160' ) .. ')' )&lt;br /&gt;
	&lt;br /&gt;
	return tostring( html )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Voir Modèle:Langue avec nom&lt;br /&gt;
-- Paramètres :&lt;br /&gt;
--    1 : code IETF de langue ;&lt;br /&gt;
--    texte ou 2 : texte dans cette langue ;&lt;br /&gt;
--    trans : translittération du texte ;&lt;br /&gt;
--    dir : direction de la langue.&lt;br /&gt;
function Langue.langueAvecNom( frame )&lt;br /&gt;
	local args = ( frame.getParent and frame:getParent().args ) or frame&lt;br /&gt;
	local code = mw.ustring.lower( mw.text.trim( args [1] or '') )&lt;br /&gt;
	local texte = args.texte or args[2] or ''&lt;br /&gt;
	local trans = args.trans&lt;br /&gt;
	local dir = args.dir&lt;br /&gt;
	local wikiText = ''&lt;br /&gt;
&lt;br /&gt;
	-- Détection de la direction du texte.&lt;br /&gt;
	if code == 'ltr' or code == 'rtl' then&lt;br /&gt;
		dir = code&lt;br /&gt;
		code = mw.ustring.lower( mw.text.trim( args[2] ) )&lt;br /&gt;
		texte = args[3] or ''&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Définition du nom de la langue en français.&lt;br /&gt;
	local nom = Langue.lienLangue{ code }&lt;br /&gt;
&lt;br /&gt;
	if texte ~= '' then&lt;br /&gt;
		texte = '\194\160' .. Langue.lang{ code, dir = dir, texte = texte, trans = trans }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	wikiText = nom .. ' :' .. texte&lt;br /&gt;
&lt;br /&gt;
	return wikiText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
-- latinOnly détermine si la chaine fournie contient uniquement des caractères latin (étendu, unicode &amp;lt; 880)&lt;br /&gt;
function Langue.nonLatin( frame )&lt;br /&gt;
	local texte = premierParametre( frame )&lt;br /&gt;
	for codepoint in mw.ustring.gcodepoint( texte ) do&lt;br /&gt;
		if codepoint &amp;gt; 879 and not (                  --  &amp;gt; 036F&lt;br /&gt;
			codepoint &amp;gt; 7423 and codepoint &amp;lt; 7936 or  -- suppléments phonétique, diacritiques et latin  (1D00 à 1EFF)&lt;br /&gt;
			codepoint &amp;gt; 8191 and codepoint &amp;lt; 11392 or -- espace, indices, monaies et symboles divers (2000 à 2C7F)&lt;br /&gt;
			codepoint &amp;gt; 42783 and codepoint &amp;lt; 43008   -- latin étendu D  (A720 à A7FF)&lt;br /&gt;
		) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- erreurModuleData affiche un message d'erreur si le Module:Langue/Data n'a pas été chargé correctement,&lt;br /&gt;
-- pour la page de discussion de la base de données et ceux qui veulent surveiller cette page.&lt;br /&gt;
function Langue.erreurModuleData()&lt;br /&gt;
	if type( dataLangue ) ~= 'table'  then&lt;br /&gt;
		local message = [[&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Le chargement du module Langue/Data génère une erreur : &amp;lt;/strong&amp;gt; &amp;lt;br&amp;gt;%s &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Cette erreur doit être corrigée au plus vite car des milliers de pages ne s'affichent pas correctement.&amp;lt;/span&amp;gt;&lt;br /&gt;
]]&lt;br /&gt;
		return string.format( message, resultat )&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- tableauLangues génère un tableau triable de la liste des langues disponible dans Module:langue/Data.&lt;br /&gt;
function Langue.tableauLangues()&lt;br /&gt;
	local tableau = { }&lt;br /&gt;
	local entete = [[{| class=&amp;quot;wikitable alternance sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!scope=col|Alias&lt;br /&gt;
!scope=col|Code IETF&lt;br /&gt;
!scope=col|Nom principal&lt;br /&gt;
!scope=col|Titre de l'article&amp;lt;br&amp;gt;(si différent du nom)&lt;br /&gt;
!scope=col|Lien vers l'article&lt;br /&gt;
!scope=col|RTL&lt;br /&gt;
!scope=col|Invalide]]&lt;br /&gt;
&lt;br /&gt;
	local ligneTab, ligneSrt&lt;br /&gt;
	for i, v in pairs( dataLangue ) do&lt;br /&gt;
		if v.code then&lt;br /&gt;
			ligneTab = {&lt;br /&gt;
				i,&lt;br /&gt;
				v.code,&lt;br /&gt;
				v.nom,&lt;br /&gt;
				v.page or '',&lt;br /&gt;
				Langue.lienLangue(v.code),&lt;br /&gt;
				v.rtl and '[[Image:Yes check.svg|15px|oui|lien=]]' or '',&lt;br /&gt;
				v.invalide and '[[Image:Yes check.svg|15px|oui|lien=]]' or '',&lt;br /&gt;
			}&lt;br /&gt;
			ligneSrt = table.concat( ligneTab, '\n|' )&lt;br /&gt;
			table.insert( tableau, ligneSrt )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort( tableau )&lt;br /&gt;
	table.insert( tableau, 1, entete )&lt;br /&gt;
	table.insert( tableau, '}' )&lt;br /&gt;
	&lt;br /&gt;
	return table.concat( tableau, '\n|-\n|' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- listeCodeAlias génère une liste ; les langues sont de la forme : * code : alias1, alias2&lt;br /&gt;
function Langue.listeCodeAlias()&lt;br /&gt;
	local languesTab, listeCodesAlias = { }, { }&lt;br /&gt;
	local code, alias, codeAlias&lt;br /&gt;
	for i, v in pairs( dataLangue ) do&lt;br /&gt;
		-- on construit un table avec pour indices les codes de langue, et pour valeurs une table avec la liste des alias&lt;br /&gt;
		code = v.code&lt;br /&gt;
		if code and not v.invalide then&lt;br /&gt;
			languesTab[code] = languesTab[code] or { }&lt;br /&gt;
			if i ~= mw.ustring.lower( code ) then&lt;br /&gt;
				table.insert( languesTab[code], i )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for i, v in pairs( languesTab ) do&lt;br /&gt;
		-- transformation en un table séquence, avec pour valeur une chaine correspondant à une ligne de la liste&lt;br /&gt;
		alias = table.concat( v, ', ' )&lt;br /&gt;
		if alias == '' then&lt;br /&gt;
			codeAlias = '* &amp;lt;code&amp;gt;' .. i .. '&amp;lt;/code&amp;gt;'&lt;br /&gt;
		else&lt;br /&gt;
			codeAlias = '* &amp;lt;code&amp;gt;' .. i .. '&amp;lt;/code&amp;gt; : ' .. alias&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( listeCodesAlias, codeAlias )&lt;br /&gt;
	end&lt;br /&gt;
	table.sort( listeCodesAlias )&lt;br /&gt;
	&lt;br /&gt;
	return table.concat( listeCodesAlias, '\n' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- listeAliasCode génère une liste ; les langues sont de la forme :  * alias : code&lt;br /&gt;
function Langue.listeAliasCode()&lt;br /&gt;
	local languesTab = { }&lt;br /&gt;
	local code&lt;br /&gt;
	for i, v in pairs( dataLangue ) do&lt;br /&gt;
		-- on construit un table avec pour indices les codes de langue, et pour valeurs une table avec la liste des alias&lt;br /&gt;
		code = v.code&lt;br /&gt;
		if code and i ~= code and not v.invalide then&lt;br /&gt;
			table.insert( languesTab, '* ' .. i .. ' = ' .. code )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort( languesTab )&lt;br /&gt;
	&lt;br /&gt;
	return table.concat( languesTab, '\n' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return Langue&lt;/div&gt;</summary>
		<author><name>fr&gt;Epok</name></author>
	</entry>
</feed>