Modül:my-söyleniş

Merhaba, buraya Modül:my-söyleniş kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:my-söyleniş kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:my-söyleniş kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:my-söyleniş kelimesi hakkında bilmeniz gereken her şey burada. Modül:my-söyleniş kelimesinin tanımı, konuşurken veya metinlerinizi yazarken daha kesin ve doğru olmanıza yardımcı olacaktır. XXX'in ve diğer kelimelerin tanımını bilmek, kelime dağarcığınızı zenginleştirir ve size daha fazla ve daha iyi dilsel kaynaklar sağlar.
Modül belgelemesi


local export = {}
local gsub = mw.ustring.gsub
local sub = mw.ustring.sub
local match = mw.ustring.match

local system_list = {
	{ 1,  = "phonetic",		 = "IPA" },
	{ 2,  = "orthographic",	 = "MLCTS" },
	{ 3,  = "orthographic",	 = "ALA-LC" },
	{ 4,  = "phonetic",		 = "BGN/PCGN" },
	{ 5,  = "phonetic",		 = "Okell" },
}

local initial_table = {
		=	{ "k", "k", "k", "k", "k" },
		=	{ "t͡ɕ", "ky", "ky", "ky", "c" },
		=	{ "t͡ɕ", "kr", "kr", "ky", "c" },
		=	{ "t͡ɕw", "kyw", "kyv", "kyw", "cw" },
		=	{ "t͡ɕw", "krw", "krv", "kyw", "cw" },
		=	{ "kw", "kw", "kv", "kw", "kw" },
		=	{ "kʰ", "hk", "kh", "hk", "hk" },
		=	{ "t͡ɕʰ", "hky", "khy", "ch", "hc" },
		=	{ "t͡ɕʰ", "hkr", "khr", "ch", "hc" },
		=	{ "t͡ɕʰw", "hkyw", "khyv", "chw", "hcw" },
		=	{ "t͡ɕʰw", "hkrw", "khrv", "chw", "hcw" },
		=	{ "kʰw", "hkw", "khv", "hkw", "hkw" },
		=	{ "ɡ", "g", "g", "g", "g" },
		=	{ "d͡ʑ", "gy", "gy", "gy", "j" },
		=	{ "d͡ʑ", "gr", "gr", "gy", "j" },
		=	{ "d͡ʑw", "gyw", "gyv", "gyw", "jw" },
		=	{ "ɡw", "gw", "gv", "gw", "gw" },
		=	{ "ɡ", "gh", "gh", "g", "g" },
		=	{ "ŋ", "ng", "ṅ", "ng", "ng" },
		=	{ "ŋ̊", "hng", "ṅh", "hng", "hng" },
		=	{ "ɲ", "ngr", "ṅr", "ny", "ny" },
		=	{ "ɲ̊", "hngr", "ṅrh", "hny", "hny" },
		=	{ "ŋw", "ngw", "ṅv", "ngw", "ngw" },
		=	{ "ŋ̊w", "hngw", "ṅvh", "hngw", "hngw" },
		=	{ "s", "c", "c", "s", "s" },
		=	{ "sw", "cw", "cv", "sw", "sw" },
		=	{ "sʰ", "hc", "ch", "hs", "hs" },
		=	{ "sʰw", "hcw", "chv", "hsw", "hsw" },
		=	{ "z", "j", "j", "z", "z" },
		=	{ "zw", "jw", "jv", "zw", "zw" },
		=	{ "z", "jh", "jh", "z", "z" },
		=	{ "ɲ", "ny", "ñ", "ny", "ny" },
		=	{ "ɲ", "ny", "ññ", "ny", "ny" },
		=	{ "ɲ̊", "hny", "ñh", "hny", "hny" },
		=	{ "ɲ̊", "hny", "ññh", "hny", "hny" },
		=	{ "ɲw", "nyw", "ñv", "nyw", "nyw" },
		=	{ "ɲ̊w", "hnyw", "ñvh", "hnyw", "hnyw" },
		=	{ "t", "t", "ṭ", "t", "t" },
		=	{ "tʰ", "ht", "ṭh", "ht", "ht" },
		=	{ "d", "d", "ḍ", "d", "d" },
		=	{ "d", "dh", "ḍh", "d", "d" },
		=	{ "n", "n", "ṇ", "n", "n" },
		=	{ "n̥", "hn", "ṇh", "hn", "hn" },
		=	{ "t", "t", "t", "t", "t" },
		=	{ "tj", "ty", "ty", "ty", "ty" },
		=	{ "tɹ", "tr", "tr", "tr", "tr" },
		=	{ "tw", "tw", "tv", "tw", "tw" },
		=	{ "tʰ", "ht", "th", "ht", "ht" },
		=	{ "tʰw", "htw", "thv", "htw", "htw" },
		=	{ "d", "d", "d", "d", "d" },
		=	{ "dj", "dy", "dy", "dy", "dy" },
		=	{ "dɹ", "dr", "dr", "dr", "dr" },
		=	{ "dw", "dw", "dv", "dw", "dw" },
		=	{ "d", "dh", "dh", "d", "d" },
		=	{ "n", "n", "n", "n", "n" },
		=	{ "n̥", "hn", "nh", "hn", "hn" },
		=	{ "nw", "nw", "nv", "nw", "nw" },
		=	{ "n̥w", "hnw", "nvh", "hnw", "hnw" },
		=	{ "p", "p", "p", "p", "p" },
		=	{ "pj", "py", "py", "py", "py" },
		=	{ "pj", "pr", "pr", "py", "py" },
		=	{ "pw", "prw", "prv", "pw", "pw" },
		=	{ "pw", "pw", "pv", "pw", "pw" },
		=	{ "pʰ", "hp", "ph", "hp", "hp" },
		=	{ "pʰj", "hpy", "phy", "hpy", "hpy" },
		=	{ "pʰj", "hpr", "phr", "hpy", "hpy" },
		=	{ "pʰw", "hpw", "phv", "hpw", "hpw" },
		=	{ "b", "b", "b", "b", "b" },
		=	{ "bj", "by", "by", "by", "by" },
		=	{ "bj", "br", "br", "by", "by" },
		=	{ "bw", "bw", "bv", "bw", "bw" },
		=	{ "b", "bh", "bh", "b", "b" },
		=	{ "pʰ", "bh", "bh", "hp", "hp" },
		=	{ "bw", "bhw", "bhv", "bw", "bw" },
		=	{ "pʰw", "bhw", "bhw", "hpw", "hpw" },
		=	{ "m", "m", "m", "m", "m" },
		=	{ "m̥", "hm", "mh", "hm", "hm" },
		=	{ "mj", "my", "my", "my", "my" },
		=	{ "m̥j", "hmy", "myh", "hmy", "hmy" },
		=	{ "mj", "mr", "mr", "my", "my" },
		=	{ "m̥j", "hmr", "mrh", "hmy", "hmy" },
		=	{ "mjw", "mrw", "mrv", "myw", "myw" },
		=	{ "mw", "mw", "mv", "mw", "mw" },
		=	{ "m̥w", "hmw", "mvh", "hmw", "hmw" },
		=	{ "j", "y", "y", "y", "y" },
		=	{ "ʃ", "hy", "yh", "sh", "hy" },
		=	{ "jw", "yw", "yv", "yw", "yw" },
		=	{ "j", "r", "r", "y", "y" },
		=	{ "ɹ", "r", "r", "r", "r" },
		=	{ "ʃ", "hr", "rh", "sh", "hy" },
		=	{ "jw", "rw", "rv", "yw", "yw" },
		=	{ "ʃw", "hrw", "rvh", "shw", "hyw" },
		=	{ "l", "l", "l", "l", "l" },
		=	{ "l̥", "hl", "lh", "hl", "hl" },
		=	{ "j", "ly", "ly", "y", "y" },
		=	{ "lj", "ly", "ly", "ly", "ly" },
		=	{ "ʃ", "hly", "lyh", "sh", "hy" },
		=	{ "l̥j", "hly", "lyh", "hly", "hly" },
		=	{ "lw", "lw", "lv", "lw", "lw" },
		=	{ "l̥w", "hlw", "lvh", "hlw", "hlw" },
		=	{ "w", "w", "v", "w", "w" },
		=	{ "ʍ", "hw", "vh", "hw", "hw" },
		=	{ "θ", "s", "s", "th", "th" },
		=	{ "ð", "s", "s", "dh", "th" },
		=	{ "θw", "sw", "sv", "thw", "thw" },
		=	{ "ðw", "sw", "sw", "dhw", "thw" },
		=	{ "h", "h", "h", "h", "h" },
		=	{ "hw", "hw", "hv", "hw", "hw" },
		=	{ "l", "l", "ḷ", "l", "l" },
		=	{ "ʔ", "", "’", "", "" },
		=	{ nil, "ss", "ss", nil, nil },
		=	{ "ʔ", "", "", "", "" },
		=	{ "", "", "", "", "" },
	
		=	{ nil, "y", "y", nil, nil },
		=	{ nil, "r", "r", nil, nil },
		=	{ nil, "w", "w", nil, nil },
}

