Module:sl-common
Jump to navigation
Jump to search
- The following documentation is located at Module:sl-common/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
local export = {}
local u = require("Module:string/char")
local GRAVE = u(0x0300)
local ACUTE = u(0x0301)
local MACRON = u(0x0304)
local DGRAVE = u(0x030F)
local INVBREVE = u(0x0311)
function export.has_accents(word)
if mw.ustring.find(mw.ustring.lower(word), "[áéíóŕúȃȇȋȏȓȗāēīōūȁȅȉȍȕèẹọ" .. GRAVE .. ACUTE .. MACRON .. DGRAVE .. INVBREVE .. "]") then
return true
else
return false
end
end
function export.remove_accents(text)
return (require("Module:languages").getByCode("sl"):makeEntryName(text))
end
function export.is_soft(stem)
if mw.ustring.find(stem, "[cjčšž]$") then
return true
else
return false
end
end
function export.first_palat(stem)
if stem:sub(-2) == "k" then return stem:sub(1, -2) .. "č"
elseif stem:sub(-2) == "g" then return stem:sub(1, -2) .. "ž"
elseif stem:sub(-3) == "sk" then return stem:sub(1, -3) .. "šč"
else return stem
end
end
function export.second_palat(stem)
if stem:sub(-2) == "k" then return stem:sub(1, -2) .. "c"
elseif stem:sub(-2) == "g" then return stem:sub(1, -2) .. "z"
else return stem
end
end
function export.iotation(stem)
if stem:sub(-2) == "sk" then return stem:sub(1, -3) .. "šč"
elseif stem:sub(-2) == "sl" then return stem:sub(1, -3) .. "šlj"
elseif stem:sub(-1) == "t" or stem:sub(-1) == "k" or stem:sub(-1) == "c" then return stem:sub(1, -2) .. "č"
elseif stem:sub(-1) == "g" or stem:sub(-1) == "z" then return stem:sub(1, -2) .. "ž"
elseif stem:sub(-1) == "h" or stem:sub(-1) == "s" then return stem:sub(1, -2) .. "š"
elseif stem:sub(-1) == "d" then return stem:sub(1, -2) .. "j"
elseif stem:sub(-1) == "m" then return stem:sub(1, -2) .. "mlj"
elseif stem:sub(-1) == "p" then return stem:sub(1, -2) .. "plj"
elseif stem:sub(-1) == "b" then return stem:sub(1, -2) .. "blj"
elseif stem:sub(-1) == "v" then return stem:sub(1, -2) .. "vlj"
else return stem
end
end
function export.t(stem)
if mw.ustring.find(stem, "st$") then return stem
elseif mw.ustring.find(stem, "[bp]$") then return stem .. "st"
elseif mw.ustring.find(stem, "[dtz]$") then return (mw.ustring.gsub(stem, ".$", "st"))
elseif mw.ustring.find(stem, "[čgkrž]$") then return (mw.ustring.gsub(stem, ".$", "č"))
else return stem .. "t"
end
end
return export