Modül:ltc-söyleniş

Merhaba, buraya Modül:ltc-söyleniş kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:ltc-söyleniş kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:ltc-söyleniş kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:ltc-söyleniş kelimesi hakkında bilmeniz gereken her şey burada. Modül:ltc-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 m_ltc_predict = require("Modül:ltc-söyleniş/tahmin")
local m_cmn_pron = require("Modül:cmn-söyleniş")

local init_type = {
	 = 1,  = 1,  = 1,  = 2,  = 2,
	 = 3,  = 3,  = 3,  = 4,  = 4,
	 = 5,  = 6,  = 7,  = 8,  = 9,
	 = 10,  = 11,  = 12,  = 12,  = 13,
	 = 14,  = 15,  = 15,  = 16,  = 17,
	 = 18,  = 18,  = 19,  = 20,  = 21,
	 = 22,  = 23,  = 24,  = 25,  = 25,
	 = 25,  = 26,  = 26,  = 27,  = 28,
	 = 28,  = 29,  = 29,  = 30,  = 30,
	 = 31,  = 32,  = 32,  = 33,  = 34,
	 = 35,  = 35,  = 35,  = 36,  = 37,
	 = 37,  = 38
}

local fin_conv = {
	 = "沃",  = "屋",  = "覺",  = "燭",  = "質",
	 = "櫛",  = "術",  = "麧",  = "沒",  = "迄",
	 = "物",  = "曷",  = "末",  = "月",  = "黠",
	 = "鎋",  = "薛",  = "屑",  = "鐸",  = "藥",
	 = "陌",  = "麥",  = "昔",  = "錫",  = "德",
	 = "職",  = "緝",  = "盍",  = "業",  = "乏",
	 = "狎",  = "洽",  = "葉",  = "怗",  = "合"
}

local fin_type = {
	 = 5,  = 6,  = 7,  = 8,  = 9,
	 = 10,  = 19,  = 22,  = 23,  = 24,
	 = 41,  = 42,  = 46,  = 47,  = 51,
	 = 52,  = 53,  = 54,  = 55,  = 56,
	 = 57,  = 58,  = 59,  = 60,  = 61,
	 = 62,  = 63,  = 64,  = 89,  = 90,
	 = 93,  = 94,  = 133,  = 136,  = 137,
	 = 138,  = 143,  = 144,  = 145,  = 146,
	 = 147,  = 148,  = 149,  = 150,  = 151,
	 = 152,  = 157,  = 158,  = 158,  = 159,
	 = 160
}

local fin_type_open = {
	 = 20,  = 21,  = 25,  = 26,  = 27,  = 28,
	 = 29,  = 30,  = 31,  = 32,  = 33,  = 34,
	 = 39,  = 40,  = 65,  = 66,  = 67,  = 68,
	 = 69,  = 70,  = 71,  = 72,  = 73,  = 74,
	 = 75,  = 76,  = 85,  = 86,  = 87,  = 88,
	 = 101,  = 102,  = 103,  = 104,  = 105,  = 106,
	 = 107,  = 108,  = 117,  = 118,  = 119,  = 120,
	 = 121,  = 122,  = 123,  = 124,  = 125,  = 126,
	 = 127,  = 128,  = 129,  = 130,  = 131,  = 132,
	 = 134,  = 135
}

local fin_type_deng_open = {
	 = 11,  = 12,  = 13,  = 14,
	 = 15,  = 16,  = 15,  = 16,
		 = 17,  = 18,
	 = 35,  = 36,  = 35,  = 36, 
		 = 37,  = 38,
	 = 95,  = 96,  = 97,
	 = 77,  = 78,  = 79,  = 80,
	 = 81,  = 82,  = 83,  = 84,
	 = 98,  = 99,  = 100,
	 = 113,  = 114,  = 115,  = 116,
	 = 109,  = 110,  = 111,  = 112, 
		 = 111,  = 112
}