local initial_voicing = {
		=	"ဂ", 
		=	"ဂ", 
		=	"ဇ", 
		=	"ဇ", 
		=	"ဍ", 
		=	"ဍ", 
		=	"ဒ", 
		=	"ဒ", 
		=	"ဗ", 
		=	"ဗ", 
		=	"ဖ",
}

local final_table = {
		=	{ "a̰", "a.", "a", "a.", "á" },
		=	{ "ɛʔ", "ak", "ak‘", "et", "eʔ" },
		=	{ "ɪ̀ɴ", "ang", "aṅ‘", "in", "iñ" },
		=	{ "ɪʔ", "ac", "ac‘", "it", "iʔ" },
		=	{ "ì", "any", "aññ‘", "i", "i" },
		=	{ "è", "any", "aññ‘", "e", "ei" },
		=	{ "ɛ̀", "any", "aññ‘", "è", "e" },
		=	{ "ɪ̀ɴ", "any", "añ‘", "in", "iñ" },
		=	{ "aʔ", "at", "at‘", "at", "aʔ" },
		=	{ "àɴ", "an", "an‘", "an", "añ" },
		=	{ "aʔ", "ap", "ap‘", "at", "aʔ" },
		=	{ "àɴ", "am", "am‘", "an", "añ" },
		=	{ "ɛ̀", "ai", "ay‘", "è", "e" },
		=	{ "àɴ", "am", "aṃ", "an", "añ" },
		=	{ "à", "a", "ā", "a", "a" },
		=	{ "à", "a", "ā", "a", "a" },
		=	{ "ḭ", "i.", "i", "i.", "í" },
		=	{ "eɪʔ", "it", "it‘", "eik", "eiʔ" },
		=	{ "èɪɴ", "in", "in‘", "ein", "eiñ" },
		=	{ "eɪʔ", "ip", "ip‘", "eik", "eiʔ" },
		=	{ "èɪɴ", "im", "im‘", "ein", "eiñ" },
		=	{ "èɪɴ", "im", "iṃ", "ein", "eiñ" },
		=	{ "ì", "i", "ī", "i", "i" },
		=	{ "ṵ", "u.", "u", "u.", "ú" },
		=	{ "oʊʔ", "ut", "ut‘", "ok", "ouʔ" },
		=	{ "òʊɴ", "un", "un‘", "on", "ouñ" },
		=	{ "oʊʔ", "up", "up‘", "ok", "ouʔ" },
		=	{ "òʊɴ", "um", "um‘", "on", "ouñ" },
		=	{ "òʊɴ", "um", "uṃ", "on", "ouñ" },
		=	{ "ù", "u", "ū", "u", "u" },
		=	{ "è", "e", "e", "e", "ei" },
		=	{ "ɛ́", "ai:", "ai", "è:", "è" },
		=	{ "ɔ́", "au:", "o", "aw:", "ò" },
		=	{ "aʊʔ", "auk", "ok‘", "auk", "auʔ" },
		=	{ "àʊɴ", "aung", "oṅ‘", "aung", "auñ" },
		=	{ "ɔ̀", "au", "o‘", "aw", "o" },
		=	{ "ò", "ui", "ui", "o", "ou" },
		=	{ "aɪʔ", "uik", "uik‘", "aik", "aiʔ" },
		=	{ "àɪɴ", "uing", "uiṅ‘", "aing", "aiñ" },
		=	{ "ʊʔ", "wat", "vat‘", "ut", "uʔ" },
		=	{ "ʊ̀ɴ", "wan", "van‘", "un", "uñ" },
		=	{ "ʊʔ", "wap", "vap‘", "ut", "uʔ" },
		=	{ "ʊ̀ɴ", "wam", "vam‘", "un", "uñ" },
		=	{ "ʊ̀ɴ", "wam", "vaṃ", "un", "uñ" },
		=	{ "ə", "a", "a", "ă", "ă" },
		=	{ "", "", "‘", "", "" },
}

