Modul:ckb-bilêvkirin
Belgekirina modulê[nîşan bide] [biguhêre] [rojane bike]
- Ev belge ji Modul:ckb-bilêvkirin/belge hatiye girtin.
Bikaranîn[biguhêre]
- {{ckb-IPA}}
-- Authers: Ghybu, Calak
t = require('Modul:ku-Arab-translit')
local translit = t.tr
local export = {}
local letters1_phonemes = {
["a"] = "aː",
["b"] = "b",
["c"] = "ʤ",
["ç"] = "ʧ",
["d"] = "d",
["e"] = "a",
["ê"] = "e̞ː",
["f"] = "f",
["g"] = "ɡ",
["h"] = "h",
["ḧ"] = "ħ",
["i"] = "ə",
["î"] = "iː",
["j"] = "ʒ",
["k"] = "k",
["l"] = "l",
["Ľ"] = "ɫ",
["m"] = "m",
["n"] = "n",
["o"] = "o̞ː",
["p"] = "p",
["q"] = "q",
["r"] = "ɾ",
["Ŕ"] = "r",
["s"] = "s",
["ş"] = "ʃ",
["t"] = "t",
["u"] = "ʊ",
["û"] = "uː",
["v"] = "v",
["w"] = "w",
["x"] = "x",
["ẍ"] = "ɣ",
["y"] = "j",
["z"] = "z",
["'"] = "ʕ",
}
local vowels = "aeiîuûêo"
local vowel = "[" .. vowels .. "]"
local consonant = "[^" .. vowels .. ". -]"
local syllabify_pattern = "(" .. vowel .. ")(" .. consonant .. "?)(" .. consonant .. "?)(" .. vowel .. ")"
local function syllabify(peyv)
peyv = mw.ustring.gsub(peyv, "%-(" .. consonant .. ")%-(" .. consonant .. ")", "%1.%2")
peyv = string.gsub(peyv, "%-", ".")
-- Add syllable breaks.
for count = 1, 2 do
peyv = mw.ustring.gsub(
peyv,
syllabify_pattern,
function(a, b, c, d)
if c == "" and b ~= "" then
c, b = b, ""
end
return a .. b .. "." .. c .. d
end
)
end
peyv = mw.ustring.gsub(peyv, '([aeêiîouûy])([^aeêiîouûy. ])([^aeêiîouûy. ])([^aeêiîouûy. ])', "%1%2%3.%4")
return peyv
end
local function IPA_peyv(peyv)
peyv = mw.ustring.gsub(peyv, 'll', "Ľ") -- temporary conversion to avoid seeing ll as 2 letters
peyv = mw.ustring.gsub(peyv, 'rr', "Ŕ") -- temporary conversion to avoid seeing rr as 2 letters
peyv = syllabify(peyv)
peyv = mw.ustring.gsub(peyv, '.', letters1_phonemes)
peyv = mw.ustring.gsub(peyv, '([ːaʊə])j([. ])', "%1i̯%2") -- diphthongs: ay, oy, ûy, êy, eyy
peyv = mw.ustring.gsub(peyv, '([ːaʊə])j$', "%1i̯") -- diphthongs: ay, oy, ûy, êy, ey
peyv = mw.ustring.gsub(peyv, '([ːaʊə])w([. ])', "%1u̯%2") -- diphthongs: aw, ow, îw, êw, ew
peyv = mw.ustring.gsub(peyv, '([ːaʊə])w$', "%1u̯") -- diphthongs: aw, ow, îw, êw, ew
peyv = mw.ustring.gsub(peyv, 'ai̯', "ɛi̯") -- diphthong ey
peyv = mw.ustring.gsub(peyv, '̞ː([iu])', "ː%1") -- removing ̞
peyv = mw.ustring.gsub(peyv, '([bʤʧdɡknqsʃt])weː([iu])', "%1øe%2") -- diphthong öy, öw
peyv = mw.ustring.gsub(peyv, '([bʤʧdɡknqsʃt])we̞ː', "%1øe̯") -- diphthong ö
peyv = mw.ustring.gsub(peyv,'n([ɡk])',"ŋ%1") -- velarized n before velar plosive consonants
peyv = mw.ustring.gsub(peyv, 'k([ieøj])', "c%1") -- palataized k before y and front vowels
peyv = mw.ustring.gsub(peyv, 'ɡ([ieøj])', "ɟ%1") -- palataized g before y and front vowels
peyv = mw.ustring.gsub(peyv, '^ɾ', "r") -- initial r should be trill
peyv = mw.ustring.gsub(peyv, 'ja([^ː])', "jɛ%1") -- ye
peyv = mw.ustring.gsub(peyv, 'o̞ː([rɾ])', "ɔː%1") -- or(r)
return peyv
end
function export.IPA(frame)
local peyvT = {}
-- recovery of the text and transliteration by t.translit() function (recovered in [[Modul:ku-translit]])
for _, peyv in ipairs(frame:getParent().args) do
-- exception to the transliteration
peyv = mw.ustring.gsub(peyv,'ئ','ʔ')
-- table with transliteration
table.insert(peyvT, translit(peyv))
end
-- recovery the page title and transliteration
if #peyvT == 0 then
peyvT = {translit(mw.title.getCurrentTitle().text)}
end
-- IPA
for key, peyv in ipairs(peyvT) do
peyvT[key] = IPA_peyv(peyv)
end
return '[[Wîkîferheng:IPA kurdî|IPA]]: <span class="IPA">/' .. table.concat(peyvT, '/, /') .. '/</span>'
end
return export