local initialConv = {
	 = {
		 = "p",  = "pʰ",  = "b",  = "m",  = "t",
		 = "tʰ",  = "d",  = "n",  = "ʈ",  = "ʈʰ",
		 = "ɖ",  = "ɳ",  = "t͡s",  = "t͡sʰ",  = "d͡z",
		 = "s",  = "z",  = "t͡ʃ",  = "t͡ʃʰ",  = "d͡ʒ",
		 = "ʃ",  = "ʒ",  = "t͡ɕ",  = "t͡ɕʰ",  = "d͡ʑ",
		 = "ɕ",  = "ʑ",  = "k",  = "kʰ",  = "ɡ",
		 = "ŋ",  = "h",  = "ɦ",  = "ʔ",  = "ɦ",
		 = "j",  = "l",  = "ȵ"
	},
	 = {
		 = "p",  = "pʰ",  = "bʱ",  = "m",  = "t",
		 = "tʰ",  = "dʱ",  = "n",  = "ȶ",  = "ȶʰ",
		 = "ȡʱ",  = "n",  = "t͡s",  = "t͡sʰ",  = "d͡zʱ",
		 = "s",  = "z",  = "ʈ͡ʂ",  = "ʈ͡ʂʰ",  = "ɖ͡ʐʱ",
		 = "ʂ",  = "ɖ͡ʐʰ",  = "t͡ɕ",  = "t͡ɕʰ",  = "ʑ",
		 = "ɕ",  = "d͡ʑʰ",  = "k",  = "kʰ",  = "g",
		 = "ŋ",  = "x",  = "ɣ",  = "ʔ",  = "",
		 = "",  = "l",  = "ȵʑ"
	},
	 = {
		 = "p",  = "pʰ",  = "b",  = "m",  = "t",
		 = "tʰ",  = "d",  = "n",  = "ȶ",  = "ȶʰ",
		 = "ȡ",  = "n",  = "t͡s",  = "t͡sʰ",  = "d͡z",
		 = "s",  = "z",  = "t͡ʃ",  = "t͡ʃʰ",  = "d͡ʒ",
		 = "ʃ",  = "ʒ",  = "t͡ɕ",  = "t͡ɕʰ",  = "ʑ",
		 = "ɕ",  = "d͡ʑ",  = "k",  = "kʰ",  = "ɡ",
		 = "ŋ",  = "x",  = "ɣ",  = "ʔ",  = "ɣ",
		 = "",  = "l",  = "ȵ"
	},
	 = {
		 = "p",  = "pʰ",  = "b",  = "m",  = "t",
		 = "tʰ",  = "d",  = "n",  = "ʈ",  = "ʈʰ",
		 = "ɖ",  = "ɳ",  = "t͡s",  = "t͡sʰ",  = "d͡z",
		 = "s",  = "z",  = "ʈ͡ʂ",  = "ʈ͡ʂʰ",  = "ɖ͡ʐ",
		 = "ʃ",  = "ʐ",  = "t͡ɕ",  = "t͡ɕʰ",  = "d͡ʑ",
		 = "ɕ",  = "ʑ",  = "k",  = "kʰ",  = "ɡ",
		 = "ŋ",  = "h",  = "ɦ",  = "ʔ",  = "ɦ",
		 = "j",  = "l",  = "ȵ"
	},
	 = {
		 = "p",  = "pʰ",  = "b",  = "m",  = "t",
		 = "tʰ",  = "d",  = "n",  = "ʈ",  = "ʈʰ",
		 = "ɖ",  = "ɳ",  = "t͡s",  = "t͡sʰ",  = "d͡z",
		 = "s",  = "z",  = "ʈ͡ʂ",  = "ʈ͡ʂʰ",  = "ɖ͡ʐ",
		 = "ʂ",  = "ʐ",  = "c",  = "cʰ",  = "d͡ʑ",
		 = "ɕ",  = "ʑ",  = "k",  = "kʰ",  = "g",
		 = "ŋ",  = "h",  = "ɦ",  = "ʔ",  = "ɦ",
		 = "j",  = "l",  = "ȵ"
	},
	 = {
		 = "p",  = "pʰ",  = "b",  = "m",  = "t",
		 = "tʰ",  = "d",  = "n",  = "ȶ",  = "ȶʰ",
		 = "ȡ",  = "n",  = "t͡s",  = "t͡sʰ",  = "d͡z",
		 = "s",  = "z",  = "t͡ʃ",  = "t͡ʃʰ",  = "d͡ʒ",
		 = "ʃ",  = "ʒ",  = "t͡ɕ",  = "t͡ɕʰ",  = "ʑ",
		 = "ɕ",  = "d͡ʑ",  = "k",  = "kʰ",  = "ɡ",
		 = "ŋ",  = "x",  = "ɣ",  = "",  = "ɣ",
		 = "j",  = "l",  = "ȵʑ"
	},
	 = {
		 = "p",  = "pʰ",  = "b",  = "m",  = "t",
		 = "tʰ",  = "d",  = "n",  = "ȶ",  = "ȶʰ",
		 = "ȡ",  = "n",  = "t͡s",  = "t͡sʰ",  = "d͡z",
		 = "s",  = "z",  = "t͡ʃ",  = "t͡ʃʰ",  = "d͡ʒ",
		 = "ʃ",  = "ʒ",  = "t͡ɕ",  = "t͡ɕʰ",  = "d͡ʑ",
		 = "ɕ",  = "ʑ",  = "k",  = "kʰ",  = "ɡ",
		 = "ŋ",  = "x",  = "ɣ",  = "ʔ",  = "ɣ",
		 = "",  = "l",  = "ȵʑ"
	}
}