local nucleus_table = {
		=	{ "à", "a", "a", "a", "a" }, 
		=	{ "ì", "i", "i", "i", "i" },
		=	{ "ù", "u", "u", "u", "u" },
		=	{ "ɔ̀", "au", "o", "aw", "o" },
		=	{ "ɔ̀", "au", "o", "aw", "o" },
		=	{ "ʊ̀", "wa", "va", "u", "u" },
}

local indep_letter_table = {
		=	{ "ḭ", "i.", "i", "i.", "í" },
		=	{ "ì", "i", "ī", "i", "i" },
		=	{ "ṵ", "u.", "u", "u.", "ú" },
		=	{ "ù", "u", "ū", "u", "u" },
		=	{ "è", "e", "e", "e", "ei" },
		=	{ "ɛ̰", "e", "e*", "è.", "é" },
		=	{ "ɔ́", "au:", "o", "aw:", "ò" },
		=	{ "ɔ̀", "au", "o‘", "aw", "o" },
		=	{ "n̥aɪʔ", "hnai.", "n*", "hnaik", "hnaiʔ" },
		=	{ "jwḛ", "rwe", "r*", "ywe.", "yweí" },
}

local tone_table = {
	 = { "́", ":", "″", ":", "̀" },
	 = { "̰", ".", "′", ".", "́" },
}

