Module:ábḫ-ipa/remake: Difference between revisions

no edit summary
No edit summary
No edit summary
 
(34 intermediate revisions by the same user not shown)
Line 25: Line 25:
local export = {}
local export = {}


local composer = {
local vowels = "[aäeɛʊiɪɔɐ" .. NONSYLL .. "]"
["s"] = "s",
local consonants = "[βðɺɕθʑɲjxɦDGPTKBmnpkɟt]"
}
local tones = "[ˆˇ´]"
 
local start_rules = {
{"á", "a´"},
{"aá", "aaˇ"}, {"áa", "aaˆ"}, {"ií", "iiˇ"}, {"íi", "iiˆ"},
{"eí", "eːˇi"}, {"oú", "oːˇu"}, {"aa", "aː"}, {"ii", "iː"}, {"o", "ɔ"},
{"(" .. vowels .. "ː?" .. tones .. "?).", "%1ɪ" .. NONSYLL}, {"(" .. vowels .. "ː?" .. tones .. "?o)", "%1" .. NONSYLL},
{"(" .. vowels .. "ː?" .. tones .. "?)u", "%1ʊ" .. NONSYLL},
{"r", "ɺ"}, {"b", "β"}, {"g", "ɡ"}, {"o", "ɔ"}, {"a", "ä"}, {"s", "ɕ"}, {"z", "θ"}, {"d", "ð"},
{"jh", "ʑ"}, {"j", "ɲ"}, {"y", "j"}, {"ḫ", "x"}, {"h", "ɦ"}, {"nð", "D"},  
{"nɡ", "G"}, {"mp", "P"}, {"nt", "T"}, {"nk", "K"}, {"^mβ", "B"},
 


local vowels = "[aeɛʊiɪɔɐ]"


local rules = {
{"áa", "aa^"}, {"aá", "aaˇ"}, {"íi", "ii^"}, {"ií", "iiˇ"},
{"aa", "aː"}, {"ii", "iː"},
{vowels .. "i", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""},
{"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""},  
{"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""},  
{"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""},
{"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""},
{"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""},
{"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"´", "˦"}, {"ˆ", "˥˩"}, {"ˇ", "˩˥"},
}
 
local end_rules = {
{"g", "f"},
}
}


function export.test(frame)
local function syllable_and_stress(word)
return mw.ustring.toNFC("áā")
local syllables = {}
word = gsub(word, "(" .. consonants .. vowels .. ")", "·%1")
word = gsub(word, "^·", "")
syllables = split(word, "·")
if match(syllables[1], "^[mnjɲβDGPpTtKkBθðɕʑxɦɺ]?" .. vowels .. "ː?" .. tones) then
syllables[1] = "x" .. syllables[1] --table.insert(syllables, 1, "ˈ")
else
end
return table.concat(syllables, "-")
end
end


 
function export.show(word)
--local word = frame.args[1] or word
for _, srule in ipairs(start_rules) do
word = word:gsub(srule[1], srule[2])
end
word = syllable_and_stress(word)
for _, erule in ipairs(end_rules) do
word = word:gsub(erule[1], erule[2])
end
return word
end






return export
return export