<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://bsd.neuroinf.jp/w/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3ALinguistic</id>
	<title>モジュール:Linguistic - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://bsd.neuroinf.jp/w/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3ALinguistic"/>
	<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;action=history"/>
	<updated>2026-04-15T06:08:56Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;diff=43607&amp;oldid=prev</id>
		<title>Nijcadmin: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;diff=43607&amp;oldid=prev"/>
		<updated>2020-01-29T04:27:45Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&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;ja&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;2020年1月29日 (水) 13:27時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki-mw_:diff:1.41:old-43606:rev-43607 --&gt;
&lt;/table&gt;</summary>
		<author><name>Nijcadmin</name></author>
	</entry>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;diff=43606&amp;oldid=prev</id>
		<title>bsd&gt;Jarekt: apply changes to noungroup function requested at the talk page</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;diff=43606&amp;oldid=prev"/>
		<updated>2019-11-18T13:46:05Z</updated>

		<summary type="html">&lt;p&gt;apply changes to noungroup function requested at the talk page&lt;/p&gt;
&lt;a href=&quot;https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;amp;diff=43606&amp;amp;oldid=30442&quot;&gt;差分を表示&lt;/a&gt;</summary>
		<author><name>bsd&gt;Jarekt</name></author>
	</entry>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;diff=30442&amp;oldid=prev</id>
		<title>WikiSysop: 1版</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;diff=30442&amp;oldid=prev"/>
		<updated>2015-06-16T22:32:16Z</updated>

		<summary type="html">&lt;p&gt;1版&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;
