Modul:IPA/templates

Üdvözlöm, Ön a Modul:IPA/templates szó jelentését keresi. A DICTIOUS-ban nem csak a Modul:IPA/templates szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a Modul:IPA/templates szót egyes és többes számban mondani. Minden, amit a Modul:IPA/templates szóról tudni kell, itt található. A Modul:IPA/templates szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. AModul:IPA/templates és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

A modult a Modul:IPA/templates/doc lapon tudod dokumentálni

local export = {}

local m_IPA = require("Module:IPA")

local U = mw.ustring.char
local syllabic = U(0x0329)

-- Used for ].
function export.IPA(frame)
	local parent_args = frame.getParent and frame:getParent().args or frame
	local params = {
		 = {required = true, default = "en"},
		 = {list = true, allow_holes = true},
		 = {list = true, allow_holes = true},
		 = {list = true, allow_holes = true},
		 = {type = "boolean"},
		 = {},
	}
	
	local args = require("Module:parameters").process(parent_args, params)
	local lang = args
	lang = require("Module:languages").getByCode(lang)
		or require("Module:languages").err(lang, 1)

	-- ]
	if lang and lang:getCode() == "grc" then
		require("Module:debug").track("IPA/grc")
	end
	
	local items = {}
	
	for i = 1, math.max(args.maxindex, args.maxindex) do
		local pron = args
		local note = args
		local qual = args
		
		if lang then
			require("Module:IPA/tracking").run_tracking(pron, lang)
		end
		
		if pron or note or qual then
			table.insert(items, {pron = pron, note = note, qualifiers = {qual}})
		end
	end
	
	return m_IPA.format_IPA_full(lang, items, nil, nil, args.sort, args.nocount)
end

-- Used for ].
function export.IPAchar(frame)
	local params = {
		 = {list = true, allow_holes = true},
		 = {list = true, allow_holes = true},
		 = {}, -- This parameter is not used and does nothing, but is allowed for futureproofing.
	}
	
	local args = require("Module:parameters").process(frame.getParent and frame:getParent().args or frame, params)
	
	local items = {}
	
	for i = 1, math.max(args.maxindex, args.maxindex) do
		local pron = args
		local note = args
		
		if pron or note then
			table.insert(items, {pron = pron, note = note})
		end
	end
	
	-- Format
	return m_IPA.format_IPA_multiple(nil, items)
end

function export.XSAMPA(frame)
	local params = {
		 = { required = true },
	}
	local args = require("Module:parameters").process(frame:getParent().args, params)
	
	return m_IPA.XSAMPA_to_IPA(args or "")
end

-- Used by ]
function export.X2IPAtemplate(frame)
	local parent_args = frame.getParent and frame:getParent().args or frame
	local compat = parent_args
	local offset = compat and 0 or 1

	local params = {
		 = {required = true, default = "und"},
		 = {list = true, allow_holes = true},
		 = { list = true, allow_holes = true },
		 = { list = true, allow_holes = true },
	}
	
	local args = require("Module:parameters").process(parent_args, params)
	
	local m_XSAMPA = require("Module:IPA/X-SAMPA")
	
	pronunciations, notes, qualifiers, lang = args, args, args, args
	
	local output = {}
	table.insert(output, "{{IPA")
	
	table.insert(output, "|" .. lang)

	for i = 1, math.max(pronunciations.maxindex, notes.maxindex, qualifiers.maxindex) do
		if pronunciations then
			table.insert(output, "|"..m_XSAMPA.XSAMPA_to_IPA(pronunciations))
		end
		if notes then
			table.insert(output, "|n"..i.."="..notes)
		end
		if qualifiers then
			table.insert(output, "|qual"..i.."="..qualifiers)
		end
	end
	
	table.insert(output, "}}")

	return table.concat(output)
end

-- Used by ]
function export.X2IPAchar(frame)
	local params = {
		 = { list = true, allow_holes = true },
		 = { list = true, allow_holes = true },
		 = { },
	}
	
	local args = require("Module:parameters").process(frame:getParent().args, params)
	
	local m_XSAMPA = require("Module:IPA/X-SAMPA")
	
	pronunciations, notes, lang = args, args, args
	
	local output = {}
	table.insert(output, "{{IPAchar")
	
	for i = 1, math.max(pronunciations.maxindex, notes.maxindex) do
		if pronunciations then
			table.insert(output, "|"..m_XSAMPA.XSAMPA_to_IPA(pronunciations))
		end
		if notes then
			table.insert(output, "|n"..i.."="..notes)
		end
	end
	
	if lang then
		table.insert(output, "|lang="..lang)
	end
	
	table.insert(output, "}}")
	
	return table.concat(output)
end

-- Used by ]
function export.X2rhymes(frame)
	local parent_args = frame.getParent and frame:getParent().args or frame
	local compat = parent_args
	local offset = compat and 0 or 1

	local params = {
		 = {required = true, default = "und"},
		 = {required = true, list = true, allow_holes = true},
	}
	
	local args = require("Module:parameters").process(parent_args, params)
	
	local m_XSAMPA = require("Module:IPA/X-SAMPA")
	
	pronunciations, lang = args, args
	
	local output =  {}
	table.insert(output, "{{rhymes")
	
	table.insert(output, "|" .. lang)

	for i = 1, pronunciations.maxindex do
		if pronunciations then
			table.insert(output, "|"..m_XSAMPA.XSAMPA_to_IPA(pronunciations))
		end
	end
	
	table.insert(output, "}}")
	
	return table.concat(output)
end

function export.IPAsplit(frame)
	local parent_args = frame.getParent and frame:getParent().args or frame
	local params = {
		 = {required = true, default = "en"},
		 = {required = true},
		 = {type = "boolean"},
		 = {},
	}

	local args = require("Module:parameters").process(parent_args, params)
	local lang = args
	lang = require("Module:languages").getByCode(lang)
		or require("Module:languages").err(lang, 1)

	-- ]
	if lang and lang:getCode() == "grc" then
		require("Module:debug").track("IPA/grc")
	end

	local items = {}
	
	if args:find(']') then
		for pron, posttext in args:gmatch('(.-])(*)') do
			table.insert(items, {pron = pron, posttext = posttext})
		end
	else
		table.insert(items, {pron = args})
	end

	if lang then
		for _, item in ipairs(items) do
			require("Module:IPA/tracking").run_tracking(item.pron, lang)
		end
	end

	return m_IPA.format_IPA_full(lang, items, nil, nil, args.sort, args.nocount)
end

return export