<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://academia.la/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AIPA%2Ftemplates</id>
	<title>Module:IPA/templates - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://academia.la/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AIPA%2Ftemplates"/>
	<link rel="alternate" type="text/html" href="https://academia.la/w/index.php?title=Module:IPA/templates&amp;action=history"/>
	<updated>2026-05-11T16:30:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://academia.la/w/index.php?title=Module:IPA/templates&amp;diff=1513&amp;oldid=prev</id>
		<title>Jācōbus: Created page with &quot;local export = {}  local m_IPA = require(&quot;Module:IPA&quot;)  local U = mw.ustring.char local syllabic = U(0x0329)  -- Used for Template:IPA. function export.IPA(frame) 	local parent_args = frame.getParent and frame:getParent().args or frame 	local compat = parent_args[&quot;lang&quot;] 	local offset = compat and 0 or 1 	local params = { 		[compat and &quot;lang&quot; or 1] = {required = true, default = &quot;en&quot;}, 		[1 + offset] = {list = true, allow_holes = true}, 		[&quot;ref&quot;] = {list = true, allow...&quot;</title>
		<link rel="alternate" type="text/html" href="https://academia.la/w/index.php?title=Module:IPA/templates&amp;diff=1513&amp;oldid=prev"/>
		<updated>2023-02-09T12:22:37Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {}  local m_IPA = require(&amp;quot;Module:IPA&amp;quot;)  local U = mw.ustring.char local syllabic = U(0x0329)  -- Used for &lt;a href=&quot;/wiki/Template:IPA&quot; title=&quot;Template:IPA&quot;&gt;Template:IPA&lt;/a&gt;. function export.IPA(frame) 	local parent_args = frame.getParent and frame:getParent().args or frame 	local compat = parent_args[&amp;quot;lang&amp;quot;] 	local offset = compat and 0 or 1 	local params = { 		[compat and &amp;quot;lang&amp;quot; or 1] = {required = true, default = &amp;quot;en&amp;quot;}, 		[1 + offset] = {list = true, allow_holes = true}, 		[&amp;quot;ref&amp;quot;] = {list = true, allow...&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;
&lt;br /&gt;
local m_IPA = require(&amp;quot;Module:IPA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local U = mw.ustring.char&lt;br /&gt;
local syllabic = U(0x0329)&lt;br /&gt;
&lt;br /&gt;
-- Used for [[Template:IPA]].&lt;br /&gt;
function export.IPA(frame)&lt;br /&gt;
	local parent_args = frame.getParent and frame:getParent().args or frame&lt;br /&gt;
	local compat = parent_args[&amp;quot;lang&amp;quot;]&lt;br /&gt;
	local offset = compat and 0 or 1&lt;br /&gt;
	local params = {&lt;br /&gt;
		[compat and &amp;quot;lang&amp;quot; or 1] = {required = true, default = &amp;quot;en&amp;quot;},&lt;br /&gt;
		[1 + offset] = {list = true, allow_holes = true},&lt;br /&gt;
		[&amp;quot;ref&amp;quot;] = {list = true, allow_holes = true},&lt;br /&gt;
		-- Came before 'ref' but too obscure&lt;br /&gt;
		[&amp;quot;n&amp;quot;] = {list = true, allow_holes = true, alias_of = &amp;quot;ref&amp;quot;},&lt;br /&gt;
		[&amp;quot;qual&amp;quot;] = {list = true, allow_holes = true},&lt;br /&gt;
		[&amp;quot;nocount&amp;quot;] = {type = &amp;quot;boolean&amp;quot;},&lt;br /&gt;
		[&amp;quot;sort&amp;quot;] = {},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local args = require(&amp;quot;Module:parameters&amp;quot;).process(parent_args, params)&lt;br /&gt;
	local lang = args[compat and &amp;quot;lang&amp;quot; or 1]&lt;br /&gt;
	lang = require(&amp;quot;Module:languages&amp;quot;).getByCode(lang)&lt;br /&gt;
		or require(&amp;quot;Module:languages&amp;quot;).err(lang, compat and &amp;quot;lang&amp;quot; or 1)&lt;br /&gt;
&lt;br /&gt;
	-- [[Special:WhatLinksHere/Template:tracking/IPA/grc]]&lt;br /&gt;
	if lang and lang:getCode() == &amp;quot;grc&amp;quot; then&lt;br /&gt;
		require(&amp;quot;Module:debug&amp;quot;).track(&amp;quot;IPA/grc&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local items = {}&lt;br /&gt;
	&lt;br /&gt;
	for i = 1, math.max(args[1 + offset].maxindex, args[&amp;quot;ref&amp;quot;].maxindex, args[&amp;quot;qual&amp;quot;].maxindex) do&lt;br /&gt;
		local pron = args[1 + offset][i]&lt;br /&gt;
		local refs = args[&amp;quot;ref&amp;quot;][i]&lt;br /&gt;
		if refs then&lt;br /&gt;
			refs = require(&amp;quot;Module:references&amp;quot;).parse_references(refs)&lt;br /&gt;
		end&lt;br /&gt;
		local qual = args[&amp;quot;qual&amp;quot;][i]&lt;br /&gt;
&lt;br /&gt;
		if not pron then&lt;br /&gt;
			if refs or qual then&lt;br /&gt;
				local param = i == 1 and &amp;quot;&amp;quot; or &amp;quot;&amp;quot; .. i&lt;br /&gt;
				error(&amp;quot;Specified qual&amp;quot; .. param .. &amp;quot;= or ref&amp;quot; .. param .. &amp;quot;= without corresponding pronunciation&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			if lang then&lt;br /&gt;
				require(&amp;quot;Module:IPA/tracking&amp;quot;).run_tracking(pron, lang)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if pron or refs or qual then&lt;br /&gt;
				table.insert(items, {pron = pron, refs = refs, qualifiers = {qual}})&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return m_IPA.format_IPA_full(lang, items, nil, nil, args.sort, args.nocount)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Used for [[Template:IPAchar]].&lt;br /&gt;
function export.IPAchar(frame)&lt;br /&gt;
	local params = {&lt;br /&gt;
		[1] = {list = true, allow_holes = true},&lt;br /&gt;
		[&amp;quot;ref&amp;quot;] = {list = true, allow_holes = true},&lt;br /&gt;
		-- Came before 'ref' but too obscure&lt;br /&gt;
		[&amp;quot;n&amp;quot;] = {list = true, allow_holes = true, alias_of = &amp;quot;ref&amp;quot;},&lt;br /&gt;
		[&amp;quot;qual&amp;quot;] = {list = true, allow_holes = true},&lt;br /&gt;
		-- FIXME, remove this.&lt;br /&gt;
		[&amp;quot;lang&amp;quot;] = {}, -- This parameter is not used and does nothing, but is allowed for futureproofing.&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	local args = require(&amp;quot;Module:parameters&amp;quot;).process(frame.getParent and frame:getParent().args or frame, params)&lt;br /&gt;
	&lt;br /&gt;
	-- [[Special:WhatLinksHere/Template:tracking/IPAchar/lang]]&lt;br /&gt;
	if args.lang then&lt;br /&gt;
		require(&amp;quot;Module:debug&amp;quot;).track(&amp;quot;IPAchar/lang&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local items = {}&lt;br /&gt;
	&lt;br /&gt;
	for i = 1, math.max(args[1].maxindex, args[&amp;quot;ref&amp;quot;].maxindex, args[&amp;quot;qual&amp;quot;].maxindex) do&lt;br /&gt;
		local pron = args[1][i]&lt;br /&gt;
		local refs = args[&amp;quot;ref&amp;quot;][i]&lt;br /&gt;
		if refs then&lt;br /&gt;
			refs = require(&amp;quot;Module:references&amp;quot;).parse_references(refs)&lt;br /&gt;
		end&lt;br /&gt;
		local qual = args[&amp;quot;qual&amp;quot;][i]&lt;br /&gt;
&lt;br /&gt;
		if pron or refs or qual then&lt;br /&gt;
			table.insert(items, {pron = pron, refs = refs, qualifiers = {qual}})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Format&lt;br /&gt;
	return m_IPA.format_IPA_multiple(nil, items)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.XSAMPA(frame)&lt;br /&gt;
	local params = {&lt;br /&gt;
		[1] = { required = true },&lt;br /&gt;
	}&lt;br /&gt;
	local args = require(&amp;quot;Module:parameters&amp;quot;).process(frame:getParent().args, params)&lt;br /&gt;
	&lt;br /&gt;
	return m_IPA.XSAMPA_to_IPA(args[1] or &amp;quot;[Eg'zA:mp5=]&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Used by [[Template:X2IPA]]&lt;br /&gt;
function export.X2IPAtemplate(frame)&lt;br /&gt;
	local parent_args = frame.getParent and frame:getParent().args or frame&lt;br /&gt;
	local compat = parent_args[&amp;quot;lang&amp;quot;]&lt;br /&gt;
	local offset = compat and 0 or 1&lt;br /&gt;
&lt;br /&gt;
	local params = {&lt;br /&gt;
		[compat and &amp;quot;lang&amp;quot; or 1] = {required = true, default = &amp;quot;und&amp;quot;},&lt;br /&gt;
		[1 + offset] = {list = true, allow_holes = true},&lt;br /&gt;
		[&amp;quot;ref&amp;quot;] = {list = true, allow_holes = true},&lt;br /&gt;
		-- Came before 'ref' but too obscure&lt;br /&gt;
		[&amp;quot;n&amp;quot;] = {list = true, allow_holes = true, alias_of = &amp;quot;ref&amp;quot;},&lt;br /&gt;
		[&amp;quot;qual&amp;quot;] = { list = true, allow_holes = true },&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local args = require(&amp;quot;Module:parameters&amp;quot;).process(parent_args, params)&lt;br /&gt;
	&lt;br /&gt;
	local m_XSAMPA = require(&amp;quot;Module:IPA/X-SAMPA&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local pronunciations, refs, qualifiers, lang = args[1 + offset], args[&amp;quot;ref&amp;quot;], args[&amp;quot;qual&amp;quot;], args[compat and &amp;quot;lang&amp;quot; or 1]&lt;br /&gt;
	&lt;br /&gt;
	local output = {}&lt;br /&gt;
	table.insert(output, &amp;quot;{{IPA&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	table.insert(output, &amp;quot;|&amp;quot; .. lang)&lt;br /&gt;
&lt;br /&gt;
	for i = 1, math.max(pronunciations.maxindex, refs.maxindex, qualifiers.maxindex) do&lt;br /&gt;
		if pronunciations[i] then&lt;br /&gt;
			table.insert(output, &amp;quot;|&amp;quot; .. m_XSAMPA.XSAMPA_to_IPA(pronunciations[i]))&lt;br /&gt;
		end&lt;br /&gt;
		if refs[i] then&lt;br /&gt;
			table.insert(output, &amp;quot;|ref&amp;quot; .. i .. &amp;quot;=&amp;quot; .. refs[i])&lt;br /&gt;
		end&lt;br /&gt;
		if qualifiers[i] then&lt;br /&gt;
			table.insert(output, &amp;quot;|qual&amp;quot; .. i .. &amp;quot;=&amp;quot; .. qualifiers[i])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	table.insert(output, &amp;quot;}}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	return table.concat(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Used by [[Template:X2IPAchar]]&lt;br /&gt;
function export.X2IPAchar(frame)&lt;br /&gt;
	local params = {&lt;br /&gt;
		[1] = { list = true, allow_holes = true },&lt;br /&gt;
		[&amp;quot;ref&amp;quot;] = {list = true, allow_holes = true},&lt;br /&gt;
		-- Came before 'ref' but too obscure&lt;br /&gt;
		[&amp;quot;n&amp;quot;] = {list = true, allow_holes = true, alias_of = &amp;quot;ref&amp;quot;},&lt;br /&gt;
		[&amp;quot;qual&amp;quot;] = { list = true, allow_holes = true },&lt;br /&gt;
		-- FIXME, remove this.&lt;br /&gt;
		[&amp;quot;lang&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;
	&lt;br /&gt;
	-- [[Special:WhatLinksHere/Template:tracking/X2IPAchar/lang]]&lt;br /&gt;
	if args.lang then&lt;br /&gt;
		require(&amp;quot;Module:debug&amp;quot;).track(&amp;quot;X2IPAchar/lang&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local m_XSAMPA = require(&amp;quot;Module:IPA/X-SAMPA&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local pronunciations, refs, qualifiers, lang = args[1], args[&amp;quot;ref&amp;quot;], args[&amp;quot;qual&amp;quot;], args[&amp;quot;lang&amp;quot;]&lt;br /&gt;
	&lt;br /&gt;
	local output = {}&lt;br /&gt;
	table.insert(output, &amp;quot;{{IPAchar&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	for i = 1, math.max(pronunciations.maxindex, refs.maxindex, qualifiers.maxindex) do&lt;br /&gt;
		if pronunciations[i] then&lt;br /&gt;
			table.insert(output, &amp;quot;|&amp;quot; .. m_XSAMPA.XSAMPA_to_IPA(pronunciations[i]))&lt;br /&gt;
		end&lt;br /&gt;
		if refs[i] then&lt;br /&gt;
			table.insert(output, &amp;quot;|ref&amp;quot; .. i .. &amp;quot;=&amp;quot; .. refs[i])&lt;br /&gt;
		end&lt;br /&gt;
		if qualifiers[i] then&lt;br /&gt;
			table.insert(output, &amp;quot;|qual&amp;quot; .. i .. &amp;quot;=&amp;quot; .. qualifiers[i])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if lang then&lt;br /&gt;
		table.insert(output, &amp;quot;|lang=&amp;quot; .. lang)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	table.insert(output, &amp;quot;}}&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Used by [[Template:x2rhymes]]&lt;br /&gt;
function export.X2rhymes(frame)&lt;br /&gt;
	local parent_args = frame.getParent and frame:getParent().args or frame&lt;br /&gt;
	local compat = parent_args[&amp;quot;lang&amp;quot;]&lt;br /&gt;
	local offset = compat and 0 or 1&lt;br /&gt;
&lt;br /&gt;
	local params = {&lt;br /&gt;
		[compat and &amp;quot;lang&amp;quot; or 1] = {required = true, default = &amp;quot;und&amp;quot;},&lt;br /&gt;
		[1 + offset] = {required = true, list = true, allow_holes = true},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local args = require(&amp;quot;Module:parameters&amp;quot;).process(parent_args, params)&lt;br /&gt;
	&lt;br /&gt;
	local m_XSAMPA = require(&amp;quot;Module:IPA/X-SAMPA&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	pronunciations, lang = args[1 + offset], args[compat and &amp;quot;lang&amp;quot; or 1]&lt;br /&gt;
	&lt;br /&gt;
	local output =  {}&lt;br /&gt;
	table.insert(output, &amp;quot;{{rhymes&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	table.insert(output, &amp;quot;|&amp;quot; .. lang)&lt;br /&gt;
&lt;br /&gt;
	for i = 1, pronunciations.maxindex do&lt;br /&gt;
		if pronunciations[i] then&lt;br /&gt;
			table.insert(output, &amp;quot;|&amp;quot; .. m_XSAMPA.XSAMPA_to_IPA(pronunciations[i]))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	table.insert(output, &amp;quot;}}&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Jācōbus</name></author>
	</entry>
</feed>