Module:ssy-IPA

local export = {}

local m_IPA = require("Module:IPA") local lang = require("Module:languages").getByCode("ssy") local s = mw.ustring.gsub local title = mw.title.getCurrentTitle.text local C = "[bcdfghjklmnpqrstwxyzʃçɖɽɲħ-]" local V = "[aeiouäëïöü]" local M = "[ʼʷ]" local c = { {"ch", "çʼ"}, {"dh", "ɖ" }, {"gn", "ɲ" }, {"x", "ħ" }, {"kh", "x" }, {"qh", "xʼ" }, {"rh", "ɽ"}, {"sh", "ʃ"}, {"th", "tʼ" }, {"ts", "sʼ" }, {"q", "kʼ" }, {"kw", "kʷ" }, {"(" .. C .. "?)(" .. M .. "?)ä", "ˈ%1%2a"}, {"(" .. C .. "?)(" .. M .. "?)ë", "ˈ%1%2e"}, {"(" .. C .. "?)(" .. M .. "?)ï", "ˈ%1%2i"}, {"(" .. C .. "?)(" .. M .. "?)ö", "ˈ%1%2o"}, {"(" .. C .. "?)(" .. M .. "?)ü", "ˈ%1%2u"}, {"(.)%1", "%1ː"}, {"c", "ʕ"}, {"ç", "t͡ʃ" }, {"g", "ɡ"}, {"j", "d͡ʒ"}, {"c", "ʕ"}, {"y", "j"}, {"-(" .. V .. ")", "ʔ%1"}, {"-", "" }, }

function export.pronunciation_phonemic(word) word = mw.ustring.lower(word) for a = 1, #c do		word = s(word, c[a][1], c[a][2]) end return word end

function export.syllabify(term) --split for hyphenation local H, i = {}, 0 for a in string.gmatch(s(term, "([aeiou]" .. C .. "?)(" .. C .. ")%f[aeiou]", "%1.%2"), "[^%.-/]+") do 		i = i+1 H[i] = a 	end return H end

function export.show(frame) local args = frame:getParent.args local p, results, results_SA = {}, {}, {} if not args[1] or (args[1] == "") then error("Please put the word as the first positional parameter!") else for index, item in ipairs(args) do			table.insert(p, (item ~= "") and item or nil) end end for _, word in ipairs(p) do		word = export.pronunciation_phonemic(word) table.insert(results, {pron = "/" .. word .. "/"}) end

local H = "" if mw.ustring.match(title, "^[^%-].+[^%-]$") then H = export.syllabify(title) H = "\n* " .. require("Module:hyphenation").format_hyphenations { lang = lang, hyphs = } end return "* " .. m_IPA.format_IPA_full { lang = lang, items = results } .. H end

return export