Modul:Genitiv/sandkasse
Udseende
Dette er modulsandkassesiden for Modul:Genitiv (forskel). Se også følgesiden for testcases (kør). |
Dette modul bruges til at finde den danske genitivform (ejefald) af et navn.
Tilkyttede skabeloner
[rediger kildetekst]- "{{Genitiv|navn}}" giver navn i genitiv ("navns")
- "{{Genitivendelse|navn}}" giver endelsen som sætter navn i genitiv ("s")
Offentlige funktioner
[rediger kildetekst]- 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
[rediger kildetekst]- 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
[rediger kildetekst]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 find_endelse( link )
end,
}