<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://dansunegalaxie.ca/index.php?action=history&amp;feed=atom&amp;title=Module%3ALinguistique</id>
	<title>Module:Linguistique - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://dansunegalaxie.ca/index.php?action=history&amp;feed=atom&amp;title=Module%3ALinguistique"/>
	<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Linguistique&amp;action=history"/>
	<updated>2026-04-04T22:01:01Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://dansunegalaxie.ca/index.php?title=Module:Linguistique&amp;diff=179&amp;oldid=prev</id>
		<title>Yuki : 1 version importée : Infobox</title>
		<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Linguistique&amp;diff=179&amp;oldid=prev"/>
		<updated>2023-11-15T07:11:13Z</updated>

		<summary type="html">&lt;p&gt;1 version importée : Infobox&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 15 novembre 2023 à 03:11&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key dugwiki:diff::1.12:old-178:rev-179 --&gt;
&lt;/table&gt;</summary>
		<author><name>Yuki</name></author>
	</entry>
	<entry>
		<id>https://dansunegalaxie.ca/index.php?title=Module:Linguistique&amp;diff=178&amp;oldid=prev</id>
		<title>wikipedia&gt;GrandEscogriffe : plus de particules de séparation des compléments</title>
		<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Linguistique&amp;diff=178&amp;oldid=prev"/>
		<updated>2023-10-12T13:48:52Z</updated>

		<summary type="html">&lt;p&gt;plus de particules de séparation des compléments&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Ne fonctionne qu&amp;#039;en français. Si besoin est, on peut s&amp;#039;inspirer de [[wikidata:Module:Linguistic]] pour ajouter d&amp;#039;autres langues.&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local lang = &amp;#039;fr&amp;#039;&lt;br /&gt;