local ambig_intersyl = {
	 = {
	},

	 = {
		 = 1,  = 1,  = 1, 
		 = 1,  = 1,  = 1, 
		 = 1,  = 1, 
		 = 1,  = 1,  = 1, 
		 = 1,  = 1,  = 1, 
		 = 1,  = 1,  = 1, 
	},

	 = {
	},

	 = {
		 = 1,  = 1,  = 1, 
		 = 1,  = 1,  = 1, 
		 = 1,  = 1, 
		 = 1,  = 1,  = 1, 
		 = 1,  = 1, 
		 = 1,  = 1,  = 1, 
		 = 1,  = 1,  = 1, 
	},

	 = {
		 = 1,
	},
}

local reverse_table = {
	 = "မှ",  = "မ", 
	 = "နှ",  = "န", 
	 = "ညှ",  = "ည", 
	 = "ငှ",  = "င", 
	 = "ပ",  = "ဖ",  = "ဗ", 
	 = "တ",  = "ထ",  = "ဒ", 
	 = "ကျ",  = "ချ",  = "ဂျ", 
	 = "က",  = "ခ",  = "ဂ", 
	 = "အ", 
	 = "သ",  = "+သ", 
	 = "စ",  = "ဆ",  = "ဇ", 
	 = "ရှ", 
	 = "ဟ", 
	 = "*ရ", 
	 = "ယ", 
	 = "ဝှ",  = "ဝ", 
	 = "လှ",  = "လ", 
	 = "မွှ",  = "မွ",  = "မျှ",  = "မျ", 
	 = "နွှ",  = "နွ", 
	 = "ညွှ",  = "ညွ", 
	 = "ငွှ",  = "ငွ", 
	 = "ပွ",  = "ဖွ",  = "ဗွ", 
	 = "ပျ",  = "ဖျ",  = "ဗျ", 
	 = "တွ",  = "ထွ",  = "ဒွ", 
	 = "ကျွ",  = "ချွ",  = "ဂျွ", 
	 = "ကွ",  = "ခွ",  = "ဂွ", 
	 = "သွ", 
	 = "စွ",  = "ဆွ",  = "ဇွ", 
	 = "ရွှ", 
	 = "ဟွ", 
	 = "ယွ", 
	 = "လွှ",  = "လွ",  = "*လျှ",  = "*လျ", 
	
	 = "ီ",  = "ီး",  = "ိ",  = "စ်", 
	 = "င်",  = "င်း",  = "င့်", 
	 = "ေ",  = "ေး",  = "ေ့",  = "ိတ်", 
	 = "ိန်",  = "ိန်း",  = "ိန့်", 
	 = "ယ်",  = "ဲ",  = "ယ့်",  = "က်", 
	 = "ိုင်",  = "ိုင်း",  = "ိုင့်", 
	 = "ိုက်", 
	 = "ာ",  = "ား",  = "",  = "တ်", 
	 = "န်",  = "န်း",  = "န့်", 
	 = "ော်",  = "ော",  = "ော့",  = "ောက်", 
	 = "ောင်",  = "ောင်း",  = "ောင့်", 
	 = "ို",  = "ိုး",  = "ို့",  = "ုပ်", 
	 = "ုန်",  = "ုန်း",  = "ုန့်", 
	 = "ူ",  = "ူး",  = "ု",  = "ွတ်", 
	 = "ွန်",  = "ွန်း",  = "ွန့်", 
	 = "'",
}

local repl_string = "(**)(?)"

