Modul:Genitiv

Page semibeskyttet
Fra Wikipedia, den frie encyklopædi
Documentation icon Moduldokumentation[vis] [redigér] [historik] [opfrisk]

Dette modul bruges til at finde den danske genitivform (ejefald) af et navn.

Tilkyttede skabeloner

  • "{{Genitiv|navn}}" giver navn i genitiv ("navns")
  • "{{Genitivendelse|navn}}" giver endelsen som sætter navn i genitiv ("s")

Offentlige funktioner

Regler for genitiv som bruges af modulet

  • Hvis navnet ender -s, -z eller -x, er endelsen en apostrof (')
  • Hvis navnet ender på et andet bogstav eller et punktum, er endelsen s
  • Hvis navnet ender på et andet tegn, er endelsen apostrof og s ('s)

Fejl i modulet

Hvis et navn er en forkortelse uden forkortelsespunktum, er den korrekte genitivform aprostrof + s. Modulet kan ikke se om et ord er en forkortelse, og bruger fejlagtigt -s for forkortelser uden punktum:

Forkortelse korrekt genitiv modulets genitiv
USA USA's USAs
cm cm's cms

-- Baseret på kode venligst lavet af [[:en:User:קיפודנחש]] efter forspørgsel på [[:en:Wikipedia:Lua requests]]
local function find_endelse( ord )
    if mw.ustring.match( ord, "[sSzZxX]$" ) then return "'" -- please add all the missing letters inside the []
    elseif mw.ustring.match( ord, "['%a%.]$" ) then return 's'
    else return "'s"
    end
end

return {
genitiv = function( frame )
    local input = ( frame.args[1] or '' ):gsub( "^%s*(.-)%s*$", "%1" )
    if not input or #input == 0 then
    	return ''
    end
    local link = mw.ustring.match( input, "^%[%[(.-)%]%]$") or input
    return input .. find_endelse( link )
end,
endelse = function( frame )
    local input = ( frame.args[1] or '' ):gsub( "^%s*(.-)%s*$", "%1" )
    if not input or #input == 0 then
    	return ''
    end
    local link = mw.ustring.match( input, "^%[%[(.-)%]%]$") or input
    return find_endelse( link )
end,

-- Norsk Wikipedia har et Modul:Genitiv som kaldes fra andre moduler med function p._genitiv(ord, det)
-- Denne funktion har samme grænseflade så den kan bruges uden ændringer af moduler importeret fra norsk
_genitiv = function(ord, det)
    local input = ( ord or '' ):gsub( "^%s*(.-)%s*$", "%1" )
    if not input or #input == 0 then
    	return ''
    end
    local link = mw.ustring.match( input, "^%[%[(.-)%]%]$") or input
    return input .. find_endelse( link )
end,
}