Modul:SimplifiedEifelRule
| Dokumentatioun vum Modul:SimplifiedEifelRule | [liesen] [änneren] [Versioune weisen] |
D'Dokumentatioun fir dëst Modul steet hei ënnendrënner an ass vun der Säit Modul:SimplifiedEifelRule/doc hei agebonne ginn. Kuckt och: Hëllef:Moduler.
Mat dësem Modul kann een eng approximativ Versioun vun der Eifeler Reegel applizéieren.
D'Haaptfunktioun simplified_eifel_rule hëlt zwee Wierder entgéint: Wann dat zweet Wuert net mat d, h, n, t, z, a, ä, à, â, e, é, ë, è, ê, i, î, o, ö, ô, u, ü oder û ufänkt, gëtt beim éischte Wuert den einfachen oder duebelen „-n“ zum Schluss fale gelooss.
D'Resultat ass net ëmmer richteg, well:
- Net bei all éischtem Wuert zum Schluss den „-n“ ewechfale géif.
- D'Ewechfale vum „-n“ beim éischte Wuert net vum Ufanksbuschtaf vum zweete Wuert, mee vun der Aussprooch vun deem Buschtaf ofhänkt.
Wann de Benotzer oppasst, a wat fir engem Kontext dës Funktioun agesat gëtt, kann een awer Notzen heiraus zéien ouni feelerhaft Fäll ze produzéieren.
local p = {}
local Zuelen = require('Modul:Zuelen')
local Plain = require('Modul:Plain text')
local non_removal_start_chars = {
d=true, h=true, n=true, t=true, z=true,
a=true, ["ä"]=true, ["à"]=true, ["â"]=true,
e=true, ["é"]=true, ["ë"] = true, ["è"]=true, ["ê"]=true,
i=true, ["î"]=true,
o=true, ["ö"]=true, ["ô"]=true,
u=true, ["ü"]=true, ["û"]=true
}
function p.simplified_eifel_rule(frame)
local word1 = frame.args[1] or ""
local word2 = frame.args[2] or ""
word2plain = Plain.main{ args = { word2 } }
local digits = mw.ustring.match(word2plain, '^(%d+)')
local inspect = word2plain -- word to be inspected for Eifel rule triggering
if digits then
inspect = Zuelen.ordinalLb{ args = { digits } }
end
local firstChar = mw.ustring.lower(mw.ustring.sub(inspect, 1, 1))
if mw.ustring.sub(word1, -1) == "n" and not non_removal_start_chars[firstChar]
then
if mw.ustring.sub(word1, -2) == "nn" then
word1 = mw.ustring.sub(word1, 1, -3)
else
word1 = mw.ustring.sub(word1, 1, -2)
end
end
return word1 .. " " .. word2
end
return p
