Modul:ku-SAMPA
Documentation for this module may be created at Modul:ku-SAMPA/belge
local export = {}
-- SAMPA kurdî
-- Alfabeya kurdî ya latînî
local letters1_phonemes = {
["a"] = "A:",
["b"] = "b",
["c"] = "dz",
["ç"] = "tS",
["d"] = "d",
["e"] = "E",
["ê"] = "e:",
["f"] = "f",
["g"] = "g",
["h"] = "h",
["i"] = "I",
["î"] = "i:",
["j"] = "Z",
["k"] = "k",
["l"] = "l",
-- ["l2"] = "5",
["m"] = "m",
["n"] = "n",
["o"] = "o:",
["p"] = "p",
["q"] = "q",
-- ["r1"] = "4",
["r"] = "r",
["s"] = "s",
["ş"] = "S",
["t"] = "t",
["u"] = "U",
["û"] = "u:",
["v"] = "v",
["w"] = "w",
["x"] = "x",
["y"] = "j",
["z"] = "z",
-- Tîpên taybet (soranî)
["ẍ"] = "G", -- mînak: aẍa
["ḧ"] = "h\\",
["ʿ"] = "?\\",
["'"] = "?\\",
-- ["ll"] = "5", -- an jî /lˁ/; bi erebî (ڵ)
-- ["rr"] = "r" bi erebî (ڕ)
-- Kurdiya başûr (kirmaşanî)
["ł"] = "5", -- bnr. "ll"; mînak bał, diɫ
["ň"] = "-", -- mînak: maň, seň
["ř"] = "r", -- bnr. 'rr'; mînak: piř
["ü"] = "y:" -- mînak: tü
}
-- Jihevqetandin
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 SAMPA_peyv(peyv)
peyv = mw.ustring.lower(peyv) -- nivîsa biçûk
peyv = syllabify(peyv)
peyv = mw.ustring.gsub(peyv, '.', letters1_phonemes)
peyv = mw.ustring.gsub(peyv,'xw','x_w') -- mînak: maň, seň
peyv = mw.ustring.gsub(peyv,'nɡ','Ng') -- minak: ferheng
peyv = mw.ustring.gsub(peyv,'nk','gk') -- minak: bank
peyv = mw.ustring.gsub(peyv, '^ɾ', "r") -- mînak: roj
peyv = mw.ustring.gsub(peyv,'ɾɾ','r') -- mînak: pirr; bi erebî (ڕ)
peyv = mw.ustring.gsub(peyv, 'll', '5') -- an jî /lˁ/; mînak: bi soranî gull (گوڵ) (bi kurmancî gul); bi erebî (ڵ)
peyv = mw.ustring.gsub(peyv,'ɘj','i:') -- iy → îy
-- + Giranî (stress) li ser kîteya dawî
tab_peyv = mw.text.split(peyv, '%.')
if (#tab_peyv ~= 1) then
tab_peyv[#tab_peyv] = "\"" .. tab_peyv[#tab_peyv]
end
peyv = table.concat(tab_peyv, '')
sampa = peyv
-- Add default stress mark if not present
if not mw.ustring.find(sampa, "") then
sampa = "" .. sampa
end
return sampa
end
function export.SAMPA(frame)
local peyvT = {}
for _, peyv in ipairs(frame:getParent().args) do
table.insert(peyvT, peyv)
end
if #peyvT == 0 then
peyvT = {mw.title.getCurrentTitle().text}
end
for key, peyv in ipairs(peyvT) do
peyvT[key] = SAMPA_peyv(peyv)
end
return '[[Wîkîferheng:SAMPA kurdî|SAMPA]]: <span class="SAMPA">/' .. table.concat(peyvT, '/, /') .. '/</span>'
end
return export