<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ml">
	<id>https://schoolwiki.in/index.php?action=history&amp;feed=atom&amp;title=%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82%3ALinguistic</id>
	<title>ഘടകം:Linguistic - നാൾവഴി</title>
	<link rel="self" type="application/atom+xml" href="https://schoolwiki.in/index.php?action=history&amp;feed=atom&amp;title=%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82%3ALinguistic"/>
	<link rel="alternate" type="text/html" href="https://schoolwiki.in/index.php?title=%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82:Linguistic&amp;action=history"/>
	<updated>2026-05-13T11:51:19Z</updated>
	<subtitle>വിക്കിയിൽ ഈ താളിന്റെ നാൾവഴി</subtitle>
	<generator>MediaWiki 1.43.4</generator>
	<entry>
		<id>https://schoolwiki.in/index.php?title=%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82:Linguistic&amp;diff=2507739&amp;oldid=prev</id>
		<title>Ranjithsiji: ഒരു പതിപ്പ് ഇറക്കുമതി ചെയ്തു</title>
		<link rel="alternate" type="text/html" href="https://schoolwiki.in/index.php?title=%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82:Linguistic&amp;diff=2507739&amp;oldid=prev"/>
		<updated>2024-06-27T12:02:34Z</updated>

		<summary type="html">&lt;p&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;ml&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←പഴയ രൂപം&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;17:32, 27 ജൂൺ 2024-നു നിലവിലുണ്ടായിരുന്ന രൂപം&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ml&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(വ്യത്യാസം ഇല്ല)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key schoolwiki_db-sch_:diff:1.41:old-2507738:rev-2507739 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ranjithsiji</name></author>
	</entry>
	<entry>
		<id>https://schoolwiki.in/index.php?title=%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82:Linguistic&amp;diff=2507738&amp;oldid=prev</id>
		<title>en&gt;MusikBot II: Changed protection settings for &quot;Module:Linguistic&quot;: High-risk template or module (more info) ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://schoolwiki.in/index.php?title=%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82:Linguistic&amp;diff=2507738&amp;oldid=prev"/>
		<updated>2024-02-18T18:04:55Z</updated>

		<summary type="html">&lt;p&gt;Changed protection settings for &amp;quot;&lt;a href=&quot;/%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82:Linguistic&quot; title=&quot;ഘടകം:Linguistic&quot;&gt;Module:Linguistic&lt;/a&gt;&amp;quot;: High-risk template or module (&lt;a href=&quot;/index.php?title=%E0%B4%89%E0%B4%AA%E0%B4%AF%E0%B5%8B%E0%B4%95%E0%B5%8D%E0%B4%A4%E0%B4%BE%E0%B4%B5%E0%B5%8D:MusikBot_II/TemplateProtector&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;ഉപയോക്താവ്:MusikBot II/TemplateProtector (ഇതുവരെ എഴുതപ്പെട്ടിട്ടില്ല)&quot;&gt;more info&lt;/a&gt;) ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;പുതിയ താൾ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- some simple internationalization that can be called by other modules&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local f = require(&amp;#039;Module:Fallback&amp;#039;)&lt;br /&gt;
local i18n = mw.loadData(&amp;#039;Module:I18n/linguistic&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local function getText(msg, lang)&lt;br /&gt;
	return f._langSwitch(i18n[msg], lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local vowels = &amp;#039;aeiouyąăẵằẳặȃắâẫấầẩậãäǟāáàȁǎảẚåǻḁạǡæǣǽĕȇêễếềểệḙẽḛëēḕéḗèȅěẻẹęȩḝǝĭȋîĩḭïḯīíìȉǐỉịįıŏȏôỗốồổộõṏṍöōṑóṓòȍǒỏọǫǭơỡớờởợøǿŭȗûṷũṻṹṵüǖǘǜǚṳūúùȕǔủůụųưữứừửựŷỹÿȳýỳỷẙỵ&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local function wordor(lang)&lt;br /&gt;
	return getText(&amp;#039;or_conj&amp;#039;, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function comma(lang)&lt;br /&gt;
	return getText(&amp;quot;comma&amp;quot;, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function citation_comma(lang)&lt;br /&gt;
	return getText(&amp;quot;citation_comma&amp;quot;, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.fullstop(lang)&lt;br /&gt;
	return getText(&amp;quot;full_stop&amp;quot;, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.colon(lang)&lt;br /&gt;
	return getText(&amp;quot;colon&amp;quot;, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function wordand(lang)&lt;br /&gt;
	return getText(&amp;quot;and_conj&amp;quot;, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function wordsep(lang) -- default separator between words&lt;br /&gt;
	return getText(&amp;quot;word_separator&amp;quot;, lang)&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
local function isin(str, pattern)&lt;br /&gt;
	return str and pattern and mw.ustring.find(str, pattern, 1, true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function langisin(str, lang)&lt;br /&gt;
	return isin(str, lang .. &amp;#039; &amp;#039;) -- space is necessary to avoid false positives like zh in zh-hans&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function processgender(str)&lt;br /&gt;
	local t = {	&lt;br /&gt;
		f = &amp;#039;feminine&amp;#039;,&lt;br /&gt;
		fem = &amp;#039;feminine&amp;#039;,&lt;br /&gt;
		feminine = &amp;#039;feminine&amp;#039;,&lt;br /&gt;
		m = &amp;#039;masculine&amp;#039;,&lt;br /&gt;
		masc = &amp;#039;masculine&amp;#039;,&lt;br /&gt;
		masculine = &amp;#039;masculine&amp;#039;,&lt;br /&gt;
		n = &amp;#039;neutral&amp;#039;,&lt;br /&gt;
		neutral = &amp;#039;neutral&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	return t[str] or &amp;#039;masculine&amp;#039;&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;
	return str and isin(vowels, str[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.inparentheses(str, lang)&lt;br /&gt;
	--todo: define language with exotic parentheses&lt;br /&gt;
	if str == &amp;#039;&amp;#039; then&lt;br /&gt;
		return str&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039; (&amp;#039; .. str .. &amp;#039;)&amp;#039;&lt;br /&gt;
		-- needs internationalization.&lt;br /&gt;
		-- Needs leading space in English because as some languages do not use it, it is part of the formatting&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.of(word, lang, raw, gender, number, determiner) -- rough translation of &amp;quot;of&amp;quot; in various languages&lt;br /&gt;
-- note that the cases when on &amp;quot;of&amp;quot; is employed varies a lot among languages, so it is more prudent to call this from lang specific function only&lt;br /&gt;
	if not raw then&lt;br /&gt;
		raw = word&lt;br /&gt;
	end&lt;br /&gt;
	gender = processgender(gender)&lt;br /&gt;
	number = processnumber(number)&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;
	-- todo: ca to replace Template:Of/ca&lt;br /&gt;
	&lt;br /&gt;
	if lang == &amp;#039;fr&amp;#039; then&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 p.vowelfirst(raw) then&lt;br /&gt;
			return &amp;#039;de l\&amp;#039;&amp;#039; .. word&lt;br /&gt;
		elseif gender == &amp;#039;feminine&amp;#039; then&lt;br /&gt;
			return &amp;#039;de la &amp;#039; .. word&lt;br /&gt;
		elseif derterminer then&lt;br /&gt;
			return &amp;#039;du &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;
	return raw&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.noungroup(noun, adj, lang)&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;
	if not adj or adj == &amp;#039;&amp;#039; then&lt;br /&gt;
		return noun&lt;br /&gt;
	end&lt;br /&gt;
	-- adjective before the noun&lt;br /&gt;
	if langisin(&amp;#039;cs de de-at de-ch en en-ca en-gb pl sk zh zh-cn zh-hans zh-hant zh-my zh-sg zh-tw &amp;#039;, lang) then&lt;br /&gt;
		return adj .. wordsep(lang) .. noun&lt;br /&gt;
	-- adjective after the noun&lt;br /&gt;
	elseif langisin(&amp;#039;fr fr-ca es it&amp;#039;) then&lt;br /&gt;
		return noun .. wordsep(lang) .. adj&lt;br /&gt;
	else&lt;br /&gt;
		return noun .. p.inparentheses(adj, lang)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.conj(args, lang, 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;
		if type(j) ~= &amp;#039;nil&amp;#039; then&lt;br /&gt;
			table.insert(newargs, j)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	args = newargs&lt;br /&gt;
	if #args == 0 then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if conjtype == &amp;#039;comma&amp;#039; then&lt;br /&gt;
		return mw.text.listToText(args, comma(lang), comma(lang))&lt;br /&gt;
	elseif conjtype == &amp;#039;citation_comma&amp;#039; then&lt;br /&gt;
		return mw.text.listToText(args, citation_comma(lang), citation_comma(lang))&lt;br /&gt;
	elseif conjtype == &amp;#039;or&amp;#039; then&lt;br /&gt;
		return mw.text.listToText(args, comma(lang), wordor(lang) .. wordsep(lang))&lt;br /&gt;
	elseif conjtype == &amp;#039;explicit or&amp;#039; then -- adds &amp;quot;or&amp;quot; betwen all words when the context can be confusing&lt;br /&gt;
		return mw.text.listToText(args, wordor(lang) .. wordsep(lang), wordor(lang) .. wordsep(lang))&lt;br /&gt;
	elseif conjtype then&lt;br /&gt;
		return mw.text.listToText(args, conjtype, conjtype)&lt;br /&gt;
	else&lt;br /&gt;
		return mw.text.listToText(args, comma(lang), wordand(lang) .. wordsep(lang))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>en&gt;MusikBot II</name></author>
	</entry>
</feed>