မဝ်ဂျူ:tzm-IPA
Documentation for this module may be created at မဝ်ဂျူ:tzm-IPA/doc
local export = {}
local m_IPA = require("Module:IPA")
local m_scripts = require("Module:scripts")
local m_scripts_util = require("Module:script utilities")
local m_a = require("Module:accent qualifier")
local lang = require("Module:languages").getByCode("tzm")
local s = mw.ustring.gsub
local c = {
["g"] = "ɡ",
["ḍ"] = "dˤ",
["š"] = "ʃ",
["j"] = "ʒ",
["y"] = "j",
["ẓ"] = "zˤ",
["ṛ"] = "rˤ",
["ṣ"] = "sˤ",
["ṭ"] = "tˤ",
["ḥ"] = "ħ",
["ɛ"] = "ʕ",
["e"] = "ə"
}
local p = {
["ɣ"] = "ʁ",
["ɡʷ"] = "ɣʷ",
["tˤ"] = "Tˤ",
["x"] = "χ",
["kʷ"] = "xʷ",
["a"] = "æ",
["ɡ"] = "ʝ",
["d"] = "ð",
["dˤ"] = "ðˤ",
["k"] = "ç",
["n"] = "N",
["t"] = "θ",
["b"] = "β"
}
local t = {
["ʝ"] = "ɟː",
["ð"] = "Dː",
["ðˤ"] = "Tˤː",
["f"] = "fː",
["ʁ"] = "qː",
["ç"] = "cː",
["l"] = "lː",
["m"] = "mː",
["N"] = "Nː",
["r"] = "rː",
["s"] = "sː",
["ʃ"] = "Cː",
["θ"] = "Tː",
["w"] = "wː",
["j"] = "ɟː",
["z"] = "zː",
["zˤ"] = "zˤː",
["β"] = "bː",
["χ"] = "χː",
["ʒ"] = "Jː",
["ɣʷ"] = "ɡʷː",
["rˤ"] = "rˤː",
["sˤ"] = "sˤː",
["Tˤ"] = "Tˤː",
["q"] = "qː",
["ħ"] = "ħː",
["ʕ"] = "ʕː",
["xʷ"] = "kʷː"
}
local C = "[ɡɟʝDdðfɣʁkcçlmNnrsʃCTtθwjzbβhxχʒJqħʕ]"
local V = "[aiuəæɑ]"
local r = {
["a"] = {
["^(" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ʝ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)$"] = "%1jː%2",
["^(" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ɣʷ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)$"] = "%1wː%2",
["^(" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ʁ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)$"] = "%1ʁː%2",
["^(" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ʝ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?[‿ ])"] = "%1jː%2",
["^(" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ɣʷ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?[‿ ])"] = "%1wː%2",
["^(" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ʁ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?[‿ ])"] = "%1ʁː%2",
["( ə?" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ʝ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)$"] = "%1jː%2",
["( ə?" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ɣʷ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)$"] = "%1wː%2",
["( ə?" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ʁ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)$"] = "%1ʁː%2",
["( ə?" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ʝ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?[‿ ])"] = "%1jː%2",
["( ə?" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ɣʷ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?[‿ ])"] = "%1wː%2",
["( ə?" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?" .. V .. ")ʁ(" .. V .. "%(?" .. C .. "?%)?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?[‿ ])"] = "%1ʁː%2"
},
["b"] = {
["([dtzrs])([^ˤ%1][^ ]-ˤ)"] = "%1ˤ%2",
["(ˤ[^ ]-[dtzrs])([^ˤ%1])"] = "%1ˤ%2",
["(ˤ[^ ]-[dtzrs])$"] = "%1ˤ"
},
["c"] = {
["f([‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "β%1",
["θ(ˤ?[‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "ð%1",
["T(ˤ?[‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "D%1",
["s(ˤ?[‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "z%1",
["ʃ([‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "ʒ%1",
["ç([‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "ʝ%1",
["c([‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "ɟ%1",
["x(ʷ[‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "ɣ%1",
["k(ʷ[‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "ɡ%1",
["χ([‿ ]?[βðd̪zʒʝɟɣɡʁ])"] = "ʁ%1",
["β([‿ ]?[fθt̪sʃçcxkχ])"] = "f%1",
["ð(ˤ?[‿ ]?[fθt̪sʃçcxkχ])"] = "θ%1",
["D(ˤ?[‿ ]?[fθt̪sʃçcxkχ])"] = "T%1",
["z(ˤ?[‿ ]?[fθt̪sʃçcxkχ])"] = "s%1",
["ʒ([‿ ]?[fθt̪sʃçcxkχ])"] = "ʃ%1",
["ʝ(%)?[‿ ]?[fθt̪sʃçcxkχ])"] = "ç%1",
["ɟ([‿ ]?[fθt̪sʃçcxkχ])"] = "c%1",
["ɣ(ʷ[‿ ]?[fθt̪sʃçcxkχ])"] = "x%1",
["ɡ(ʷ[‿ ]?[fθt̪sʃçcxkχ])"] = "k%1",
["ʁ([‿ ]?[fθt̪sʃçcxkχ])"] = "χ%1"
},
["d"] = {
["([^fb])[fb]( ?)([fb])([^fb])"] = "%1%3%2%3%4",
["^[fb]( ?)([fb])([^fb])"] = "%2%1%2%3",
["([^fb])[fb]( ?)([fb])$"] = "%1%3%2%3",
["([^td]ˤ?)[td](ˤ?)( ?)([td])(ˤ?)([^td])"] = "%1%4%2%3%4%5%6",
["^[td](ˤ?)( ?)([td])(ˤ?)([^td])"] = "%3%1%2%3%4%5",
["([^td]ˤ?)[td](ˤ?)( ?)([td])(ˤ?)$"] = "%1%4%2%3%4%5",
["([^sz]ˤ?)[sz](ˤ?)( ?)([sz])(ˤ?)([^sz])"] = "%1%4%2%3%4%5%6",
["^[sz](ˤ?)( ?)([sz])(ˤ?)([^sz])"] = "%3%1%2%3%4%5",
["([^sz]ˤ?)[sz](ˤ?)( ?)([sz])(ˤ?)$"] = "%1%4%2%3%4%5",
["([^ʃʒ])[ʃʒ]( ?)([ʃʒ])([^ʃʒ])"] = "%1%3%2%3%4",
["^[ʃʒ]( ?)([ʃʒ])([^ʃʒ])"] = "%2%1%2%3",
["([^ʃʒ])[ʃʒ]( ?)([ʃʒ])$"] = "%1%3%2%3",
["([^kɡj])[kɡj]( ?)([kɡj])([kɡj]ʷ)"] = "%1%3%2%3%4",
["^[kɡj]( ?)([kɡj])([kɡj]ʷ)"] = "%2%1%2%3",
["([^kɡj])[kɡj]( ?)([kɡj])$"] = "%1%3%2%3",
["([^kɡj])[kɡj]( ?)([kɡj])([^ʷkɡj])"] = "%1%3%2%3%4",
["^[kɡj]( ?)([kɡj])([^ʷkɡj])"] = "%2%1%2%3",
["([^kɡj])[kɡj]( ?)([kɡj])$"] = "%1%3%2%3",
["([^ʷkɡw])[kɡ]ʷ( ?)([kɡ]ʷ)([^w][^ʷ])"] = "%1%3%2%3%4",
["([^ʷkɡw])[kɡ]ʷ( ?)([kɡ]ʷ)([^w])$"] = "%1%3%2%3%4",
["([^ʷkɡw])[kɡ]ʷ( ?)([kɡ]ʷ)([^w][‿ ])"] = "%1%3%2%3%4",
["^[kɡ]ʷ( ?)([kɡ]ʷ)([^w][^ʷ])"] = "%2%1%2%3",
["^[kɡ]ʷ( ?)([kɡ]ʷ)([^w])$"] = "%2%1%2%3",
["^[kɡ]ʷ( ?)([kɡ]ʷ)([^w][‿ ])"] = "%2%1%2%3",
["([^ʷkɡw])[kɡ]ʷ( ?)([kɡ]ʷ)$"] = "%1%3%2%3",
["([^ʷw])w( ?)([kɡ]ʷ)([^w][^ʷ])"] = "%1%3%2%3%4",
["([^ʷw])w( ?)([kɡ]ʷ)([^w])$"] = "%1%3%2%3%4",
["([^ʷw])w( ?)([kɡ]ʷ)([^w][‿ ])"] = "%1%3%2%3%4",
["^w( ?)([kɡ]ʷ)([^w][^ʷ])"] = "%2%1%2%3",
["^w( ?)([kɡ]ʷ)([^w])$"] = "%2%1%2%3",
["^w( ?)([kɡ]ʷ)([^w][‿ ])"] = "%2%1%2%3",
["([^ʷw])w( ?)([kɡ]ʷ)$"] = "%1%3%2%3",
["([^ʷkɡw])[kɡ]ʷ( ?)w([^w][^ʷ])"] = "%1ɡʷ%2ɡʷ%3",
["([^ʷkɡw])[kɡ]ʷ( ?)w([^w])$"] = "%1ɡʷ%2ɡʷ%3",
["([^ʷkɡw])[kɡ]ʷ( ?)w([^w][‿ ])"] = "%1ɡʷ%2ɡʷ%3",
["^[kɡ]ʷ( ?)w([^w][^ʷ])"] = "ɡʷ%1ɡʷ%2",
["^[kɡ]ʷ( ?)w([^w])$"] = "ɡʷ%1ɡʷ%2",
["^[kɡ]ʷ( ?)w([^w][‿ ])"] = "ɡʷ%1ɡʷ%2",
["([^ʷkɡw])[kɡ]ʷ( ?)w$"] = "%1ɡʷ%2ɡʷ",
["([^xqɣ])[xqɣ]( ?)([xqɣ])([^xqɣ])"] = "%1%3%2%3%4",
["^[xqɣ]( ?)([xqɣ])([^xqɣ])"] = "%2%1%2%3",
["([^xqɣ])[xqɣ]( ?)([xqɣ])$"] = "%1%3%2%3",
["([^ħʕ])[ħʕ]( ?)([ħʕ])([^ħʕ])"] = "%1%3%2%3%4",
["^[ħʕ]( ?)([ħʕ])([^ħʕ])"] = "%2%1%2%3",
["([^ħʕ])[ħʕ]( ?)([ħʕ])$"] = "%1%3%2%3"
},
["e"] = {["θ([‿ ]?[szʃʒ])"] = "T%1", ["ð([‿ ]?[szʃʒ])"] = "D%1"},
["f"] = {
["([^rl])([rl])( ?)n([^t]?[‿ ])"] = "%1%2%3%2%4",
["([^rl])([rl])( ?)n([^t]?)$"] = "%1%2%3%2%4"
},
["g"] = {["nll?"] = "ll", ["n ll?"] = "l l", ["nrr?"] = "rr", ["n rr?"] = "r r"},
["h"] = {["j( ?)w"] = "ɡʷ%1ɡʷ"},
["i"] = {
["^j(" .. C .. ")"] = "i%1",
["([^j][‿ ])j(" .. C .. ")"] = "%1i%2",
["^w(" .. C .. ")"] = "u%1",
["([^w][‿ ])w(" .. C .. ")"] = "%1u%2"
},
["j"] = {["^([smT]ˤ?)ː"] = "%1", ["([‿ ]ə?)([smT]ˤ?)ː"] = "%1%2"},
["k"] = {["(" .. C .. "[ˤʷ]?)ː "] = "%1(ː) ", ["(" .. C .. "[ˤʷ]?)ː$"] = "%1(ː)"},
["l"] = {
["([ħʕχqʁ]ː?)æ"] = "%1ɑ",
["([ħʕχqʁ]ː?)i"] = "%1ɪ̙",
["([ħʕχqʁ]ː?)u"] = "%1ʊ̙",
["æ([ħʕχqʁ])"] = "ɑ%1",
["i([ħʕχqʁ])"] = "ɪ̙%1",
["u([ħʕχqʁ])"] = "ʊ̙%1",
["æ([^‿ ]-ˤ)"] = "ɑ%1",
["i([^‿ ]-ˤ)"] = "ɪ̙%1",
["u([^‿ ]-ˤ)"] = "ʊ̙%1",
["(ˤ[^‿ ]-)æ"] = "%1ɑ",
["(ˤ[^‿ ]-)i"] = "%1ɪ̙",
["(ˤ[^‿ ]-)u"] = "%1ʊ̙"
},
["m"] = {
["æ(" .. C .. "[ˤʷ]?ː)"] = "æ̝%1",
["i(" .. C .. "[ˤʷ]?ː)"] = "i̞%1",
["u(" .. C .. "[ˤʷ]?ː)"] = "u̞%1",
["ɑ(" .. C .. "[ˤʷ]?ː)"] = "ɑ̝%1",
["ɪ̙(" .. C .. "[ˤʷ]?ː)"] = "ɪ̙̞%1",
["ʊ̙(" .. C .. "[ˤʷ]?ː)"] = "ʊ̙̞%1",
["æ(" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "æ̝%1",
["i(%(?" .. C .. "%)?[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "i̞%1",
["u(%(?" .. C .. "%)?[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "u̞%1",
["ɑ(" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "ɑ̝%1",
["ɪ̙(%(?" .. C .. "%)?[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "ɪ̙̞%1",
["ʊ̙(%(?" .. C .. "%)?[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "ʊ̙̞%1",
["æ(" .. C .. "[ˤʷ]?)$"] = "æ̝%1",
["i(%(?" .. C .. "%)?[ˤʷ]?)$"] = "i̞%1",
["u(%(?" .. C .. "%)?[ˤʷ]?)$"] = "u̞%1",
["ɑ(" .. C .. "[ˤʷ]?)$"] = "ɑ̝%1",
["ɪ̙(%(?" .. C .. "%)?[ˤʷ]?)$"] = "ɪ̙̞%1",
["ʊ̙(%(?" .. C .. "%)?[ˤʷ]?)$"] = "ʊ̙̞%1",
["æ(" .. C .. "[ˤʷ]?[‿ ])"] = "æ̝%1",
["i(%(?" .. C .. "%)?[ˤʷ]?[‿ ])"] = "i̞%1",
["u(%(?" .. C .. "%)?[ˤʷ]?[‿ ])"] = "u̞%1",
["ɑ(" .. C .. "[ˤʷ]?[‿ ])"] = "ɑ̝%1",
["ɪ̙(%(?" .. C .. "%)?[ˤʷ]?[‿ ])"] = "ɪ̙̞%1",
["ʊ̙(%(?" .. C .. "%)?[ˤʷ]?[‿ ])"] = "ʊ̙̞%1"
},
["n"] = {["æ$"] = "ɑ", ["æ([‿ ])"] = "ɑ%1"},
["o"] = {
["^(" .. V .. "?" .. C .. "[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)([θT]ˤ?)$"] = "%1ə%2",
["^(" .. V .. "?" .. C .. "[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)([θT]ˤ?[‿ ])"] = "%1ə%2",
["([‿ ]" .. V .. "?" .. C .. "[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)([θT]ˤ?)$"] = "%1ə%2",
["([‿ ]" .. V .. "?" .. C .. "[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)([θT]ˤ?[‿ ])"] = "%1ə%2",
["(" .. C .. "[ˤʷ]?ː?)(" .. C .. "[ˤʷ]?ː?[θT]ˤ?[‿ ])"] = "%1ə%2",
["(" .. C .. "[ˤʷ]?ː?)(" .. C .. "[ˤʷ]?ː?[θT]ˤ?)$"] = "%1ə%2",
["(" .. C .. "[ˤʷ]?ː?)([ɡɟʝDdðfɣʁkcçlmNnrsʃCwjzbβhxχʒJqħʕ][ˤʷ]?ː?[‿ ])"] = "%1ə%2",
["(" .. C .. "[ˤʷ]?ː?)([ɡɟʝDdðfɣʁkcçlmNnrsʃCwjzbβhxχʒJqħʕ][ˤʷ]?ː?)$"] = "%1ə%2",
["^(" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)(" .. C .. "[ˤʷ]?ː?)$"] = "%1ə%2",
["^(" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)(" .. C .. "[ˤʷ]?ː?[‿ ])"] = "%1ə%2",
["([‿ ]" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)(" .. C .. "[ˤʷ]?ː?)$"] = "%1ə%2",
["([‿ ]" .. C .. "?[ˤʷ]?ː?" .. C .. "?[ˤʷ]?)(" .. C .. "[ˤʷ]?ː?[‿ ])"] = "%1ə%2"
},
["ø"] = {
["^(" .. C .. "[ˤʷ]?ː?)ə(" .. C .. "[ˤʷ]?[‿ ])"] = "%1%2",
["^ə(" .. C .. "[ˤʷ]?ː?[‿ ])"] = "%1",
["(" .. V .. "[‿ ]" .. C .. "[ˤʷ]?ː?)ə(" .. C .. "[ˤʷ]?[‿ ])"] = "%1%2",
["(" .. V .. "[‿ ])ə(" .. C .. "[ˤʷ]?ː?[‿ ])"] = "%1%2",
["(" .. V .. C .. "[ˤʷ]?ː?[‿ ])ə(" .. C .. "[ˤʷ]?[‿ ])"] = "%1%2",
["(" .. V .. "[‿ ])ə(" .. C .. "[ˤʷ]?ː?)$"] = "%1%2",
["(" .. V .. "[‿ ]" .. C .. "[ˤʷ]?ː?)ə(" .. C .. "[ˤʷ]?)$"] = "%1%2",
["(" .. V .. C .. "[ˤʷ]?ː?[‿ ])ə(" .. C .. "[ˤʷ]?)$"] = "%1%2"
},
["O"] = {
["(" .. V .. C .. "[ˤʷ]?ː?)(" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "%1ə%2",
["(" .. V .. C .. "[ˤʷ]?ː?)(" .. C .. "[ˤʷ]?ː)"] = "%1ə%2",
["^(" .. C .. "[ˤʷ]?ː?)(" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "%1ə%2",
["^(" .. C .. "[ˤʷ]?ː?)(" .. C .. "[ˤʷ]?ː)"] = "%1ə%2",
["([‿ ]" .. C .. "[ˤʷ]?ː?)(" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "%1ə%2",
["([‿ ]" .. C .. "[ˤʷ]?ː?)(" .. C .. "[ˤʷ]?ː)"] = "%1ə%2",
["(" .. V .. "[‿ ]?" .. C .. "[ˤʷ]?ː?[‿ ])(" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?)"] = "%1ə%2",
["(" .. V .. "[‿ ]?" .. C .. "[ˤʷ]?ː?[‿ ])(" .. C .. "[ˤʷ]?ː)"] = "%1ə%2",
["(" .. V .. "[‿ ]?" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?[‿ ])(" .. C .. "[ˤʷ]?)"] = "%1ə%2",
},
["p"] = {["əm"] = "m̩", ["əN"] = "n̪̩", ["əl"] = "l̩", ["ər"] = "r̩"},
["q"] = {
["əj"] = "ij",
["əʝ"] = "iʝ",
["əw"] = "uw"
},
["Q"] = {
["ij([^)])"] = "i(j)%1",
["iʝ([^)])"] = "i(ʝ)%1",
["uw([^)])"] = "u(w)%1",
["ij$"] = "i(j)",
["iʝ$"] = "i(ʝ)",
["uw$"] = "u(w)"
},
["r"] = {
["ai(" .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?)$"] = "ɑ%1",
["ai(" .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?[‿ ])"] = "ɑ%1",
["i(" .. V .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?)$"] = "(ij)%1",
["i(" .. V .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?[‿ ])"] = "(ij)%1",
["ui(" .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?)$"] = "u%1",
["ui(" .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?[‿ ])"] = "u%1",
["u(a" .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?)$"] = "uj%1",
["u(a" .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?[‿ ])"] = "uj%1",
["a(a" .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?)$"] = "(ɑj)%1",
["a(a" .. C .. "[ˤʷ]?" .. C .. "?[ˤʷ]?" .. C .. "?[ˤʷ]?" .. V .. "?[‿ ])"] = "(ɑj)%1"
},
["s"] = {["([ ‿]j" .. C .. "?[ˤʷ]?" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?)a a"] = "%1‿a", ["^(j" .. C .. "?[ˤʷ]?" .. C .. "[ˤʷ]?" .. C .. "[ˤʷ]?)a a"] = "%1‿a"},--include every verbal prefix to recognize only the a-final conjugated forms
["t"] = {["([æiu]) ([æiu])"] = "%1‿j%2"},
["T"] = {["([æiu]‿j)i"] = "%1"},
["u"] = {["kkʷ"] = "kʷkʷ", ["ɡɡʷ"] = "ɡʷɡʷ"}
}
local dialects = {}
dialects["Ayt Ndhir"] = {
{{"u", "h", "r", "s", "i", "d", "f", "g"}, {true, "b"}},
{{"o", "ø"}, {true, "O"}, {"q", "Q", "t", "T", "n", "e", "c", "j", "a"}, {true, "l"}, {"m", "k", "p"}}
}
function export.pronunciation_phonemic(word)
m_scripts_util.checkScript(word, "Tfng")
translit = lang:transliterate(word)
return mw.ustring.gsub(translit, '.', c)
end
function export.pronunciation_phonetic(word, dialect)
local word = export.pronunciation_phonemic(word)
local o = dialects[dialect]
for j = 1, #o[1] do -- set of rules
if o[1][j][1] == true then
local N = ""
while N ~= word do
N = word
for k = 2, #o[1][j] do -- rule
for x, y in pairs(r[o[1][j][k]]) do
word = s(word, x, y)
end
end
end
else
for k = 1, #o[1][j] do -- rule
for x, y in pairs(r[o[1][j][k]]) do
word = s(word, x, y)
end
end
end
end
word = s(word, '.[ˤʷ]?', p)
for d, g in pairs(t) do
word = s(word, d .. d, g)
word = s(word, d .. " " .. d .. "([^ː])", g .. "‿" .. "%1")
word = s(word, d .. " " .. d .. "$", "‿" .. g)
end
for j = 1, #o[2] do -- set of o
if o[2][j][1] == true then
local N = ""
while N ~= word do
N = word
for k = 2, #o[2][j] do -- rule
for x, y in pairs(r[o[2][j][k]]) do
word = s(word, x, y)
end
end
end
else
for k = 1, #o[2][j] do -- rule
for x, y in pairs(r[o[2][j][k]]) do
word = s(word, x, y)
end
end
end
end
word = s(word, "T", "t̪")
word = s(word, "D", "d̪")
word = s(word, "N", "n̪")
word = s(word, "C", "t͡ʃ")
word = s(word, "J", "d͡ʒ")
return word
end
function export.show(frame)
local args = frame:getParent().args
local page_title = mw.title.getCurrentTitle().text
local p, results, results_ayt_ndhir = {}, {}, {}
if args[1] then
for index, item in ipairs(args) do
table.insert(p, (item ~= "") and item or nil)
end
else
p = {page_title}
end
if args["r"] then
for _, word in ipairs(p) do
table.insert(results, {pron = "/" .. export.pronunciation_phonemic(word) .. "/"})
table.insert(results_ayt_ndhir, {pron = "[" .. args["r"] .. "]"})
end
else
for _, word in ipairs(p) do
table.insert(results, {pron = "/" .. export.pronunciation_phonemic(word) .. "/"})
table.insert(results_ayt_ndhir, {pron = "[" .. export.pronunciation_phonetic(word, "Ayt Ndhir") .. "]"})
end
end
return "* " .. m_IPA.format_IPA_full(lang, results) .. "\n** " .. m_a.show({"Ayt Ndhir"}) .. " " .. m_IPA.format_IPA_full(lang, results_ayt_ndhir)
end
return export