Module:pollasena-roots: Difference between revisions

No edit summary
No edit summary
Tag: Manual revert
 
(7 intermediate revisions by the same user not shown)
Line 115: Line 115:
local dest_lang = m_lang.getByCode(dest_code)
local dest_lang = m_lang.getByCode(dest_code)
local ancestor_lang, etymology
local etymologies = {}
 
local ancestor_params, terms, args, etymologies = {}, {}, {}, {}
-- iterate in stable order
for ancestor_code, lang_options in pairs(ancestor_codes) do
for _, ancestor in ipairs(ancestor_codes) do
ancestor_params = {
local code = ancestor.code
["nocat"] = {type = "boolean"},
local lang_options = ancestor.options or {}
["nocap"] = {type = "boolean"},
 
local ancestor_lang = m_lang.getByCode(code)
 
local ancestor_params = {
[1] = {
[1] = {
required = not lang_options.optional,
required = not lang_options.optional,
list = lang_options.roots,
list = lang_options.roots,
default = lang_options.default,
},
},
}
}
 
if lang_options.roots then
if lang_options.roots then
params[1].allow_holes = true
ancestor_params[1].allow_holes = true
end
end
 
ancestor_lang = m_lang.getByCode(ancestor_code)
local parsed = m_param_utils.parse_term_with_inline_modifiers_and_separate_params({
terms, arg = m_param_utils.parse_term_with_inline_modifiers_and_separate_params({
params = ancestor_params,
params = ancestor_params,
param_mods = param_mods,
param_mods = param_mods,
Line 140: Line 142:
termarg = 1,
termarg = 1,
lang = ancestor_lang,
lang = ancestor_lang,
sc = "sc.default",
})
})
 
if not terms.terms[1] then
local terms = parsed.terms
terms.terms[1] = {
 
lang = ancestor_lang,
-- ensure at least one term exists
}
if not terms[1] then
terms[1] = { lang = ancestor_lang }
end
end
 
terms = terms.terms
local etymology = m_etym.format_derived({
etymology = m_etym.format_derived({
lang = dest_lang,
lang = dest_lang,
sources = ancestor_lang,
sources = { ancestor_lang },
terms = terms[ancestor_code],
terms = terms,
nocat = args.nocat,
nocat = parent_args.nocat,
template_name = "derived",
template_name = "derived",
})
})
 
table.insert(etymologies, etymology)
table.insert(etymologies, etymology)
end
end
 
return etymologies
return etymologies
end
end
Line 175: Line 176:
local dest_lang = m_lang.getByCode("qsc")
local dest_lang = m_lang.getByCode("qsc")
local ancestor_codes = {
local ancestor_codes = {
["sekh"] = {},
["sekh"] = {default = "asʰilavən"},
["wasc"] = {optional = true, roots = true}
["wasc"] = {optional = true, roots = true, default = "asł-ila"}
}
}