local finalConv = {
	 = {
		 = "uŋ",  = "ɨuŋ",  = "uk̚",  = "ɨuk̚",  = "uoŋ",
		 = "uok̚",  = "ɨoŋ",  = "ɨok̚",  = "ˠʌŋ",  = "ˠʌk̚",
		 = "iᴇ",  = "iuᴇ",  = "ˠiᴇ",  = "ˠiuᴇ",  = "iɪ",
		 = "iuɪ",  = "ˠiɪ",  = "ˠiuɪ",  = "ɨ",  = "ɨi",
		 = "ʉi",  = "ɨʌ",  = "uo",  = "ɨo",  = "ɑi",
		 = "uɑi",  = "ɨɐi",  = "ʉɐi",  = "ˠai",  = "ˠuai",
		 = "ˠɛ",  = "ˠuɛ",  = "ˠɛi",  = "ˠuɛi",  = "iᴇi",
		 = "iuᴇi",  = "ˠiᴇi",  = "ˠiuᴇi",  = "ei",  = "wei",
		 = "ʌi",  = "uʌi",  = "iɪn",  = "ˠiɪn",  = "ˠiuɪn",
		 = "ɪn",  = "iuɪn",  = "iɪt̚",  = "ˠiɪt̚",  = "ˠiuɪt̚",
		 = "ɪt̚",  = "iuɪt̚",  = "ən",  = "ət̚",  = "uən",
		 = "uət̚",  = "ɨn",  = "ɨt̚",  = "ɨun",  = "ɨut̚",
		 = "ɑn",  = "uɑn",  = "ɑt̚",  = "uɑt̚",  = "ɨɐn",
		 = "ʉɐn",  = "ɨɐt̚",  = "ʉɐt̚",  = "ˠan",  = "ˠuan",
		 = "ˠat̚",  = "ˠuat̚",  = "ˠɛn",  = "ˠuɛn",  = "ˠɛt̚",
		 = "ˠuɛt̚",  = "iᴇn",  = "iuᴇn",  = "ˠiᴇn",  = "ˠiuᴇn",
		 = "iᴇt̚",  = "iuᴇt̚",  = "ˠiᴇt̚",  = "ˠiuᴇt̚",  = "en",
		 = "wen",  = "et̚",  = "wet̚",  = "ɑu",  = "ˠau",
		 = "iᴇu",  = "ˠiᴇu",  = "eu",  = "ɑ",  = "uɑ",
		 = "ɨɑ",  = "ɨuɑ",  = "ˠa",  = "ˠua",  = "ia",
		 = "ɑŋ",  = "wɑŋ",  = "ɑk̚",  = "wɑk̚",  = "ɨɐŋ",
		 = "ʉɐŋ",  = "ɨɐk̚",  = "ʉɐk̚",  = "ˠæŋ",  = "ˠwæŋ",
		 = "ˠiæŋ",  = "ˠwiæŋ",  = "ˠæk̚",  = "ˠwæk̚",  = "ˠiæk̚",
		 = "ˠwiæk̚",  = "ˠɛŋ",  = "ˠwɛŋ",  = "ˠɛk̚",  = "ˠwɛk̚",
		 = "iᴇŋ",  = "wiᴇŋ",  = "iᴇk̚",  = "wiᴇk̚",  = "eŋ",
		 = "weŋ",  = "ek̚",  = "wek̚",  = "əŋ",  = "wəŋ",
		 = "ək̚",  = "wək̚",  = "ɨŋ",  = "ɨk̚",  = "wɨk̚",
		 = "ɨu",  = "əu",  = "iɪu",  = "iɪm",  = "ˠiɪm",
		 = "iɪp̚",  = "ˠiɪp̚",  = "ɑm",  = "ɑp̚",  = "ɨɐm",
		 = "ʉɐm",  = "ɨɐp̚",  = "ʉɐp̚",  = "ˠam",  = "ˠap̚",
		 = "ˠɛm",  = "ˠɛp̚",  = "iᴇm",  = "ˠiᴇm",  = "iᴇp̚",
		 = "ˠiᴇp̚",  = "em",  = "ep̚",  = "ʌm",  = "ʌp̚"
	},
	 = {
		 = "uŋ",  = "i̯uŋ",  = "uk̚",  = "i̯uk̚",  = "uoŋ",
		 = "uok̚",  = "i̯woŋ",  = "i̯wok̚",  = "ɔŋ",  = "ɔk̚",
		 = "ie̯",  = "wie̯",  = "ie̯",  = "wie̯",  = "i",
		 = "wi",  = "i",  = "wi",  = "i",  = "e̯i",
		 = "we̯i",  = "i̯wo",  = "uo",  = "i̯u",  = "ɑi",
		 = "uɑi",  = "i̯ɐi",  = "i̯wɐi",  = "ai",  = "wai",
		 = "ai",  = "wai",  = "ăi",  = "wăi",  = "i̯ɛi",
		 = "i̯wɛi",  = "i̯ɛi",  = "i̯wɛi",  = "iei",  = "iwei",
		 = "ɑ̆i",  = "uɑ̆i",  = "i̯ĕn",  = "i̯ĕn",  = "i̯ĕn",
		 = "i̯æn",  = "i̯uĕn",  = "i̯ĕt̚",  = "i̯ĕt̚",  = "i̯ĕt̚",
		 = "i̯æt̚",  = "i̯uĕt̚",  = "ən",  = "ət̚",  = "uən",
		 = "uət̚",  = "i̯ən",  = "i̯ət̚",  = "i̯uən",  = "i̯uət̚",
		 = "ɑn",  = "uɑn",  = "ɑt̚",  = "uɑt̚",  = "ɨ̯ɐn",
		 = "i̯wɐn",  = "ɨ̯ɐt̚",  = "i̯wɐt̚",  = "an",  = "wan",
		 = "ăt̚",  = "wăt̚",  = "ăn",  = "wăn",  = "at̚",
		 = "wat̚",  = "i̯ɛn",  = "i̯wɛn",  = "i̯ɛn",  = "i̯wɛn",
		 = "i̯ɛt̚",  = "i̯wɛt̚",  = "i̯ɛt̚",  = "i̯wɛt̚",  = "ien",
		 = "iwen",  = "iet̚",  = "iwet̚",  = "ɑu",  = "au",
		 = "i̯ɛu",  = "i̯ɛu",  = "ieu",  = "ɑ",  = "uɑ",
		 = "i̯ɑ",  = "i̯wɑ",  = "a",  = "wa",  = "i̯a",
		 = "ɑŋ",  = "wɑŋ",  = "ɑk̚",  = "wɑk̚",  = "i̯aŋ",
		 = "iwaŋ",  = "i̯ak̚",  = "iwak̚",  = "ɐŋ",  = "wɐŋ",
		 = "i̯ɐŋ",  = "i̯wɐŋ",  = "ɐk̚",  = "wɐk̚",  = "iɐk̚",
		 = "iwɐk̚",  = "æŋ",  = "wæŋ",  = "æk̚",  = "wæk̚",
		 = "i̯ɛŋ",  = "i̯wɛŋ",  = "i̯ɛk̚",  = "i̯wɛk̚",  = "ieŋ",
		 = "iweŋ",  = "iek̚",  = "iwek̚",  = "əŋ",  = "wəŋ",
		 = "ək̚",  = "wək̚",  = "i̯əŋ",  = "i̯ək̚",  = "i̯wək̚",
		 = "i̯ə̯u",  = "ə̯u",  = "ieu",  = "i̯əm",  = "i̯əm",
		 = "i̯əp̚",  = "i̯əp̚",  = "ɑm",  = "ɑp̚",  = "i̯ɐm",
		 = "i̯wɐm",  = "i̯ɐp̚",  = "i̯wɐp̚",  = "am",  = "ap̚",
		 = "ăm",  = "ăp̚",  = "i̯ɛm",  = "i̯ɛm",  = "i̯ɛp̚",
		 = "i̯ɛp̚",  = "iem",  = "iep̚",  = "ăm",  = "ăp̚"
	},
	 = {
		 = "uŋ",  = "iuŋ",  = "uk̚",  = "iuk̚",  = "oŋ",
		 = "ok̚",  = "ioŋ",  = "iok̚",  = "ɔŋ",  = "ɔk̚",
		 = "ie",  = "iue",  = "je",  = "jue",  = "i",
		 = "ui",  = "ji",  = "jui",  = "iə",  = "iəi",
		 = "iuəi",  = "iɔ",  = "o",  = "io",  = "ɑi",
		 = "uɑi",  = "iɐi",  = "iuɐi",  = "ai",  = "uai",
		 = "ɛ",  = "uɛ",  = "ɛi",  = "uɛi",  = "iɛi",
		 = "iuɛi",  = "jɛi",  = "juɛi",  = "ei",  = "uei",
		 = "ᴀi",  = "uᴀi",  = "iĕn",  = "jĕn",  = "juĕn",
		 = "iĕn",  = "iuĕn",  = "iĕt̚",  = "jĕt̚",  = "juĕt̚",
		 = "iĕt̚",  = "iuĕt̚",  = "ən",  = "ət̚",  = "uən",
		 = "uət̚",  = "iən",  = "iət̚",  = "iuən",  = "iuət̚",
		 = "ɑn",  = "uɑn",  = "ɑt̚",  = "uɑt̚",  = "iɐn",
		 = "iuɐn",  = "iɐt̚",  = "iuɐt̚",  = "an",  = "uan",
		 = "at̚",  = "uat̚",  = "ɛn",  = "uɛn",  = "ɛt̚",
		 = "uɛt̚",  = "iɛn",  = "iuɛn",  = "jɛn",  = "juɛn",
		 = "iɛt̚",  = "iuɛt̚",  = "jɛt̚",  = "juɛt̚",  = "en",
		 = "uen",  = "et̚",  = "uet̚",  = "ɑu",  = "au",
		 = "iɛu",  = "jɛu",  = "eu",  = "ɑ",  = "uɑ",
		 = "iɑ",  = "iuɑ",  = "a",  = "ua",  = "ia",
		 = "ɑŋ",  = "uɑŋ",  = "ɑk̚",  = "uɑk̚",  = "iaŋ",
		 = "iuaŋ",  = "iak̚",  = "iuak̚",  = "ɐŋ",  = "uɐŋ",
		 = "iɐŋ",  = "iuɐŋ",  = "ɐk̚",  = "uɐk̚",  = "iɐk̚",
		 = "iuɐk̚",  = "ɛŋ",  = "uɛŋ",  = "ɛk̚",  = "uɛk̚",
		 = "iɛŋ",  = "iuɛŋ",  = "iɛk̚",  = "iuɛk̚",  = "eŋ",
		 = "ueŋ",  = "ek̚",  = "uek̚",  = "əŋ",  = "uəŋ",
		 = "ək̚",  = "uək̚",  = "iəŋ",  = "iək̚",  = "iuək̚",
		 = "iu",  = "u",  = "iĕu",  = "iəm",  = "jəm",
		 = "iəp̚",  = "jəp̚",  = "ɑm",  = "ɑp̚",  = "iɐm",
		 = "iuɐm",  = "iap̚",  = "iuɐp̚",  = "am",  = "ap̚",
		 = "ɐm",  = "ɐp̚",  = "iɛm",  = "jɛm",  = "iɛp̚",
		 = "jɛp̚",  = "em",  = "ep̚",  = "ᴀm",  = "ᴀp̚"
	},
	 = {
		 = "uŋ",  = "iuŋ",  = "uk̚",  = "iuk̚",  = "uoŋ",
		 = "uok̚",  = "ioŋ",  = "iok̚",  = "ᵚɔŋ",  = "ᵚɔk̚",
		 = "iɛ",  = "ʷiɛ",  = "ᵚiɛ",  = "ʷᵚiɛ",  = "i",
		 = "ʷi",  = "ᵚi",  = "ʷᵚi",  = "ɨ",  = "ɨi",
		 = "ʷɨi",  = "iɔ",  = "uo",  = "io",  = "ɑi",
		 = "ʷɑi",  = "iɐi",  = "ʷiɐi",  = "ᵚai",  = "ʷᵚai",
		 = "ᵚæ",  = "ʷᵚæ",  = "ᵚæi",  = "ʷᵚæi",  = "iɛi",
		 = "ʷiɛi",  = "ᵚiɛi",  = "ʷᵚiei",  = "ei",  = "ʷei",
		 = "əi",  = "uoi",  = "in",  = "ᵚin",  = "ʷᵚin",
		 = "ɪn",  = "ʷin",  = "it̚",  = "ᵚit̚",  = "ʷᵚit̚",
		 = "ɪt̚",  = "ʷit̚",  = "ən",  = "ət̚",  = "uon",
		 = "uot̚",  = "ɨn",  = "ɨt̚",  = "iun",  = "iut̚",
		 = "ɑn",  = "ʷɑn",  = "ɑt̚",  = "ʷɑt̚",  = "iɐn",
		 = "ʷiɐn",  = "iɐt̚",  = "ʷiɐt̚",  = "ᵚan",  = "ʷᵚan",
		 = "ᵚat̚",  = "ʷᵚat̚",  = "ᵚæn",  = "ʷᵚæn",  = "ᵚæt̚",
		 = "ʷᵚæt̚",  = "iɛn",  = "ʷiɛn",  = "ᵚiɛn",  = "ʷᵚiɛn",
		 = "iɛt̚",  = "ʷiɛt̚",  = "ᵚiɛt̚",  = "ʷᵚiet̚",  = "en",
		 = "ʷen",  = "et̚",  = "ʷet̚",  = "ɑu",  = "ᵚau",
		 = "iɛu",  = "ᵚiɛu",  = "eu",  = "ɑ",  = "uɑ",
		 = "iɑ",  = "ʷiɑ",  = "ᵚa",  = "ʷᵚa",  = "ia",
		 = "ɑŋ",  = "ʷɑŋ",  = "ɑk̚",  = "ʷɑk̚",  = "iɐŋ",
		 = "ʷiɐŋ",  = "iɐk̚",  = "ʷiɐk̚",  = "ᵚaŋ",  = "ʷᵚaŋ",
		 = "ᵚiaŋ",  = "ʷᵚiaŋ",  = "ᵚak̚",  = "ʷᵚak̚",  = "ᵚiak̚",
		 = "ʷᵚiak̚",  = "ᵚæŋ",  = "ʷᵚæŋ",  = "ᵚæk̚",  = "ʷᵚæk̚",
		 = "iɛŋ",  = "ʷiɛŋ",  = "iɛk̚",  = "ʷiɛk̚",  = "eŋ",
		 = "ʷeŋ",  = "ek̚",  = "ʷek̚",  = "əŋ",  = "ʷəŋ",
		 = "ək̚",  = "ʷək̚",  = "ɨŋ",  = "ɨk̚",  = "ʷɨk̚",
		 = "iu",  = "əu",  = "ɨu",  = "im",  = "ᵚim",
		 = "ip̚",  = "ᵚip̚",  = "ɑm",  = "ɑp̚",  = "iɐm",
		 = "iɐm",  = "iɐp̚",  = "iɐp̚",  = "ᵚam",  = "ᵚap̚",
		 = "ᵚæm",  = "ᵚæp̚",  = "iɛm",  = "ᵚiɛm",  = "iɛp̚",
		 = "ᵚiɛp̚",  = "em",  = "ep̚",  = "əm",  = "əp̚"
	},
	 = {
		 = "əwŋ",  = "uwŋ",  = "əwk̚",  = "uwk̚",  = "awŋ",
		 = "awk̚",  = "uawŋ",  = "uawk̚",  = "aɨwŋ",  = "aɨwk̚",
		 = "iə̆",  = "wiə̆",  = "jiə̆",  = "jwiə̆",  = "i",
		 = "wi",  = "ji",  = "jwi",  = "ɨ",  = "ɨj",
		 = "uj",  = "ɨə̆",  = "ɔ",  = "uə̆",  = "aj",
		 = "waj",  = "ɨaj",  = "uaj",  = "aɨjs",  = "waɨjs",
		 = "aɨj",  = "waɨj",  = "əɨj",  = "wəɨj",  = "iaj",
		 = "wiaj",  = "jiaj",  = "jwiaj",  = "ɛj",  = "wɛj",
		 = "əj",  = "wəj",  = "in",  = "jin",  = "jin",
		 = "in",  = "win",  = "it̚",  = "jit̚",  = "jit̚",
		 = "it̚",  = "wit̚",  = "ən",  = "ət̚",  = "wən",
		 = "wət̚",  = "ɨn",  = "ɨt̚",  = "un",  = "ut̚",
		 = "an",  = "wan",  = "at̚",  = "wat̚",  = "ɨan",
		 = "uan",  = "ɨat̚",  = "uat̚",  = "aɨn",  = "waɨn",
		 = "aɨt̚",  = "waɨt̚",  = "əɨn",  = "wəɨn",  = "əɨt̚",
		 = "wəɨt̚",  = "ian",  = "wian",  = "ian",  = "wian",
		 = "iat̚",  = "wiat̚",  = "iat̚",  = "wiat̚",  = "ɛn",
		 = "wɛn",  = "ɛt̚",  = "wɛt̚",  = "aw",  = "aɨw",
		 = "iaw",  = "iaw",  = "ɛw",  = "a",  = "wa",
		 = "ɨa",  = "ua",  = "aɨ",  = "waɨ",  = "ia",
		 = "aŋ",  = "waŋ",  = "ak̚",  = "wak̚",  = "ɨaŋ",
		 = "uaŋ",  = "ɨak̚",  = "uak̚",  = "aɨjŋ",  = "waɨjŋ",
		 = "iajŋ",  = "wiajŋ",  = "aɨjk̚",  = "waɨjk̚",  = "iajk̚",
		 = "wiajk̚",  = "əɨjŋ",  = "wəɨjŋ",  = "əɨjk̚",  = "wəɨjk̚",
		 = "iajŋ",  = "wiajŋ",  = "iajk̚",  = "wiajk̚",  = "ɛjŋ",
		 = "wɛjŋ",  = "ɛjk̚",  = "wɛjk̚",  = "əŋ",  = "wəŋ",
		 = "ək̚",  = "wək̚",  = "iŋ",  = "ik̚",  = "wik̚",
		 = "uw",  = "əw",  = "jiw",  = "im",  = "jim",
		 = "ip̚",  = "jip̚",  = "am",  = "ap̚",  = "ɨam",
		 = "uam",  = "ɨap̚",  = "uap̚",  = "aɨm",  = "aɨp̚",
		 = "əɨm",  = "əɨp̚",  = "iam",  = "jiam",  = "iap̚",
		 = "jiap̚",  = "ɛm",  = "ɛp̚",  = "əm",  = "əp̚"
	},
	 = {
		 = "uŋ",  = "ĭuŋ",  = "uk̚",  = "ĭuk̚",  = "uoŋ",
		 = "uok̚",  = "ĭwoŋ",  = "ĭwok̚",  = "ɔŋ",  = "ɔk̚",
		 = "ǐe",  = "ǐwe",  = "ǐe",  = "ǐwe",  = "i",
		 = "wi",  = "i",  = "wi",  = "ĭə",  = "ĭəi",
		 = "ĭwəi",  = "ĭo",  = "u",  = "ĭu",  = "ɑi",
		 = "uɑi",  = "ĭɐi",  = "ĭwɐi",  = "æi",  = "wæi",
		 = "ai",  = "wai",  = "ɐi",  = "wɐi",  = "ĭɛi",
		 = "ĭwɛi",  = "ĭɛi",  = "ĭwɛi",  = "iei",  = "iwei",
		 = "ɒi",  = "uɒi",  = "ĭĕn",  = "ǐĕn",  = "ǐĕn",
		 = "ĭen",  = "ĭuĕn",  = "ĭĕt̚",  = "ĭĕt̚",  = "ĭĕt̚",
		 = "ĭet̚",  = "ĭuĕt̚",  = "ən",  = "ət̚",  = "uən",
		 = "uət̚",  = "ĭən",  = "ĭət̚",  = "ĭuən",  = "ĭuət̚",
		 = "ɑn",  = "uɑn",  = "ɑt̚",  = "uɑt̚",  = "ĭɐn",
		 = "ĭwɐn",  = "ĭɐt̚",  = "ĭwɐt̚",  = "an",  = "wan",
		 = "at̚",  = "wat̚",  = "æn",  = "wæn",  = "æt̚",
		 = "wæt̚",  = "ĭɛn",  = "ĭwɛn",  = "ĭɛn",  = "ĭwɛn",
		 = "ĭɛt̚",  = "ĭuɛt̚",  = "ĭɛt̚",  = "ĭuɛt̚",  = "ien",
		 = "iwen",  = "iet̚",  = "iwet̚",  = "ɑu",  = "au",
		 = "ĭɛu",  = "ĭɛu",  = "ieu",  = "ɑ",  = "uɑ",
		 = "ǐɑ",  = "ĭuɑ",  = "a",  = "wa",  = "ĭa",
		 = "ɑŋ",  = "uɑŋ",  = "ɑk̚",  = "uɑk̚",  = "ĭaŋ",
		 = "ĭwaŋ",  = "ĭak̚",  = "ĭak̚",  = "ɐŋ",  = "wɐŋ",
		 = "ĭɐŋ",  = "ĭwɐŋ",  = "ɐk̚",  = "wɐk̚",  = "ĭɐk̚",
		 = "ĭwɐk̚",  = "æŋ",  = "wæŋ",  = "æk̚",  = "wæk̚",
		 = "ĭɛŋ",  = "ĭwɛŋ",  = "ĭɛk̚",  = "ĭwɛk̚",  = "ieŋ",
		 = "iweŋ",  = "iek̚",  = "iwek̚",  = "əŋ",  = "uəŋ",
		 = "ək̚",  = "uək̚",  = "ĭəŋ",  = "ĭək̚",  = "ĭwək̚",
		 = "ĭəu",  = "əu",  = "iəu",  = "ĭĕm",  = "ĭĕm",
		 = "ĭĕp̚",  = "ĭĕp̚",  = "ɑm",  = "ɑp̚",  = "ĭɐm",
		 = "ĭwɐm",  = "ĭɐp̚",  = "ĭwɐp̚",  = "am",  = "ap̚",
		 = "ɐm",  = "ɐp̚",  = "ĭɛm",  = "ĭɛm",  = "ĭɛp̚",
		 = "ĭɛp̚",  = "iem",  = "iep̚",  = "ɒm",  = "ɒp̚"
	},
	 = {
		 = "uŋ",  = "iuŋ",  = "uk̚",  = "iuk̚",  = "oŋ",
		 = "ok̚",  = "ioŋ",  = "iok̚",  = "ɔŋ",  = "ɔk̚",
		 = "jɛ",  = "juɛ",  = "iɛ",  = "iuɛ",  = "jɪ",
		 = "juɪ",  = "iɪ",  = "iuɪ",  = "ie",  = "iəi",
		 = "iuəi",  = "iɔ",  = "o",  = "io",  = "ɑi",
		 = "uɑi",  = "iɐi",  = "iuɐi",  = "ai",  = "uai",
		 = "æi",  = "uæi",  = "ɐi",  = "uɐi",  = "jæi",
		 = "iuæi",  = "iæi",  = "iuæi",  = "ɛi",  = "uɛi",
		 = "ɒi",  = "uɒi",  = "jen",  = "ien",  = "iuen",
		 = "ien",  = "juen",  = "jet̚",  = "iet̚",  = "iuet̚",
		 = "iet̚",  = "juet̚",  = "ən",  = "ət̚",  = "uən",
		 = "uət̚",  = "iən",  = "iət̚",  = "iuən",  = "iuət̚",
		 = "ɑn",  = "uɑn",  = "ɑt̚",  = "uɑt̚",  = "iɐn",
		 = "iuɐn",  = "iɐt̚",  = "iuɐt̚",  = "ɐn",  = "uɐn",
		 = "ɐt̚",  = "uɐt̚",  = "æn",  = "uæn",  = "æt̚",
		 = "uæt̚",  = "jæn",  = "juæn",  = "iæn",  = "iuæn",
		 = "jæt̚",  = "juæt̚",  = "iæt̚",  = "iuæt̚",  = "ɛn",
		 = "uɛn",  = "ɛt̚",  = "uɛt̚",  = "ɑu",  = "au",
		 = "jæu",  = "iæu",  = "eu",  = "ɑ",  = "uɑ",
		 = "iɑ",  = "iuɑ",  = "a",  = "ua",  = "ia",
		 = "ɑŋ",  = "uɑŋ",  = "ɑk̚",  = "uɑk̚",  = "iɑŋ",
		 = "iuɑŋ",  = "iɑk̚",  = "iuɑk̚",  = "aŋ",  = "uaŋ",
		 = "iaŋ",  = "iuaŋ",  = "ak̚",  = "uak̚",  = "iak̚",
		 = "iuak̚",  = "ɐŋ",  = "uɐŋ",  = "ɐk̚",  = "uɐk̚",
		 = "iæŋ",  = "iuæŋ",  = "iæk̚",  = "iuæk̚",  = "ɛŋ",
		 = "uɛŋ",  = "ɛk̚",  = "uɛk̚",  = "əŋ",  = "uəŋ",
		 = "ək̚",  = "uək̚",  = "ieŋ",  = "iek̚",  = "iuek̚",
		 = "iəu",  = "əu",  = "ieu",  = "jem",  = "iem",
		 = "jep̚",  = "iep̚",  = "ɑm",  = "ɑp̚",  = "iɐm",
		 = "iɐm",  = "iɐp̚",  = "iɐp̚",  = "am",  = "ap̚",
		 = "ɐm",  = "ɐp̚",  = "jæm",  = "iæm",  = "jæp̚",
		 = "iæp̚",  = "ɛm",  = "ɛp̚",  = "ɒm",  = "ɒp̚"
	}
}

