Belgekirina modulê[nîşan bide] [biguhêre] [rojane bike]
Ev belge ji Modul:ku-bilêvkirin/belge hatiye girtin.

Bikaranîn

Şablon:

Binêre jî:

local export = {}
local b = require("Modul:bingeh")
-- IPA kurdî
-- Alfabeya kurdî ya latînî
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ü
	
	--- Tîpên ne kurdî
	["ṣ"] = "sˤ", -- ص‎
	["ṭ"] = "tˤ", -- ط
	["ẓ"] = "zˤ"
}

-- Kîtekirin
local dengder = "aeiîuûêoAEÊIÎOUÛ"
local dengderek = "[" .. dengder .. "]"
local bedeng = "[^" .. dengder .. ". -]"
local kitekirin_sablon = "(" .. dengderek .. ")(" .. bedeng .. "?)(" .. bedeng .. "?)(" .. dengderek .. ")"

local function kitekirin(peyv)
	peyv = mw.ustring.gsub(peyv, "%-(" .. bedeng .. ")%-(" .. bedeng .. ")", "%1.%2")
	peyv = string.gsub(peyv, "%-", ".")
	
	-- Add syllable breaks.
	for count = 1, 2 do
		peyv = mw.ustring.gsub(
			peyv,
			kitekirin_sablon,
			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Ûaeêiîouûy])([^AEÊIÎOUÛaeêiîouûy. ])([^AEÊIÎOUÛaeêiîouûy. ])([^AEÊIÎOUÛaeêiîouûy. ])', "%1%2%3.%4")
	
	return peyv
end

local function IPA_peyv(peyv)
	peyv = mw.ustring.lower(peyv) -- nivîsa biçûk
	
    peyv = mw.ustring.gsub(peyv,"k%(h%)", "kʰ") --  k(h) --> kʰ
    peyv = mw.ustring.gsub(peyv,"p%(h%)", "pʰ") --  p(h) --> pʰ
    peyv = mw.ustring.gsub(peyv,"t%(h%)", "tʰ") --  t(h) --> tʰ
    peyv = mw.ustring.gsub(peyv,"x%(w%)", "xʷ") --  x(w) --> xʷ
    peyv = mw.ustring.gsub(peyv,"%('%)", "ˤ") --  s(') --> sˤ 
	peyv = mw.ustring.gsub(peyv,'xw', 'xʷ') -- mînak: xwarin
    peyv = mw.ustring.gsub(peyv,'nɡ', 'ŋɡ') -- minak: ferheng
    peyv = mw.ustring.gsub(peyv,'nk', 'ŋk') -- minak: bank
    peyv = mw.ustring.gsub(peyv, 'll', 'ɫ') -- an jî /lˁ/;  mînak: bi soranî gull (گوڵ) (bi kurmancî gul); bi erebî (ڵ)
    
	peyv = kitekirin(peyv)
	peyv = mw.ustring.gsub(peyv, '.', letters1_phonemes)
	
    peyv = mw.ustring.gsub(peyv,"t͡ʃ%(h%)" ,"t͡ʃʰ") --  ç(h) --t͡ʃʰ
    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,'ɪj', 'iː') -- iy → îy
	
    if mw.ustring.find(peyv, "\\ʕ") then
    	kat =  "[[Kategorî:Giranî (dij rêgezê)]]"
    else
    	kat = ''
    end
    
    peyv = mw.ustring.gsub(peyv,"\\ʕ", "'") -- Giranî (stress)
    peyv = mw.ustring.gsub(peyv,'"', "'") -- Giranî (stress)
    
	-- + Giranî (stress) li ser kîteya dawî
	tab_peyv =  mw.text.split(peyv, ' ')
	for k, v in ipairs(tab_peyv) do
		tab_kite = mw.text.split(v, '%.')
		if not mw.ustring.find(v, "'") then
			if (#tab_kite ~= 1) then
				tab_kite[#tab_kite] = "ˈ" .. tab_kite[#tab_kite]
			end
		end
		tab_peyv[k] = table.concat(tab_kite, '')
	end
	
	ipa =  table.concat(tab_peyv, ' ')
	
	-- Add default stress mark if not present
	if not mw.ustring.find(ipa, "") then
		ipa = "" .. ipa
	end
	
	return {ipa, kat}
end

function export.IPA(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] = IPA_peyv(peyv)[1] .. IPA_peyv(peyv)[2]
	end
	
	return  '[[IPA]]<sup>([[Wîkîferheng:IPA kurdî|kilîd]])</sup>: <span class="IPA">/' .. table.concat(peyvT, '/, /') .. '/</span>'
		.. b.bike_kategori_naverok("Bilêvkirina IPAyê bi kurmancî")
end

function export.kite(frame)
	local peyv
	
	if (frame:getParent().args[1]) then
		peyv = frame:getParent().args[1]
	else
		peyv = mw.title.getCurrentTitle().text
	end
	
	return (mw.ustring.gsub(kitekirin(peyv), '%.', '·'))
end

return export