Module:pollasena-roots: Difference between revisions
No edit summary |
No edit summary Tag: Manual revert |
||
| (6 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 | local etymologies = {} | ||
-- iterate in stable order | |||
for | for _, ancestor in ipairs(ancestor_codes) do | ||
local code = ancestor.code | |||
local lang_options = ancestor.options or {} | |||
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 | ||
ancestor_params[1].allow_holes = true | |||
end | end | ||
local parsed = 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 141: | Line 143: | ||
lang = ancestor_lang, | lang = ancestor_lang, | ||
}) | }) | ||
if not | local terms = parsed.terms | ||
-- ensure at least one term exists | |||
if not terms[1] then | |||
terms[1] = { lang = ancestor_lang } | |||
end | end | ||
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 | terms = terms, | ||
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 174: | 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"} | ||
} | } | ||