How to support multiple updates in this trigger?
If dbo.Generarslug is a scalar function, then you could use the following:

INSERT[dbo].[UrlRecord] ([EntityId],[EntityName],[Slug],[IsActive],[LanguageId])
SELECT  i.id,
        'Category', 
        dbo.GenerarSlug(i.Name),
        1,
        0
FROM    inserted AS i
WHERE   NOT EXISTS
        (   SELECT  1
            FROM    [dbo].[UrlRecord] AS r
            WHERE   r.EntityID = i.ID
            AND     r.EntityName = 'Category'
        );


There is still potentially scope for improvement depending on what dbo.GenerarSlug actually does.