local export = {}
local m_IPA = require("Module:IPA")
local lang = require("Module:languages").getByCode("ku")
local letters1_phonemes = {
["a"] = "ɑː",
["b"] = "b",
["c"] = "d͡ʒ",
["ç"] = "t͡ʃ",
["d"] = "d",
["e"] = "ɛ",
["ê"] = "eː",
["f"] = "f",
["g"] = "ɡ",
["h"] = "h",
["i"] = "ɯ",
["î"] = "iː",
["j"] = "ʒ",
["k"] = "k",
["l"] = "l",
["m"] = "m",
["n"] = "n",
["o"] = "o",
["p"] = "p",
["q"] = "q",
["r"] = "ɾ",
["s"] = "s",
["ş"] = "ʃ",
["t"] = "t",
["u"] = "ʊ",
["û"] = "uː",
["v"] = "v",
["w"] = "w",
["x"] = "x",
["y"] = "j",
["z"] = "z",
-- Tîpên taybet (soranî)
["ẍ"] = "ɣ", -- mînak: aẍa
["ḧ"] = "ħ",
["ʿ"] = "ʕ",
["'"] = "ʕ",
-- ["ll"] = "ɫ", -- an jî /lˁ/; bi erebî (ڵ)
-- ["rr"] = "r" bi erebî (ڕ)
-- Kurdiya başûr (kirmaşanî)
["ł"] = "ɫ", -- bnr. "ll"; mînak bał, diɫ
["ň"] = "ŋ", -- mînak: maň, seň
["ř"] = "r", -- bnr. 'rr'; mînak: piř
["ü"] = "yː" -- mînak: tü
}
local function IPA_word(word)
-- nivîsa biçûk
word = mw.ustring.lower(word)
word = mw.ustring.gsub(word, '.', letters1_phonemes)
word = mw.ustring.gsub(peyv,'xw','xʷ') -- mînak: xwê (salt)
word = mw.ustring.gsub(word,'nɡ','ŋɡ') -- minak: ferheng
word = mw.ustring.gsub(word,'nk','ŋk') -- minak: bbbbank (bank)
word = mw.ustring.gsub(word,'ɾɾ','r') -- mînak: pirr; bi erebî (ڕ)
word = mw.ustring.gsub(word, 'll', 'ɫ') -- an jî /lˁ/; mînak: bi soranî gull (گوڵ) (bi kurmancî gul); bi erebî (ڵ)
word = mw.ustring.gsub(word,'ɯj','iːj') -- iy → îy
ipa = word
-- Add default stress mark if not present
if not mw.ustring.find(ipa, "ˈ") then
ipa = "ˈ" .. ipa
end
return ipa
end
function export.IPA(frame)
local words = {}
for _, word in ipairs(frame:getParent().args) do
table.insert(words, word)
end
if #words == 0 then
words = {mw.title.getCurrentTitle().text}
end
for key, word in ipairs(words) do
words[key] = IPA_word(word)
end
return m_IPA.format_IPA_full(lang, {{pron = "/" .. table.concat(words, '/, /') .. "/"}})
end
return export