function syllabify(text)
	text = gsub(text, "('?)(*)", function(a, b)
		if a .. b ~= "" then return a .. " " .. b end
		end)
	
	text = gsub(text, "(?)(.?)(.?)", function(a, b, c)
		return (c == "္" and " "..a..b.." "..c or (c == "်" and " "..a..b..c or " "..a.." "..b..c))
		end) .. " "
	
	text = gsub(text, "(်း?'?)", "%1 ")
	text = gsub(text, "()(်)", "%2%1")
	
	while match(text, repl_string) do
		text = gsub(text, repl_string, "%1 %2")
	end
	
	text = gsub(text, "္", " , ")
	text = gsub(text, " +", " ")
	text = gsub(text, "^ ?(.*) ?$", "%1")
	text = gsub(text, " , ", " ")
	text = gsub(text, " ()", "%1")
	return text
end

function initial_by_char(initial_string, system_index, ref_table)
	local initial_set = {}
	for character in mw.text.gsplit(initial_string, "") do
		local temp_initial = ref_table or error("Initial data not found.")
		table.insert(initial_set, temp_initial or temp_initial)
	end
	return table.concat(initial_set)
end

function generate_respelling(text)
	text = gsub(text, " ", "   ")
	text = gsub(text, "ါ", "ာ")
	if match(text, "") then return text end
	text = gsub(text, "(%+?)(*)(/?)(+)", function(voicing_mark, latin_initial, opt_sep, latin_final)
		return 
			voicing_mark .. 
			(reverse_table or initial_by_char(latin_initial, nil, reverse_table)) .. 
			opt_sep ..
			reverse_table
	end)
	return text
end

function process(initial, final, tone, schwa, system, system_index)
	if match(initial .. final, "ွှ?") and system == "phonetic" then
		initial = gsub(initial, "", "")
		final = "ွ" .. final
	else
		initial = gsub(initial, "/", "")
	end
	
	initial_new = system == "phonetic" and gsub(initial, "%+.", initial_voicing) or initial
	
	if indep_letter_table then
		initial_new = match(initial_new, "") and "-" or ""
		final = initial .. final
	end
	--if initial_new == "မြွ" then require('Modül:debug').track('my-pron/mrw') end

	initial_data = 
		initial_table
		or initial_table", "")]
		or (system == "orthographic" 
			and initial_by_char(initial_new, system_index, initial_table)
			or error("Initial data not found."))
		
	initial_value = initial_data or initial_data

	if match(initial, "^%+") and system_index == 5 then
		initial_value = initial_table
		initial_value = gsub(initial_value, "^(+)", "<u>%1</u>")
	end

	final_data =
		final_table .. schwa == "phonetic'" and schwa or final]
		or (system == "phonetic" 
			and (final_table or indep_letter_table) 
			or indep_letter_table)
		or gsub(final, "^(*)()(်?)$", function(first, second, third) 
			first_data = nucleus_table or final_table or indep_letter_table or first
			second_data = initial_table or second
			first = first_data ~= first and first_data or first
			second = second_data ~= second
				and second_data .. ((system_index == 3 and third ~= "") and "‘" or "")
				or second
			return (gsub(first .. second, "()(.*)", "%2"))
			end)
		
	final_value = type(final_data) == "table" and final_data or final_data
	final_value = mw.ustring.toNFD(final_value)
	if tone == "" then
		tone_value = ""
	else
		if system_index ~= 4 then final_value = gsub(final_value, "̀", "") end
		final_value = gsub(final_value, "", "")
		if system .. schwa == "phonetic'" then
			tone_value = ""
		else
			tone_data = tone_table or error("Tone data not found.")
			tone_value = tone_data
		end
	end

	if system_index == 1 then
		final_value = gsub(final_value, "^()", "%1" .. tone_value)
	elseif system_index == 5 then
		final_value = gsub(final_value, "()(*)$", "%1" .. tone_value .. "%2")
	else
		final_value = final_value .. tone_value
	end
	
	return mw.ustring.toNFC(initial_value .. final_value)
end

function remove_wide_space(text)
	return (gsub(text, " ", ""))
end

function concatenate(set, system_index)
	if system_index == 1 then return remove_wide_space(table.concat(set)) end
	result_text = remove_wide_space(table.concat(set, " "))
	
	for count = 1, 3 do
		result_text = gsub(result_text, "(.) (.)(?)",
			function(previous, next, after_next)
				if ambig_intersyl 
				or ((system_index == 2 or system_index == 4)
					and (match(previous .. " " .. next, " ")
					or (match(previous .. next .. after_next, "") and not match(after_next, "")))) then
						return previous .. "-" .. next .. after_next
				else
					return previous .. next .. after_next
				end
			end)
	end
		
	return result_text