&lt;br /&gt;
local vowels = &amp;#039;aeiouyąăẵằẳặȃắâẫấầẩậãäǟāáàȁǎảẚåǻḁạǡæǣǽĕȇêễếềểệḙẽḛëēḕéḗèȅěẻẹęȩḝǝĭȋîĩḭïḯīíìȉǐỉịįıŏȏôỗốồổộõṏṍöōṑóṓòȍǒỏọǫǭơỡớờởợøǿŭȗûṷũṻṹṵüǖǘǜǚṳūúùȕǔủůụųưữứừửựŷỹÿȳýỳỷẙỵ&amp;#039;&lt;br /&gt;
function wordor(lang) &lt;br /&gt;
	return f._langSwitch(require(&amp;#039;Module:I18n/or&amp;#039;), lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function comma(lang)&lt;br /&gt;
	m = mw.message.newFallbackSequence( &amp;quot;comma-separator&amp;quot; )&lt;br /&gt;
	m:inLanguage(lang)&lt;br /&gt;
	return m:plain()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wordand(lang)&lt;br /&gt;
	local andtable = { -- languages with a problem with the MediaWiki:And&lt;br /&gt;
		[&amp;#039;pl&amp;#039;] = &amp;#039; i&amp;#039;,&lt;br /&gt;
		[&amp;#039;no&amp;#039;] = &amp;#039; og&amp;#039;,&lt;br /&gt;
		[&amp;#039;zh&amp;#039;] = &amp;#039;和&amp;#039;,&lt;br /&gt;
		[&amp;#039;ja&amp;#039;] = &amp;#039;および&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	if andtable[lang] then&lt;br /&gt;
		return andtable[lang]&lt;br /&gt;
	end&lt;br /&gt;
	m = mw.message.newFallbackSequence( &amp;quot;and&amp;quot; )&lt;br /&gt;
	m:inLanguage(lang)&lt;br /&gt;
	return m:plain()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wordsep(lang) -- default separator between words&lt;br /&gt;
	m = mw.message.newFallbackSequence( &amp;quot;Word-separator&amp;quot; )&lt;br /&gt;
	m:inLanguage(lang)&lt;br /&gt;
	return m:plain()&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
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;
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;
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;
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 then return isin(vowels, str[1]) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&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;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.offromwiki(frame)&lt;br /&gt;
	args = frame.args&lt;br /&gt;
	return p.of(args.word, args.lang, args.raw, args.gender, args.number, args.determiner)&lt;br /&gt;
end&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;&lt;br /&gt;
		then return noun&lt;br /&gt;
	end&lt;br /&gt;
	-- adjective before the noun&lt;br /&gt;
	if langisin(&amp;#039;de de-at de-ch en en-ca en-gb pl zh zh-hans zh-hant zh-my zh-cn 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 &amp;#039; (&amp;#039; .. adj .. &amp;#039;)&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.conj(args, lang, conjtype)&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;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 and conjtype ~= &amp;#039;and&amp;#039; and conjtype ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;#039;unknown conj type : &amp;#039; .. conjtype .. &amp;#039;[[Category:Pages with incorrect template usage/Conj|B]]&amp;#039;&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;
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;
	local lang = args.lang&lt;br /&gt;
	if not lang or mw.text.trim(lang) == &amp;#039;&amp;#039; then&lt;br /&gt;
		lang = frame:preprocess( &amp;quot;{{int:lang}}&amp;quot; )&lt;br /&gt;
	end&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 &amp;#039;error: 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, lang, conjtype)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;diff=26159&amp;oldid=prev</id>
		<title>WikiSysop: 1版</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Linguistic&amp;diff=26159&amp;oldid=prev"/>
		<updated>2014-04-20T01:36:45Z</updated>

		<summary type="html">&lt;p&gt;1版&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;
&lt;br /&gt;
local vowels = &amp;#039;aeiouyąăẵằẳặȃắâẫấầẩậãäǟāáàȁǎảẚåǻḁạǡæǣǽĕȇêễếềểệḙẽḛëēḕéḗèȅěẻẹęȩḝǝĭȋîĩḭïḯīíìȉǐỉịįıŏȏôỗốồổộõṏṍöōṑóṓòȍǒỏọǫǭơỡớờởợøǿŭȗûṷũṻṹṵüǖǘǜǚṳūúùȕǔủůụųưữứừửựŷỹÿȳýỳỷẙỵ&amp;#039;&lt;br /&gt;
function wordor(lang) &lt;br /&gt;
	return f._langSwitch(require(&amp;#039;Module:I18n/or&amp;#039;), lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function comma(lang)&lt;br /&gt;
	m = mw.message.newFallbackSequence( &amp;quot;comma-separator&amp;quot; )&lt;br /&gt;
	m:inLanguage(lang)&lt;br /&gt;
	return m:plain()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wordand(lang)&lt;br /&gt;
	local andtable = { -- languages with a problem with the MediaWiki:And&lt;br /&gt;
		[&amp;#039;pl&amp;#039;] = &amp;#039; i&amp;#039;,&lt;br /&gt;
		[&amp;#039;no&amp;#039;] = &amp;#039; og&amp;#039;,&lt;br /&gt;
		[&amp;#039;zh&amp;#039;] = &amp;#039;和&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	if andtable[lang] then&lt;br /&gt;
		return andtable[lang]&lt;br /&gt;
	end&lt;br /&gt;
	m = mw.message.newFallbackSequence( &amp;quot;and&amp;quot; )&lt;br /&gt;
	m:inLanguage(lang)&lt;br /&gt;
	return m:plain()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wordsep(lang) -- default separator between words&lt;br /&gt;
	m = mw.message.newFallbackSequence( &amp;quot;Word-separator&amp;quot; )&lt;br /&gt;
	m:inLanguage(lang)&lt;br /&gt;
	return m:plain()&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
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;
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;
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;
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 then return isin(vowels, str[1]) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&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;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.offromwiki(frame)&lt;br /&gt;
	args = frame.args&lt;br /&gt;
	return p.of(args.word, args.lang, args.raw, args.gender, args.number, args.determiner)&lt;br /&gt;
end&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;&lt;br /&gt;
		then return noun&lt;br /&gt;
	end&lt;br /&gt;
	-- adjective before the noun&lt;br /&gt;
	if langisin(&amp;#039;de de-at de-ch en en-ca en-gb pl zh zh-hans zh-hant zh-my zh-cn 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 &amp;#039; (&amp;#039; .. adj .. &amp;#039;)&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.conj(args, lang, conjtype)&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;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 and conjtype ~= &amp;#039;and&amp;#039; and conjtype ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;#039;unknown conj type : &amp;#039; .. conjtype .. &amp;#039;[[Category:Pages with incorrect template usage/Conj|B]]&amp;#039;&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;
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;
	local lang = args.lang&lt;br /&gt;
	if not lang or mw.text.trim(lang) == &amp;#039;&amp;#039; then&lt;br /&gt;
		lang = frame:preprocess( &amp;quot;{{int:lang}}&amp;quot; )&lt;br /&gt;
	end&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 &amp;#039;error: 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, lang, conjtype)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
</feed>