Compare commits

...

3 Commits

Author SHA1 Message Date
8be7137b59 v1.12.0-rc.4 2025-06-12 10:27:41 +10:00
31e2a6443e fix: legacy authOptions support for api v1 2025-06-12 10:21:41 +10:00
400d2a2b1a feat: sign out of all sessions (#1797) 2025-06-11 17:57:38 +10:00
23 changed files with 1100 additions and 137 deletions

View File

@ -0,0 +1,94 @@
import { useState } from 'react';
import { Trans, useLingui } from '@lingui/react/macro';
import { authClient } from '@documenso/auth/client';
import { Button } from '@documenso/ui/primitives/button';
import {
Dialog,
DialogClose,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
} from '@documenso/ui/primitives/dialog';
import { useToast } from '@documenso/ui/primitives/use-toast';
type SessionLogoutAllDialogProps = {
onSuccess?: () => Promise<unknown>;
disabled?: boolean;
};
export const SessionLogoutAllDialog = ({ onSuccess, disabled }: SessionLogoutAllDialogProps) => {
const { t } = useLingui();
const { toast } = useToast();
const [isOpen, setIsOpen] = useState(false);
const [isLoading, setIsLoading] = useState(false);
const handleSignOutAllSessions = async () => {
setIsLoading(true);
try {
await authClient.signOutAllSessions();
if (onSuccess) {
await onSuccess();
}
toast({
title: t`Sessions have been revoked`,
});
setIsOpen(false);
} catch (error) {
console.error(error);
toast({
title: t`Error`,
description: t`Failed to sign out all sessions`,
variant: 'destructive',
});
}
setIsLoading(false);
};
return (
<Dialog open={isOpen} onOpenChange={(value) => (isLoading ? undefined : setIsOpen(value))}>
<DialogTrigger asChild>
<Button variant="secondary" disabled={disabled}>
<Trans>Revoke all sessions</Trans>
</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>
<Trans>Revoke all sessions</Trans>
</DialogTitle>
<DialogDescription>
<Trans>
This will sign you out of all other devices. You will need to sign in again on those
devices to continue using your account.
</Trans>
</DialogDescription>
</DialogHeader>
<DialogFooter>
<DialogClose asChild>
<Button variant="secondary" disabled={isLoading}>
<Trans>Cancel</Trans>
</Button>
</DialogClose>
<Button loading={isLoading} variant="destructive" onClick={handleSignOutAllSessions}>
<Trans>Revoke all sessions</Trans>
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
);
};

View File

@ -171,6 +171,27 @@ export default function SettingsSecurity({ loaderData }: Route.ComponentProps) {
</Link>
</Button>
</Alert>
<Alert
className="mt-6 flex flex-col justify-between p-6 sm:flex-row sm:items-center"
variant="neutral"
>
<div className="mb-4 mr-4 sm:mb-0">
<AlertTitle>
<Trans>Active sessions</Trans>
</AlertTitle>
<AlertDescription className="mr-2">
<Trans>View and manage all active sessions for your account.</Trans>
</AlertDescription>
</div>
<Button asChild variant="outline" className="bg-background">
<Link to="/settings/security/sessions">
<Trans>Manage sessions</Trans>
</Link>
</Button>
</Alert>
</div>
);
}

View File

@ -0,0 +1,192 @@
import { useMemo, useState } from 'react';
import { useLingui } from '@lingui/react/macro';
import { Trans } from '@lingui/react/macro';
import { useQuery } from '@tanstack/react-query';
import { DateTime } from 'luxon';
import { UAParser } from 'ua-parser-js';
import { authClient } from '@documenso/auth/client';
import { useSession } from '@documenso/lib/client-only/providers/session';
import { Badge } from '@documenso/ui/primitives/badge';
import { Button } from '@documenso/ui/primitives/button';
import type { DataTableColumnDef } from '@documenso/ui/primitives/data-table';
import { DataTable } from '@documenso/ui/primitives/data-table';
import { Skeleton } from '@documenso/ui/primitives/skeleton';
import { TableCell } from '@documenso/ui/primitives/table';
import { useToast } from '@documenso/ui/primitives/use-toast';
import { SessionLogoutAllDialog } from '~/components/dialogs/session-logout-all-dialog';
import { SettingsHeader } from '~/components/general/settings-header';
import { appMetaTags } from '~/utils/meta';
export function meta() {
return appMetaTags('Active Sessions');
}
const parser = new UAParser();
export default function SettingsSecuritySessions() {
const { t } = useLingui();
const { data, isLoading, isLoadingError, refetch } = useQuery({
queryKey: ['active-sessions'],
queryFn: async () => await authClient.getSessions(),
});
const { session } = useSession();
const results = data?.sessions ?? [];
const columns = useMemo(() => {
return [
{
header: t`Device`,
accessorKey: 'userAgent',
cell: ({ row }) => {
const userAgent = row.original.userAgent || '';
parser.setUA(userAgent);
const result = parser.getResult();
const browser = result.browser.name || t`Unknown`;
const os = result.os.name || t`Unknown`;
const isCurrentSession = row.original.id === session?.id;
return (
<div className="flex items-center gap-2">
<span>
{browser} ({os})
</span>
{isCurrentSession && (
<Badge>
<Trans>Current</Trans>
</Badge>
)}
</div>
);
},
},
{
header: t`IP Address`,
accessorKey: 'ipAddress',
cell: ({ row }) => row.original.ipAddress || t`Unknown`,
},
{
header: t`Last Active`,
accessorKey: 'updatedAt',
cell: ({ row }) => DateTime.fromJSDate(row.original.updatedAt).toRelative(),
},
{
header: t`Created`,
accessorKey: 'createdAt',
cell: ({ row }) => DateTime.fromJSDate(row.original.createdAt).toRelative(),
},
{
id: 'actions',
cell: ({ row }) => (
<SessionRevokeButton
sessionId={row.original.id}
isCurrentSession={row.original.id === session?.id}
onSuccess={refetch}
/>
),
},
] satisfies DataTableColumnDef<(typeof results)[number]>[];
}, []);
return (
<div>
<SettingsHeader
title={t`Active sessions`}
subtitle={t`View and manage all active sessions for your account.`}
>
<SessionLogoutAllDialog onSuccess={refetch} disabled={results.length === 1 || isLoading} />
</SettingsHeader>
<div className="mt-4">
<DataTable
columns={columns}
data={results}
hasFilters={false}
error={{
enable: isLoadingError,
}}
skeleton={{
enable: isLoading,
rows: 3,
component: (
<>
<TableCell>
<Skeleton className="h-4 w-40 rounded-full" />
</TableCell>
<TableCell>
<Skeleton className="h-4 w-24 rounded-full" />
</TableCell>
<TableCell>
<Skeleton className="h-4 w-24 rounded-full" />
</TableCell>
<TableCell>
<Skeleton className="h-4 w-24 rounded-full" />
</TableCell>
<TableCell>
<Skeleton className="h-8 w-16 rounded" />
</TableCell>
</>
),
}}
/>
</div>
</div>
);
}
type SessionRevokeButtonProps = {
sessionId: string;
isCurrentSession: boolean;
onSuccess: () => Promise<unknown>;
};
const SessionRevokeButton = ({
sessionId,
isCurrentSession,
onSuccess,
}: SessionRevokeButtonProps) => {
const { toast } = useToast();
const { t } = useLingui();
const [isLoading, setIsLoading] = useState(false);
const handleRevoke = async () => {
setIsLoading(true);
try {
await authClient.signOutSession({
sessionId,
redirectPath: isCurrentSession ? '/signin' : undefined,
});
if (!isCurrentSession) {
await onSuccess();
}
toast({
title: t`Session revoked`,
});
} catch (error) {
console.error(error);
toast({
title: t`Error`,
description: t`Failed to revoke session`,
variant: 'destructive',
});
}
setIsLoading(false);
};
return (
<Button variant="destructive" size="sm" onClick={handleRevoke} loading={isLoading}>
<Trans>Revoke</Trans>
</Button>
);
};

View File

@ -100,5 +100,5 @@
"vite-plugin-babel-macros": "^1.0.6",
"vite-tsconfig-paths": "^5.1.4"
},
"version": "1.12.0-rc.3"
"version": "1.12.0-rc.4"
}

