48,355
edits
No edit summary |
|||
| (5 intermediate revisions by the same user not shown) | |||
| Line 12: | Line 12: | ||
local m_IPA = require("Module:IPA") | local m_IPA = require("Module:IPA") | ||
local vowels_spelling = " | local vowels_spelling = "aeiouyůảẻỉỏủỷ" | ||
local vowels = "[aɑæɔoʊuʏyɛœøiɪe]" | local vowels = "[aɑæɔoʊuʏyɛœøiɪe]" | ||
local lazy_consonants = "[^" .. vowels_spelling .."]" | local lazy_consonants = "[^" .. vowels_spelling .."]" | ||
| Line 20: | Line 20: | ||
["y"] = "ʏ", ["i"] = "ɪ", ["e"] = "ɛ", | ["y"] = "ʏ", ["i"] = "ɪ", ["e"] = "ɛ", | ||
["u"] = "ʊ", ["o"] = "ɔ", ["a"] = "ɑ", | ["u"] = "ʊ", ["o"] = "ɔ", ["a"] = "ɑ", | ||
["ů"] = "œ" | |||
} | } | ||
local long_vowels = { | local long_vowels = { | ||
["ả"] = "æː", ["ẻ"] = "eː", ["ỉ"] = "iː", | ["ả"] = "æː", ["ẻ"] = "eː", ["ỉ"] = "iː", | ||
["ỏ"] = "oː", ["ủ"] = "uː", ["ỷ"] = "yː", | ["ỏ"] = "oː", ["ủ"] = "uː", ["ỷ"] = "yː", | ||
| Line 46: | Line 45: | ||
end | end | ||
end | end | ||
local export = {} | local export = {} | ||
local | function export.vowel_harmony(term) | ||
local polarity = { | |||
["au"] = "back", ["[ei]?u[oa]?"] = "back", ["o[ai]?"] = "back", ["[ủỏ]"] = "back", | |||
["a[iy]"] = "front", ["ey"] = "front", ["ů[aei]?"] = "front", ["[ei]ů"] = "front", ["[ủỷả]"] = "front" | |||
" | } | ||
for pat, harmony in pairs(polarity) do | |||
if find(term, pat) then return harmony end | |||
end | |||
return "neutral" | |||
end | |||
--[[ | -- exportable to be used by [[Module:pine-noun]] | ||
function export.syllabify_from_spelling(term, is_ipa) | |||
function export.syllabify_from_spelling(term) | |||
local vowels = "[" .. vowels_spelling .. "]" | local vowels = "[" .. vowels_spelling .. "]" | ||
local consonants = consonants_spelling --lazy_consonants | local consonants = consonants_spelling --lazy_consonants | ||
| Line 73: | Line 74: | ||
word = gsub(word, "·(" .. consonants .. ")(" .. consonants .. "+)", "%1·%2") | word = gsub(word, "·(" .. consonants .. ")(" .. consonants .. "+)", "%1·%2") | ||
word = gsub(word, "(" .. consonants .. ")·%1", "·%1%1") | word = gsub(word, "(" .. consonants .. ")·%1", "·%1%1") | ||
word = gsub(word, "(" .. vowels .. ")(" .. consonants .. ")·v(" .. vowels .. ")", "%1·%2v%3") | |||
word = gsub(word, "(" .. vowels .. ")t·([ʦʧ])(" .. vowels .. ")", "%1·t%2%3") | |||
words[i] = word | words[i] = word | ||
end | end | ||
term = table.concat(words, " ") | |||
if not is_ipa then | |||
term = gsub(term, "([ʦʧ])", {["ʦ"] = "ts", ["ʧ"] = "tṡ"}) | |||
end | |||
return term | |||
end | end | ||
function export.crux(term) | function export.crux(term) | ||
term = export.syllabify_from_spelling(term) | term = export.syllabify_from_spelling(term, true) | ||
-- default to short lax vowels | -- default to short lax vowels | ||
term = gsub(term, "[ | term = gsub(term, "[aeiouyů]", laxen) | ||
-- long vowels | -- long vowels | ||
term = gsub(term, "([ảẻỉỏủỷ])", long_vowels) | |||
term = gsub(term, "ɔɑ", "ɑː"); term = gsub(term, "ɛœ", "øː") | term = gsub(term, "ɔɑ", "ɑː"); term = gsub(term, "ɛœ", "øː") | ||
-- diphthongized vowels | -- diphthongized vowels | ||
| Line 112: | Line 112: | ||
term = gsub(term, "(.)%1", "%1ː"); term = gsub(term, "ng", "ŋː") | term = gsub(term, "(.)%1", "%1ː"); term = gsub(term, "ng", "ŋː") | ||
local final_subs = { | local final_subs = { | ||
["ʧ"] = "t͡ʃ", | ["ʧ"] = "t͡ʃ", | ||
| Line 121: | Line 120: | ||
["ṇ"] = "n" .. c.ringbelow, | ["ṇ"] = "n" .. c.ringbelow, | ||
["ṛ"] = "r" .. c.ringbelow, | ["ṛ"] = "r" .. c.ringbelow, | ||
["·"] = ".", | |||
} | } | ||
term = gsub(term, "[ | term = gsub(term, "[ʧʦgƛṃṇṛ·]", final_subs) | ||
return term | return term | ||