Module:siwa-noun: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
Line 32: | Line 32: | ||
local lenition = { | local lenition = { | ||
["bb"] = "b", ["dd"] = "d", ["gg"] = "g", | ["bb"] = "b", ["dd"] = "d", ["gg"] = "g", ["gį"] = "į", ["mm"] = "m", ["ll"] = "l", ["nn"] = "n", | ||
["rr"] = "r", ["bġ"] = "p", ["pr"] = "p", ["dġ"] = "t", ["tr"] = "t", ["ḍb"] = "p", ["ḍḍ"] = "hh", | |||
["ḍg"] = "k", ["bm"] = "m", ["dn"] = "n", ["kn"] = "ng", ["([lr])pp"] = "%1p", ["([lr])tt"] = "%1t", ["([lrms])kk"] = "%1k", | |||
["k([lvs])"] = "g%1", ["ps"] = "bs", ["[vųbhḥg]"] = "", ["d[aoul]"] = "l", ["ġ[aou]"] = "vv", ["[dġ][eůy]"] = "", ["[rġ]i"] = "ṡi", | |||
["di"] = "", ["nįi"] = "gįi", ["hhį"] = "ṡ", ["[ou]ų"] = "ů", | |||
} | } | ||
Revision as of 16:00, 4 February 2021
- The following documentation is located at Module:siwa-noun/doc.[edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
local export = {}
local m_u = require('Module:utilities')
local m_pron = require('Module:siwa-pron')
local m_data = require('Module:siwa-noun/data')
local sub = mw.ustring.sub
local find = mw.ustring.find
local gmatch = mw.ustring.gmatch
local gsub = mw.ustring.gsub
local u = mw.ustring.char
local split = mw.text.split
local gsplit = mw.text.gsplit
local UNRELEASED = u(0x031A) -- COMBINING LEFT ANGLE ABOVE. ̚
local vowel = "[iɪyeøɛœæauɔ̃ɑʊ]"
function syll_count(term)
term = m_pron.crux(term, true, false, false)
local xc = "[mnɲŋpbtdcɟkɡvðsɕzʑxɣhrlɬjw⁽ʰ⁾ʔː̥͡"..UNRELEASED.."]"
local pattern = "(" .. xc .. "?" .. vowel .. "+ː?" .. xc .. "*)"
local _, n = gsub(term, pattern, "%1")
return n
end
local stressedvowels = {
["ả"] = "a", ["a[ui]"] = "a", ["oa"] = "a", ["[eẻę]"] = "e", ["e[iu]"] = "e",
["ay"] = "e", ["[iỉ]"] = "i", ["i[aeou]"] = "i", ["[oỏõ]"] = "o", ["[oõ]u"] = "o",
["oi"] = "o", ["[uủ]"] = "u", ["u[oi]"] = "u", ["[yỷ]"] = "y", ["ů[ai]?"] = "y", ["ẻu"] = "y", ["ey"] = "y",
}
local lenition = {
["bb"] = "b", ["dd"] = "d", ["gg"] = "g", ["gį"] = "į", ["mm"] = "m", ["ll"] = "l", ["nn"] = "n",
["rr"] = "r", ["bġ"] = "p", ["pr"] = "p", ["dġ"] = "t", ["tr"] = "t", ["ḍb"] = "p", ["ḍḍ"] = "hh",
["ḍg"] = "k", ["bm"] = "m", ["dn"] = "n", ["kn"] = "ng", ["([lr])pp"] = "%1p", ["([lr])tt"] = "%1t", ["([lrms])kk"] = "%1k",
["k([lvs])"] = "g%1", ["ps"] = "bs", ["[vųbhḥg]"] = "", ["d[aoul]"] = "l", ["ġ[aou]"] = "vv", ["[dġ][eůy]"] = "", ["[rġ]i"] = "ṡi",
["di"] = "", ["nįi"] = "gįi", ["hhį"] = "ṡ", ["[ou]ų"] = "ů",
}
local function detect_decl(word, sv, quality)
if sv and quality then
local decl = sv .. "-" .. quality
end
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local params = {
[1] = { required = true },
[2] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local stems = nil
local decl_type = {}
local word = mw.title.getCurrentTitle().title
end
return export