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 | local dialects = {} | ||
term = mw.ustring.lower(term) | term = mw.ustring.lower(term) | ||
| Line 254: | Line 254: | ||
return "/" .. phonemic .. "/ [" .. phonetic .. "]" | return "/" .. phonemic .. "/ [" .. phonetic .. "]" | ||
end | end | ||
dialects["upper"] = upper | |||
dialects["bolognese"] = bolognese | |||
dialects["paulistan"] = paulistan | |||
return phonemic, phonetic, dialects | |||
end | end | ||
function merge_tables(foo, bar) | function merge_tables(foo, bar) | ||
local | local merged_table = {} | ||
for key, | for key, value1 in pairs(foo) do | ||
local value2 = bar[key] | |||
if value2 then | |||
merged_table[key] = value1 .. " ".. value2 | |||
else | else | ||
merged_table[key] = value1 | |||
end | end | ||
end | end | ||
for key, | for key, value2 in pairs(bar) do | ||
if | if not merged_table[key] then | ||
merged_table[key] = value2 | |||
end | end | ||
end | end | ||
return merged_table | |||
end | |||
function separate_word(term) | function separate_word(term) | ||
local phonemic, phonetic, dialects = {}, {}, {} | |||
for word in gsplit(term, " ") do | for word in gsplit(term, " ") do | ||
m, t, d = export.crux(word) | |||
if | if #phonemic > 0 then | ||
phonemic, phonetic, dialects = {m}, {t}, d | |||
else | else | ||
table.insert(phonemic, m) | |||
table.insert(phonetic, t) | |||
d = merge_tables(dialects, d) | |||
end | end | ||
end | end | ||
return | return phonemic, phonetic, dialects | ||
end | end | ||
| Line 312: | Line 310: | ||
local term = args[1] | local term = args[1] | ||
local | local phonemic, phonetic, dialects = separate_word(term) | ||
local IPA_args = {{pron = '/' . | local IPA_args = {{pron = '/' .. phonemic .. '/', a = "Standard Ravennese"}, {pron = '[' .. phonetic .. ']'}} | ||
for key, value in pairs( | for key, value in pairs(dialects) do | ||
if value ~= | if value ~= phonemic then | ||
table.insert(IPA_args, {pron = '[' .. value .. ']', a = sub(key, 1, 1), separator = "\n** "}) | table.insert(IPA_args, {pron = '[' .. value .. ']', a = sub(key, 1, 1), separator = "\n** "}) | ||
end | end | ||