Module:qlu-pron: Difference between revisions
No edit summary |
No edit summary |
||
| Line 204: | Line 204: | ||
function export.crux(term, outputs) | function export.crux(term, outputs) | ||
local ret = {dialectal = {}} | local ret = {["dialectal"] = {}} | ||
term = mw.ustring.lower(term) | term = mw.ustring.lower(term) | ||
| Line 242: | Line 242: | ||
phonetic = gsub(phonetic, rule[1], rule[2]) | phonetic = gsub(phonetic, rule[1], rule[2]) | ||
upper = gsub(upper, rule[1], rule[2]) | upper = gsub(upper, rule[1], rule[2]) | ||
bolognese = gsub(bolognese, rule[1], rule[2]) | |||
paulistan = gsub(paulistan, rule[1], rule[2]) | |||
end | end | ||
| Line 263: | Line 265: | ||
return ret | return ret | ||
end | end | ||
function merge_tables(foo, bar) | |||
local merged = {} | |||
for key, value in pairs(foo) do | |||
if type(value) == "table" and type(bar[key]) == "table" then | |||
merged[key] = merge_tables(value, bar[key]) | |||
elseif type(value) == "string" and type(bar[key]) == "string" then | |||
merged[key] = value .. " " .. bar[key] | |||
else | |||
merged[key] = value or bar[key] | |||
end | |||
end | |||
for key, value in pairs(bar) do | |||
if merged[key] == nil then | |||
merged[key] = value | |||
end | |||
end | |||
return merged | |||
end | |||
function separate_word(term) | function separate_word(term) | ||
local final_ret = nil | |||
for word in gsplit(term, " ") do | |||
local pron = export.crux(word) | |||
if not final_ret then | |||
final_ret = pron | |||
else | |||
final_ret = merge_tables(final_ret, pron) | |||
end | |||
end | |||
return final_ret | |||
end | end | ||
function export.show(frame) | function export.show(frame) | ||
local parent_args = frame:getParent().args | |||
local params = { | |||
[1] = { default = mw.title.getCurrentTitle().nsText == 'Template' and "aggiu" or mw.title.getCurrentTitle().text }, | |||
} | |||
local args = require("Module:parameters").process(parent_args, params) | |||
local term = args[1] | |||
local ret = separate_word(term) | |||
-- Format the IPA output using the phonetic transcription | |||
local IPA_args = { { pron = '[' .. ret.dialectal.upper .. ']' } } | |||
return "* " .. m_IPA.format_IPA_full({ lang = lang, items = IPA_args }) | |||
end | end | ||
return export | return export | ||