Module:IPA/data: Difference between revisions

From st34an test wiki
Jump to navigation Jump to search
bob>Juelos
m Text replacement - "ɡ" to "g"
 
m 1 revision imported
 
(No difference)

Latest revision as of 07:29, 10 April 2026

Documentation for this module may be created at Module:IPA/data/doc

local data = {}

--[=[	Please add language codes for new pronunciation keys to the list below.
		This will allow [[Template:IPA]] and the functions in [[Module:IPA]] to
		automatically link to the key.	]=]
local langs_with_infopages  = {
	"aaal",
	"aazh",
	"afat",
	"asta",
	"azra",
	"bodz",
	"cast",
	"chak",
	"comm",
	"doth",
	"drae",
	"enga",
	"epiq",
	"fjer",
	"gand",
	"gern",
	"ghis",
	"gvun",
	"gwey",
	"hany",
	"haug",
	"henl",
	"hval",
	"indo",
	"inha",
	"irat",
	"kama",
	"kele",
	"kezh",
	"kinu",
	"knsl",
	"lhaz",
	"lish",
	"magn",
	"meer",
	"meni",
	"munj",
	"nelv",
	"njaa",
	"noal",
	"nuli",
	"ocst",
	"okok",
	"orcw",
	"ovus",
	"ppla",
	"ravk",
	"rooz",
	"sang",
	"sark",
	"sath",
	"shel",
	"shiv",
	"shuh",
	"sida",
	"sond",
	"tant",
	"tpaa",
	"trig",
	"tsit",
	"vdia",
	"veda",
	"voov",
	"vzaa",
	"woku",
	"xlan",
	"yang",
	"yuli",
	"zeme",
	"zhyl",
}

data.langs_with_infopages = {}

-- Convert the list in `langs_with_infopages` to a set.
for _, langcode in ipairs(langs_with_infopages) do
	data.langs_with_infopages[langcode] = true
end

