Module:siwa-pron
Jump to navigation
Jump to search
- The following documentation is located at Module:siwa-pron/doc.[edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
local export = {}
local m_IPA = require("Module:IPA")
local m_su = require("Module:string utilities")
local m_table = require("Module:table")
local m_sm = mw.loadData('Module:siwa-pron/data')
local rules = {
[1] = {
--consonants not affected by stress
["ṡ"] = "ɕ",
["tṡ"] = "t͡ɕ",
["dį"] = "d͡ʑ",
["ḍ"] = "ð",
["dl"] = "tɬ",
["ng"] = "ŋː",
["nį"] = "ɲ",
["ġ"] = "x",
},
[2] = {
--long vowels and o remain unchanged
["ẻu"] = "øː",
["õu"] = "ɔ̃ː̃",
["õ"] = "ɔ̃",
["ả"] = "æː",
["ẻ"] = "eː",
["ỉ"] = "iː",
["ỏ"] = "ʊː",
["ủ"] = "uː",
["ỷ"] = "yː",
["ů"] = "ø",
}
}
local consonant = "[" .. "mpbvntdsṡrkgġhįų" .. "]"
local vowel = "[" .. "aæɑeɛiɪɔʊyœøɤ" .. "]"
--[[function export.syllable(frame)
local word = mw.title.getCurrentTitle().text
local pattern = "^[" .. initial .. "]?[" .. vocalic .. "]{1}[" .. internal .. "]?"
x = m_su.capturing_split(word, pattern)
return x[1]
end]]
function export.crux(term)
local IPA = {}
IPA = table.concat(IPA)
for _, rule in ipairs(rules) do
for regex, replacement in pairs(rule) do
IPA = mw.ustring.gsub(term, regex, replacement)
end
end
return IPA
end
function export.show(frame)
local parent_args = frame:getParent().args
local params = {
[1] = { default = mw.title.getCurrentTitle().text },
}
local args = require("Module:parameters").process(parent_args, params)
local term = args[1]
local ipa = crux(term)
local IPA_key = "IPA for Siwa"
local key_link = "[[".. IPA_key .."|key]]"
local prefix = "[[w:IPA chart|IPA]]<sup>(" .. key_link .. ")</sup>: "
local accent="(\''Aingo\'') "
ipa = "<span style=\"font-size:110%;font-family:Gentium,'DejaVu Sans','Segoe UI',sans-serif>[" .. ipa .. "]</span>"
ipa = accent..prefix..ipa
return ipa
end
return export