6
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "@documenso/root",
"version": "1.12.0-rc.3",
"version": "1.12.0-rc.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@documenso/root",
"version": "1.12.0-rc.3",
"version": "1.12.0-rc.4",
"workspaces": [
"apps/*",
"packages/*"
@ -89,7 +89,7 @@
},
"apps/remix": {
"name": "@documenso/remix",
"version": "1.12.0-rc.3",
"version": "1.12.0-rc.4",
"dependencies": {
"@documenso/api": "*",
"@documenso/assets": "*",

View File

@ -1,6 +1,6 @@
{
"private": true,
"version": "1.12.0-rc.3",
"version": "1.12.0-rc.4",
"scripts": {
"build": "turbo run build",
"dev": "turbo run dev --filter=@documenso/remix",

View File

@ -176,8 +176,16 @@ export const ZCreateDocumentMutationSchema = z.object({
.default({}),
authOptions: z
.object({
globalAccessAuth: z.array(ZDocumentAccessAuthTypesSchema).optional().default([]),
globalActionAuth: z.array(ZDocumentActionAuthTypesSchema).optional().default([]),
globalAccessAuth: z
.union([ZDocumentAccessAuthTypesSchema, z.array(ZDocumentAccessAuthTypesSchema)])
.transform((val) => (Array.isArray(val) ? val : [val]))
.optional()
.default([]),
globalActionAuth: z
.union([ZDocumentActionAuthTypesSchema, z.array(ZDocumentActionAuthTypesSchema)])
.transform((val) => (Array.isArray(val) ? val : [val]))
.optional()
.default([]),
})
.optional()
.openapi({
@ -236,8 +244,16 @@ export const ZCreateDocumentFromTemplateMutationSchema = z.object({
.optional(),
authOptions: z
.object({
globalAccessAuth: z.array(ZDocumentAccessAuthTypesSchema).optional().default([]),
globalActionAuth: z.array(ZDocumentActionAuthTypesSchema).optional().default([]),
globalAccessAuth: z
.union([ZDocumentAccessAuthTypesSchema, z.array(ZDocumentAccessAuthTypesSchema)])
.transform((val) => (Array.isArray(val) ? val : [val]))
.optional()
.default([]),
globalActionAuth: z
.union([ZDocumentActionAuthTypesSchema, z.array(ZDocumentActionAuthTypesSchema)])
.transform((val) => (Array.isArray(val) ? val : [val]))
.optional()
.default([]),
})
.optional(),
formValues: z.record(z.string(), z.union([z.string(), z.boolean(), z.number()])).optional(),
@ -309,8 +325,16 @@ export const ZGenerateDocumentFromTemplateMutationSchema = z.object({
.optional(),
authOptions: z
.object({
globalAccessAuth: z.array(ZDocumentAccessAuthTypesSchema).optional().default([]),
globalActionAuth: z.array(ZDocumentActionAuthTypesSchema).optional().default([]),
globalAccessAuth: z
.union([ZDocumentAccessAuthTypesSchema, z.array(ZDocumentAccessAuthTypesSchema)])
.transform((val) => (Array.isArray(val) ? val : [val]))
.optional()
.default([]),
globalActionAuth: z
.union([ZDocumentActionAuthTypesSchema, z.array(ZDocumentActionAuthTypesSchema)])
.transform((val) => (Array.isArray(val) ? val : [val]))
.optional()
.default([]),
})
.optional(),
formValues: z.record(z.string(), z.union([z.string(), z.boolean(), z.number()])).optional(),
@ -349,7 +373,11 @@ export const ZCreateRecipientMutationSchema = z.object({
signingOrder: z.number().nullish(),
authOptions: z
.object({
actionAuth: z.array(ZRecipientActionAuthTypesSchema).optional().default([]),
actionAuth: z
.union([ZRecipientActionAuthTypesSchema, z.array(ZRecipientActionAuthTypesSchema)])
.transform((val) => (Array.isArray(val) ? val : [val]))
.optional()
.default([]),
})
.optional()
.openapi({

View File

@ -0,0 +1,82 @@
import { type Page, expect, test } from '@playwright/test';
import { seedUser } from '@documenso/prisma/seed/users';
import { apiSignin } from '../fixtures/authentication';
import { expectTextToBeVisible } from '../fixtures/generic';
test('[USER] revoke sessions', async ({ page }: { page: Page }) => {
const { user, team } = await seedUser();
await apiSignin({
page,
email: user.email,
password: 'password',
redirectPath: '/settings/security/sessions',
});
// Expect 2 rows length (header + 1)
await expect(page.getByRole('row')).toHaveCount(2);
// Clear cookies
await page.context().clearCookies();
await apiSignin({
page,
email: user.email,
password: 'password',
redirectPath: '/settings/security/sessions',
});
await page.context().clearCookies();
await apiSignin({
page,
email: user.email,
password: 'password',
redirectPath: '/settings/security/sessions',
});
// Expect 4 (3 sessions + 1 header) rows length
await expect(page.getByRole('row')).toHaveCount(4);
// Revoke all sessions
await page.getByRole('button', { name: 'Revoke all sessions' }).click();
await page.getByRole('button', { name: 'Revoke all sessions' }).click();
await expectTextToBeVisible(page, 'Sessions have been revoked');
// Expect (1 sessions + 1 header) rows length
await expect(page.getByRole('row')).toHaveCount(2);
await page.context().clearCookies();
await apiSignin({
page,
email: user.email,
password: 'password',
redirectPath: '/settings/security/sessions',
});
// Find table row which does not have text 'Current' and click the button called Revoke within the row.
await page
.getByRole('row')
.filter({ hasNotText: 'Current' })
.nth(1)
.getByRole('button', { name: 'Revoke' })
.click();
await expectTextToBeVisible(page, 'Session revoked');
// Expect (1 sessions + 1 header) rows length
await expect(page.getByRole('row')).toHaveCount(2);
// Revoke own session.
await page
.getByRole('row')
.filter({ hasText: 'Current' })
.first()
.getByRole('button', { name: 'Revoke' })
.click();
await expect(page).toHaveURL('/signin');
});

View File

@ -7,6 +7,7 @@ import { AppError } from '@documenso/lib/errors/app-error';
import type { AuthAppType } from '../server';
import type { SessionValidationResult } from '../server/lib/session/session';
import type { ActiveSession } from '../server/lib/utils/get-session';
import { handleSignInRedirect } from '../server/lib/utils/redirect';
import type {
TDisableTwoFactorRequestSchema,
@ -47,6 +48,26 @@ export class AuthClient {
window.location.href = redirectPath ?? this.signOutredirectPath;
}
public async signOutAllSessions() {
await this.client['signout-all'].$post();
}
public async signOutSession({
sessionId,
redirectPath,
}: {
sessionId: string;
redirectPath?: string;
}) {
await this.client['signout-session'].$post({
json: { sessionId },
});
if (redirectPath) {
window.location.href = redirectPath;
}
}
public async getSession() {
const response = await this.client['session-json'].$get();
@ -57,6 +78,16 @@ export class AuthClient {
return superjson.deserialize<SessionValidationResult>(result);
}
public async getSessions() {
const response = await this.client['sessions'].$get();
await this.handleError(response);
const result = await response.json();
return superjson.deserialize<{ sessions: ActiveSession[] }>(result);
}
private async handleError<T>(response: ClientResponse<T>): Promise<void> {
if (!response.ok) {
const error = await response.json();

View File

@ -1,2 +1 @@
export * from './server/lib/errors/errors';
export * from './server/lib/errors/error-codes';

View File

@ -2,6 +2,7 @@ import { sha256 } from '@oslojs/crypto/sha2';
import { encodeBase32LowerCaseNoPadding, encodeHexLowerCase } from '@oslojs/encoding';
import { type Session, type User, UserSecurityAuditLogType } from '@prisma/client';
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
import type { RequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
import { prisma } from '@documenso/prisma';
@ -129,18 +130,46 @@ export const validateSessionToken = async (token: string): Promise<SessionValida
return { session, user, isAuthenticated: true };
};
export const invalidateSession = async (
sessionId: string,
metadata: RequestMetadata,
): Promise<void> => {
const session = await prisma.session.delete({ where: { id: sessionId } });
type InvalidateSessionsOptions = {
userId: number;
sessionIds: string[];
metadata: RequestMetadata;
isRevoke?: boolean;
};
await prisma.userSecurityAuditLog.create({
data: {
userId: session.userId,
ipAddress: metadata.ipAddress,
userAgent: metadata.userAgent,
type: UserSecurityAuditLogType.SIGN_OUT,
},
export const invalidateSessions = async ({
userId,
sessionIds,
metadata,
isRevoke,
}: InvalidateSessionsOptions): Promise<void> => {
if (sessionIds.length === 0) {
return;
}
await prisma.$transaction(async (tx) => {
const { count } = await tx.session.deleteMany({
where: {
userId,
id: { in: sessionIds },
},
});
if (count !== sessionIds.length) {
throw new AppError(AppErrorCode.INVALID_REQUEST, {
message: 'One or more sessions are not valid.',
});
}
await tx.userSecurityAuditLog.createMany({
data: sessionIds.map(() => ({
userId,
ipAddress: metadata.ipAddress,
userAgent: metadata.userAgent,
type: isRevoke
? UserSecurityAuditLogType.SESSION_REVOKED
: UserSecurityAuditLogType.SIGN_OUT,
})),
});
});
};

View File

@ -1,6 +1,8 @@
import type { Session } from '@prisma/client';
import type { Context } from 'hono';
import { AppError } from '@documenso/lib/errors/app-error';
import { prisma } from '@documenso/prisma';
import { AuthenticationErrorCode } from '../errors/error-codes';
import type { SessionValidationResult } from '../session/session';
@ -37,6 +39,33 @@ export const getOptionalSession = async (
return await validateSessionToken(sessionId);
};
export type ActiveSession = Omit<Session, 'sessionToken'>;
export const getActiveSessions = async (c: Context | Request): Promise<ActiveSession[]> => {
const { user } = await getSession(c);
return await prisma.session.findMany({
where: {
userId: user.id,
expiresAt: {
gt: new Date(),
},
},
orderBy: {
updatedAt: 'desc',
},
select: {
id: true,
userId: true,
expiresAt: true,
updatedAt: true,
createdAt: true,
ipAddress: true,
userAgent: true,
},
});
};
/**
* Todo: (RR7) Rethink, this is pretty sketchy.
*/

View File

@ -2,7 +2,7 @@ import { Hono } from 'hono';
import superjson from 'superjson';
import type { SessionValidationResult } from '../lib/session/session';
import { getOptionalSession } from '../lib/utils/get-session';
import { getActiveSessions, getOptionalSession } from '../lib/utils/get-session';
export const sessionRoute = new Hono()
.get('/session', async (c) => {
@ -10,6 +10,11 @@ export const sessionRoute = new Hono()
return c.json(session);
})
.get('/sessions', async (c) => {
const sessions = await getActiveSessions(c);
return c.json(superjson.serialize({ sessions }));
})
.get('/session-json', async (c) => {
const session: SessionValidationResult = await getOptionalSession(c);

View File

@ -1,27 +1,114 @@
import { sValidator } from '@hono/standard-validator';
import { Hono } from 'hono';
import { z } from 'zod';
import { invalidateSession, validateSessionToken } from '../lib/session/session';
import { prisma } from '@documenso/prisma';
import { invalidateSessions, validateSessionToken } from '../lib/session/session';
import { deleteSessionCookie, getSessionCookie } from '../lib/session/session-cookies';
import type { HonoAuthContext } from '../types/context';
export const signOutRoute = new Hono<HonoAuthContext>().post('/signout', async (c) => {
const metadata = c.get('requestMetadata');
const sessionId = await getSessionCookie(c);
if (!sessionId) {
return new Response('No session found', { status: 401 });
}
const { session } = await validateSessionToken(sessionId);
if (!session) {
return new Response('No session found', { status: 401 });
}
await invalidateSession(session.id, metadata);
deleteSessionCookie(c);
return c.status(200);
const ZSignoutSessionSchema = z.object({
sessionId: z.string().trim().min(1),
});
export const signOutRoute = new Hono<HonoAuthContext>()
.post('/signout', async (c) => {
const metadata = c.get('requestMetadata');
const sessionToken = await getSessionCookie(c);
if (!sessionToken) {
return new Response('No session found', { status: 401 });
}
const { session } = await validateSessionToken(sessionToken);
if (!session) {
deleteSessionCookie(c);
return new Response('No session found', { status: 401 });
}
await invalidateSessions({
userId: session.userId,
sessionIds: [session.id],
metadata,
isRevoke: false,
});
deleteSessionCookie(c);
return c.status(200);
})
.post('/signout-all', async (c) => {
const metadata = c.get('requestMetadata');
const sessionToken = await getSessionCookie(c);
if (!sessionToken) {
return new Response('No session found', { status: 401 });
}
const { session } = await validateSessionToken(sessionToken);
if (!session) {
deleteSessionCookie(c);
return new Response('No session found', { status: 401 });
}
const userId = session.userId;
const userSessionIds = await prisma.session
.findMany({
where: {
userId,
id: {
not: session.id,
},
},
select: {
id: true,
},
})
.then((sessions) => sessions.map((session) => session.id));
await invalidateSessions({
userId,
sessionIds: userSessionIds,
metadata,
isRevoke: true,
});
return c.status(200);
})
.post('/signout-session', sValidator('json', ZSignoutSessionSchema), async (c) => {
const metadata = c.get('requestMetadata');
const { sessionId: sessionIdToRevoke } = c.req.valid('json');
const sessionToken = await getSessionCookie(c);
if (!sessionToken) {
return new Response('No session found', { status: 401 });
}
const { session } = await validateSessionToken(sessionToken);
if (!session) {
deleteSessionCookie(c);
return new Response('No session found', { status: 401 });
}
await invalidateSessions({
userId: session.userId,
sessionIds: [sessionIdToRevoke],
metadata,
isRevoke: true,
});
if (session.id === sessionIdToRevoke) {
deleteSessionCookie(c);
}
return c.status(200);
});

View File

@ -31,6 +31,7 @@ export const USER_SECURITY_AUDIT_LOG_MAP: Record<string, string> = {
PASSKEY_UPDATED: 'Passkey updated',
PASSWORD_RESET: 'Password reset',
PASSWORD_UPDATE: 'Password updated',
SESSION_REVOKED: 'Session revoked',
SIGN_OUT: 'Signed Out',
SIGN_IN: 'Signed In',
SIGN_IN_FAIL: 'Sign in attempt failed',

View File

@ -752,6 +752,11 @@ msgstr "Aktionen"
msgid "Active"
msgstr "Aktiv"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Active sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx
msgid "Active Subscriptions"
msgstr "Aktive Abonnements"
@ -817,13 +822,13 @@ msgstr "Felder hinzufügen"
msgid "Add group roles"
msgstr "Gruppenrollen hinzufügen"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add groups"
msgstr "Gruppen hinzufügen"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add members"
msgstr "Mitglieder hinzufügen"
@ -1614,6 +1619,7 @@ msgstr "Kann vorbereiten"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
@ -2221,6 +2227,7 @@ msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit dem modernen Dokumentensign
msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit dem modernen Dokumentensignieren. Offenes und schönes Signieren liegt in Ihrer Reichweite."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
#: apps/remix/app/components/tables/templates-table.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
@ -2260,6 +2267,10 @@ msgstr "Erstellt am {0}"
msgid "CSV Structure"
msgstr "CSV-Struktur"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Current"
msgstr ""
#: apps/remix/app/components/forms/password.tsx
msgid "Current Password"
msgstr "Aktuelles Passwort"
@ -2453,6 +2464,7 @@ msgid "Details"
msgstr "Einzelheiten"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/settings-security-activity-table.tsx
msgid "Device"
msgstr "Gerät"
@ -3179,6 +3191,7 @@ msgstr "Unternehmen"
#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
@ -3221,6 +3234,7 @@ msgstr "Unternehmen"
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
@ -3286,10 +3300,18 @@ msgstr "Fehler beim Laden des Dokuments"
msgid "Failed to reseal document"
msgstr "Dokument konnte nicht erneut versiegelt werden"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Failed to revoke session"
msgstr ""
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx
msgid "Failed to save settings."
msgstr "Einstellungen konnten nicht gespeichert werden."
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Failed to sign out all sessions"
msgstr ""
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
msgid "Failed to update document"
msgstr "Dokument konnte nicht aktualisiert werden"
@ -3747,7 +3769,6 @@ msgstr "Ungültiger Code. Bitte versuchen Sie es erneut."
msgid "Invalid email"
msgstr "Ungültige E-Mail"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "Invalid link"
msgstr "Ungültiger Link"
@ -3811,6 +3832,7 @@ msgid "Invoice"
msgstr "Rechnung"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
msgid "IP Address"
msgstr "IP-Adresse"
@ -3881,6 +3903,10 @@ msgstr "Die letzten 30 Tage"
msgid "Last 7 days"
msgstr "Die letzten 7 Tage"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Last Active"
msgstr ""
#: apps/remix/app/components/general/template/template-page-view-information.tsx
#: apps/remix/app/components/general/document/document-page-view-information.tsx
msgid "Last modified"
@ -4030,6 +4056,10 @@ msgstr "Passkeys verwalten"
msgid "Manage permissions and access controls"
msgstr "Verwalten Sie Berechtigungen und Zugangskontrollen"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Manage sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "Manage subscription"
@ -5305,7 +5335,6 @@ msgstr "Aufbewahrung von Dokumenten"
msgid "Retry"
msgstr "Wiederholen"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx
@ -5321,6 +5350,7 @@ msgstr "Zurück zur Startseite"
msgid "Return to sign in"
msgstr "Zurück zur Anmeldung"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/general/teams/team-email-usage.tsx
msgid "Revoke"
msgstr "Zugriff widerrufen"
@ -5329,6 +5359,12 @@ msgstr "Zugriff widerrufen"
msgid "Revoke access"
msgstr "Zugriff widerrufen"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Revoke all sessions"
msgstr ""
#: apps/remix/app/components/tables/user-organisations-table.tsx
#: apps/remix/app/components/tables/team-members-table.tsx
#: apps/remix/app/components/tables/team-groups-table.tsx
@ -5481,6 +5517,10 @@ msgstr "Standardoption auswählen"
msgid "Select groups"
msgstr "Gruppen auswählen"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups of members to add to the team."
msgstr ""
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups to add to this team"
msgstr "Wählen Sie Gruppen aus, die diesem Team hinzugefügt werden sollen"
@ -5492,7 +5532,6 @@ msgid "Select members"
msgstr "Mitglieder auswählen"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select members or groups of members to add to the team."
msgstr "Wählen Sie Mitglieder oder Gruppen von Mitgliedern, die dem Team hinzugefügt werden sollen."
@ -5602,6 +5641,14 @@ msgstr "Senden..."
msgid "Sent"
msgstr "Gesendet"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr ""
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Sessions have been revoked"
msgstr ""
#: apps/remix/app/components/general/claim-account.tsx
msgid "Set a password"
msgstr "Ein Passwort festlegen"
@ -6476,7 +6523,8 @@ msgid "The following team has been deleted. You will no longer be able to access
msgstr "Das folgende Team wurde gelöscht. Sie können nicht mehr auf dieses Team und seine Dokumente zugreifen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "The organisation group you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation group you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Die Organisationsgruppe, nach der Sie suchen, wurde möglicherweise entfernt, umbenannt oder hat möglicherweise nie existiert."
@ -6485,12 +6533,14 @@ msgid "The organisation role that will be applied to all members in this group."
msgstr "Die Organisationsrolle, die auf alle Mitglieder in dieser Gruppe angewendet wird."
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Die Organisation, nach der Sie suchen, wurde möglicherweise entfernt, umbenannt oder hat möglicherweise nie existiert."
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Die Organisation, nach der Sie suchen, wurde möglicherweise entfernt, umbenannt oder hat möglicherweise nie existiert."
@ -6574,12 +6624,14 @@ msgid "The team email <0>{teamEmail}</0> has been removed from the following tea
msgstr "Die Team-E-Mail <0>{teamEmail}</0> wurde aus dem folgenden Team entfernt"
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Das Team, das Sie suchen, wurde möglicherweise entfernt, umbenannt oder hat möglicherweise nie existiert."
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Das Team, das Sie suchen, könnte entfernt, umbenannt oder nie existiert haben."
@ -6617,7 +6669,8 @@ msgid "The URL for Documenso to send webhook events to."
msgstr "Die URL für Documenso, um Webhook-Ereignisse zu senden."
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
msgid "The user you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The user you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Der Benutzer, nach dem Sie suchen, wurde möglicherweise entfernt, umbenannt oder hat möglicherweise nie existiert."
@ -6784,10 +6837,6 @@ msgstr "So wird das Dokument die Empfänger erreichen, sobald es zum Unterschrei
msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation."
msgstr "Dies ist der Anspruch, mit dem diese Organisation ursprünglich erstellt wurde. Alle Änderungen an Funktionsflags für diesen Anspruch werden in diese Organisation übernommen."
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
msgid "This link is invalid or has expired."
msgstr "Dieser Link ist ungültig oder abgelaufen."
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "This link is invalid or has expired. Please contact your team to resend a verification."
msgstr "Dieser Link ist ungültig oder abgelaufen. Bitte kontaktieren Sie Ihr Team, um eine neue Bestätigungsanfrage zu senden."
@ -6858,6 +6907,10 @@ msgstr "Dies wird an den Dokumenteneigentümer gesendet, sobald das Dokument vol
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
msgstr "Diese werden NUR Funktionsflags zurückspielen, die auf wahr gesetzt sind; alles, was im ursprünglichen Anspruch deaktiviert ist, wird nicht zurückportiert."
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account."
msgstr ""
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
#: apps/remix/app/components/tables/document-logs-table.tsx
msgid "Time"
@ -7144,6 +7197,9 @@ msgstr "Unvollendet"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Unknown"
msgstr "Unbekannt"
@ -7497,6 +7553,11 @@ msgstr "Alle verwandten Dokumente anzeigen"
msgid "View all security activity related to your account."
msgstr "Sehen Sie sich alle Sicherheitsaktivitäten in Ihrem Konto an."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "View and manage all active sessions for your account."
msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
msgid "View Codes"
msgstr "Codes ansehen"
@ -8563,4 +8624,3 @@ msgstr "Ihr Token wurde erfolgreich erstellt! Stellen Sie sicher, dass Sie es ko
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx
msgid "Your tokens will be shown here once you create them."
msgstr "Ihre Tokens werden hier angezeigt, sobald Sie sie erstellt haben."

View File

@ -747,6 +747,11 @@ msgstr "Actions"
msgid "Active"
msgstr "Active"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Active sessions"
msgstr "Active sessions"
#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx
msgid "Active Subscriptions"
msgstr "Active Subscriptions"
@ -812,13 +817,13 @@ msgstr "Add Fields"
msgid "Add group roles"
msgstr "Add group roles"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add groups"
msgstr "Add groups"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add members"
msgstr "Add members"
@ -1609,6 +1614,7 @@ msgstr "Can prepare"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
@ -2216,6 +2222,7 @@ msgstr "Create your account and start using state-of-the-art document signing."
msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
msgstr "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
#: apps/remix/app/components/tables/templates-table.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
@ -2255,6 +2262,10 @@ msgstr "Created on {0}"
msgid "CSV Structure"
msgstr "CSV Structure"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Current"
msgstr "Current"
#: apps/remix/app/components/forms/password.tsx
msgid "Current Password"
msgstr "Current Password"
@ -2448,6 +2459,7 @@ msgid "Details"
msgstr "Details"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/settings-security-activity-table.tsx
msgid "Device"
msgstr "Device"
@ -3174,6 +3186,7 @@ msgstr "Enterprise"
#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
@ -3216,6 +3229,7 @@ msgstr "Enterprise"
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
@ -3281,10 +3295,18 @@ msgstr "Failed to load document"
msgid "Failed to reseal document"
msgstr "Failed to reseal document"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Failed to revoke session"
msgstr "Failed to revoke session"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx
msgid "Failed to save settings."
msgstr "Failed to save settings."
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Failed to sign out all sessions"
msgstr "Failed to sign out all sessions"
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
msgid "Failed to update document"
msgstr "Failed to update document"
@ -3742,7 +3764,6 @@ msgstr "Invalid code. Please try again."
msgid "Invalid email"
msgstr "Invalid email"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "Invalid link"
msgstr "Invalid link"
@ -3806,6 +3827,7 @@ msgid "Invoice"
msgstr "Invoice"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
msgid "IP Address"
msgstr "IP Address"
@ -3876,6 +3898,10 @@ msgstr "Last 30 days"
msgid "Last 7 days"
msgstr "Last 7 days"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Last Active"
msgstr "Last Active"
#: apps/remix/app/components/general/template/template-page-view-information.tsx
#: apps/remix/app/components/general/document/document-page-view-information.tsx
msgid "Last modified"
@ -4025,6 +4051,10 @@ msgstr "Manage passkeys"
msgid "Manage permissions and access controls"
msgstr "Manage permissions and access controls"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Manage sessions"
msgstr "Manage sessions"
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "Manage subscription"
@ -5300,7 +5330,6 @@ msgstr "Retention of Documents"
msgid "Retry"
msgstr "Retry"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx
@ -5316,6 +5345,7 @@ msgstr "Return to Home"
msgid "Return to sign in"
msgstr "Return to sign in"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/general/teams/team-email-usage.tsx
msgid "Revoke"
msgstr "Revoke"
@ -5324,6 +5354,12 @@ msgstr "Revoke"
msgid "Revoke access"
msgstr "Revoke access"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Revoke all sessions"
msgstr "Revoke all sessions"
#: apps/remix/app/components/tables/user-organisations-table.tsx
#: apps/remix/app/components/tables/team-members-table.tsx
#: apps/remix/app/components/tables/team-groups-table.tsx
@ -5476,6 +5512,10 @@ msgstr "Select default option"
msgid "Select groups"
msgstr "Select groups"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups of members to add to the team."
msgstr "Select groups of members to add to the team."
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups to add to this team"
msgstr "Select groups to add to this team"
@ -5487,7 +5527,6 @@ msgid "Select members"
msgstr "Select members"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select members or groups of members to add to the team."
msgstr "Select members or groups of members to add to the team."
@ -5597,6 +5636,14 @@ msgstr "Sending..."
msgid "Sent"
msgstr "Sent"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "Session revoked"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Sessions have been revoked"
msgstr "Sessions have been revoked"
#: apps/remix/app/components/general/claim-account.tsx
msgid "Set a password"
msgstr "Set a password"
@ -6797,10 +6844,6 @@ msgstr "This is how the document will reach the recipients once the document is
msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation."
msgstr "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation."
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
msgid "This link is invalid or has expired."
msgstr "This link is invalid or has expired."
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "This link is invalid or has expired. Please contact your team to resend a verification."
msgstr "This link is invalid or has expired. Please contact your team to resend a verification."
@ -6871,6 +6914,10 @@ msgstr "This will be sent to the document owner once the document has been fully
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
msgstr "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account."
msgstr "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account."
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
#: apps/remix/app/components/tables/document-logs-table.tsx
msgid "Time"
@ -7157,6 +7204,9 @@ msgstr "Uncompleted"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Unknown"
msgstr "Unknown"
@ -7510,6 +7560,11 @@ msgstr "View all related documents"
msgid "View all security activity related to your account."
msgstr "View all security activity related to your account."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "View and manage all active sessions for your account."
msgstr "View and manage all active sessions for your account."
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
msgid "View Codes"
msgstr "View Codes"

View File

@ -752,6 +752,11 @@ msgstr "Acciones"
msgid "Active"
msgstr "Activo"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Active sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx
msgid "Active Subscriptions"
msgstr "Suscripciones Activas"
@ -817,13 +822,13 @@ msgstr "Agregar Campos"
msgid "Add group roles"
msgstr "Agregar roles de grupo"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add groups"
msgstr "Agregar grupos"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add members"
msgstr "Agregar miembros"
@ -1614,6 +1619,7 @@ msgstr "Puede preparar"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
@ -2221,6 +2227,7 @@ msgstr "Crea tu cuenta y comienza a utilizar la firma de documentos de última g
msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
msgstr "Crea tu cuenta y comienza a utilizar la firma de documentos de última generación. La firma abierta y hermosa está al alcance de tu mano."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
#: apps/remix/app/components/tables/templates-table.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
@ -2260,6 +2267,10 @@ msgstr "Creado el {0}"
msgid "CSV Structure"
msgstr "Estructura CSV"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Current"
msgstr ""
#: apps/remix/app/components/forms/password.tsx
msgid "Current Password"
msgstr "Contraseña actual"
@ -2453,6 +2464,7 @@ msgid "Details"
msgstr "Detalles"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/settings-security-activity-table.tsx
msgid "Device"
msgstr "Dispositivo"
@ -3179,6 +3191,7 @@ msgstr "Enterprise"
#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
@ -3221,6 +3234,7 @@ msgstr "Enterprise"
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
@ -3286,10 +3300,18 @@ msgstr "Error al cargar el documento"
msgid "Failed to reseal document"
msgstr "Falló al volver a sellar el documento"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Failed to revoke session"
msgstr ""
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx
msgid "Failed to save settings."
msgstr "Fallo al guardar configuraciones."
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Failed to sign out all sessions"
msgstr ""
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
msgid "Failed to update document"
msgstr "No se pudo actualizar el documento"
@ -3747,7 +3769,6 @@ msgstr "Código inválido. Por favor, intenta nuevamente."
msgid "Invalid email"
msgstr "Email inválido"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "Invalid link"
msgstr "Enlace inválido"
@ -3811,6 +3832,7 @@ msgid "Invoice"
msgstr "Factura"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
msgid "IP Address"
msgstr "Dirección IP"
@ -3881,6 +3903,10 @@ msgstr "Últimos 30 días"
msgid "Last 7 days"
msgstr "Últimos 7 días"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Last Active"
msgstr ""
#: apps/remix/app/components/general/template/template-page-view-information.tsx
#: apps/remix/app/components/general/document/document-page-view-information.tsx
msgid "Last modified"
@ -4030,6 +4056,10 @@ msgstr "Gestionar claves de acceso"
msgid "Manage permissions and access controls"
msgstr "Gestiona permisos y controles de acceso"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Manage sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "Manage subscription"
@ -5305,7 +5335,6 @@ msgstr "Retención de Documentos"
msgid "Retry"
msgstr "Reintentar"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx
@ -5321,6 +5350,7 @@ msgstr "Regresar a la página de inicio"
msgid "Return to sign in"
msgstr "Regresar para iniciar sesión"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/general/teams/team-email-usage.tsx
msgid "Revoke"
msgstr "Revocar"
@ -5329,6 +5359,12 @@ msgstr "Revocar"
msgid "Revoke access"
msgstr "Revocar acceso"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Revoke all sessions"
msgstr ""
#: apps/remix/app/components/tables/user-organisations-table.tsx
#: apps/remix/app/components/tables/team-members-table.tsx
#: apps/remix/app/components/tables/team-groups-table.tsx
@ -5481,6 +5517,10 @@ msgstr "Seleccionar opción predeterminada"
msgid "Select groups"
msgstr "Seleccionar grupos"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups of members to add to the team."
msgstr ""
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups to add to this team"
msgstr "Seleccionar grupos para añadir a este equipo"
@ -5492,7 +5532,6 @@ msgid "Select members"
msgstr "Seleccione miembros"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select members or groups of members to add to the team."
msgstr "Seleccione miembros o grupos de miembros para agregar al equipo."
@ -5602,6 +5641,14 @@ msgstr "Enviando..."
msgid "Sent"
msgstr "Enviado"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr ""
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Sessions have been revoked"
msgstr ""
#: apps/remix/app/components/general/claim-account.tsx
msgid "Set a password"
msgstr "Establecer una contraseña"
@ -6476,7 +6523,8 @@ msgid "The following team has been deleted. You will no longer be able to access
msgstr "El siguiente equipo ha sido eliminado. Ya no podrá acceder a este equipo y sus documentos"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "The organisation group you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation group you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "El grupo de organización que está buscando puede haber sido eliminado, renombrado o puede que nunca haya existido."
@ -6485,12 +6533,14 @@ msgid "The organisation role that will be applied to all members in this group."
msgstr "El rol de organización que se aplicará a todos los miembros de este grupo."
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "La organización que está buscando puede haber sido eliminada, renombrada o puede que nunca haya existido."
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "La organización que está buscando puede haber sido eliminada, renombrada o puede que nunca haya existido."
@ -6574,14 +6624,17 @@ msgid "The team email <0>{teamEmail}</0> has been removed from the following tea
msgstr "El correo electrónico del equipo <0>{teamEmail}</0> ha sido eliminado del siguiente equipo"
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "El equipo que está buscando puede haber sido eliminado, renombrado o puede que nunca haya existido."
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "El equipo que buscas puede haber sido eliminado, renombrado o quizás nunca\n"
msgstr ""
"El equipo que buscas puede haber sido eliminado, renombrado o quizás nunca\n"
" existió."
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@ -6618,7 +6671,8 @@ msgid "The URL for Documenso to send webhook events to."
msgstr "La URL para Documenso para enviar eventos de webhook."
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
msgid "The user you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The user you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "El usuario que está buscando puede haber sido eliminado, renombrado o puede que nunca haya existido."
@ -6785,10 +6839,6 @@ msgstr "Así es como el documento llegará a los destinatarios una vez que esté
msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation."
msgstr "Esta es la reclamo con la que se creó inicialmente esta organización. Cualquier cambio en la bandera de características de esta reclamo se retroalimentará en esta organización."
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
msgid "This link is invalid or has expired."
msgstr "Este enlace no es válido o ha expirado."
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "This link is invalid or has expired. Please contact your team to resend a verification."
msgstr "Este enlace es inválido o ha expirado. Por favor, contacta a tu equipo para reenviar una verificación."
@ -6859,6 +6909,10 @@ msgstr "Esto se enviará al propietario del documento una vez que el documento s
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
msgstr "Esto solo retroalimentará las banderas de características que estén configuradas como verdaderas, cualquier cosa desactivada en la reclamo inicial no será retroalimentada"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account."
msgstr ""
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
#: apps/remix/app/components/tables/document-logs-table.tsx
msgid "Time"
@ -7145,6 +7199,9 @@ msgstr "Incompleto"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Unknown"
msgstr "Desconocido"
@ -7498,6 +7555,11 @@ msgstr "Ver todos los documentos relacionados"
msgid "View all security activity related to your account."
msgstr "Ver toda la actividad de seguridad relacionada con tu cuenta."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "View and manage all active sessions for your account."
msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
msgid "View Codes"
msgstr "Ver Códigos"
@ -8564,4 +8626,3 @@ msgstr "¡Tu token se creó con éxito! ¡Asegúrate de copiarlo porque no podr
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx
msgid "Your tokens will be shown here once you create them."
msgstr "Tus tokens se mostrarán aquí una vez que los crees."

View File

@ -752,6 +752,11 @@ msgstr "Actions"
msgid "Active"
msgstr "Actif"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Active sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx
msgid "Active Subscriptions"
msgstr "Abonnements actifs"
@ -817,13 +822,13 @@ msgstr "Ajouter des champs"
msgid "Add group roles"
msgstr "Ajouter des rôles de groupe"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add groups"
msgstr "Ajouter des groupes"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add members"
msgstr "Ajouter des membres"
@ -1614,6 +1619,7 @@ msgstr "Peut préparer"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
@ -2221,6 +2227,7 @@ msgstr "Créez votre compte et commencez à utiliser la signature de documents
msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
msgstr "Créez votre compte et commencez à utiliser la signature de documents à la pointe de la technologie. Une signature ouverte et magnifique est à votre portée."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
#: apps/remix/app/components/tables/templates-table.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
@ -2260,6 +2267,10 @@ msgstr "Créé le {0}"
msgid "CSV Structure"
msgstr "Structure CSV"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Current"
msgstr ""
#: apps/remix/app/components/forms/password.tsx
msgid "Current Password"
msgstr "Mot de passe actuel"
@ -2453,6 +2464,7 @@ msgid "Details"
msgstr "Détails"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/settings-security-activity-table.tsx
msgid "Device"
msgstr "Appareil"
@ -3179,6 +3191,7 @@ msgstr "Entreprise"
#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
@ -3221,6 +3234,7 @@ msgstr "Entreprise"
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
@ -3286,10 +3300,18 @@ msgstr "Échec du chargement du document"
msgid "Failed to reseal document"
msgstr "Échec du reseal du document"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Failed to revoke session"
msgstr ""
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx
msgid "Failed to save settings."
msgstr "Échec de l'enregistrement des paramètres."
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Failed to sign out all sessions"
msgstr ""
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
msgid "Failed to update document"
msgstr "Échec de la mise à jour du document"
@ -3747,7 +3769,6 @@ msgstr "Code invalide. Veuillez réessayer."
msgid "Invalid email"
msgstr "Email invalide"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "Invalid link"
msgstr "Lien invalide"
@ -3811,6 +3832,7 @@ msgid "Invoice"
msgstr "Facture"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
msgid "IP Address"
msgstr "Adresse IP"
@ -3881,6 +3903,10 @@ msgstr "30 derniers jours"
msgid "Last 7 days"
msgstr "7 derniers jours"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Last Active"
msgstr ""
#: apps/remix/app/components/general/template/template-page-view-information.tsx
#: apps/remix/app/components/general/document/document-page-view-information.tsx
msgid "Last modified"
@ -4030,6 +4056,10 @@ msgstr "Gérer les clés d'accès"
msgid "Manage permissions and access controls"
msgstr "Gérez les autorisations et les contrôles d'accès"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Manage sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "Manage subscription"
@ -5305,7 +5335,6 @@ msgstr "Conservation des documents"
msgid "Retry"
msgstr "Réessayer"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx
@ -5321,6 +5350,7 @@ msgstr "Retour à l'accueil"
msgid "Return to sign in"
msgstr "Retour à la connexion"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/general/teams/team-email-usage.tsx
msgid "Revoke"
msgstr "Révoquer"
@ -5329,6 +5359,12 @@ msgstr "Révoquer"
msgid "Revoke access"
msgstr "Révoquer l'accès"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Revoke all sessions"
msgstr ""
#: apps/remix/app/components/tables/user-organisations-table.tsx
#: apps/remix/app/components/tables/team-members-table.tsx
#: apps/remix/app/components/tables/team-groups-table.tsx
@ -5481,6 +5517,10 @@ msgstr "Sélectionner l'option par défaut"
msgid "Select groups"
msgstr "Sélectionnez des groupes"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups of members to add to the team."
msgstr ""
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups to add to this team"
msgstr "Sélectionnez des groupes à ajouter à cette équipe"
@ -5492,7 +5532,6 @@ msgid "Select members"
msgstr "Sélectionnez des membres"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select members or groups of members to add to the team."
msgstr "Sélectionnez des membres ou groupes de membres à ajouter à l'équipe."
@ -5602,6 +5641,14 @@ msgstr "Envoi..."
msgid "Sent"
msgstr "Envoyé"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr ""
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Sessions have been revoked"
msgstr ""
#: apps/remix/app/components/general/claim-account.tsx
msgid "Set a password"
msgstr "Définir un mot de passe"
@ -6476,7 +6523,8 @@ msgid "The following team has been deleted. You will no longer be able to access
msgstr "L'équipe suivante a été supprimée. Vous ne pourrez plus accéder à cette équipe et à ses documents"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "The organisation group you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation group you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Le groupe d'organisation que vous cherchez peut avoir été supprimé, renommé ou n'a peut-être jamais existé."
@ -6485,12 +6533,14 @@ msgid "The organisation role that will be applied to all members in this group."
msgstr "Le rôle d'organisation qui sera appliqué à tous les membres de ce groupe."
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "L'organisation que vous cherchez peut avoir été supprimée, renommée ou n'a peut-être jamais existé."
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "L'organisation que vous cherchez peut avoir été supprimée, renommée ou n'a peut-être jamais existé."
@ -6574,12 +6624,14 @@ msgid "The team email <0>{teamEmail}</0> has been removed from the following tea
msgstr "L'email d'équipe <0>{teamEmail}</0> a été supprimé de l'équipe suivante"
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "L'équipe que vous cherchez peut avoir été supprimée, renommée ou n'a peut-être jamais existé."
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "L'équipe que vous cherchez a peut-être été supprimée, renommée ou n'a peut-être jamais existé."
@ -6617,7 +6669,8 @@ msgid "The URL for Documenso to send webhook events to."
msgstr "L'URL pour Documenso pour envoyer des événements webhook."
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
msgid "The user you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The user you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "L'utilisateur que vous cherchez peut avoir été supprimé, renommé ou n'a peut-être jamais existé."
@ -6784,10 +6837,6 @@ msgstr "Voici comment le document atteindra les destinataires une fois qu'il ser
msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation."
msgstr "Il s'agit de la réclamation avec laquelle cette organisation a initialement été créée. Tout changement de drapeau de fonctionnalité à cette revendication sera rétroporté dans cette organisation."
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
msgid "This link is invalid or has expired."
msgstr "Ce lien est invalide ou a expiré."
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "This link is invalid or has expired. Please contact your team to resend a verification."
msgstr "Ce lien est invalide ou a expiré. Veuillez contacter votre équipe pour renvoyer une vérification."
@ -6858,6 +6907,10 @@ msgstr "Cela sera envoyé au propriétaire du document une fois que le document
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
msgstr "Cela ne fera que rétroporter les drapeaux de fonctionnalité qui sont activés, tout ce qui est désactivé dans la réclamation initiale ne sera pas rétroporté"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account."
msgstr ""
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
#: apps/remix/app/components/tables/document-logs-table.tsx
msgid "Time"
@ -7144,6 +7197,9 @@ msgstr "Non complet"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Unknown"
msgstr "Inconnu"
@ -7497,6 +7553,11 @@ msgstr "Voir tous les documents associés"
msgid "View all security activity related to your account."
msgstr "Voir toute l'activité de sécurité liée à votre compte."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "View and manage all active sessions for your account."
msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
msgid "View Codes"
msgstr "Voir les codes"
@ -8563,4 +8624,3 @@ msgstr "Votre token a été créé avec succès ! Assurez-vous de le copier car
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx
msgid "Your tokens will be shown here once you create them."
msgstr "Vos tokens seront affichés ici une fois que vous les aurez créés."

View File

@ -752,6 +752,11 @@ msgstr "Azioni"
msgid "Active"
msgstr "Attivo"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Active sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx
msgid "Active Subscriptions"
msgstr "Abbonamenti attivi"
@ -817,13 +822,13 @@ msgstr "Aggiungi campi"
msgid "Add group roles"
msgstr "Aggiungi ruoli di gruppo"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add groups"
msgstr "Aggiungi gruppi"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add members"
msgstr "Aggiungi membri"
@ -1614,6 +1619,7 @@ msgstr "Può preparare"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
@ -2221,6 +2227,7 @@ msgstr "Crea il tuo account e inizia a utilizzare firme digitali all'avanguardia
msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
msgstr "Crea il tuo account e inizia a utilizzare firme digitali all'avanguardia. Una firma aperta e bella è a tua portata."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
#: apps/remix/app/components/tables/templates-table.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
@ -2260,6 +2267,10 @@ msgstr "Creato il {0}"
msgid "CSV Structure"
msgstr "Struttura CSV"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Current"
msgstr ""
#: apps/remix/app/components/forms/password.tsx
msgid "Current Password"
msgstr "Password attuale"
@ -2453,6 +2464,7 @@ msgid "Details"
msgstr "Dettagli"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/settings-security-activity-table.tsx
msgid "Device"
msgstr "Dispositivo"
@ -3179,6 +3191,7 @@ msgstr "Impresa"
#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
@ -3221,6 +3234,7 @@ msgstr "Impresa"
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
@ -3286,10 +3300,18 @@ msgstr "Caricamento documento fallito."
msgid "Failed to reseal document"
msgstr "Fallito il risigillo del documento"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Failed to revoke session"
msgstr ""
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx
msgid "Failed to save settings."
msgstr "Impossibile salvare le impostazioni."
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Failed to sign out all sessions"
msgstr ""
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
msgid "Failed to update document"
msgstr "Aggiornamento documento fallito"
@ -3747,7 +3769,6 @@ msgstr "Codice non valido. Riprova."
msgid "Invalid email"
msgstr "Email non valida"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "Invalid link"
msgstr "Link non valido"
@ -3811,6 +3832,7 @@ msgid "Invoice"
msgstr "Fattura"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
msgid "IP Address"
msgstr "Indirizzo IP"
@ -3881,6 +3903,10 @@ msgstr "Ultimi 30 giorni"
msgid "Last 7 days"
msgstr "Ultimi 7 giorni"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Last Active"
msgstr ""
#: apps/remix/app/components/general/template/template-page-view-information.tsx
#: apps/remix/app/components/general/document/document-page-view-information.tsx
msgid "Last modified"
@ -4030,6 +4056,10 @@ msgstr "Gestisci chiavi di accesso"
msgid "Manage permissions and access controls"
msgstr "Gestisci le autorizzazioni e i controlli di accesso"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Manage sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "Manage subscription"
@ -5305,7 +5335,6 @@ msgstr "Conservazione dei documenti"
msgid "Retry"
msgstr "Riprova"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx
@ -5321,6 +5350,7 @@ msgstr "Torna alla home"
msgid "Return to sign in"
msgstr "Torna a accedere"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/general/teams/team-email-usage.tsx
msgid "Revoke"
msgstr "Revoca"
@ -5329,6 +5359,12 @@ msgstr "Revoca"
msgid "Revoke access"
msgstr "Revoca l'accesso"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Revoke all sessions"
msgstr ""
#: apps/remix/app/components/tables/user-organisations-table.tsx
#: apps/remix/app/components/tables/team-members-table.tsx
#: apps/remix/app/components/tables/team-groups-table.tsx
@ -5481,6 +5517,10 @@ msgstr "Seleziona opzione predefinita"
msgid "Select groups"
msgstr "Seleziona gruppi"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups of members to add to the team."
msgstr ""
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups to add to this team"
msgstr "Seleziona i gruppi da aggiungere a questo team"
@ -5492,7 +5532,6 @@ msgid "Select members"
msgstr "Seleziona membri"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select members or groups of members to add to the team."
msgstr "Seleziona membri o gruppi di membri da aggiungere al team."
@ -5602,6 +5641,14 @@ msgstr "Invio..."
msgid "Sent"
msgstr "Inviato"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr ""
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Sessions have been revoked"
msgstr ""
#: apps/remix/app/components/general/claim-account.tsx
msgid "Set a password"
msgstr "Imposta una password"
@ -6476,9 +6523,11 @@ msgid "The following team has been deleted. You will no longer be able to access
msgstr "Il seguente team è stato eliminato. Non potrai più accedere a questo team e ai suoi documenti"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "The organisation group you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation group you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Il gruppo organizzativo che cerchi potrebbe essere stato rimosso, rinominato o potrebbe non essere mai\n"
msgstr ""
"Il gruppo organizzativo che cerchi potrebbe essere stato rimosso, rinominato o potrebbe non essere mai\n"
" esistito."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
@ -6486,15 +6535,19 @@ msgid "The organisation role that will be applied to all members in this group."
msgstr "Il ruolo organizzativo che verrà applicato a tutti i membri in questo gruppo."
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "L'organizzazione che cerchi potrebbe essere stata rimossa, rinominata o potrebbe non essere mai\n"
msgstr ""
"L'organizzazione che cerchi potrebbe essere stata rimossa, rinominata o potrebbe non essere mai\n"
" esistita."
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "L'organizzazione che cerchi potrebbe essere stata rimossa, rinominata o potrebbe non essere mai\n"
msgstr ""
"L'organizzazione che cerchi potrebbe essere stata rimossa, rinominata o potrebbe non essere mai\n"
" esistita."
#: apps/remix/app/components/general/generic-error-layout.tsx
@ -6577,15 +6630,19 @@ msgid "The team email <0>{teamEmail}</0> has been removed from the following tea
msgstr "L'email del team <0>{teamEmail}</0> è stata rimossa dal seguente team"
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Il team che cerchi potrebbe essere stato rimosso, rinominato o potrebbe non essere mai\n"
msgstr ""
"Il team che cerchi potrebbe essere stato rimosso, rinominato o potrebbe non essere mai\n"
" esistito."
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "La squadra che stai cercando potrebbe essere stata rimossa, rinominata o potrebbe non essere mai\n"
msgstr ""
"La squadra che stai cercando potrebbe essere stata rimossa, rinominata o potrebbe non essere mai\n"
" esistita."
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@ -6622,9 +6679,11 @@ msgid "The URL for Documenso to send webhook events to."
msgstr "L'URL per Documenso per inviare eventi webhook."
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
msgid "The user you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The user you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "L'utente che cerchi potrebbe essere stato rimosso, rinominato o potrebbe non essere mai\n"
msgstr ""
"L'utente che cerchi potrebbe essere stato rimosso, rinominato o potrebbe non essere mai\n"
" esistito."
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
@ -6790,10 +6849,6 @@ msgstr "È così che il documento raggiungerà i destinatari una volta pronto pe
msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation."
msgstr "Questo è il reclamo con cui questa organizzazione è stata inizialmente creata. Qualunque cambiamento agli indicatori delle funzionalità di questo reclamo sarà retroportato in questa organizzazione."
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
msgid "This link is invalid or has expired."
msgstr "Questo link non è valido o è scaduto."
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "This link is invalid or has expired. Please contact your team to resend a verification."
msgstr "Questo link è invalido o è scaduto. Si prega di contattare il tuo team per inviare nuovamente una verifica."
@ -6864,6 +6919,10 @@ msgstr "Questo sarà inviato al proprietario del documento una volta che il docu
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
msgstr "Questo farà SOLO il retroporting degli indicatori delle funzionalità impostati su vero, qualsiasi cosa disabilitata nel reclamo iniziale non sarà retroportata"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account."
msgstr ""
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
#: apps/remix/app/components/tables/document-logs-table.tsx
msgid "Time"
@ -7150,6 +7209,9 @@ msgstr "Incompleto"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Unknown"
msgstr "Sconosciuto"
@ -7503,6 +7565,11 @@ msgstr "Visualizza tutti i documenti correlati"
msgid "View all security activity related to your account."
msgstr "Visualizza tutte le attività di sicurezza relative al tuo account."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "View and manage all active sessions for your account."
msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
msgid "View Codes"
msgstr "Visualizza Codici"
@ -8569,4 +8636,3 @@ msgstr "Il tuo token è stato creato con successo! Assicurati di copiarlo perch
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx
msgid "Your tokens will be shown here once you create them."
msgstr "I tuoi token verranno mostrati qui una volta creati."

View File

@ -752,6 +752,11 @@ msgstr "Akcje"
msgid "Active"
msgstr "Aktywne"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Active sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx
msgid "Active Subscriptions"
msgstr "Aktywne subskrypcje"
@ -817,13 +822,13 @@ msgstr "Dodaj pola"
msgid "Add group roles"
msgstr "Dodaj role grupowe"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add groups"
msgstr "Dodaj grupy"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Add members"
msgstr "Dodaj członków"
@ -1614,6 +1619,7 @@ msgstr "Może przygotować"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-create-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
@ -2221,6 +2227,7 @@ msgstr "Utwórz swoje konto i zacznij korzystać z nowoczesnego podpisywania dok
msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
msgstr "Utwórz swoje konto i zacznij korzystać z nowoczesnego podpisywania dokumentów. Otwarty i piękny podpis jest w zasięgu ręki."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
#: apps/remix/app/components/tables/templates-table.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
@ -2260,6 +2267,10 @@ msgstr "Utworzono {0}"
msgid "CSV Structure"
msgstr "Struktura CSV"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Current"
msgstr ""
#: apps/remix/app/components/forms/password.tsx
msgid "Current Password"
msgstr "Obecne hasło"
@ -2453,6 +2464,7 @@ msgid "Details"
msgstr "Szczegóły"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/settings-security-activity-table.tsx
msgid "Device"
msgstr "Urządzenie"
@ -3179,6 +3191,7 @@ msgstr "Enterprise"
#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
@ -3221,6 +3234,7 @@ msgstr "Enterprise"
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
@ -3286,10 +3300,18 @@ msgstr "Nie udało się załadować dokumentu"
msgid "Failed to reseal document"
msgstr "Nie udało się ponownie zaplombować dokumentu"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Failed to revoke session"
msgstr ""
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx
msgid "Failed to save settings."
msgstr "Nie udało się zapisać ustawień."
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Failed to sign out all sessions"
msgstr ""
#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx
msgid "Failed to update document"
msgstr "Nie udało się aktualizować dokumentu"
@ -3747,7 +3769,6 @@ msgstr "Nieprawidłowy kod. Proszę spróbuj ponownie."
msgid "Invalid email"
msgstr "Nieprawidłowy email"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "Invalid link"
msgstr "Nieprawidłowy link"
@ -3811,6 +3832,7 @@ msgid "Invoice"
msgstr "Faktura"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
msgid "IP Address"
msgstr "Adres IP"
@ -3881,6 +3903,10 @@ msgstr "Ostatnie 30 dni"
msgid "Last 7 days"
msgstr "Ostatnie 7 dni"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Last Active"
msgstr ""
#: apps/remix/app/components/general/template/template-page-view-information.tsx
#: apps/remix/app/components/general/document/document-page-view-information.tsx
msgid "Last modified"
@ -4030,6 +4056,10 @@ msgstr "Zarządzaj kluczami dostępu"
msgid "Manage permissions and access controls"
msgstr "Zarządzaj uprawnieniami i kontrolą dostępu"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Manage sessions"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "Manage subscription"
@ -5305,7 +5335,6 @@ msgstr "Przechowywanie dokumentów"
msgid "Retry"
msgstr "Spróbuj ponownie"
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx
@ -5321,6 +5350,7 @@ msgstr "Powrót do strony głównej"
msgid "Return to sign in"
msgstr "Powrót do logowania"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/components/general/teams/team-email-usage.tsx
msgid "Revoke"
msgstr "Cofnij"
@ -5329,6 +5359,12 @@ msgstr "Cofnij"
msgid "Revoke access"
msgstr "Cofnij dostęp"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Revoke all sessions"
msgstr ""
#: apps/remix/app/components/tables/user-organisations-table.tsx
#: apps/remix/app/components/tables/team-members-table.tsx
#: apps/remix/app/components/tables/team-groups-table.tsx
@ -5481,6 +5517,10 @@ msgstr "Wybierz domyślną opcję"
msgid "Select groups"
msgstr "Wybierz grupy"
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups of members to add to the team."
msgstr ""
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select groups to add to this team"
msgstr "Wybierz grupy, które chcesz dodać do tego zespołu"
@ -5492,7 +5532,6 @@ msgid "Select members"
msgstr "Wybierz członków"
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
msgid "Select members or groups of members to add to the team."
msgstr "Wybierz członków lub grupy członków, aby dodać do zespołu."
@ -5602,6 +5641,14 @@ msgstr "Wysyłanie..."
msgid "Sent"
msgstr "Wysłano"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr ""
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "Sessions have been revoked"
msgstr ""
#: apps/remix/app/components/general/claim-account.tsx
msgid "Set a password"
msgstr "Ustaw hasło"
@ -6476,7 +6523,8 @@ msgid "The following team has been deleted. You will no longer be able to access
msgstr "Poniższy zespół został usunięty. Nie będziesz mógł już uzyskać dostępu do tego zespołu i jego dokumentów."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "The organisation group you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation group you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Grupa organizacji, której szukasz, mogła zostać usunięta, zmieniona nazwa lub mogła nigdy nie istnieć."
@ -6485,12 +6533,14 @@ msgid "The organisation role that will be applied to all members in this group."
msgstr "Rola organizacji, która zostanie zastosowana do wszystkich członków tej grupy."
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Organizacja, której szukasz, mogła zostać usunięta, zmieniona nazwa lub mogła nigdy nie istnieć."
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The organisation you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The organisation you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Organizacja, której szukasz, mogła zostać usunięta, zmieniona nazwa lub mogła nigdy nie istnieć."
@ -6574,12 +6624,14 @@ msgid "The team email <0>{teamEmail}</0> has been removed from the following tea
msgstr "Email zespołowy <0>{teamEmail}</0> został usunięty z następującego zespołu"
#: apps/remix/app/routes/_authenticated+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Zespół, którego szukasz, mógł zostać usunięty, zmienić nazwę lub mógł nigdy nie istnieć."
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx
msgid "The team you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The team you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Zespół, którego szukasz, mógł zostać usunięty, zmieniony na, albo nigdy nie istniał."
@ -6617,7 +6669,8 @@ msgid "The URL for Documenso to send webhook events to."
msgstr "URL dla Documenso do wysyłania zdarzeń webhook."
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
msgid "The user you are looking for may have been removed, renamed or may have never\n"
msgid ""
"The user you are looking for may have been removed, renamed or may have never\n"
" existed."
msgstr "Użytkownik, którego szukasz, mógł zostać usunięty, zmieniony nazwę lub mógł nigdy nie istnieć."
@ -6784,10 +6837,6 @@ msgstr "W ten sposób dokument dotrze do odbiorców, gdy tylko dokument będzie
msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation."
msgstr "To jest roszczenie, z którym pierwotnie została utworzona ta organizacja. Wszelkie zmiany flag funkcji w tym roszczeniu zostaną przeniesione do tej organizacji."
#: apps/remix/app/routes/_unauthenticated+/team.verify.transfer.$token.tsx
msgid "This link is invalid or has expired."
msgstr "Ten link jest nieprawidłowy lub wygasł."
#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx
msgid "This link is invalid or has expired. Please contact your team to resend a verification."
msgstr "Ten link jest nieprawidłowy lub wygasł. Proszę skontaktować się ze swoim zespołem, aby ponownie wysłać weryfikację."
@ -6858,6 +6907,10 @@ msgstr "To zostanie wysłane do właściciela dokumentu, gdy dokument zostanie w
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
msgstr "To będzie TYLKO przenoś funkcje flag, które są ustawione na true, wszystko, co wyłączone w początkowym roszczeniu, nie zostanie przeniesione"
#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx
msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account."
msgstr ""
#: apps/remix/app/components/tables/internal-audit-log-table.tsx
#: apps/remix/app/components/tables/document-logs-table.tsx
msgid "Time"
@ -7144,6 +7197,9 @@ msgstr "Niezakończony"
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Unknown"
msgstr "Nieznany"
@ -7497,6 +7553,11 @@ msgstr "Zobacz wszystkie powiązane dokumenty"
msgid "View all security activity related to your account."
msgstr "Wyświetl wszystkie aktywności związane z bezpieczeństwem twojego konta."
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "View and manage all active sessions for your account."
msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
msgid "View Codes"
msgstr "Wyświetl kody"
@ -8563,4 +8624,3 @@ msgstr "Twój token został pomyślnie utworzony! Upewnij się, że go skopiujes
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx
msgid "Your tokens will be shown here once you create them."
msgstr "Twoje tokeny będą tutaj wyświetlane po ich utworzeniu."

View File

@ -0,0 +1,2 @@
-- AlterEnum
ALTER TYPE "UserSecurityAuditLogType" ADD VALUE 'SESSION_REVOKED';

View File

@ -97,6 +97,7 @@ enum UserSecurityAuditLogType {
PASSKEY_UPDATED
PASSWORD_RESET
PASSWORD_UPDATE
SESSION_REVOKED
SIGN_OUT
SIGN_IN
SIGN_IN_FAIL