--[=[
This should list the diphthongs of a language (in the form of Lua patterns),
provided they do *NOT* contain semivowel symbols such as /j w ɰ ɥ/ or vowels
with nonsyllabic diacritics such as /i̯ u̯/. For example, list /au/ or /aʊ/,
but do not list /aw/ or /au̯/. The data in this table is used to count the
number of syllables in a word. [[Module:syllables]] automatically knows how
to correctly handle semivowel symbols and nonsyllabic diacritics.

Any language listed here will automatically have categories of the form
"LANG #-syllable words" generated. In addition, any language listed below under
`langs_to_generate_syllable_count_categories` will also have such categories
generated.

NOTE: There are some additional languages that have these categories.
For example:
* Thai words have these categories added by [[Module:th-pron]].
]=]
data.diphthongs = {
	["cs"] = { -- [[Wikipedia:Czech phonology#Diphthongs|Czech phonology#Diphthongs]]
		"[aeo]u",
		},
	["de"] = {
		"a[ɪʊ]",
		"ɔ[ʏɪ]",
		},
	["en"] = { -- from [[Appendix:English pronunciation]] mostly, but /ʌɪ/ is from the OED
		"[aɑeɛoɔʌ][ɪi]",
		"[ɑɒæo]e",
		"[əɐ]ʉ",
		"[aɒəoɔæ]ʊ",
		"æo",
		"[ɛeɪiɔʊʉ]ə",	-- /iə/ is a diphthong in NZE, but a disyllabic sequence in GA.
						-- /ɪə/ is both a disyllabic sequence and a diphthong in old-fashioned RP.
		"[aʌ][ʊɪ]ə",	-- May be a disyllabic sequence in some or all dialects?
		},
	["grc"] = {
		"[aeyo]i",
		"[ae]u",
		"[ɛɔa]ː[iu]",
		},
	["is"] = {			-- [[Wikipedia:Icelandic phonology#Vowels|Icelandic phonology#Vowels]]
		"[aeø][iɪy]",	-- Wikipedia is oddly specific about the second element: ei and ai, but øɪ.
		"[ao]u",
		},
	["it"] = {
		"[aeɛoɔu]i",
		"[aeɛioɔ]u",
		},
	["la"] = {
		"[eaou]i",
		"[eao]u",
		"[ao]e",
		},
	["lb"] = {
		"[iu]ə",
		"[ɜoæɑ]ɪ",
		"[əæɑ]ʊ",
	},
}

--[=[
This should list any languages for which categories of the form
"LANG #-syllable words", e.g. [[:Category:Russian 3-syllable words]], should be
generated. Do not list languages here if they have an entry above under
`data.diphthongs`; such languages are automatically added to this list.
]=]
local langs_to_generate_syllable_count_categories = {
	"ar",	-- Arabic has diphthongs, but they are transcribed
			-- with semivowel symbols.
	"ary",	-- Moroccan Arabic has diphthongs, but they are transcribed
			-- with semivowel symbols.
	"ca",	-- Catalan has diphthongs, but they are generally transcribed using
			-- /w/ and /j/, so do not need to be listed (see [[Wikipedia:Catalan language#Diphthongs and triphthongs|Catalan language#Diphthongs and triphthongs]].
	"es",	-- Spanish has diphthongs, but they are transcribed with i̯ etc.
	"fi",	-- Finnish has diphthongs, but they are now automatically transcribed with
			-- the nonsyllabic diacritic
	"fr",	-- French has diphthongs, but they are transcribed
			-- with semivowel symbols: [[Wikipedia:French phonology#Glides and diphthongs|French phonology#Glides and diphthongs]].
	"ka",
    "kmr",
	"ku",
	"mk",
    "mt",	-- Maltese has diphthongs, but they are transcribed
			-- with semivowel symbols.
	"pl",   -- No diphthongs, properly speaking; sequences of a vowel and /w/ or /j/ though.
	"pt",	-- Portuguese has diphthongs, but they are transcribed with i̯ or /j/ etc.
	"ru",	-- No diphthongs, properly speaking; sequences of a vowel and /j/ though.
	"sk",	-- Slovak has rising diphthongs, /i̯e, i̯a, i̯u, u̯o/, which are probably always spelled with the nonsyllabic diacritic, so do not need to be listed.
	"sl",	-- No diphthongs, properly speaking; sequences of a vowel, /j/ and /w/ though
	"sq",	-- [[Wikipedia:Albanian language#Vowels|Albanian language#Vowels]] doesn't mention anything about diphthongs.
	"ug",	-- No diphthongs.
}

data.langs_to_generate_syllable_count_categories = {}

-- Convert the list in `langs_to_generate_syllable_count_categories` to a set.
for _, langcode in ipairs(langs_to_generate_syllable_count_categories) do
	data.langs_to_generate_syllable_count_categories[langcode] = true
end
-- Also add languages listed under `data.diphthongs`.
for langcode, _ in pairs(data.diphthongs) do
	data.langs_to_generate_syllable_count_categories[langcode] = true
end


-- Languages to use the phonetic not phonemic notation to compute syllables counts.
local langs_to_use_phonetic_notation = {
	"es",
	"mk",
	"ru",
}

data.langs_to_use_phonetic_notation = {}

-- Convert the list in `langs_to_use_phonetic_notation` to a set.
for _, langcode in ipairs(langs_to_use_phonetic_notation) do
	data.langs_to_use_phonetic_notation[langcode] = true
end



-- Non-standard or obsolete IPA symbols.
data.nonstandard = {
	--[[	The following symbols consist of more than one character,
			so we can't put them in the line below.		]]
	"ɑ̢", "d̂", "t̂", "n̂", "l̂", "k̫", "ɔ̗", "ɔ̖",
	
	"[ʦʣʧʤʨʥ?ƍσƺƪƻƾƞᶀᶁᶂᶃᶄᶅᶆᶈᶇᶉᶊᶋƫᶌᶍᶎʓʆλƛłščžǰǧǯẋᵻᵿⱻʚ"
	.. "ɷωıȹȸ∅ØƥƭƈƙʠʇʗʖʞɩɼȣяɿʅʮʯᴀᴀᴇGRŒQȡȶȵȴKPT]"
}

-- See valid IPA characters at [[Module:IPA/data/symbols]].

data.phonemes = {}

data.phonemes["afat"] = {
	"ɑ", "e", "i", "o", "u", "y",
	"p", "t", "k",
	"b", "d", "g", "g",
	"f", "v", "θ", "ð", "s", "z", "ʃ", "ʒ", "h",
	"m", "n", "ɲ", "ŋ",
	"ɾ", "l", "w", "j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["asta"] = {
	"a", "e", "y", "i", "o", "u", 
	"p", "t", "k","q",
	"b", "d", "g", "g",
	"d͡ʒ",
	"v","θ","ð","s","z","ʃ","ʒ","x","χ","ɣ","h","ɦ",
	"m", "n", "ŋ","ɴ",
	"r","ɾ","ʁ","l","ʎ","j","ɟ","w",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["azra"] = {
	"a", "e", "i", "o", "u", 
	"p", "t", "k",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f","v","s","z","ʃ","ʒ","x","χ","ɣ",
	"m", "n", "ŋ", "ɲ",
	"r","ɾ","l","j","w",
	".", "-", " ", "ː",
	"˥","˩","↘","↓","↑",
	}

data.phonemes["bodz"] = {
	"a", "ɛ", "y", "i", "ɔ", "u", "œ", "ɨ", "ǝ", "ǝ", "ə",
	"p", "t", "k", "q",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f","v","θ","s","z","ʃ","ʒ","x","χ","ɣ","ʁ","h","ɦ","ħ",
	"m", "n", "ŋ", "ɲ", "ɴ",
	"r","ɾ","l","ʎ","j","ɟ","w",
	"ˈ", "ˌ", ".", "-", " ", "ˣ", "ᵡ", "ᵞ", "ᴿ", "ˠ",
	}

data.phonemes["cast"] = {
	"a", "e", "i", "o", "u", 
	"p", "t", "k",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f","v","θ","ð","s","z","ʃ","ʒ","h",
	"m", "n", "n̪", "ɲ", "ŋ",
	"ɾ","ɾʲ","l","ʎ","j","w",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["chak"] = {
	"a", "ɛ", "e", "i", "o", "u",
	     "t", "k","q","ʔ",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "θ", "ð", "s", "z", "ʃ", "ʒ", "h",
	"m", "n",
	"w", "l", "j", "ɾ", "r",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["doth"] = {
	"a", "ɑ", "e", "ɛ", "i", "o", "ɔ", 
	"t", "t̪", "k","q",
	"d", "d̪", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f","v","θ","s","z","ʃ","ʒ","x","h","ħ",
	"m", "n̪", "n", "ŋ",
	"r","ɾ","l","l̪","w","j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["gand"] = {
	"ɑ", "æ", "au", "ai", "e", "ɛ", "i", "o", "u", "ə",
	"p", "t", "k",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "θ", "ð", "s", "z", "ʃ", "ʒ", "h",
	"m", "n", "ɲ", "ŋ",
	"ɹ", "l", "w", "j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["gern"] = {
	"ɑ", "e", "ɛ", "i", "ɪ", "o", "ɔ", "u", "ʊ", "ə",
	"p", "t", "k", "ʔ",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "s", "ʃ", "h",
	"ʍ", "ç", "ɬ",
	"m", "n", "ɲ", "ŋ",
	"ɾ", "ɾ̥", "l", "j", "w",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["ghis"] = {
	"a", "ɑ", "e", "ɛ", "i", "o", "ɔ", "u", "ǝ", "ɨ", 
	"p", "t", "t̪", "k","q",
	"b", "d", "d̪", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f","v","θ", "ɬ", "ɬ̪","s","z","ʃ","ʒ","x", "ɣ","h","ħ",
	"m", "n̪", "n",
	"r","ɾ","l","l̪","w","j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["gvun"] = {
	"a", "e", "i", "o", "u", "ø", "y", "ə",
	"p", "t", "k", "q",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "θ", "ð", "s", "z", "ʃ", "ʒ", "x", "ɣ", "χ", "ʁ", "h",
	"m", "n", "ɲ", "ŋ",
	"ʀ", "l", "j",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["henl"] = {
	"a", "e", "y", "i", "o", "ø", "ɨ", "ɛ", "u",
	"p", "t", "k",
	"b", "d", "g", "g",
	"f", "v", "θ", "s", "z", "ʃ", "h",
	"m", "n̪", "n", "ŋ",
	"ɾ", "l", "w", "j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["indo"] = {
	"ɑ", "e", "i", "o", "ɔ", "ɛ", "u",
	"p", "t", "k", "q", "ʔ",
	"b", "d", "g", "g", "ɢ",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "θ", "ð", "s", "z", "ʃ", "ʒ", "x", "ɣ", "χ", "ʁ", "h",
	"m", "ɱ", "n̪", "n", "ɲ", "ŋ", "ɴ",
	"ɾ", "l", "ʎ", "w", "j",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["inha"] = {
	"a", "e", "i", "o", "u",
	"p", "t", "k",
	"b", "d", "g", "g",
	"f", "v", "s", "z", "ʃ", "ʒ", "h",
	"m", "n", "ŋ",
	"r", "l",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["irat"] = {
	"a", "e", "ɛ", "i", "o", "u", "ə",
	"p", "t", "k",
	"b", "d", "ɟ", "g", "g",
	"f", "v", "θ", "s", "z", "ʃ", "h",
	"m", "n", "ɲ", "ŋ",
	"r", "l", "w", "j",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["lish"] = {
	"a", "e", "i", "o", "u",
	"p", "t", "k", "ʔ",
	"b", "d", "g", "g",
	"θ", "ð", "s", "z", "ʃ", "ʒ", "x", "ɣ", "χ", "ʁ", "ħ", "h",
	"m", "n̪", "n", "ɲ", "ŋ", "ɴ",
	"r", "l", "w", "j", "ʕ",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}			

data.phonemes["kama"] = {
	"a", "e", "i", "o", "u", "ɛ", "ə", "ɔ",
	"p", "t", "k", "ʔ",
	"v", "f", "h",
	"m", "n",
	"j", "l", "ɾ", "w",
	"ˈ", "ˌ", ".", "-", " ",
	}			

data.phonemes["kinu"] = {
	"a", "ɛ", "i", "o", "u", "œ", "ɨ", "y",
	"p", "t", "ʦ", "k", "q", "ʔ",
	"b", "d", "ʣ", "g", "g",
	"v", "s", "z", "h",
	"m", "n", "ŋ", "ɴ",
	"l", "ʀ",
	"ˈ", "ˌ", ".", "-", " ", "'", "’", "ː", "ʼ",
	}

data.phonemes["meer"] = {
	"a", "e", "i", "o", "u", "ə",
	"p", "t", "k", "q",
	"b", "d", "g", "g",
	"f","v","θ","ð","s","z","ʃ","ʒ","x","ɣ",
	"m", "n", "ɲ", "ŋ","ɴ",
	"r","ɾ","l","ʎ","j","w",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["meni"] = {
	"a", "e", "i", "o", "u",
	"p", "t", "k", "ʔ",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "s", "z", "ʃ", "ʒ", "x", "ɣ", "h",
	"m", "n", "ɲ", "ŋ",
	"l", "r", "ɾ", "j", "w",
	".", "-", " ", "'", "’", "ː", "'", "ʼ",
	"˥", "˩", "˧", "↘", "↓", "↑",
	}

data.phonemes["munj"] = {
	"a", "i", "o", "u",
	"p", "t", "k", "ʔ",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "s", "z", "ʃ", "ʒ", "h",
	"m", "n", "ŋ",
	"ɾ", "l", "w",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["nelv"] = {
	"ɑ", "e", "i", "o", "u", 
	"p", "t", "k",
	"b", "d", "g", "g",
	"v", "s", "z", "ʃ", "h",
	"m", "n", "ŋ",
	"r", "l", "j",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["noal"] = {
	"ɑ", "ɛ", "i", "œ", "ɔ", "u", "ǝ", "ǝ", "ɪ", "y", "ʏ", "ʊ", "ə",
	"p", "t", "t̪", "k",
	"b", "d", "d̪", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "θ", "ð", "s", "ʃ", "ʒ", "h",
	"m", "n̪", "n", "ɲ", "ŋ",
	"ɾ", "l", "j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["ocst"] = {
	"a", "i", "u", 
	"p", "t", "k",
	"b", "ɓ", "d", "ɗ", "g", "g", "ɠ",
	"t͡ʃ", "d͡ʒ",
	"f","v","θ","ð","s","z","ʃ","ʒ","h",
	"m", "n", "n̪", "ɲ", "ŋ",
	"ɾ","ɾʲ","l","ʎ","j","w",
	"ˈ", "ˌ", ".", "-", " ", "ʼ",
	}

data.phonemes["ovus"] = {
	"ɑ", "e", "i", "o", "u", "ɯ", "y", "ø", "ɤ",
	"p", "t", "k",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "θ", "s", "ʃ", "h",
	"m", "n", "ŋ",
	"ɾ", "r", "l", "j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["ppla"] = {
	"a", "ɑ", "e", "ɛ", "i", "o", "ɔ", "u", "ǝ", "ɨ", 
	"p", "t", "t̪", "k","q",
	"b", "d", "d̪", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f","v","θ", "ɬ", "ɬ̪","s","z","ʃ","ʒ","x", "ɣ","h","ħ",
	"m", "n̪", "n",
	"r","ɾ","l","l̪","w","j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["shiv"] = {
	"ɑ", "e", "i", "o", "u", "y", "ø", "æ",
	"p", "t", "c", "k",
	"d", "ɟ", "g", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "θ", "ð", "s", "ʃ", "h",
	"m", "n̪", "n", "ɲ", "ŋ",
	"r", "ɾ", "l", "ʎ", "j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["sond"] = {
	"ɑ", "a", "e", "i", "o", "u", "ɐ̃", "ɔ̃", "ɛ̃",
	"p", "t", "k",
	"b", "d", "g", "g",
	"f", "v", "s", "z", "ʒ", "h",
	"m", "n", "ɲ", "ŋ",
	"ɾ", "l", "j", "w",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["tpaa"] = {
	"a", "e", "ɛ", "i", "u", "ə", "ǝ", "ɨ", "ɯ", "ʌ",
	"p", "ʈ", "c", "k",
	"b", "ɖ", "ɟ", "g", "g",
	"ɸ", "β", "s", "z", "ʂ", "ʐ", "ç", "ʝ", "x", "ɣ", "h",
	"m", "n", "ɳ", "ɲ", "ŋ",
	"ɻ", "ɭ", "ꞎ", "ʎ", "w", "ʍ", "j",
	"ˈ", "ˌ", ".", "-", " ", "ː", "ʲ",
	}

data.phonemes["trig"] = {
	"a", "ɑ", "e", "ɛ", "i", "o", "ɔ", "u", "ə", "æ", "ǝ",
	"p", "t", "k",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f","v","θ","s","z","ʃ","ʒ","h",
	"m", "n", "ŋ",
	"ɹ","ɾ","l","w","j",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["hval"] = {
	"a", "e", "y", "i", "o", "u", 
	"p", "t", "k","q",
	"b", "d", "g", "g",
	"d͡ʒ",
	"v","θ","s","z","ʃ","ʒ","x","χ","ɣ","h",
	"m", "n", "ɲ", "ŋ", "ɴ",
	"r","ɾ","ʁ","r̥","l","ʎ","j","ɟ","w",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["vzaa"] = {
	"ɑ", "æ", "e", "i", "o", "u", "ə", "a",
	"p", "t", "k",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "θ", "ð", "s", "z", "ʃ", "ʒ", "x", "ɣ", "h",
	"m", "n", "ɲ", "ŋ",
	"r", "l", "j", "w",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

data.phonemes["veda"] = {
	"a", "e", "i", "o", "u", "ə",
	"p", "t", "k", "q", "ʔ",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "s", "z", "ʃ", "ʒ", "x", "ɣ", "h",
	"m", "n", "ɲ", "ŋ",
	"ɾ", "l", "j", "w",
	"ˈ", "ˌ", ".", "-", " ",
	}

data.phonemes["yuli"] = {
	"a", "e", "i", "o", "u", "y", "ø", "ǝ", "ǝ",
	"p", "t", "k",
	"b", "d", "g", "g",
	"t͡ʃ", "d͡ʒ",
	"f", "v", "s", "z", "ʃ", "x", "χ", "h",
	"m", "n", "ɲ", "ŋ",
	"w", "l", "j", "ʀ",
	"ˈ", "ˌ", ".", "-", " ", "ː",
	}

return data