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:

  1. Net bei all éischtem Wuert zum Schluss den „-n“ ewechfale géif.
  2. 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