<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://youjo.wiki/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://youjo.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AIPA%2Ftemplates"/>
	<link rel="alternate" type="text/html" href="https://youjo.wiki/index.php?title=Module:IPA/templates&amp;action=history"/>
	<updated>2026-10-17T17:03:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://youjo.wiki/index.php?title=Module:IPA/templates&amp;diff=1464&amp;oldid=prev</id>
		<title>Chizu: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://youjo.wiki/index.php?title=Module:IPA/templates&amp;diff=1464&amp;oldid=prev"/>
		<updated>2022-09-23T19:42:13Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:42, 23 September 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Chizu</name></author>
	</entry>
	<entry>
		<id>https://youjo.wiki/index.php?title=Module:IPA/templates&amp;diff=1463&amp;oldid=prev</id>
		<title>Wiktionary&gt;Benwing2: only error on missing pron if refs or qual</title>
		<link rel="alternate" type="text/html" href="https://youjo.wiki/index.php?title=Module:IPA/templates&amp;diff=1463&amp;oldid=prev"/>
		<updated>2021-08-01T02:42:04Z</updated>

		<summary type="html">&lt;p&gt;only error on missing pron if refs or qual&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 &amp;#039;ref&amp;#039; 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 &amp;#039;ref&amp;#039; 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&amp;#039;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 &amp;#039;ref&amp;#039; 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 &amp;#039;ref&amp;#039; 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>Wiktionary&gt;Benwing2</name></author>
	</entry>
</feed>