Module:Sandbox/Nardog/6

local segments = {} local rawSegments = { -- CONSONANTS {		code = "b", text = "b", tooltip = "'b' in 'buy'" },	{		code = "d", text = "d", tooltip = "'d' in 'dye'" },	{		code = "dj", aliases = { "dy", "dʲ" }, text = "dj", tooltip = "/dj/: 'd' in 'dew'" },	{		code = "dʒ", aliases = { "dZ", "ʤ" }, text = "dʒ", tooltip = "/dʒ/: 'j' in 'jam'" },	{		code = "ð", aliases = { "D" }, text = "ð", tooltip = "/ð/: 'th' in 'thy'" },	{		code = "f", text = "f", tooltip = "'f' in 'find'" },	{		code = "ɡ", aliases = { "g" }, text = "ɡ", tooltip = "/ɡ/: 'g' in 'guy'" },	{		code = "h", text = "h", tooltip = "'h' in 'hi'" },	{		code = "hw", aliases = { "ʍ" }, text = "hw", tooltip = "/hw/: 'wh' in 'why'" },	{		code = "j", aliases = { "y" }, text = "j", tooltip = "/j/: 'y' in 'yes'" },	{		code = "k", text = "k", tooltip = "'k' in 'kind'" },	{		code = "l", text = "l", tooltip = "'l' in 'lie'" },	{		code = "lj", aliases = { "ly", "lʲ" }, text = "lj", tooltip = "/lj/: 'l' in 'lute'" },	{		code = "m", text = "m", tooltip = "'m' in 'my'" },	{		code = "n", text = "n", tooltip = "'n' in 'nigh'" },	{		code = "nj", aliases = { "ny", "nʲ" }, text = "nj", tooltip = "/nj/: 'n' in 'new'" },	{		code = "ŋ", aliases = { "N", "ng" }, text = "ŋ", tooltip = "/ŋ/: 'ng' in 'sing'" },	{		code = "p", text = "p", tooltip = "'p' in 'pie'" },	{		code = "r", aliases = { "ɹ", "ɻ" }, text = "r", tooltip = "'r' in 'rye'" },	{		code = "s", text = "s", tooltip = "'s' in 'sigh'" },	{		code = "sj", aliases = { "sy", "sʲ" }, text = "sj", tooltip = "/sj/: 's' in 'consume'" },	{		code = "ʃ", aliases = { "S", "sh" }, text = "ʃ", tooltip = "/ʃ/: 'sh' in 'shy'" },	{		code = "t", text = "t", tooltip = "'t' in 'tie'" },	{		code = "tj", aliases = { "ty", "tʲ" }, text = "tj", tooltip = "/tj/: 't' in 'tune'" },	{		code = "tʃ", aliases = { "tS", "ʧ", "ch" }, text = "tʃ", tooltip = "/tʃ/: 'ch' in 'China'" },	{		code = "θ", aliases = { "T" }, text = "θ", tooltip = "/θ/: 'th' in 'thigh'" },	{		code = "θj", aliases = { "θy", "θʲ" }, text = "θj", tooltip = "/θj/: 'th' in 'enthuse'" },	{		code = "v", text = "v", tooltip = "'v' in 'vie'" },	{		code = "w", text = "w", tooltip = "'w' in 'wind'" },	{		code = "z", text = "z", tooltip = "'z' in 'zoom'" },	{		code = "zj", aliases = { "zy", "zʲ" }, text = "zj", tooltip = "/zj/: 'Z' in 'Zeus'" },	{		code = "ʒ", aliases = { "Z", "zh" }, text = "ʒ", tooltip = "/ʒ/: 's' in 'pleasure'" },	-- VOWELS {		code = "ɑː", aliases = { "A:", "ɑ:", "aː", "a:" }, text = "ɑː", tooltip = "/ɑː/: 'a' in 'father'" },	{		code = "ɑːr", aliases = { "ɑɹ", "aːr", "a:r", "ɑ:r", "ɑr" }, text = "ɑːr", tooltip = "/ɑːr/: 'ar' in 'far'" },	{		code = "ɒ", aliases = { "Q" }, text = "ɒ", tooltip = "/ɒ/: 'o' in 'body'" },	{		code = "ɒr", aliases = { "Qr" }, text = "ɒr", tooltip = "/ɒr/: 'or' in 'moral'" },	{		code = "æ", aliases = { "ae", "{" }, text = "æ", tooltip = "/æ/: 'a' in 'bad'" },	{		code = "ær", aliases = { "aer", "&r", "æɹ" }, text = "ær", tooltip = "/ær/: 'arr' in 'marry'" },	{		code = "aɪ", aliases = { "ai", "aI" }, text = "aɪ", tooltip = "/aɪ/: 'i' in 'tide'" },	{		code = "aɪər", aliases = { "aɪr", "aIr", "aɪə" }, text = "aɪər", tooltip = "/aɪər/: 'ire' in 'fire'" },	{		code = "aʊ", aliases = { "au", "aU" }, text = "aʊ", tooltip = "/aʊ/: 'ou' in 'mouth'" },	{		code = "aʊər", aliases = { "aʊr", "aUr", "aʊə", "aur" }, text = "aʊər", tooltip = "/aʊər/: 'our' in 'hour'" },	{		code = "ɛ", aliases = { "E" }, text = "ɛ", tooltip = "/ɛ/: 'e' in 'dress'" },	{		code = "ɛr", aliases = { "Er" }, text = "ɛr", tooltip = "/ɛr/: 'err' in 'merry'" },	{		code = "eɪ", aliases = { "ei", "eI", "eː", "e:" }, text = "eɪ", tooltip = "/eɪ/: 'a' in 'face'" },	{		code = "ɛər", aliases = { "eir", "eIr", "e@r", "E@r", "ɛɪɹ", "eɪr", "eːr", "e:r", "ɛəɹ", "ɛə", "ɛːr", "ɛ:r", "ɛː", "ɛ:", "E:", "E:r" }, text = "ɛər", tooltip = "/ɛər/: 'are' in 'bare'" },	{		code = "ɛəˈr", aliases = { "ɛə'r", "eəˈr", "eə'r", "e@'r", "E@'r", "ɛːˈr", "E:'r" }, text = "ɛəˈr", tooltip = "/ɛəˈr/: 'ere' in 'thereof'" },	{		code = "ɛəˌr", aliases = { "ɛə,r", "eəˌr", "eə,r", "E@,r", "E@%r", "e@,r", "e@%r", "ɛːˌr", "E:,r", "E:%r" }, text = "ɛəˌr", tooltip = "/ɛəˌr/: 'ere' in 'thereof'" },	{		code = "ɪ", aliases = { "I", "ᵻ" }, text = "ɪ", tooltip = "/ɪ/: 'i' in 'kit'" },	{		code = "ɪr", text = "ɪr", tooltip = "/ɪr/: 'irr' in 'mirror'" },	{		code = "iː", aliases = { "i:" }, text = "iː", tooltip = "/iː/: 'ee' in 'fleece'" },	{		code = "ɪər", aliases = { "i:r", "iːr", "I@r", "i@r", "ɪəɹ", "iːɹ", "ɪə" }, text = "ɪər", tooltip = "/ɪər/: 'ear' in 'near'" },	{		code = "ɪəˈr", aliases = { "ɪə'r", "I@'r" }, text = "ɪəˈr", tooltip = "/ɪəˈr/: 'er' in 'spheroidal'" },	{		code = "ɪəˌr", aliases = { "ɪə,r", "I@,r", "I@%r" }, text = "ɪəˌr", tooltip = "/ɪəˌr/: 'er' in 'spheroidal'" },	{		code = "oʊ", aliases = { "o:", "oː", "ou", "oU", "@u", "@U", "əʊ", "əu", "oʊ-" }, text = "oʊ", tooltip = "/oʊ/: 'o' in 'code'" },	{		code = "ɔː", aliases = { "O", "O:", "ɔ:", "ɒː", "Q:" }, text = "ɔː", tooltip = "/ɔː/: 'au' in 'fraud'" },	{		code = "ɔːr", aliases = { "Or", "ɔɹ", "ɔ(r)", "ɔr", "ɔər", "oUr", "ɔəɹ", "ɔʊɹ", "oʊɹ", "oʊr", "oːr", "o:r", "ɔə", "ɔə(r)" }, text = "ɔːr", tooltip = "/ɔːr/: 'ar' in 'war'" },	{		code = "ɔɪ", aliases = { "oj", "ɔj", "oi", "oɪ", "ɔi", "OI", "oy" }, text = "ɔɪ", tooltip = "/ɔɪ/: 'oi' in 'choice'" },	{		code = "ɔɪər", aliases = { "ɔɪr", "oyr", "ɔɪə" }, text = "ɔɪər", tooltip = "/ɔɪər/: 'oir' in 'loir'" },	{		code = "ʊ", aliases = { "U", "ᵿ" }, text = "ʊ", tooltip = "/ʊ/: 'u' in 'push'" },	{		code = "ʊr", aliases = { "Ur" }, text = "ʊr", tooltip = "/ʊr/: 'our' in 'courier'" },	{		code = "uː", aliases = { "u:" }, text = "uː", tooltip = "/uː/: 'oo' in 'goose'" },	{		code = "ʊər", aliases = { "u:r", "uːr", "u@r", "U@r", "ʊəɹ", "ʊə" }, text = "ʊər", tooltip = "/ʊər/: 'our' in 'tour'" },	{		code = "ʊəˈr", aliases = { "ʊə'r", "U@'r" }, text = "ʊəˈr", tooltip = "/ʊəˈr/: 'ur' in 'plurality'" },	{		code = "ʊəˌr", aliases = { "ʊə,r", "U@,r", "U@%r" }, text = "ʊəˌr", tooltip = "/ʊəˌr/: 'ur' in 'plurality'" },	{		code = "ʌ", aliases = { "V" }, text = "ʌ", tooltip = "/ʌ/: 'u' in 'cut'" },	{		code = "ʌr", aliases = { "Vr", "ʌɹ" }, text = "ʌr", tooltip = "/ʌr/: 'urr' in 'hurry'" },	{		code = "ɜːr", aliases = { "ɝː", "ɝ", "3r", "3:r", "əːr", "@:r", "ɜɹ", "ɜ(r)", "ɜr" }, text = "ɜːr", tooltip = "/ɜːr/: 'ur' in 'fur'" },	{		code = "ə", aliases = { "@" }, text = "ə", tooltip = "/ə/: 'a' in 'about'" },	-- SYLLABIC CONSONANTS {		code = "ər", aliases = { "ɚ", "@r", "əɹ", "ə(r)" }, text = "ər", tooltip = "/ər/: 'er' in 'letter'" },	{		code = "əl", aliases = { "@l", "ᵊl", "l̩" }, text = "əl", tooltip = "/əl/: 'le' in 'bottle'" },	{		code = "ən", aliases = { "@n", "ᵊn", "n̩" }, text = "ən", tooltip = "/ən/: 'on' in 'button'" },	{		code = "əm", aliases = { "@m", "ᵊm", "m̩" }, text = "əm", tooltip = "/əm/: 'm' in 'rhythm'" },	-- ARCHIPHONEMES {		code = "i", text = "i", tooltip = "/i/: 'y' in 'happy'" },	{		code = "u", text = "u", tooltip = "/u/: 'u' in 'influence'" },	-- MARGINAL SEGMENTS {		code = "x", aliases = { "kh" }, text = "x", tooltip = "/x/: 'ch' in 'loch'" },	{		code = "ʔ", aliases = { "?" },		text = "ʔ", tooltip = "/ʔ/: the catch in 'uh-oh'" },	{		code = "ɒ̃", aliases = { "ɑ̃", "ɒ~", "ɑ~", "Q~" }, text = "ɒ̃", tooltip = "/ɒ̃/: nasal 'an' in 'vin blanc'" },	{		code = "æ̃", aliases = { "ae~", "{~", "ã", "a~" }, text = "æ̃", tooltip = "/æ̃/: nasal 'in' in 'vin blanc'" },	{		code = "ɜː", aliases = { "3", "3:", "ɜ:", "ɜ", "əː", "@:" }, text = "ɜː", tooltip = "/ɜː/: r-less 'ur' in 'nurse'" },	-- SUPRASEGMENTALS {		code = "ˈ", aliases = { "'", '"'},		text = "ˈ",		tooltip = "/ˈ/: primary stress follows"	},	{		code = "ˌ",		aliases = { ",", "%" },		text = "ˌ",		tooltip = "/ˌ/: secondary stress follows"	},	{		code = ".",		aliases = { "·" },		text = ".",		tooltip = "/./: syllable break"	},	{		code = "#",		text = "#",		tooltip = "/#/: word break"	},	{		code = "!",		text = "&#124;",		tooltip = "/|/: prosodic break (minor)"	},	{		code = "!!",		aliases = { "‖" },		text = "‖",		tooltip = "/‖/: prosodic break (major)"	},	-- SEPARATORS	-- Tables without tooltip text are used as word separators. In addition to	-- not having any tooltip text in the template output, they are not	-- underlined.	{		code = "_",		text = " ",	},	{		code = "nbsp",		aliases = { " " },		text = " ",	},	{		code = ",_",		text = ", ",	},	{		code = "-",		aliases = { "–" },		text = "-",	},	{		code = "(",		text = "(", },	{		code = ")",		text = ")", },	-- This is useful for highly variable words in place names, which are not -- important to transcribe. {		code = "...", text = "&thinsp;...&thinsp; ", },	-- Obsolete combinations, kept for compatibility {		code = "juː", text = "juː", tooltip = "/juː/: 'u' in 'cute'" },	{		code = "jʊər", text = "jʊər", tooltip = "/jʊər/: 'ure' in 'cure'" }, }

for _, v in ipairs(rawSegments) do	local t = { text = v.text, tooltip = v.tooltip } segments[v.code] = t	if v.aliases then for _, alias in ipairs(v.aliases) do			segments[alias] = t		end end end

return { segments = segments, rawSegments = rawSegments }