local final_deng = {
	 = 1,  = 2,  = 3,  = 4,
	 = 91,  = 91,  = 92,
	 = 139,  = 140,  = 141,  = 142,
	 = 155,  = 156,  = 153,  = 154,
	 = 43,  = 43,
	 = 43,  = 43,
	 = 48,  = 48
}

local division = {
	 = 'I', 
	 = 'II', 
	 = 'III', 
	 = 'IV', 
	="''Chongniu'' III",
	="''Chongniu'' IV"
}

local open_closed = {
	 = "Açık",
	 = "Kapalı"
}

local tonality = {
	 = "Yükselen (X)",
	 = "Ayrılan (H)",
	 = "Düzeyli (Ø)",
	 = "Ünsüz sonlu (Ø)"
}

local tone_symbol = {
	 = "",
	 = "<sup>X</sup>",
	 = "<sup>H</sup>",
	 = ""
}

local tone_number = {  = 1,  = 2,  = 3,  = 4 }

local final_openness = {
	 = 44,  = 45,
	 = 44,  = 45,
	 = 49,  = 50
}

local final_type_1 = ""
local final_type_2 = ""
local final_type_3 = ""
local final_type_4 = ""
local final_type_5 = ""

local colour_1 = "#D0E4F7"
local colour_2 = "#E1EEFA"
local colour_3 = "#f7fbff"

