Modul:Genitiv
Dette Lua-modul bruges på ca. 85.600 sider, eller omkring 9% af alle sider. For at undgå store forstyrrelser og unødvendigt pres på serverne, bør alle ændringer af skabelonen først afprøves i dens tilhørende modulets /sandkasse eller /test-undersider, eller i din egen module sandkasse. De færdigafprøvede ændringer kan derefter overføres til denne side ved en enkelt redigering. Du bør også overveje at diskutere æ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
- p.genitiv(frame): Bruges af {{Genitiv}}
- p.genitivendelse(frame): Bruges af {{Genitivendelse}}
- p._genitiv(navn): Bruges til direkte kald fra andre moduler. Modul:External links bruger denne grændeflade.
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,
}