Module:accel: Difference between revisions
Created page with "local export = {} local form_of_module = "Module:form of" local form_of_data_module = "Module:form of/data" local m_str_utils = require("Module:string utilities") local m_table = require("Module:table") local append = m_table.append local assert = assert local concat = table.concat local contains = m_table.contains local deep_copy = m_table.deepCopy local deep_equals = require("Module:table/deepEquals") local extend = m_table.extend local insert = table.insert local i..." |
No edit summary |
||
| Line 115: | Line 115: | ||
insert(parts, ("|head%s=%s"):format(paramnum, target.term)) | insert(parts, ("|head%s=%s"):format(paramnum, target.term)) | ||
end | end | ||
if target. | if target.tr then | ||
insert(parts, ("|tr%s=%s"):format(paramnum, target. | insert(parts, ("|tr%s=%s"):format(paramnum, target.tr)) | ||
end | end | ||
end | end | ||
| Line 136: | Line 136: | ||
end | end | ||
insert(parts, ("|%s%s"):format(termparam, origin.term)) | insert(parts, ("|%s%s"):format(termparam, origin.term)) | ||
if origin. | if origin.tr then | ||
insert(parts, ("|%s%s"):format(trparam, origin. | insert(parts, ("|%s%s"):format(trparam, origin.tr)) | ||
end | end | ||
end | end | ||
| Line 190: | Line 190: | ||
entry.pos_header = "Participle" | entry.pos_header = "Participle" | ||
entry.head = make_head("past participle") | entry.head = make_head("past participle") | ||
elseif (params.form == "perf|part" or params.form == "perf|ptcp") and params.pos == "verb" then | |||
entry.pos_header = "Participle" | |||
entry.head = make_head("perfect participle") | |||
elseif (params.form == "pres|part" or params.form == "pres|ptcp") and params.pos == "verb" then | elseif (params.form == "pres|part" or params.form == "pres|ptcp") and params.pos == "verb" then | ||
entry.pos_header = "Participle" | entry.pos_header = "Participle" | ||
| Line 938: | Line 941: | ||
local function | local function split_and_zip_term_and_tr(encoded_term, encoded_tr) | ||
local terms = split(encoded_term, split_term_regex) | local terms = split(encoded_term, split_term_regex) | ||
local | local trs = encoded_tr and split(encoded_tr, split_term_regex) or {} | ||
if # | if #trs > #terms then | ||
error(("Saw %s translits, which is > the %s terms seen: encoded_term=%s, | error(("Saw %s translits, which is > the %s terms seen: encoded_term=%s, encoded_tr=%s"): | ||
format(# | format(#trs, #terms, encoded_term, encoded_tr)) | ||
end | end | ||
local result = {} | local result = {} | ||
for i, term in ipairs(terms) do | for i, term in ipairs(terms) do | ||
local | local tr = trs[i] | ||
if | if tr == "" then | ||
tr = nil | |||
end | end | ||
insert(result, {term = term, | insert(result, {term = term, tr = tr}) | ||
end | end | ||
return result | return result | ||
| Line 957: | Line 960: | ||
local function | local function paste_term_tr(termobj) | ||
if termobj. | if termobj.tr then | ||
return termobj.term .. "//" .. termobj. | return termobj.term .. "//" .. termobj.tr | ||
else | else | ||
return termobj.term | return termobj.term | ||
| Line 1,021: | Line 1,024: | ||
params.form = params.form:gsub("|", "|") | params.form = params.form:gsub("|", "|") | ||
params.targets = | params.targets = split_and_zip_term_and_tr(params.target, params.transliteration) | ||
params.origins = | params.origins = split_and_zip_term_and_tr(params.origin, params.origin_transliteration) | ||
for _, origin in ipairs(params.origins) do | for _, origin in ipairs(params.origins) do | ||
add_item(seen_origins, | add_item(seen_origins, paste_term_tr(origin), origin) | ||
end | end | ||
for _, target in ipairs(params.targets) do | for _, target in ipairs(params.targets) do | ||
add_item(seen_targets, | add_item(seen_targets, paste_term_tr(target), target) | ||
end | end | ||