Module:la-utilities
Jump to navigation
Jump to search
- The following documentation is located at Module:la-utilities/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
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:
- Module:la-utilities/testcases
- Module:la-nominal
- Module:la-noun/data
- Module:la-adj/data
- Module:la-verb
- Module:la-headword
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[1] == 'strip_macrons') then
return (lang:makeEntryName(frame.args[2]))
end
if type(p[frame.args[1]]) == 'function' then
return p[frame.args[1]](frame.args[2], frame.args[3])
else
return p[frame.args[1]][frame.args[2]]
end
end
function export.strip_macrons(frame_or_text)
if type(frame_or_text) == "table" then
frame_or_text = frame_or_text.args[1]
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[1]
local val = pattern[2]
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