local function infer_categories(text)
	local t = mw.text.split(text, "", true)
	
	initial, final, deng, openness, tone = t, t, t, t, t
	if mw.ustring.match(text, "-") then
		deng = mw.text.split(text, "-") .. deng
	end
	if tone == "入" then final = fin_conv or final end
	initial_type = init_type
	tone_label = tone_symbol
	
	if mw.ustring.match(final, final_type_1) then
		final_type = fin_type_open
	
	elseif mw.ustring.match(final, final_type_2) then
		final_type = final_deng
	
	elseif mw.ustring.match(final, final_type_3) then
		final_type = fin_type_deng_open
	
	elseif mw.ustring.match(final, final_type_4) then
		if deng == "重鈕三" then
			final_type = final_openness
		else
			final_type = final_deng
		end

	elseif mw.ustring.match(final, final_type_5) then
		final_type = fin_type
	
	else
		return error("Final not recognised.")
	end
	
	return initial_type, final_type, tone_label
end

local function zh_fmt(text)
	return '<span class="Hani" lang="zh">' .. text .. '</span>'
end

local function ltc_table(titlechar, text, indiv_num, count)
	local people = { "Zhengzhang", "Pan", "Shao", "Pulleyblank", "Li", "Wang", "Karlgren" }
	local pronunciation = {}
	local t = mw.text.split(text, "", true)
	
	initial, final, deng, openness, she, tone, fanqieA, fanqieB = t, t, t, t, t, t, t, t
	initial_type, final_type, tone_label = infer_categories(text)

	for ind, person in ipairs(people) do
		table.insert(pronunciation, '<span class="IPAchar" lang="zh">/' ..
			initialConv .. finalConv .. tone_label .. "/</span>")
	end
	
	return {
		nil,
		'<b>'..zh_fmt(titlechar)..'</b>', 
		indiv_num .. "/" .. count,
		zh_fmt("]") .. " (" .. initial_type .. ")",
		zh_fmt("]") .. " (" .. final_type .. ")",
		tonality,
		open_closed,
		division,
		fanqieB and zh_fmt(mw.ustring.gsub(fanqieA .. fanqieB, "(.)", "]") .. "切") or "",
		
		nil,
		pronunciation,
		pronunciation,
		pronunciation,
		pronunciation,
		pronunciation,
		pronunciation,
		pronunciation,
		
		m_cmn_pron.py_number_to_mark(m_ltc_predict.predict_cmn(initial_type, final_type, tone_number))
	}
