<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.digitalcellulose.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AAlternative_forms</id>
	<title>Module:Alternative forms - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://www.digitalcellulose.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AAlternative_forms"/>
	<link rel="alternate" type="text/html" href="http://www.digitalcellulose.com/wiki/index.php?title=Module:Alternative_forms&amp;action=history"/>
	<updated>2026-05-19T03:22:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://www.digitalcellulose.com/wiki/index.php?title=Module:Alternative_forms&amp;diff=98241&amp;oldid=prev</id>
		<title>Adminsuzy: Created page with &quot;local export = {} local m_link = require('Module:links') local m_languages = require(&quot;Module:languages&quot;) local m_debug = require(&quot;Module:debug&quot;)  -- See if the language's dial...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.digitalcellulose.com/wiki/index.php?title=Module:Alternative_forms&amp;diff=98241&amp;oldid=prev"/>
		<updated>2018-08-27T20:23:31Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {} local m_link = require(&amp;#039;Module:links&amp;#039;) local m_languages = require(&amp;quot;Module:languages&amp;quot;) local m_debug = require(&amp;quot;Module:debug&amp;quot;)  -- See if the language&amp;#039;s dial...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local export = {}&lt;br /&gt;
local m_link = require('Module:links')&lt;br /&gt;
local m_languages = require(&amp;quot;Module:languages&amp;quot;)&lt;br /&gt;
local m_debug = require(&amp;quot;Module:debug&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-- See if the language's dialectal data module has a label corresponding to the dialect argument.&lt;br /&gt;
function export.getLabel(dialect, dialect_data)&lt;br /&gt;
	local data = dialect_data[dialect] or ( dialect_data.labels and dialect_data.labels[dialect] )&lt;br /&gt;
	local alias_of = ( dialect_data.aliases and dialect_data.aliases[dialect] )&lt;br /&gt;
	if not data then&lt;br /&gt;
		if alias_of then&lt;br /&gt;
			data = dialect_data[alias_of] or ( dialect_data.labels and dialect_data.labels[alias_of] )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if data then&lt;br /&gt;
		local display = data.display or dialect&lt;br /&gt;
		if data.appendix then&lt;br /&gt;
			dialect = '[[Appendix:' .. data.appendix .. '|' .. display .. ']]'&lt;br /&gt;
		else&lt;br /&gt;
			local target = data.link&lt;br /&gt;
			dialect = target and '[[w:'.. target .. '|' .. display .. ']]' or display&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return dialect&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function make_dialects(raw, lang)&lt;br /&gt;
	local dialect_page = 'Module:'.. lang:getCode() ..':Dialects'&lt;br /&gt;
	local dialect_info = mw.title.new(dialect_page).exists and mw.loadData(dialect_page) or false&lt;br /&gt;
		&lt;br /&gt;
	local dialects = {}&lt;br /&gt;
	&lt;br /&gt;
	for _, dialect in pairs(raw) do&lt;br /&gt;
		table.insert(dialects, dialect_info and export.getLabel(dialect, dialect_info) or dialect)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return dialects&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function track(args, arg, number)&lt;br /&gt;
	if args and args[arg] and args[arg][number] then&lt;br /&gt;
		m_debug.track(&amp;quot;alter/&amp;quot; .. arg)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.create(frame)&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	local NAMESPACE = title.nsText&lt;br /&gt;
	local PAGENAME = title.text&lt;br /&gt;
	&lt;br /&gt;
	local list_with_holes = { list = true, allow_holes = true }&lt;br /&gt;
	local params = {&lt;br /&gt;
		[1] = { required = true },&lt;br /&gt;
		[2] = { required = true, list = true, allow_holes = true },&lt;br /&gt;
		[&amp;quot;alt&amp;quot;] = list_with_holes,&lt;br /&gt;
		[&amp;quot;id&amp;quot;] = list_with_holes,&lt;br /&gt;
		[&amp;quot;sc&amp;quot;] = {},&lt;br /&gt;
		&lt;br /&gt;
		[&amp;quot;g&amp;quot;] = list_with_holes,&lt;br /&gt;
		[&amp;quot;tr&amp;quot;] = list_with_holes,&lt;br /&gt;
		[&amp;quot;ts&amp;quot;] = list_with_holes,&lt;br /&gt;
		[&amp;quot;t&amp;quot;] = list_with_holes,&lt;br /&gt;
		[&amp;quot;pos&amp;quot;] = list_with_holes,&lt;br /&gt;
		[&amp;quot;gloss&amp;quot;] = { alias_of = &amp;quot;t&amp;quot; },&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local args = require(&amp;quot;Module:parameters&amp;quot;).process(frame:getParent().args, params)&lt;br /&gt;
	local lang = ( args[1] and m_languages.getByCode(args[1]) ) or ( NAMESPACE == &amp;quot;Template&amp;quot; and m_languages.getByCode(&amp;quot;und&amp;quot;) ) or m_languages.err(args[1], 1)&lt;br /&gt;
	local sc = require(&amp;quot;Module:scripts&amp;quot;).getByCode(args[&amp;quot;sc&amp;quot;])&lt;br /&gt;
	&lt;br /&gt;
	track(args, &amp;quot;dial&amp;quot;) -- [[Special:WhatLinksHere/Template:tracking/alter/dial]]&lt;br /&gt;
	&lt;br /&gt;
	local rawDialects = {}&lt;br /&gt;
	local links = {}&lt;br /&gt;
	&lt;br /&gt;
	local maxindex = math.max(args[2].maxindex, args.alt.maxindex, args.id.maxindex, args.tr.maxindex, args.ts.maxindex)&lt;br /&gt;
	-- Is set to true if there is a term (entry link, alt text,&lt;br /&gt;
	-- transliteration, transcription) at the previous index.&lt;br /&gt;
	local prev = false&lt;br /&gt;
&lt;br /&gt;
	for i = 1, maxindex do&lt;br /&gt;
		-- If the previous parameter was empty and we're not on the first parameter,&lt;br /&gt;
		-- this parameter and any others contain dialect or other labels.&lt;br /&gt;
		if i &amp;gt; 1 and not prev then&lt;br /&gt;
			rawDialects = {unpack(args[2], i, maxindex)}&lt;br /&gt;
			break&lt;br /&gt;
		-- If there's an entry name or transliteration or transcription, mark it&lt;br /&gt;
		-- up and add it to the list.&lt;br /&gt;
		elseif args[2][i] or args.tr[i] or args.ts[i] then&lt;br /&gt;
			track(args, &amp;quot;alt&amp;quot;, i) -- [[Special:WhatLinksHere/Template:tracking/alter/alt]]&lt;br /&gt;
			track(args, &amp;quot;id&amp;quot;, i) -- [[Special:WhatLinksHere/Template:tracking/alter/id]]&lt;br /&gt;
			track(args, &amp;quot;tr&amp;quot;, i) -- [[Special:WhatLinksHere/Template:tracking/alter/tr]]&lt;br /&gt;
			track(args, &amp;quot;ts&amp;quot;, i) -- [[Special:WhatLinksHere/Template:tracking/alter/ts]]&lt;br /&gt;
			track(args, &amp;quot;t&amp;quot;, i) -- [[Special:WhatLinksHere/Template:tracking/alter/t]]&lt;br /&gt;
			track(args, &amp;quot;pos&amp;quot;, i) -- [[Special:WhatLinksHere/Template:tracking/alter/pos]]&lt;br /&gt;
			track(args, &amp;quot;sc&amp;quot;, i) -- [[Special:WhatLinksHere/Template:tracking/alter/sc]]&lt;br /&gt;
			track(args, &amp;quot;g&amp;quot;, i) -- [[Special:WhatLinksHere/Template:tracking/alter/g]]&lt;br /&gt;
			if args[2][i] and not args.alt[i] then&lt;br /&gt;
				args.alt[i] = args[2][i]&lt;br /&gt;
				args[2][i] = lang:makeEntryName(args[2][i])&lt;br /&gt;
			end&lt;br /&gt;
			if args[2][i] == PAGENAME then -- Unlink if term is pagename.&lt;br /&gt;
				args[2][i] = nil&lt;br /&gt;
			end&lt;br /&gt;
			term = m_link.full_link{&lt;br /&gt;
				lang = lang,&lt;br /&gt;
				sc = sc,&lt;br /&gt;
				term = args[2][i],&lt;br /&gt;
				alt = args.alt[i],&lt;br /&gt;
				id = args.id[i],&lt;br /&gt;
				tr = args.tr[i],&lt;br /&gt;
				ts = args.ts[i],&lt;br /&gt;
				gloss = args.t[i],&lt;br /&gt;
				pos = args.pos[i],&lt;br /&gt;
				genders = args.g[i]&lt;br /&gt;
			}&lt;br /&gt;
			table.insert(links, term)&lt;br /&gt;
			prev = true&lt;br /&gt;
		else&lt;br /&gt;
			prev = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- The template must have either links or dialect labels.&lt;br /&gt;
	if links[1] == nil and rawDialects[1] == nil then error(&amp;quot;No terms found!&amp;quot;) end&lt;br /&gt;
&lt;br /&gt;
	local dialects  = make_dialects(rawDialects, lang)&lt;br /&gt;
	&lt;br /&gt;
	local output = { table.concat(links, ', ') }&lt;br /&gt;
	if #dialects &amp;gt; 0 then&lt;br /&gt;
		if lang:hasTranslit() then&lt;br /&gt;
			dialect_label = &amp;quot; &amp;amp;ndash; ''&amp;quot; .. table.concat(dialects, &amp;quot;, &amp;quot;) .. &amp;quot;''&amp;quot; &lt;br /&gt;
		else&lt;br /&gt;
			dialect_label = &amp;quot; (''&amp;quot; .. table.concat(dialects, &amp;quot;, &amp;quot;) .. &amp;quot;'')&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		-- Fixes the problem of '' being added to '' at the end of last dialect parameter&lt;br /&gt;
		dialect_label = mw.ustring.gsub(dialect_label, &amp;quot;''''&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		table.insert(output, dialect_label)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.categorize(frame)&lt;br /&gt;
	local content = {}&lt;br /&gt;
	&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	local titletext = title.text&lt;br /&gt;
	local namespace = title.nsText&lt;br /&gt;
	local subpagename = title.subpageText&lt;br /&gt;
	&lt;br /&gt;
	-- subpagename ~= titletext if it is a documentation page&lt;br /&gt;
	if namespace == &amp;quot;Module&amp;quot; and subpagename == titletext then&lt;br /&gt;
		local langCode = mw.ustring.match(titletext, &amp;quot;^([^:]+):&amp;quot;)&lt;br /&gt;
		local lang = m_languages.getByCode(langCode) or error('&amp;quot;' .. langCode .. '&amp;quot; is not a valid language code.')&lt;br /&gt;
		content.canonicalName = lang:getCanonicalName()&lt;br /&gt;
		&lt;br /&gt;
		local categories =&lt;br /&gt;
[=[&lt;br /&gt;
[[Category:&amp;lt;canonicalName&amp;gt; modules|dialects]]&lt;br /&gt;
[[Category:Dialectal data modules|&amp;lt;canonicalName&amp;gt;]]&lt;br /&gt;
]=]&lt;br /&gt;
		local function addContent(item)&lt;br /&gt;
			return content[item]&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		categories = mw.ustring.gsub(categories, &amp;quot;&amp;lt;([^&amp;gt;]+)&amp;gt;&amp;quot;, addContent)&lt;br /&gt;
		return categories&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Adminsuzy</name></author>
		
	</entry>
</feed>