Module:Sandbox/Nardog/6

Revision as of 16:26, 11 July 2020 by imported>Nardog
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Sandbox/Nardog/6/doc

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 = "|",
		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 = "<span class=\"wrap\"> </span>",
	},
	{
		code = "nbsp",
		aliases = { "&nbsp;" },
		text = " ",
	},
	{
		code = ",_",
		text = ",<span class=\"wrap\"> </span>",
	},
	{
		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;...<span class=\"wrap\">&thinsp;</span>",
	},
	-- 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 }