end

function export.ipa(index_text, preview)
	local titlechar = mw.title.getCurrentTitle().text
	local reading_index = mw.text.split(index_text, ",")
	local ltc_indiv_pronunciation = {}
	local output_text = {}
	local moduleName = ""
	
	for i, cp in ipairs { mw.ustring.codepoint(titlechar, 1, -1) } do
		local ch = mw.ustring.char(cp)
		moduleName = "Modül:zh/veri/ltc-söyl/" .. ch
		local success, data_module = pcall(mw.loadData, "Modül:zh/veri/ltc-söyl/" .. ch)
		if success then
			reading_number = reading_index or "y"
			count = 0
			for index, value in ipairs(data_module) do
				count = count + 1
			end
			if reading_number == "y" then
				for ltc_reading_no, position in ipairs(data_module) do
					table.insert(ltc_indiv_pronunciation, ltc_table(ch, position, ltc_reading_no, count))
				end
			elseif reading_number == "n" then
				break
			else
				for indiv_number in mw.text.gsplit(reading_number, '\+') do
					table.insert(ltc_indiv_pronunciation, ltc_table(ch, data_module, indiv_number, count))
				end
			end
		end
	end

	local fields = {
		"Kafiye<div style='float: right; clear: right; font-size:60%'><span class='plainlinks'>["
			.. tostring(mw.uri.fullUrl(moduleName, {="edit"})).. " düzenle]</span></div>",
		"<small>Karakter</small>",
		"<small>Okunuş #</small>",
		"<small>Başlangıç</small> (" .. zh_fmt("聲") .. ")",
		"<small>Bitiş</small> (" .. zh_fmt("韻") .. ")",
		"<small>Vurgu</small> (" .. zh_fmt("調") .. ")",
		"<small>Açıklık</small> (" .. zh_fmt("開合") .. ")",
		"<small>Bölme</small> (" .. zh_fmt("等") .. ")",
		"<small>]</small>",
		"Yeniden kurumlar",
		"<small>]</small>",
		"<small>]</small>",
		"<small>]</small>",
		"<small>]</small>",
		"<small>]</small>",
		"<small>]</small>",
		"<small>]</small>",
		"<small>Beklenen<br>Mandarin dili<br>Tepkisi</small>",
	}

	if ltc_indiv_pronunciation then
		local hash, results = {}, {}
		for _, value in ipairs(ltc_indiv_pronunciation) do
			table.remove(value, 10)
			table.remove(value, 1)
			value_eff = table.concat(value)
			if (not hash) then
				hash = true
				table.insert(value, 1, nil)
				table.insert(value, 10, nil)
				results = value
   			end
		end
		local rand = mw.ustring.gsub("mc-" .. value_eff, "", mw.ustring.codepoint('%1'))
		local fmt = {
			fold = '\n* <div title="expand" class="mw-customtoggle-mc' .. rand .. '"> ' ..
					']: <span style="font-size:95%"><span class="IPA">/' .. preview .. 
					'/</span></span><span style="float:right; border:1px solid #ccc; border-radius:1px;' ..
					' padding:0 0; font-size:90%">▼</span></div>\n',
			header = '{| class="wikitable mw-collapsible mw-collapsed" id="mw-customcollapsible-mc' .. rand ..
				'" style="width:100%; margin:0; text-align:center; border-collapse: collapse; border-style: hidden;"',
			lv1 = '\n|-\n! style="background-color:' .. colour_1 .. '" colspan=' .. #results+1 .. '|',
			lv2 = '\n|-\n! style="background-color:' .. colour_2 .. '; width:8em"|',
			lv3 = '\n| style="background-color:' .. colour_3 .. '"|',
			closing = '\n|}'
		}
		for field_index, field in ipairs(fields) do
			if mw.ustring.match(field, "small") then
				local field_set = {}
				for _, result in ipairs(results) do
					table.insert(field_set, result)
				end
				table.insert(output_text, fmt.lv2 .. field .. fmt.lv3 .. table.concat(field_set, fmt.lv3))
			else
				table.insert(output_text, fmt.lv1 .. field)
			end
		end
		return fmt.fold .. fmt.header .. table.concat(output_text) .. fmt.closing
	else
		return ""
	end
