Module:User:AmazingJus/chr

Hello, you have come here looking for the meaning of the word Module:User:AmazingJus/chr. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:User:AmazingJus/chr, but we will also tell you about its etymology, its characteristics and you will know how to say Module:User:AmazingJus/chr in singular and plural. Everything you need to know about the word Module:User:AmazingJus/chr you have here. The definition of the word Module:User:AmazingJus/chr will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:User:AmazingJus/chr, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

a2niː2skɰaː2niː4iː t͡sa2la2kiː

Declension of User:AmazingJus/chr (set A, animate, possessive)
plain/vocative form ᎡᏙᏓ (edoda)
person singular dual plural
1st inclusive ᎠᎩᏙᏓ (agidoda) ᎩᏂᏙᏓ (ginidoda) ᎢᎩᏙᏓ (igidoda)
exclusive ᎣᎩᏂᏙᏓ (oginidoda) ᎣᎩᏙᏓ (ogidoda)
2nd ᏣᏙᏓ (tsadoda) ᏍᏗᏙᏓ (sdidoda) ᎢᏥᏙᏓ (itsidoda)
3rd ᎤᏙᏓ (udoda) ᎤᏂᏙᏓ (unidoda)
Compound declension of User:AmazingJus/chr (type A, animate, possessive)
object → singular dual plural
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
subject ↓ incl. excl. incl. excl.
singular 1st ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
2nd ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
3rd ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
dual 1st incl. ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
excl. ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
2nd ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
3rd ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
plural 1st incl. ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
excl. ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
2nd ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)
3rd ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda) ᎠᎩᏙᏓ (agidoda)

a2niː2skɰaː2niː4iː t͡sa2la2kiː


local export = {}

local gsub = mw.ustring.gsub
local gmatch = mw.ustring.gmatch
local sub = mw.ustring.sub
local U = mw.ustring.char

-- map tone numbers to formatted superscripts and contours
local tones = {
	 = {"¹", "˨˩"},
	 = {"²", "˨"},
	 = {"³", "˧"},
	 = {"⁴", "˧˦"}
}

-- apply placeholder substitutions for double letter sequences
local placeholders = {
	 = "q",
	 = "G",
	 = "T",
	 = "D",
	 = "c",
	 = "W"
}

-- map letters to phonetic values
local phon = {
	 = "ə̃",
	 = "kʰ",
	 = "k",
	 = "h",
	 = "kʰʷ",
	 = "kʷ",
	 = "tʰ",
	 = "t",
	 = "t͡ɬʰ",
	 = "t͡ɬ",
	 = "t͡sʰ",
	 = "t͡s",
	 = "ɰʰ",
	 = "ɰ",
	 = "j"
}

-- add glottal stop before vowel-initial syllable
local function glotallise(entry)
	return gsub(entry, "()()", "%1ʔ%2")
end

function export.respell(entry)
	if type(entry) == "table" then -- get user input as a table
		entry = entry.args
	end

	entry = glotallise(entry)
	entry = gsub(entry, ".", tones)
	entry = gsub(entry, "%.", U(0323))

	return entry
end

function export.toIPA(entry)
	if type(entry) == "table" then -- get user input as a table
		entry = entry.args
	end

	-- all non-final vowels must be marked with a tone number succeeding them
	local no_tone_vowels = {}
	for match in gmatch(sub(entry, 1, -2), "(%.?)(?!)") do
		table.insert(no_tone_vowels, match)
	end
	if #no_tone_vowels > 0 then
		error("Tones must be provided on all vowels except the last vowel.")
	end

	-- non-final unmarked vowels are long
	entry = gsub(entry, "()", "%1ː") -- FIXME
	-- however a full stop represents a short vowel
	entry = gsub(entry, "ː%.", "")

	-- substitute double letter placeholders
	entry = gsub(entry, "..", placeholders)
	-- substitute phonetic values
	entry = gsub(entry, ".", phon)
	-- substitute tones
	-- entry = gsub(entry, "", tones)

	return entry
end

return export