Module for working with Latin text.
Functions:
strip_macrons(text)
: Return text minus macrons, breves, etc.make_stem2(stem)
: Return third-declension stem based on nominative singular.See also:
local m_links = require('Module:links')
local export = {}
local lang = require("Module:languages").getByCode("la")
-- A wrapper function allowing the contents of this module to be called from
-- templates. For example, '{{#invoke:la-utilities|main|strip_macrons|mȳthos}}'
-- produces 'mythos'.
function export.main(frame)
if(frame.args == 'strip_macrons') then
return (lang:makeEntryName(frame.args))
end
if type(p]) == 'function' then
return p](frame.args, frame.args)
else
return p]]
end
end
function export.strip_macrons(frame_or_text)
if type(frame_or_text) == "table" then
frame_or_text = frame_or_text.args
end
return (lang:makeEntryName(frame_or_text))
end
local patterns = {
{"tūdō", "tūdin"},
{"is", ""},
{"ēs", ""},
{"āns", "ant"},
{"ēns", "ent"},
{"ōns", "ont"},
{"ceps", "cipit"},
{"us", "or"},
{"ex", "ic"},
{"ma", "mat"},
{"e", ""},
{"al", "āl"},
{"ar", "ār"},
{"men", "min"},
{"er", "r"},
{"or", "ōr"},
{"gō", "gin"},
{"ō", "ōn"},
{"ps", "p"},
{"bs", "b"},
{"s", "t"},
{"x", "c"},
}
function export.make_stem2(stem)
for _, pattern in ipairs(patterns) do
local key = pattern
local val = pattern
if mw.ustring.match(stem, key .. "$") then
stem = mw.ustring.gsub(stem, key .. "$", val)
require("Module:debug").track("la-utilities/" .. key)
return stem
end
end
require("Module:debug").track("la-utilities")
return stem
end
return export