Module:User:Littlepenny413/zh-pron

Hello, you have come here looking for the meaning of the word Module:User:Littlepenny413/zh-pron. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:User:Littlepenny413/zh-pron, but we will also tell you about its etymology, its characteristics and you will know how to say Module:User:Littlepenny413/zh-pron in singular and plural. Everything you need to know about the word Module:User:Littlepenny413/zh-pron you have here. The definition of the word Module:User:Littlepenny413/zh-pron will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:User:Littlepenny413/zh-pron, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.


local gsub = mw.ustring.gsub

local export = {}

local langname = {
	 = "閩東語",
	 = "普通話",
	 = "晉語",
	 = "贛語",
	 = "客家語",
	 = "湘語",
	 = "閩南語",
	 = "吳語",
	 = "廣東話",
}

local langname_abbr = {
	 = "官話",
	 = "粵語",
	 = "台山話",
	 = "贛語",
	 = "客家語",
	 = "晉語",
	 = "閩東語",
	 = "閩南語",
	 = "閩南語",
	 = "吳語",
	 = "湘語",
}

local pos_aliases_cat = {
	 = "名詞",  = "名詞", 
	 = "專有名詞",  = "專有名詞",  = "專有名詞",  = "專有名詞", 
	 = "代詞",  = "代詞", 
	 = "動詞",  = "動詞", 
	 = "形容詞",  = "形容詞",  = "形容詞", 
	 = "副詞",  = "副詞", 
	 = "前置介詞",  = "前置介詞", 
	 = "後置介詞",  = "後置介詞", 
	 = "連詞",  = "連詞",  = "連詞", 
	 = "助詞",  = "助詞", 
	 = "前綴",  = "前綴", 
	 = "後綴",  = "後綴", 
	 = "間綴", 
	 = "諺語",  = "諺語", 
	 = "熟語",  = "熟語", 
	 = "成語",  = "成語",  = "成語",  = "成語", 
	 = "詞組",  = "詞組", 
	 = "感嘆詞",  = "感嘆詞",  = "感嘆詞", 
	 = "分類詞",  = "分類詞",  = "分類詞", 
	 = "數詞",  = "數詞", 
	 = "縮寫",  = "縮寫", 
	 = "限定詞",  = "限定詞",  = "限定詞", 
}

function makeNote(text)
	return "\n*** <span style=\"background: #FAF1DE\"><small>註解: " .. text .. "</small></span>"
end