end

function export.retrieve_pron(text, reconstruction, index, no_intro, no_double_spacing)
	if type(text) == "table" then text = text.args end
	local underline_format = "<span style=\"border-bottom: 1px dotted #000; cursor:help\" title=\"Orta Çince\">OÇ</span> "
	local separator = mw.ustring.len(text) == 1 and (no_intro and "/, /" or ", ") or '<span style="padding-left:2px; padding-right:2px">|</span>'
	
	if reconstruction then
		return underline_format .. reconstruction
	else
		local person, index_set, retrieve_result = "Zhengzhang", {}, {}
		if index and index ~= "y" then
			index_set = mw.text.split(index, ",")
		end
		for char_index, cp in ipairs { mw.ustring.codepoint(text, 1, -1) } do
			local char_pronunciation = {}
			local ch = mw.ustring.char(cp)
			local success, data_module = pcall(mw.loadData, "Modül:zh/veri/ltc-söyl/" .. ch)
			if success then
				local reading_no = index_set or "y"
				if reading_no == "n" then
					table.insert(char_pronunciation, "?")
				elseif reading_no == "y" then
					for _, reading in ipairs(data_module) do
						initial, final, tone = infer_categories(reading)
						table.insert(char_pronunciation, initialConv .. finalConv .. tone)
					end
				else
					for number in mw.text.gsplit(reading_no, "+") do
						initial, final, tone = infer_categories(data_module)
						table.insert(char_pronunciation, initialConv .. finalConv .. tone)
					end
				end
				table.insert(retrieve_result, table.concat(char_pronunciation, separator))
			end
		end
		return retrieve_result and (no_intro and "" or underline_format) .. 
			table.concat(retrieve_result, (no_double_spacing and "" or "&nbsp;") .. " ") or nil
	end
end

function export.link(frame)
	args = frame:getParent().args
	text, meaning, lit = args, args or args or nil, args or nil
	local m_zh = require("Modül:zh")
	return m_zh.link(frame, nil, { "*" .. text, tr = export.retrieve_pron(text, args or false, args or false, false, true),
		gloss = meaning, lit = lit }, mw.title.getCurrentTitle().subpageText)
end

return export