Page semibeskyttet

Modul:Genitiv

Fra Wikipedia, den frie encyklopædi
Spring til navigation Spring til søgning
Documentation icon Moduldokumentation[vis] [redigér] [historik] [opfrisk]
Ambox warning orange.svg
Dette Lua-modul bliver brugt på 37.053 sider.
For at undgå store forstyrrelser og unødvendigt pres på serverne, bør alle ændringer af modulet først afprøves i dens tilhørende /sandkasse eller /test-undersider. De færdigafprøvede ændringer kan derefter overføres til denne side ved en enkelt redigering. Overvej venligst at diskutere alle ændringer på diskussionssiden før du implementerer dem.

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,
}