function export.make(frame)
	local args = frame:getParent().args
	local pagename = mw.title.getCurrentTitle().text
	local m_rom = args or args or ""
	local c_rom = args or args or ""
	local c_t_rom = args or args or ""
	local g_rom = args or args or ""
	local h_rom = args or args or ""
	local j_rom = args or args or ""
	local md_rom = args or args or ""
	local mn_rom = args or args or ""
	local mn_t_rom = args or args or ""
	local w_rom = args or args or ""
	local x_rom = args or args or ""
	local m_audio = args or args or ""
	local m_audio2 = args or args or ""
	local c_audio = args or args or ""
	local c_t_audio = args or args or ""
	local g_audio = args or args or ""
	local h_audio = args or args or ""
	local j_audio = args or args or ""
	local md_audio = args or args or ""
	local mn_audio = args or args or ""
	local mn_t_audio = args or args or ""
	local w_audio = args or args or ""
	local x_audio = args or args or ""
	local dial = args or ""
	local mc = (args and args ~= "") and args or (args and args ~= "") and args or false
	local oc = (args and args ~= "") and args or (args and args ~= "") and args or false
	local only_cat = args or ""

	text = {}
	if only_cat ~= "yes" then
		textShow = {'<div class="toccolours mw-collapsible mw-collapsed" style="width:600px; font-size:110%">'}
		textHide = {}
		if m_rom .. m_audio ~= "" then
			local m_pron = require("Module:cmn-pron")
			if m_rom ~= "" then
				table.insert(textShow, '\n* ]\n')
				table.insert(textShow, m_pron.str_analysis(m_rom,'head'))
			end
			m_args = {}
			m_args = m_pron.str_analysis(m_rom,'')
			m_args_names = {
				'1n','1na','1nb','1nc','1nd','py','cap','tl','tl2','tl3','a','audio','er','ertl','ertl2','ertl3','era','eraudio',
				'2n','2na','2nb','2nc','2nd','2py','2cap','2tl','2tl2','2tl3','2a','2audio','2er','2ertl','2ertl2','2ertl3','2era','2eraudio',
				'3n','3na','3nb','3nc','3nd','3py','3cap','3tl','3tl2','3tl3','3a','3audio','3er','3ertl','3ertl2','3ertl3','3era','3eraudio',
				'4n','4na','4nb','4nc','4nd','4py','4cap','4tl','4tl2','4tl3','4a','4audio','4er','4ertl','4ertl2','4ertl3','4era','4eraudio',
			}
			for _,name in ipairs(m_args_names) do
				m_args = m_pron.str_analysis(m_rom,name)
			end
			m_args = m_pron.str_analysis(m_rom,'2')
			m_args = m_pron.str_analysis(m_rom,'3')
			m_args = m_pron.str_analysis(m_rom,'4')
			m_args = m_audio
			m_args = m_audio2
			local debug = ""
			for code,name in pairs(m_args) do
				debug = debug .. code .. ":" .. name .. ","
			end
			table.insert(textHide, m_pron.make_args(m_args))
			if args then table.insert(textHide, makeNote(args)) end
		end
		if c_rom .. c_audio .. c_t_rom .. c_t_audio ~= "" then
			local c_pron = require("Module:User:Littlepenny413/yue-pron")
			if c_rom .. c_t_rom ~= "" then
				table.insert(textShow, '\n* ]')
				table.insert(textHide, '\n* ]')
				if c_rom ~= "" then
					c_rom = c_rom:gsub("%*","-")
					local c_processed = c_rom:gsub(',()',', %1')
					if mw.ustring.len(mw.title.getCurrentTitle().text) == 1 then
						c_processed = c_processed:gsub('(+)',']')
						c_processed = c_processed:gsub('%[%[%[%[','[[')
						c_processed = c_processed:gsub('%]%]%]%]',']]')
						c_processed = gsub(c_processed, '%]+)%]%]', function(a)
							return '+)', '<sup>%1</sup>') .. ']]' end)
					else
						c_processed = gsub(c_processed, '(+)', '<sup>%1</sup>')
					end	
					if c_t_rom == "" then
						table.insert(textShow, ' <small>(')
					else
						table.insert(textShow, '\n*: <small>(], ')
					end
					table.insert(textShow, '])</small>: <font face="Consolas">' .. c_pron.yale_format(c_rom) .. '</font>')	
					c_rom = c_rom:gsub(']','')
					local c_hom = mw.loadData("Module:yue-pron/hom")
					local c_hom_exists = false
					table.insert(textHide, '\n** <small>(])</small>')
					if not c_hom_exists then
						table.insert(textHide, '<sup><small><abbr title="添加粵語同音字"><span class="plainlinks">[')
						table.insert(textHide, tostring(mw.uri.fullUrl("Module:yue-pron/hom",{="edit"})))
						table.insert(textHide, ' +]</span></abbr></small></sup>')
					end
					c_comma = gsub(c_rom,',()',', %1')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, c_pron.yale_format(c_rom))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, c_pron.yale_to_jyutping(c_rom))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, c_pron.yale_to_cantonese_pinyin(c_rom))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, c_pron.yale_to_sidney(c_rom))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, c_pron.yale_to_guangdong(c_rom))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <span class="IPA" style="font-size:100%; color:#222">/')
					table.insert(textHide, c_pron.yale_to_ipa(c_rom))
					table.insert(textHide, '/</span>')
					
					add_audio(textHide, c_audio, 'yue')
					if args then table.insert(textHide, makeNote(args)) end
				end
				if c_t_rom ~= "" then
					local c_t_processed = c_t_rom:gsub(',()',', %1')
					c_t_processed = gsub(c_t_processed, '(%-??)', '<sup>%1</sup>')
					table.insert(textShow, ((c_rom ~= "") and '\n*:' or '') .. ' <small>(], ])</small>: <font face="Consolas">')
					table.insert(textShow, c_t_processed .. '</font>')
					c_t_rom = c_t_rom:gsub(']','')
					c_t_comma = gsub(c_t_rom,',()',', %1')
					table.insert(textHide, '\n** <small>(])</small>')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, tostring(gsub(c_t_comma, '(%-??)', '<sup>%1</sup>')))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, c_pron.hoi_convert(c_t_rom, 'Gene'))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, c_pron.hoi_convert(c_t_rom, 'DLI'))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
					table.insert(textHide, c_pron.hoi_convert(c_t_rom, 'Stephen'))
					table.insert(textHide, '</font>')
					table.insert(textHide, '\n*** <small>]</small>: <span class="IPA" style="font-size:100%; color:#222">/')
					table.insert(textHide, c_pron.hoi_convert(c_t_rom, 'IPA'))
					table.insert(textHide, '/</span>')
					add_audio(textHide, c_t_audio, 'yue-taishan')
					if args then table.insert(textHide, makeNote(args)) end
				end
			end
		end
		if g_rom .. g_audio ~= "" then
			local g_pron = require("Module:gan-pron")
			if g_rom ~= "" then
				table.insert(textShow, '\n* ] <small>(])</small>: <font face="Consolas">')
				table.insert(textShow, g_pron.rom(g_rom))
				table.insert(textShow, '</font>')
			end
			table.insert(textHide, '\n* ]')
			table.insert(textHide, '\n** <small>(])</small>')
			table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
			table.insert(textHide, g_pron.rom(g_rom))
			table.insert(textHide, '</font>')
			table.insert(textHide, '\n*** <small>]</small>: <span class="IPA" style="font-size:100%; color:#222">/')
			table.insert(textHide, g_pron.ipa(g_rom))
			table.insert(textHide, '/</span>')
			add_audio(textHide, g_audio, 'gan')
			if args then table.insert(textHide, makeNote(args)) end
		end
		if (mw.ustring.match(h_rom, 'pfs=.') or mw.ustring.match(h_rom, 'gd=.') or "") .. h_audio ~= "" then
			local h_pron = require("Module:hak-pron")
			if (mw.ustring.match(h_rom, "pfs=.") or "") .. (mw.ustring.match(h_rom, 'gd=.') or "") ~= "" then
				table.insert(textShow, '\n* ]')
				table.insert(textShow, h_pron.rom_display(h_rom,'yes'))
			end
			table.insert(textHide, '\n* ]')
			if h_rom ~= '' then table.insert(textHide, h_pron.rom_display(h_rom,'')) end
			if h_audio ~= '' then add_audio(textHide,h_audio,'hak') end
			if args then table.insert(textHide, makeNote(args)) end
		end
		if j_rom .. j_audio ~= "" then
			local j_pron = require("Module:cjy-pron")
			if j_rom ~= "" then
				table.insert(textShow, '\n* ] <small>(])</small>: <font face="Consolas">')
				table.insert(textShow, j_pron.rom(j_rom))
				table.insert(textShow, '</font>')
			end
			table.insert(textHide, '\n* ]')
			table.insert(textHide, '\n** <small>(])<sup>]</sup></small>')
			if j_rom ~= '' then
				table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
				table.insert(textHide, j_pron.rom(j_rom))
				table.insert(textHide, '</font>')
			end
			local no_sandhi = false
			local roms = mw.text.split(j_rom, '/')
			for i = 1, table.getn(roms) do
				if mw.ustring.find(roms, ' + ') then
					no_sandhi = true
					break
				end
			end
			table.insert(textHide, '\n*** <small>] (舊式' .. (no_sandhi and ', no sandhi' or '') .. ')</small>: <span class="IPA" style="font-size:100%; color:#222">/')
			table.insert(textHide, j_pron.ipa(j_rom, no_sandhi and "no_sandhi" or ""))
			table.insert(textHide, '/</span>')
			add_audio(textHide, j_audio, 'cjy')
			if args then table.insert(textHide, makeNote(args)) end
		end
		if md_rom .. md_audio ~= "" then
			local md_pron = require("Module:cdo-pron")
			if md_rom ~= "" then
				table.insert(textShow, '\n* ] <small>(])</small>: <font face="Consolas">')
				table.insert(textShow, md_pron.rom(md_rom))
				table.insert(textShow, '</font>')
			end
			table.insert(textHide, '\n* ]')
			table.insert(textHide, '\n** <small>(])</small>')
			if md_rom ~= '' then
				table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
				table.insert(textHide, md_pron.rom(md_rom))
				table.insert(textHide, '</font>')
				if not mw.ustring.match(md_rom, '(*)-(*)-(*)-(*)-(*)') then
					table.insert(textHide, '\n*** <small>]</small>: <span class="IPA" style="font-size:100%; color:#222">/')
					table.insert(textHide, md_pron.ipa(md_rom))
					table.insert(textHide, '/</span>')
				else
					table.insert(textHide, '\n*** <small>](no sandhi)</small>: <span class="IPA" style="font-size:100%; color:#222">/')
					table.insert(textHide, md_pron.ipa(md_rom, "no_sandhi"))
					table.insert(textHide, '/</span>')
				end
			end
			add_audio(textHide, md_audio, 'cdo')
			if args then table.insert(textHide, makeNote(args)) end
		end
		if mn_rom .. mn_audio .. mn_t_rom .. mn_t_audio ~= "" then
			local mn_pron = require("Module:nan-pron")
			if mn_rom .. mn_t_rom ~= "" then
				table.insert(textShow, '\n* ]')
				if mn_rom ~= "" then
					table.insert(textShow, ((mn_t_rom == "") and " <small>(" or "\n*: <small>(], ") .. '])</small>: <font face="Consolas">')
					table.insert(textShow, mn_pron.poj_display(mn_pron.poj_check_invalid(mn_rom)))
					table.insert(textShow, '</font>')
				end
				if mn_t_rom ~= "" then
					table.insert(textShow, ((mn_rom ~= "") and '\n*:' or '') .. ' <small>(], ])</small>: <font face="Consolas">')
					table.insert(textShow, mn_pron.pengim_display(mn_t_rom))
					table.insert(textShow, '</font>')
				end
			end
			table.insert(textHide, '\n* ]')
			if mn_rom .. mn_audio ~= "" then
				table.insert(textHide, mn_pron.generate_all(mn_rom))
				add_audio(textHide, mn_audio, 'nan')
				if args then table.insert(textHide, makeNote(args)) end
			end
			if mn_t_rom .. mn_t_audio ~= "" then
				table.insert(textHide, '\n** <small>(])</small>')
				table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
				table.insert(textHide, mn_pron.pengim_display(mn_t_rom))
				table.insert(textHide, '</font>')
				table.insert(textHide, '\n*** <small>模仿]</small>: <font face="Consolas">')
				table.insert(textHide,  mn_pron.pengim_to_pojlike_conv(mn_t_rom))
				table.insert(textHide, '</font>')
				table.insert(textHide, '\n*** <small>]</small>: <span class="IPA" style="font-size:100%; color:#222">')
				table.insert(textHide,  mn_pron.pengim_to_ipa_conv(mn_t_rom))
				table.insert(textHide, '</span>')
				add_audio(textHide, mn_t_audio, 'nan')
				if args then table.insert(textHide, makeNote(args)) end
			end
		end
		if w_rom .. w_audio ~= "" then
			local w_pron = require("Module:wuu-pron")
			if w_rom ~= "" then
				table.insert(textShow, '\n* ] <small>(])</small>: <font face="Consolas">')
				table.insert(textShow, w_pron.rom(w_rom))
				table.insert(textShow, '</font>')
			end
			table.insert(textHide, '\n* ]')
			table.insert(textHide, '\n** <small>(])</small>')
			table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
			table.insert(textHide, w_pron.rom(w_rom))
			table.insert(textHide, '</font>')
			table.insert(textHide, '\n*** <small>]</small>: <span class="IPA" style="font-size:100%; color:#222">/')
			table.insert(textHide, w_pron.ipa_conv(w_rom))
			table.insert(textHide, '/</span>')
			add_audio(textHide, w_audio, 'wuu')
			if args then table.insert(textHide, makeNote(args)) end
		end
		if x_rom .. x_audio ~= "" then
			local x_pron = require("Module:hsn-pron")
			if x_rom ~= "" then
				table.insert(textShow, '\n* ] <small>(])</small>: <font face="Consolas">')
				table.insert(textShow, x_pron.rom(x_rom))
				table.insert(textShow, '</font>')
			end
			table.insert(textHide, '\n* ]')
			table.insert(textHide, '\n** <small>(])</small>')
			if x_rom ~= '' then
				x_diff = x_pron.stylediff(x_rom)
				table.insert(textHide, '\n*** <small>]</small>: <font face="Consolas">')
				table.insert(textHide, x_pron.rom(x_rom))
				table.insert(textHide, '</font>')
				table.insert(textHide, '\n*** <small>]')
				table.insert(textHide, x_diff and ' (舊式)' or '')
				table.insert(textHide, '</small>: <span class="IPA" style="font-size:100%; color:#222">/')
				table.insert(textHide, x_pron.ipa(x_rom))
				table.insert(textHide, '/</span>')
				if x_diff then
					table.insert(textHide, '\n*** <small>] (新式)</small>: <span class="IPA" style="font-size:100%; color:#222">/')
					table.insert(textHide, x_pron.ipa(x_rom, 'new'))
					table.insert(textHide, '/</span>')
				end
			end
			add_audio(textHide, x_audio, 'hsn')
			if args then table.insert(textHide, makeNote(args)) end
		end
		text = {table.concat(textShow), '\n<div class="mw-collapsible-content">\n----\n', table.concat(textHide), '</div>'}
		if c_rom == "" then table.insert(text, "]") end
		
		if dial ~= "n" and mw.ustring.len(mw.title.getCurrentTitle().text) == 1 then
			local success, m_dial = pcall(mw.loadData, "Module:zh/data/dial-pron/" .. pagename)
			if success then
				local dialPron = {}
				reading_count = 0
				local temporary = {}
				if mw.ustring.match(dial, "^+$") then
					for element in mw.text.gsplit(dial, ",") do
						table.insert(dialPron, m_dial)
						reading_count = reading_count + 1
					end
				else
					for _, element in ipairs(m_dial) do
						table.insert(dialPron, element)
						reading_count = reading_count + 1
					end
				end
				for _, set in ipairs(dialPron) do
					for _, object in ipairs(set) do
						table.insert(temporary, object)
					end
				end
				rand = mw.ustring.gsub("-" .. table.concat(temporary), "", mw.ustring.codepoint('%1'))
				table.insert(text, '\n----\n<div style="background-color:#FAFFFA">\n* <div title="expand" ' ..
					'class="mw-customtoggle-dial' .. rand .. '"><span style="color:#3366bb">Dialectal data' ..
					'</span><span style="float:right; border:1px solid #ccc; border-radius:1px; ' ..
					'padding:0 0; font-size:90%">▼</span></div>')
				
				table.insert(text, '\n{| class="wikitable mw-collapsible mw-collapsed" ' ..
					'id="mw-customcollapsible-dial' .. rand .. '" style="width:100%; margin:0; ' ..
					'text-align:center; border-collapse: collapse; border-style: hidden;"')
				
				local locStart = '\n|-\n!'
				local readingStart = table.concat({'\n!style="background:#E8ECFA; width:9em"|',
				'<div style="float: right; clear: right; font-size:60%"><span class="plainlinks">="edit"})), ' edit]</span></div></sup><span lang="zh" class="Hani">'})
				local locEnd = '<span class="IPA" style="font-size:100%; color:#222">'
				local headclr = 'style="background:#E8ECFA"|'
				local mclr = 'style="background:#FAF5F0"|'
				local jclr = 'style="background:#F0F5FA"|'
				local wclr = 'style="background:#F4F0FA"|'
				local huclr = 'style="background:#FAF9F0"|'
				local xclr = 'style="background:#F0F2FA"|'
				local gclr = 'style="background:#F0FAF3"|'
				local haclr = 'style="background:#FAF0F6"|'
				local cclr = 'style="background:#F0F5FA"|'
				local minclr = 'style="background:#F7FAF0"|'
				local clrList = {
					mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr,
					mclr, mclr, mclr, mclr, mclr, mclr, mclr, jclr, jclr, jclr,
					wclr, wclr, wclr, wclr, huclr, huclr, xclr, xclr, gclr, haclr,
					haclr, cclr, cclr, cclr, minclr, minclr, minclr, minclr, minclr
				}
				local locList = {
					table.concat({headclr, "Variety\n!", headclr, "Location"}),
					table.concat({"rowspan=17 ", mclr,  "普通話\n!", mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({mclr, "]\n|", mclr}),
					table.concat({"rowspan=3 ", jclr, "晉語\n!", jclr, "]\n|", jclr}),
					table.concat({jclr, "]\n|", jclr}),
					table.concat({jclr, "]\n|", jclr}),
					table.concat({"rowspan=4 ", wclr, "吳語\n!", wclr, "]\n|", wclr}),
					table.concat({wclr, "]\n|", wclr}),
					table.concat({wclr, "]\n|" , wclr}),
					table.concat({wclr, "]\n|", wclr}),
					table.concat({"rowspan=2 ", huclr, "徽語\n!", huclr, "]\n|", huclr}),
					table.concat({huclr, "]\n|", huclr}),
					table.concat({"rowspan=2 ", xclr, "湘語\n!", xclr, "]\n|", xclr}),
					table.concat({xclr, "]\n|", xclr}),
					table.concat({gclr, "Gan\n!", gclr, "]\n|", gclr}),
					table.concat({"rowspan=2 ", haclr, "客家語\n!", haclr, "]\n|", haclr}),
					table.concat({haclr, "]\n|", haclr}),
					table.concat({"rowspan=3 ", cclr, "粵語\n!", cclr, "]\n|", cclr}),
					table.concat({cclr, "]\n|", cclr}),
					table.concat({cclr, "]\n|", cclr}),
					table.concat({"rowspan=5 ", minclr, "閩語\n!", minclr, "] (閩南)\n|", minclr}),
					table.concat({minclr, "] (閩東)\n|", minclr}),
					table.concat({minclr, "] (閩北)\n|", minclr}),
					table.concat({minclr, "] (閩南)\n|", minclr}),
					table.concat({minclr, "] (閩南)\n|", minclr})}
				
				function ipa_correct(ipa, location)
					if location == 22 then return (gsub(ipa, "13", "23")) else return ipa end
				end
				
				function fmtDial(text, location)
					local fmttedPron = {}
					if text == "" then return "" end
					for pronunciation in mw.text.gsplit(text, "|") do
						ipa = mw.ustring.match(pronunciation, "^+")
						ipa = gsub(ipa, "()()", "%1̚%2")
						environ = mw.ustring.match(pronunciation, "*$") or false
						table.insert(fmttedPron, "<span class=\"IPA\"><small>/" ..
							tostring(ipa_format(ipa_correct(ipa, location))) .. "/</small></span>" .. (environ
							and " <small><span class=\"Hani\" lang=\"zh\">"..environ.."</small></span>" or nil))
					end
					return table.concat(fmttedPron, "<br>")
				end
					
				for locationNo = 1, 40 do
					for readingNo = 1, #dialPron do
						if readingNo == 1 then
							table.insert(text, locStart)
							table.insert(text, locList)
						end
						if locationNo == 1 then
							situation = dialPron
							table.insert(text, readingStart)
							table.insert(text, pagename)
							table.insert(text, (pagename ~= situation and " (" ..
								gsub(situation, pagename, "<b>" .. pagename .. "</b>") .. ")" or ""))
							table.insert(text, "</span>")
						else
							table.insert(text, (readingNo == 1 and "" or "\n|" .. clrList))
							table.insert(text, locEnd)
							table.insert(text, fmtDial(dialPron, locationNo))
							table.insert(text, "</span>")
						end
					end
				end
				table.insert(text, "\n|}</div>")
			end
		end
		if mc then
			m_ltc_pron = require("Module:ltc-pron")
			mc_preview = m_ltc_pron.retrieve_pron(pagename, false, mc, true)
			if not mc_preview then
				mc = false
			end
		end
		if oc then
			m_och_pron = require("Module:och-pron")
			oc_preview = m_och_pron.generate_show(pagename, oc)
			if not oc_preview then
				oc = false
			end
		end
		if mc or oc then
			table.insert(text, '\n----\n<div style="background-color:#f7fbff">')
			if mc then
				table.insert(text, m_ltc_pron.ipa(mc, mc_preview))
			end
			if oc then
				table.insert(text, m_och_pron.ipa(oc, oc_preview))
			end
			table.insert(text, "</div>")
		end
		table.insert(text, "</div>")
	end
	conv_text = {}
	if mw.title.getCurrentTitle().nsText == "" then
		local catText = args or args
		local cat = {}
		local cat_start = '[[Category:'
		local cat_end = ']]'
		rom = m_rom ~= "" and m_rom or mw.title.getCurrentTitle().text
		if mw.ustring.match(rom, '') then
			local m_cmn_pron = mw.loadData("Module:zh/data/cmn-pron")
			rom = gsub(rom, '.', m_cmn_pron.py)
		end
		local m_pron = require("Module:cmn-pron")
		rom = m_pron.py_transform(rom, true, true)
		if w_rom ~= '' then
			w_rom = gsub(w_rom, '%d', '')
		end
		
		local function add_cat(cat_table, name, cat, rom)
			local this_cat = {}
			table.insert(this_cat, cat_start)
			table.insert(this_cat, name)
			table.insert(this_cat, cat)
			table.insert(this_cat, "|")
			table.insert(this_cat, rom)
			table.insert(this_cat, cat_end)
			table.insert(cat_table, table.concat(this_cat))
		end
		
		if catText and catText ~= '' and mw.title.getCurrentTitle().nsText == '' or mw.title.getCurrentTitle().nsText == 'User' then
			cat = mw.text.split(catText, ',', true)
			if (pos_aliases_cat] or "") == 'chengyu' then
				table.insert(cat, 2, '成語')
			end
			table.insert(cat, 1, "字詞")
			for i = 1, #cat do
				cat = gsub(cat, '^ +', '')
				if mw.ustring.match(cat, ':') then
					local lang_name, category = langname_abbr, ':', true)], (pos_aliases_cat, ':', true)] or cat)
					add_cat(conv_text, '漢語', category, rom)
					table.insert(conv_text, cat_start)
					table.insert(conv_text, lang_name)
					table.insert(conv_text, category)
					table.insert(conv_text, '|')
					table.insert(conv_text, (lang_name == '粵語' and c_rom or
							(lang_name == '閩南' and (mn_rom ~= '' and mn_rom) or (mn_t_rom ~= '' and mn_t_rom) or rom)) .. cat_end)
				else
					cat = pos_aliases_cat] or cat
					add_cat(conv_text, '漢語', cat, rom)
					if m_rom ~= '' then add_cat(conv_text, '官話', cat, m_rom) end
					if c_rom ~= '' then add_cat(conv_text, '廣東話', cat, c_rom:gsub(']','')) end
					if c_t_rom ~= '' then add_cat(conv_text, '台山話', cat, c_t_rom) end
					if g_rom ~= '' or g_audio ~= '' then add_cat(conv_text, '贛語', cat, g_rom:gsub("'", "")) end
					if mw.ustring.match(h_rom, 'pfs=.') or mw.ustring.match(h_rom, 'gd=.') or h_audio ~= '' then add_cat(conv_text, '客家語', cat, mw.ustring.gsub(mw.ustring.gsub(h_rom, 'pfs=', ''), 'gd=', '')) end
					if j_rom ~= '' or j_audio ~= '' then add_cat(conv_text, '晉語', cat, j_rom) end
					if md_rom ~= '' or md_audio ~= '' then add_cat(conv_text, '閩東語', cat, md_rom) end
					if mn_rom ~= '' or mn_audio ~= '' then add_cat(conv_text, '閩南語', cat, mn_rom) end
					if mn_t_rom ~= '' or mn_t_audio ~= '' then add_cat(conv_text, '閩南語', cat, mn_t_rom) end
					if w_rom ~= '' or w_audio ~= '' then add_cat(conv_text, '吳語', cat, w_rom) end
					if x_rom ~= '' or x_audio ~= '' then add_cat(conv_text, '湘語', cat, x_rom) end
				end
			end
		end
		table.insert(conv_text, cat_start)
		table.insert(conv_text, '漢語字詞有國際音標|')
		table.insert(conv_text, rom)
		table.insert(conv_text, cat_end)
		if mw.ustring.len(mw.title.getCurrentTitle().text) == 1 then
			table.insert(conv_text, cat_start)
			table.insert(conv_text, '漢字|')
			table.insert(conv_text, rom)
			table.insert(conv_text, cat_end)
		end
	end
	
	if mw.title.getCurrentTitle().nsText ~= '' then
		return (gsub(table.concat(text) .. table.concat(conv_text), "%]+%]%]", ""))
	else
		return (table.concat(text) .. table.concat(conv_text))
	end
end

function ipa_format(text)
	local numbers = { ='¹',='²',='³',='⁴',='⁵',='⁰',='⁻',='/, /' }
	return gsub(text,'',numbers)
end

function add_audio(text, audio, lang)
	-- This function has side effects
	if audio ~= "" then
		if audio == "y" then audio = lang .. '-' .. mw.title.getCurrentTitle().baseText .. '.ogg' end
		table.insert(text, '\n*** [[File:')
		table.insert(text, audio)
		table.insert(text, ']]')
		table.insert(text, '[[Category:')
		table.insert(text, langname)
		table.insert(text, '字詞有錄音]]')
	end
end

return export