local langobj = mw.language.new(lang)&lt;br /&gt;
&lt;br /&gt;
local vowels = &amp;#039;aeiouyąăẵằẳặȃắâẫấầẩậãäǟāáàȁǎảẚåǻḁạǡæǣǽĕȇêễếềểệḙẽḛëēḕéḗèȅěẻẹęȩḝǝĭȋîĩḭïḯīíìȉǐỉịįıŏȏôỗốồổộõṏṍöōṑóṓòȍǒỏọǫǭơỡớờởợøǿŭȗûṷũṻṹṵüǖǘǜǚṳūúùȕǔủůụųưữứừửựŷỹÿȳýỳỷẙỵ&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- i18n&lt;br /&gt;
local wordor = &amp;#039; ou &amp;#039;&lt;br /&gt;
local wordand = &amp;#039; et &amp;#039;&lt;br /&gt;
local comma = &amp;#039;, &amp;#039;&lt;br /&gt;
local fullstop = &amp;#039;. &amp;#039;&lt;br /&gt;
local wordsep = &amp;#039; &amp;#039;&lt;br /&gt;
&lt;br /&gt;
local function isin(str, pattern)&lt;br /&gt;
	if str and pattern and mw.ustring.find(str, pattern, 1, true ) then&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function processgender(str)&lt;br /&gt;
	if (str == &amp;#039;f&amp;#039;) or (str == &amp;#039;fem&amp;#039;) or (str == &amp;#039;feminine&amp;#039;) then &lt;br /&gt;
		return &amp;#039;feminine&amp;#039;&lt;br /&gt;
	elseif (str == &amp;#039;n&amp;#039;) or (str == &amp;#039;neutral&amp;#039;) then &lt;br /&gt;
		return &amp;#039;neutral&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;masculine&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function processnumber(str)&lt;br /&gt;
	if (str == &amp;#039;p&amp;#039;) or (str == &amp;#039;plural&amp;#039;) then&lt;br /&gt;
		return &amp;#039;plural&amp;#039;&lt;br /&gt;
	else &lt;br /&gt;
		return &amp;#039;singular&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.vowelfirst (str)&lt;br /&gt;
	if str and #str &amp;gt; 0 then return isin(vowels, mw.ustring.lower(mw.ustring.sub(str, 1, 1))) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.inparentheses(str, lang, space)&lt;br /&gt;
	if (not str) or str == &amp;#039;&amp;#039; then&lt;br /&gt;
		return str&lt;br /&gt;
	end&lt;br /&gt;
	str = &amp;#039;(&amp;#039; .. str .. &amp;#039;)&amp;#039;&lt;br /&gt;
	if not space then&lt;br /&gt;
		space = &amp;#039;&amp;amp;#32;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return space .. str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.of(word, gender, number, determiner, raw) &lt;br /&gt;
	if not word then&lt;br /&gt;
		word = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	word = mw.text.trim( word )&lt;br /&gt;
	if not raw then  --texte non mis en forme pour gérer les élisions&lt;br /&gt;
		raw = p.texteLien(word) or word&lt;br /&gt;
	end&lt;br /&gt;
	gender = processgender(gender)&lt;br /&gt;
	number = processnumber(number)&lt;br /&gt;
	local vowel = p.vowelfirst(raw)&lt;br /&gt;
	local feminine = (gender== &amp;#039;feminine&amp;#039;)&lt;br /&gt;
	-- raw is the string without the Wikiformatting so that it correctly analyses the string that is [[:fr:Italie|Italie]] -&amp;gt; &amp;#039;italie&amp;#039;&lt;br /&gt;
	-- any way to automate this ?&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	if number == &amp;#039;plural&amp;#039; then&lt;br /&gt;
		return &amp;#039;des &amp;#039; .. word&lt;br /&gt;
	elseif determiner and (determiner ~= &amp;#039;-&amp;#039;) then-- de la, du // determiner ~= &amp;#039;-&amp;#039; veut dire renseigné comme vide&lt;br /&gt;
		if vowel then&lt;br /&gt;
			return &amp;#039;de l’&amp;#039; .. word&lt;br /&gt;
		elseif feminine then&lt;br /&gt;
			return &amp;#039;de la &amp;#039; .. word&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;du &amp;#039; .. word&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if vowel then&lt;br /&gt;
			return &amp;#039;d’&amp;#039; .. word&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;de &amp;#039; .. word&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.noungroup(noun, adj)&lt;br /&gt;
	if not noun or noun == &amp;#039;&amp;#039; then &lt;br /&gt;
		return nil -- not &amp;#039;&amp;#039; so that it is not counted as a string by mw.listToText&lt;br /&gt;
	end&lt;br /&gt;
	return noun .. wordsep(lang) .. adj -- lorsque c&amp;#039;est en français&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.quickconj(args, conjtype)&lt;br /&gt;
	local separator, conjunction&lt;br /&gt;
	&lt;br /&gt;
	-- cas où separator ~= conj&lt;br /&gt;
	if type(conjtype) == &amp;#039;function&amp;#039; then&lt;br /&gt;
		conjtype = conjtype()	&lt;br /&gt;
	end&lt;br /&gt;
	if (not conjtype) or conjtype == &amp;#039;and&amp;#039; then&lt;br /&gt;
		separator, conjunction = comma, wordand&lt;br /&gt;
	elseif conjtype == &amp;#039;or&amp;#039; then&lt;br /&gt;
		separator, conjunction = comma, wordor&lt;br /&gt;
	end&lt;br /&gt;
	if (separator and conjunction) then&lt;br /&gt;
		return  mw.text.listToText(args, separator, conjunction)&lt;br /&gt;
	end&lt;br /&gt;
	-- autres cas&lt;br /&gt;
	if conjtype == &amp;#039;comma&amp;#039; then&lt;br /&gt;
		separator = comma&lt;br /&gt;
	elseif conjtype == &amp;#039;new line&amp;#039; or conjtype == &amp;#039;lowercase new line&amp;#039; then&lt;br /&gt;
		separator = &amp;#039;&amp;lt;br /&amp;gt;&amp;#039;&lt;br /&gt;
		if conjtype == &amp;#039;new line&amp;#039; then&lt;br /&gt;
			for i, j in pairs(args) do -- ajoute une majuscule&lt;br /&gt;
				args[i] = p.ucfirst(j)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		separator = conjtype&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(args, separator)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.conj(args, conjtype)&lt;br /&gt;
	if (not args) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local newargs = {}&lt;br /&gt;
	for i, j in pairs(args) do&lt;br /&gt;
		table.insert(newargs, j)&lt;br /&gt;
	end&lt;br /&gt;
	if #newargs == 0 then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	return p.quickconj(newargs, conjtype)&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function p.conjfromWiki(frame)&lt;br /&gt;
	args = frame.args&lt;br /&gt;
	if not args or not args[1] then&lt;br /&gt;
		args = mw.getCurrentFrame():getParent().args&lt;br /&gt;
	end&lt;br /&gt;
	local conjtype = args.type&lt;br /&gt;
	newargs = {}  -- transform args metatable into a table so it can be concetenated&lt;br /&gt;
	for i, j in pairs(args) do&lt;br /&gt;
			if type(i) == &amp;#039;number&amp;#039; then&lt;br /&gt;
				j = mw.text.trim(j)&lt;br /&gt;
				if j ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					table.insert(newargs, j)&lt;br /&gt;
				end&lt;br /&gt;
			else &lt;br /&gt;
				if i ~= &amp;#039;type&amp;#039; and i ~= &amp;#039;lang&amp;#039; then &lt;br /&gt;
					return error(&amp;#039;bad parameter in template:Conj:&amp;#039; .. i), &amp;#039;[[Category:Pages with incorrect template usage/Conj|A]]&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
	end&lt;br /&gt;
	return p.conj(newargs, conjtype)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function findcomplement(str, beginswith) -- retourne le nom principal et le complément du nom ou nil et nil si échec&lt;br /&gt;
	local particles = {&amp;quot; de la &amp;quot;, &amp;quot; de l&amp;#039;&amp;quot;, &amp;quot; des &amp;quot;, &amp;quot; de l’&amp;quot;, &amp;quot; de &amp;quot;, &amp;quot; d’&amp;quot;, &amp;quot; d&amp;#039;&amp;quot;, &amp;quot; du &amp;quot;,&amp;quot; en &amp;quot;,&amp;quot; à &amp;quot;,&amp;quot; au &amp;quot;,&amp;quot; aux &amp;quot;}&lt;br /&gt;
	if beginswith and (not mw.ustring.find(str, &amp;quot;^&amp;quot; .. beginswith)) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	for i, pattern in pairs(particles) do&lt;br /&gt;
		local pos = mw.ustring.find(str, pattern)&lt;br /&gt;
		if pos then&lt;br /&gt;
			local main = mw.ustring.sub(str, 1, pos -1)&lt;br /&gt;
			local comp = mw.ustring.sub(str, pos + string.len(pattern))&lt;br /&gt;
			return main, comp&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.keepcomplement(str, beginswith) -- par exemple &amp;quot;gare de Lyon&amp;quot; -&amp;gt; &amp;quot;Lyon&amp;quot;&lt;br /&gt;
	local main, compl = findcomplement(str, beginswith)&lt;br /&gt;
	if compl then&lt;br /&gt;
		return compl&lt;br /&gt;
	end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.removecomplement(str, beginswith) -- par exemple &amp;quot;gare de Lyon&amp;quot; -&amp;gt; &amp;quot;gare&amp;quot;&lt;br /&gt;
	local main, compl = findcomplement(str, beginswith)&lt;br /&gt;
	if main then&lt;br /&gt;
		return main&lt;br /&gt;
	end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
	texteLien le lien intere initial &amp;#039;^[[lien|texte]]&amp;#039; de str et retourne : texte, lien&lt;br /&gt;
	Si le lien est &amp;#039;[[texte]]&amp;#039;, retourne : texte, texte.&lt;br /&gt;
	Si str ne commence pas par un lien interwiki, retourne : nil&lt;br /&gt;
]=]&lt;br /&gt;
function p.texteLien( str )&lt;br /&gt;
	if type( str ) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		local lien, texte = str:match( &amp;#039;^%[%[ *([^%[%]|]*)|? *([^%[%]]*)%]%]&amp;#039; )&lt;br /&gt;
		if not lien then&lt;br /&gt;
			lien, texte = str:match( &amp;#039;^%b&amp;lt;&amp;gt;%[%[ *([^%[%]|]*)|? *([^%[%]]*)%]%]&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
		if lien then&lt;br /&gt;
			local testlien = string.lower( lien )&lt;br /&gt;
			local fichier = string.match( testlien, &amp;#039;^fichier:&amp;#039; ) &lt;br /&gt;
				or  string.match( testlien, &amp;#039;^image:&amp;#039; )&lt;br /&gt;
				or  string.match( testlien, &amp;#039;^file:&amp;#039; )&lt;br /&gt;
			if not fichier then&lt;br /&gt;
				texte = ( texte ~= &amp;#039;&amp;#039; and texte ) or lien&lt;br /&gt;
				return texte, lien&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ucfirst(str)&lt;br /&gt;
	if (type (str ) ~= &amp;#039;string&amp;#039;) or (string == &amp;quot;&amp;quot;) then&lt;br /&gt;
		return str&lt;br /&gt;
	end&lt;br /&gt;
	local strTemp, tag, tagTemp = str, &amp;#039;&amp;#039;&lt;br /&gt;
		-- sépare les balises html initiales (span ou autres)&lt;br /&gt;
	while strTemp:match( &amp;#039;^%b&amp;lt;&amp;gt;&amp;#039; ) do&lt;br /&gt;
		tagTemp, strTemp = strTemp:match( &amp;#039;^(%b&amp;lt;&amp;gt;)(.*)$&amp;#039; )&lt;br /&gt;
		tag = tag .. tagTemp&lt;br /&gt;
	end&lt;br /&gt;
	local texte = p.texteLien( strTemp )&lt;br /&gt;
	if texte then&lt;br /&gt;
		-- ajoute les crochets de fin de lien pour être sur de ne remplacer que le texte du lien&lt;br /&gt;
		texte = texte .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		-- échappe les caractère magique&lt;br /&gt;
		local pattern = texte:gsub( &amp;#039;([$%%()*+%-.?()^])&amp;#039;, &amp;#039;%%%1&amp;#039; )&lt;br /&gt;
		-- ajoute la majuscule au texte du lien&lt;br /&gt;
		str = str:gsub( pattern, p.ucfirst( texte ), 1 )&lt;br /&gt;
	else&lt;br /&gt;
		str = tag .. langobj:ucfirst( strTemp )&lt;br /&gt;
	end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ucfirstE(frame)&lt;br /&gt;
	return p.ucfirst(frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.lcfirst(str)&lt;br /&gt;
	if (type (str ) ~= &amp;#039;string&amp;#039;) or (string == &amp;quot;&amp;quot;) then&lt;br /&gt;
		return str&lt;br /&gt;
	end&lt;br /&gt;
	local strTemp, tag, tagTemp = str, &amp;#039;&amp;#039;&lt;br /&gt;
		-- sépare les balises html initiales (span ou autres)&lt;br /&gt;
	while strTemp:match( &amp;#039;^%b&amp;lt;&amp;gt;&amp;#039; ) do&lt;br /&gt;
		tagTemp, strTemp = strTemp:match( &amp;#039;^(%b&amp;lt;&amp;gt;)(.*)$&amp;#039; )&lt;br /&gt;
		tag = tag .. tagTemp&lt;br /&gt;
	end&lt;br /&gt;
	local texte = p.texteLien( strTemp )&lt;br /&gt;
	if texte then&lt;br /&gt;
		-- ajoute les crochets de fin de lien pour être sur de ne remplacer que le texte du lien&lt;br /&gt;
		texte = texte .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		-- échappe les caractère magique&lt;br /&gt;
		local pattern = texte:gsub( &amp;#039;([$%%()*+%-.?()^])&amp;#039;, &amp;#039;%%%1&amp;#039; )&lt;br /&gt;
		-- ajoute la majuscule au texte du lien&lt;br /&gt;
		str = str:gsub( pattern, p.lcfirst( texte ), 1 )&lt;br /&gt;
	else&lt;br /&gt;
		str = tag .. langobj:lcfirst( strTemp )&lt;br /&gt;
	end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.lcfirstE(frame)&lt;br /&gt;
	return p.lcfirst(frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
function p.toascii(str)&lt;br /&gt;
	local convtable = mw.loadData(&amp;quot;Module:Linguistique/ASCII&amp;quot;)&lt;br /&gt;
	for i, j in pairs(convtable) do -- manquent les majuscules&lt;br /&gt;
		str = mw.ustring.gsub(str, &amp;#039;[&amp;#039; .. i .. &amp;#039;]&amp;#039;, j)&lt;br /&gt;
	end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
]]-- &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;GrandEscogriffe</name></author>
	</entry>
</feed>