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