end

function export.get_romanisation(word, pronunciations, system, system_index, mode)
	local sentences = {}
	word = gsub(word, " ", "|")
	word = syllabify(word)
	word = gsub(word, "ါ", "ာ")
	if system == "phonetic" then
		word = gsub(word, "ဝ()", "ဝွ%1")
	end
	for phrase in mw.text.gsplit(word, "|", true) do
		local temp = {}
		local syllable = mw.text.split(phrase, " ", true)
		for syllable_index = 1, #syllable do
			syllable = gsub(syllable, "()(်)", "%2%1")
			temp = gsub(
				syllable, 
				"^(*?ွ?ှ?/?)(*)(?)('?)$",
				function(initial, final, tone, schwa)
					return process(initial, final, tone, schwa, system, system_index)
				end)
		end
		table.insert(sentences, concatenate(temp, system_index))
	end
	if mode == "translit_module" then return table.concat(sentences, " ") end
	table.insert(pronunciations, table.concat(sentences, " "))
	return pronunciations
end

function respelling_format(phonetic, page_title)
	local page_title_set = mw.text.split(syllabify(page_title), " ")
	local new_respellings = {}
	for _, respelling in ipairs(phonetic) do
		local respelling_set = mw.text.split(syllabify(respelling), " ")
		if gsub(table.concat(respelling_set), "", "") == (gsub(table.concat(page_title_set), "ါ", "ာ")) then
			for index, element in ipairs(respelling_set) do
				if element ~= page_title_set then
					respelling_set = '<span style="font-size:110%; color:#A32214; font-weight: bold">' .. element .. '</span>'
				end
			end
		end
		table.insert(new_respellings, table.concat(respelling_set))
	end
	text = table.concat(new_respellings, ", ")
	text = remove_wide_space(text)
	text = gsub(text, ".", initial_voicing)
	text = gsub(text, "(ေ?)ာ", "%1ါ")
	return text
end

function export.generate_tests(word, respelling)
	respelling, word = generate_respelling(respelling), generate_respelling(word)
	local pronunciations = {
		 = {},
		 = {},
		 = {},
		 = {},
		 = {},
	}
	local p, result = {  = word,  = respelling or word }, {}
	
	table.sort(system_list, function(first, second) return first < second end)
	for system_index, system in ipairs(system_list) do
		pronunciations = export.get_romanisation(p], pronunciations, system, system_index)
	end
	for system_index = 1, 5 do
		table.insert(result, table.concat(pronunciations))
	end
	return (gsub(gsub(table.concat(result, " | "), "<u>", "("), "</u>", ")"))
end

function export.make(frame)
	local args = frame:getParent().args
	local page_title = mw.title.getCurrentTitle().text
	local title = generate_respelling(args or page_title)
	
	local p, result = {  = { title },  = {} }, {}
	local pronunciations = {
		 = {},
		 = {},
		 = {},
		 = {},
		 = {},
	}

	if not args then args = { title } end
	for index, item in ipairs(args) do
		table.insert(p, (item ~= "") and generate_respelling(item) or nil)
	end
	
	table.sort(system_list, function(first, second) return first < second end)
	for system_index, system in ipairs(system_list) do
		for _, word in ipairs(p]) do
		 	pronunciations = export.get_romanisation(word, pronunciations, system, system_index)
		end
	end
	
	if title ~= table.concat(args) then
		table.insert(result, 
			"* Phonetic respelling" .. (#p > 1 and "s" or "") .. ": " ..
			tostring( mw.html.create( "span" )
				:attr( "lang", "my" )
				:attr( "class", "Mymr" )
				:wikitext( respelling_format( p, page_title ))) .. "\n" )
	end

	table.insert(result,
		'* ]' ..
		'<sup>(])</sup>: ' ..
		
		(tostring( mw.html.create( "span" )
			:attr( "class", "IPA" )
			:wikitext( "/" .. gsub(table.concat(pronunciations, "/, /"), "ʔʔ", "ʔ.ʔ") .. "/" ))) ..
		
		'\n* ] ')
		
	for system_index = 2, 5 do
		table.insert(result, 
			(system_index ~= 2 and " • " or "") ..
			"''" .. system_list .. ":'' " .. 
			table.concat(pronunciations, "/"))
	end
	
	return table.concat(result)
end

return export