Module:ug-pron
Appearance
- The following documentation is located at Module:ug-pron/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
Pronunciation module for Uyghur language. See {{ug-pron}}
.
local export = {}
local gsub = mw.ustring.gsub
local lang = require("Module:languages").getByCode("ug")
local m_IPA = require("Module:IPA")
function export.pronunciation(word)
word = (lang:transliterate(word))
word = mw.ustring.lower(word) -- Cyrillic & Latin sometimes use capital letters
word = gsub(word, "^([aeiouéëöü])", "ʔ%1")
word = gsub(word, "([%s%p])([aeiouéëöü])", "%1ʔ%2")
word = gsub(word, "([aeiouéëöü])'([aeiouéëöü])", "%1ʔ%2") -- V'V can be manually added
word = gsub(word, "ng", "ŋ")
word = gsub(word, "gh", "ʁ")
word = gsub(word, "ch", "t͡ʃ")
word = gsub(word, "zh", "ʒ")
word = gsub(word, "sh", "ʃ")
word = gsub(word, "g", "ɡ")
word = gsub(word, "x", "χ")
word = gsub(word, "j", "d͡ʒ")
word = gsub(word, "y", "j")
word = gsub(word, "f", "p")
word = gsub(word, "a", "ɑ")
word = gsub(word, "e", "ɛ")
word = gsub(word, "[éë]", "e")
word = gsub(word, "ö", "ø")
word = gsub(word, "ü", "y")
word = gsub(word, "['%?,;]", "") -- must be at last step
return word
end
function export.show(frame)
local args = frame:getParent().args
local pagetitle = mw.title.getCurrentTitle().text
local p, results = {}, {}
if args[1] then
for _, item in ipairs(args) do
table.insert(p, (item ~= "") and item or nil)
end
else
p = {pagetitle}
end
for _, word in ipairs(p) do
table.insert(results, {pron = "/" .. export.pronunciation(word) .. "/"})
end
return "* " .. m_IPA.format_IPA_full { lang = lang, items = results }
end
return export