<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.culturaitaliana.org/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ALingua</id>
	<title>Module:Lingua - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.culturaitaliana.org/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ALingua"/>
	<link rel="alternate" type="text/html" href="https://www.culturaitaliana.org/w/index.php?title=Module:Lingua&amp;action=history"/>
	<updated>2026-04-09T04:26:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://www.culturaitaliana.org/w/index.php?title=Module:Lingua&amp;diff=7539&amp;oldid=prev</id>
		<title>Admin: una versione importata</title>
		<link rel="alternate" type="text/html" href="https://www.culturaitaliana.org/w/index.php?title=Module:Lingua&amp;diff=7539&amp;oldid=prev"/>
		<updated>2020-11-05T16:52:46Z</updated>

		<summary type="html">&lt;p&gt;una versione importata&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&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;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:52, 5 November 2020&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key wiki_redazione_en:diff::1.12:old-7538:rev-7539 --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.culturaitaliana.org/w/index.php?title=Module:Lingua&amp;diff=7538&amp;oldid=prev</id>
		<title>en&gt;Candalua: Annullata la modifica 2588534 di Candalua (discussione)</title>
		<link rel="alternate" type="text/html" href="https://www.culturaitaliana.org/w/index.php?title=Module:Lingua&amp;diff=7538&amp;oldid=prev"/>
		<updated>2020-05-06T10:15:02Z</updated>

		<summary type="html">&lt;p&gt;Annullata la modifica 2588534 di &lt;a href=&quot;/wiki/Special:Contributions/Candalua&quot; title=&quot;Special:Contributions/Candalua&quot;&gt;Candalua&lt;/a&gt; (&lt;a href=&quot;/w/index.php?title=User_talk:Candalua&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Candalua (page does not exist)&quot;&gt;discussione&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--modulo contenente funzioni di tipo linguistico (grammatica e ortografia italiana), da usare altrove&lt;br /&gt;
local p = {}&lt;br /&gt;
local c = require('Modulo:Common')&lt;br /&gt;
&lt;br /&gt;
local vocali = {'A', 'E', 'I', 'O', 'U'}&lt;br /&gt;
&lt;br /&gt;
-- true se è una vocale&lt;br /&gt;
function p.isVocale(lettera)&lt;br /&gt;
	 lettera = c.stripAccents( (lettera or ''):sub(1, 1) ):upper()&lt;br /&gt;
	 return c.contains(vocali, lettera)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.artDet(frame)&lt;br /&gt;
	return p.articoloDeterminativo(frame.args[1], frame.args[2], frame.args[3])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--ritorna la parola data preceduta dal corretto articolo&lt;br /&gt;
function p.articoloDeterminativo(parola, genere, numero)&lt;br /&gt;
	local art = p.determinaArticolo(parola, genere, numero)&lt;br /&gt;
	if art == 'l\'' then return art .. parola&lt;br /&gt;
	else return art .. ' ' .. parola end&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
--data una parola, ritorna il corretto articolo determinativo&lt;br /&gt;
function p.determinaArticolo(parola, genere, numero)&lt;br /&gt;
	genere = (genere or 'M'):upper()&lt;br /&gt;
	numero = (numero or 'S'):upper()&lt;br /&gt;
	local prima  = c.stripAccents(parola:sub(1, 1)):upper()&lt;br /&gt;
	local seconda= c.stripAccents(parola:sub(2, 2)):upper()&lt;br /&gt;
	&lt;br /&gt;
	if tonumber(parola) ~= nil then&lt;br /&gt;
		if genere == 'M' and numero == 'S' then&lt;br /&gt;
			if parola == '8' or parola == '11' then&lt;br /&gt;
				return 'l\''&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if p.isVocale(prima) and not p.isVocale(seconda) then&lt;br /&gt;
		if numero == 'S' then&lt;br /&gt;
			return 'l\''&lt;br /&gt;
		else&lt;br /&gt;
			if genere == 'M' then return 'gli' end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	elseif genere == 'M' and (&lt;br /&gt;
		(p.isVocale(prima) and p.isVocale(seconda))&lt;br /&gt;
		or prima..seconda == 'GN' or prima..seconda == 'PS' or prima..seconda == 'PN'&lt;br /&gt;
		or prima == 'Z' or prima == 'X' or prima == 'Y' or (prima == 'S' and not p.isVocale(seconda) ) ) then&lt;br /&gt;
			&lt;br /&gt;
			if numero == 'S' then return 'lo'&lt;br /&gt;
			else return 'gli' end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if genere == 'M' then&lt;br /&gt;
		if numero == 'S' then return 'il'&lt;br /&gt;
		else return 'gli' end&lt;br /&gt;
	else&lt;br /&gt;
		if numero == 'S' then return 'la'&lt;br /&gt;
		else return 'le' end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--ritorna il genere (maschile/femminile) di una parola, sulla base di una lista di parole femminili&lt;br /&gt;
local paroleFemminili = {'lingua'}&lt;br /&gt;
function p.determinaGenere(parola)&lt;br /&gt;
	if c.contains(paroleFemminili, parola) then&lt;br /&gt;
		return 'F'&lt;br /&gt;
	else&lt;br /&gt;
		return 'M'&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.spezzaParole(stringa)&lt;br /&gt;
	local parole = {}&lt;br /&gt;
	for word in string.gmatch(stringa, &amp;quot;%w+&amp;quot;) do&lt;br /&gt;
		table.insert(parole, word)&lt;br /&gt;
	end&lt;br /&gt;
	return parole&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--ritorna la parola data, preceduta dalla preposizione (di a da in su) nella forma corretta&lt;br /&gt;
function p.prepArt(prep, parola, genere, numero)&lt;br /&gt;
	if prep == 'di' then prep = 'de' end&lt;br /&gt;
	if prep == 'in' then prep = 'ne' end&lt;br /&gt;
	&lt;br /&gt;
	local art = p.determinaArticolo(parola, genere, numero)&lt;br /&gt;
	if art == 'il' then return prep .. 'l ' .. parola&lt;br /&gt;
	elseif art == 'l\'' then return prep .. 'll\'' .. parola&lt;br /&gt;
	elseif art == 'lo' or art == 'la' or art == 'le' then return prep .. 'l' .. art .. ' ' .. parola&lt;br /&gt;
	else return prep .. art .. ' ' .. parola end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--metodo esposto al template PrepArt&lt;br /&gt;
function p.preposizioneArticolata(frame)&lt;br /&gt;
	local prep = frame.args[1]&lt;br /&gt;
	local parola = frame.args[2]&lt;br /&gt;
	local genere = p.determinaGenere(c.first(p.spezzaParole(parola)))&lt;br /&gt;
	local numero = 'S'&lt;br /&gt;
	if frame.args[3] and frame.args[3]:upper() == 'F' then genere = 'F' end&lt;br /&gt;
	if frame.args[4] and frame.args[4]:upper() == 'P' then numero = 'P' end&lt;br /&gt;
	return p.prepArt(prep, parola, genere, numero)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--ritorna la prima lettera del titolo fornito, ma escludendo gli eventuali articoli iniziale (IL, LO, LA, UN...)&lt;br /&gt;
function p.primaLetteraEsclusoArticolo(titolo)&lt;br /&gt;
	if not titolo or titolo == '' then return '' end&lt;br /&gt;
	titolo = titolo:gsub(&amp;quot;^Il &amp;quot;, ''):gsub(&amp;quot;^Il &amp;quot;, ''):gsub(&amp;quot;^L'&amp;quot;, ''):gsub(&amp;quot;^Lo &amp;quot;, ''):gsub(&amp;quot;^La &amp;quot;, ''):gsub(&amp;quot;^Un &amp;quot;, ''):gsub(&amp;quot;^Un'&amp;quot;, ''):gsub(&amp;quot;^Uno &amp;quot;, ''):gsub(&amp;quot;^Una &amp;quot;, '')&lt;br /&gt;
		:gsub(&amp;quot;^'&amp;quot;, ''):gsub(&amp;quot;^‛&amp;quot;, ''):gsub(&amp;quot;^’&amp;quot;, ''):gsub(&amp;quot;^ʿ&amp;quot;, '')&lt;br /&gt;
	return titolo:sub(1, 1):upper()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--ritorna la prima lettera del titolo esclusi gli apostrofi e convertendo le lettere accentate o con diacritici nella corrispondente lettera base&lt;br /&gt;
function p.primaLettera(frame)&lt;br /&gt;
	titolo = frame.args[1] or ''&lt;br /&gt;
	titolo = titolo:gsub(&amp;quot;^[. ]*&amp;quot;, ''):gsub(&amp;quot;^'&amp;quot;, ''):gsub(&amp;quot;^'&amp;quot;, ''):gsub(&amp;quot;^‛&amp;quot;, ''):gsub(&amp;quot;^’&amp;quot;, ''):gsub(&amp;quot;^ʼ&amp;quot;, ''):gsub(&amp;quot;^ʿ&amp;quot;, ''):gsub(&amp;quot;\&amp;quot;&amp;quot;, ''):upper()&lt;br /&gt;
		:gsub(&amp;quot;^Æ&amp;quot;, 'A'):gsub(&amp;quot;^À&amp;quot;, 'A'):gsub(&amp;quot;^Á&amp;quot;, 'A')&lt;br /&gt;
		:gsub(&amp;quot;^Ć&amp;quot;, 'C'):gsub(&amp;quot;^Ç&amp;quot;, 'C')&lt;br /&gt;
		:gsub(&amp;quot;^È&amp;quot;, 'E'):gsub(&amp;quot;^É&amp;quot;, 'E'):gsub(&amp;quot;^Ë&amp;quot;, 'E')&lt;br /&gt;
		:gsub(&amp;quot;^Ì&amp;quot;, 'I'):gsub(&amp;quot;^Í&amp;quot;, 'I')&lt;br /&gt;
		:gsub(&amp;quot;^Ò&amp;quot;, 'O'):gsub(&amp;quot;^Ó&amp;quot;, 'O'):gsub(&amp;quot;^Œ&amp;quot;, 'O'):gsub(&amp;quot;^Ø&amp;quot;, 'O'):gsub(&amp;quot;^Ö&amp;quot;, 'O'):gsub(&amp;quot;^Ô&amp;quot;, 'O')&lt;br /&gt;
		:gsub(&amp;quot;^Ù&amp;quot;, 'U'):gsub(&amp;quot;^Ú&amp;quot;, 'U'):gsub(&amp;quot;^Ü&amp;quot;, 'U'):gsub(&amp;quot;^Û&amp;quot;, 'U')&lt;br /&gt;
		:gsub(&amp;quot;^Ś&amp;quot;, 'S'):gsub(&amp;quot;^Ṡ&amp;quot;, 'S')&lt;br /&gt;
	return titolo:sub(1, 1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>en&gt;Candalua</name></author>
	</entry>
</feed>