chore: merge main

This commit is contained in:
Catalin Pit
2024-08-29 12:46:06 +03:00
330 changed files with 16584 additions and 3197 deletions

View File

@ -6,7 +6,7 @@ import type { I18n, Messages } from '@lingui/core';
import { setupI18n } from '@lingui/core';
import { setI18n } from '@lingui/react/server';
import { IS_APP_WEB } from '../../constants/app';
import { IS_APP_WEB, IS_APP_WEB_I18N_ENABLED } from '../../constants/app';
import { SUPPORTED_LANGUAGE_CODES } from '../../constants/i18n';
import { extractSupportedLanguage } from '../../utils/i18n';
@ -51,12 +51,17 @@ export const allI18nInstances = SUPPORTED_LANGUAGE_CODES.reduce((acc, locale) =>
* https://lingui.dev/tutorials/react-rsc#pages-layouts-and-lingui
*/
export const setupI18nSSR = (overrideLang?: SupportedLocales) => {
const lang =
let lang =
overrideLang ||
extractSupportedLanguage({
cookies: cookies(),
});
// Override web app to be English.
if (!IS_APP_WEB_I18N_ENABLED && IS_APP_WEB) {
lang = 'en';
}
// Get and set a ready-made i18n instance for the given language.
const i18n = allI18nInstances[lang];
setI18n(i18n);

View File

@ -1,5 +1,6 @@
import { env } from 'next-runtime-env';
export const IS_APP_WEB_I18N_ENABLED = false;
export const APP_DOCUMENT_UPLOAD_SIZE_LIMIT =
Number(process.env.NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT) || 50;

View File

@ -0,0 +1,3 @@
// Put into a separate file due to Playwright not compiling due to the macro in the templates.ts file.
export const DIRECT_TEMPLATE_RECIPIENT_EMAIL = 'direct.link@documenso.com';
export const DIRECT_TEMPLATE_RECIPIENT_NAME = 'Direct link recipient';

View File

@ -1,29 +1,64 @@
import type { MessageDescriptor } from '@lingui/core';
import { msg } from '@lingui/macro';
import { RecipientRole } from '@documenso/prisma/client';
export const RECIPIENT_ROLES_DESCRIPTION = {
[RecipientRole.APPROVER]: {
actionVerb: 'Approve',
actioned: 'Approved',
progressiveVerb: 'Approving',
roleName: 'Approver',
actionVerb: msg`Approve`,
actioned: msg`Approved`,
progressiveVerb: msg`Approving`,
roleName: msg`Approver`,
},
[RecipientRole.CC]: {
actionVerb: 'CC',
actioned: `CC'd`,
progressiveVerb: 'CC',
roleName: 'Cc',
actionVerb: msg`CC`,
actioned: msg`CC'd`,
progressiveVerb: msg`CC`,
roleName: msg`Cc`,
},
[RecipientRole.SIGNER]: {
actionVerb: 'Sign',
actioned: 'Signed',
progressiveVerb: 'Signing',
roleName: 'Signer',
actionVerb: msg`Sign`,
actioned: msg`Signed`,
progressiveVerb: msg`Signing`,
roleName: msg`Signer`,
},
[RecipientRole.VIEWER]: {
actionVerb: 'View',
actioned: 'Viewed',
progressiveVerb: 'Viewing',
roleName: 'Viewer',
actionVerb: msg`View`,
actioned: msg`Viewed`,
progressiveVerb: msg`Viewing`,
roleName: msg`Viewer`,
},
} satisfies Record<keyof typeof RecipientRole, unknown>;
/**
* Raw english descriptions for emails.
*
* Todo: Handle i18n for emails.
*/
export const RECIPIENT_ROLES_DESCRIPTION_ENG = {
[RecipientRole.APPROVER]: {
actionVerb: `Approve`,
actioned: `Approved`,
progressiveVerb: `Approving`,
roleName: `Approver`,
},
[RecipientRole.CC]: {
actionVerb: `CC`,
actioned: `CC'd`,
progressiveVerb: `CC`,
roleName: `Cc`,
},
[RecipientRole.SIGNER]: {
actionVerb: `Sign`,
actioned: `Signed`,
progressiveVerb: `Signing`,
roleName: `Signer`,
},
[RecipientRole.VIEWER]: {
actionVerb: `View`,
actioned: `Viewed`,
progressiveVerb: `Viewing`,
roleName: `Viewer`,
},
} satisfies Record<keyof typeof RecipientRole, unknown>;
@ -34,8 +69,18 @@ export const RECIPIENT_ROLE_TO_EMAIL_TYPE = {
} as const;
export const RECIPIENT_ROLE_SIGNING_REASONS = {
[RecipientRole.SIGNER]: 'I am a signer of this document',
[RecipientRole.APPROVER]: 'I am an approver of this document',
[RecipientRole.CC]: 'I am required to recieve a copy of this document',
[RecipientRole.VIEWER]: 'I am a viewer of this document',
[RecipientRole.SIGNER]: msg`I am a signer of this document`,
[RecipientRole.APPROVER]: msg`I am an approver of this document`,
[RecipientRole.CC]: msg`I am required to receive a copy of this document`,
[RecipientRole.VIEWER]: msg`I am a viewer of this document`,
} satisfies Record<keyof typeof RecipientRole, MessageDescriptor>;
/**
* Raw english descriptions for certificates.
*/
export const RECIPIENT_ROLE_SIGNING_REASONS_ENG = {
[RecipientRole.SIGNER]: `I am a signer of this document`,
[RecipientRole.APPROVER]: `I am an approver of this document`,
[RecipientRole.CC]: `I am required to receive a copy of this document`,
[RecipientRole.VIEWER]: `I am a viewer of this document`,
} satisfies Record<keyof typeof RecipientRole, string>;

View File

@ -1,12 +1,15 @@
import type { MessageDescriptor } from '@lingui/core';
import { msg } from '@lingui/macro';
import { TeamMemberRole } from '@documenso/prisma/client';
export const TEAM_URL_ROOT_REGEX = new RegExp('^/t/[^/]+$');
export const TEAM_URL_REGEX = new RegExp('^/t/[^/]+');
export const TEAM_MEMBER_ROLE_MAP: Record<keyof typeof TeamMemberRole, string> = {
ADMIN: 'Admin',
MANAGER: 'Manager',
MEMBER: 'Member',
export const TEAM_MEMBER_ROLE_MAP: Record<keyof typeof TeamMemberRole, MessageDescriptor> = {
ADMIN: msg`Admin`,
MANAGER: msg`Manager`,
MEMBER: msg`Member`,
};
export const TEAM_MEMBER_ROLE_PERMISSIONS_MAP = {

View File

@ -1,28 +1,23 @@
import { msg } from '@lingui/macro';
export const TEMPLATE_RECIPIENT_EMAIL_PLACEHOLDER_REGEX = /recipient\.\d+@documenso\.com/i;
export const TEMPLATE_RECIPIENT_NAME_PLACEHOLDER_REGEX = /Recipient \d+/i;
export const DIRECT_TEMPLATE_DOCUMENTATION = [
{
title: 'Enable Direct Link Signing',
description:
'Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted.',
title: msg`Enable Direct Link Signing`,
description: msg`Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted.`,
},
{
title: 'Configure Direct Recipient',
description:
'Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient.',
title: msg`Configure Direct Recipient`,
description: msg`Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient.`,
},
{
title: 'Share the Link',
description:
'Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them.',
title: msg`Share the Link`,
description: msg`Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them.`,
},
{
title: 'Document Creation',
description:
'After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email.',
title: msg`Document Creation`,
description: msg`After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email.`,
},
];
export const DIRECT_TEMPLATE_RECIPIENT_EMAIL = 'direct.link@documenso.com';
export const DIRECT_TEMPLATE_RECIPIENT_NAME = 'Direct link recipient';

View File

@ -1,13 +0,0 @@
import { Toast } from '@documenso/ui/primitives/use-toast';
export const TOAST_DOCUMENT_SHARE_SUCCESS: Toast = {
title: 'Copied to clipboard',
description: 'The sharing link has been copied to your clipboard.',
} as const;
export const TOAST_DOCUMENT_SHARE_ERROR: Toast = {
variant: 'destructive',
title: 'Something went wrong',
description: 'The sharing link could not be created at this time. Please try again.',
duration: 5000,
};

View File

@ -16,7 +16,7 @@ import {
import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app';
import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email';
import {
RECIPIENT_ROLES_DESCRIPTION,
RECIPIENT_ROLES_DESCRIPTION_ENG,
RECIPIENT_ROLE_TO_EMAIL_TYPE,
} from '../../../constants/recipient-roles';
import { DOCUMENT_AUDIT_LOG_TYPE } from '../../../types/document-audit-logs';
@ -58,6 +58,12 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = {
},
include: {
documentMeta: true,
team: {
select: {
teamEmail: true,
name: true,
},
},
},
}),
prisma.recipient.findFirstOrThrow({
@ -67,7 +73,7 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = {
}),
]);
const { documentMeta } = document;
const { documentMeta, team } = document;
if (recipient.role === RecipientRole.CC) {
return;
@ -75,13 +81,14 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = {
const customEmail = document?.documentMeta;
const isDirectTemplate = document.source === DocumentSource.TEMPLATE_DIRECT_LINK;
const isTeamDocument = document.teamId !== null;
const recipientEmailType = RECIPIENT_ROLE_TO_EMAIL_TYPE[recipient.role];
const { email, name } = recipient;
const selfSigner = email === user.email;
const { actionVerb } = RECIPIENT_ROLES_DESCRIPTION[recipient.role];
const recipientActionVerb = actionVerb.toLowerCase();
const recipientActionVerb =
RECIPIENT_ROLES_DESCRIPTION_ENG[recipient.role].actionVerb.toLowerCase();
let emailMessage = customEmail?.message || '';
let emailSubject = `Please ${recipientActionVerb} this document`;
@ -96,6 +103,11 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = {
emailSubject = `Please ${recipientActionVerb} this document created by your direct template`;
}
if (isTeamDocument && team) {
emailSubject = `${team.name} invited you to ${recipientActionVerb} a document`;
emailMessage = `${user.name} on behalf of ${team.name} has invited you to ${recipientActionVerb} the document "${document.title}".`;
}
const customEmailTemplate = {
'signer.name': name,
'signer.email': email,
@ -108,12 +120,15 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = {
const template = createElement(DocumentInviteEmailTemplate, {
documentName: document.title,
inviterName: user.name || undefined,
inviterEmail: user.email,
inviterEmail: isTeamDocument ? team?.teamEmail?.email || user.email : user.email,
assetBaseUrl,
signDocumentLink,
customBody: renderCustomEmailTemplate(emailMessage, customEmailTemplate),
role: recipient.role,
selfSigner,
isTeamInvite: isTeamDocument,
teamName: team?.name,
teamEmail: team?.teamEmail?.email,
});
await io.runTask('send-signing-email', async () => {

View File

@ -17,6 +17,7 @@ import { AppError, AppErrorCode } from '../errors/app-error';
import { jobsClient } from '../jobs/client';
import { isTwoFactorAuthenticationEnabled } from '../server-only/2fa/is-2fa-availble';
import { validateTwoFactorAuthentication } from '../server-only/2fa/validate-2fa';
import { decryptSecondaryData } from '../server-only/crypto/decrypt';
import { getMostRecentVerificationTokenByUserId } from '../server-only/user/get-most-recent-verification-token-by-user-id';
import { getUserByEmail } from '../server-only/user/get-user-by-email';
import type { TAuthenticationResponseJSONSchema } from '../types/webauthn';
@ -267,6 +268,55 @@ export const NEXT_AUTH_OPTIONS: AuthOptions = {
},
});
return {
id: Number(user.id),
email: user.email,
name: user.name,
emailVerified: user.emailVerified?.toISOString() ?? null,
} satisfies User;
},
}),
CredentialsProvider({
id: 'manual',
name: 'Manual',
credentials: {
credential: { label: 'Credential', type: 'credential' },
},
async authorize(credentials, req) {
const credential = credentials?.credential;
if (typeof credential !== 'string' || credential.length === 0) {
throw new AppError(AppErrorCode.INVALID_REQUEST);
}
const decryptedCredential = decryptSecondaryData(credential);
if (!decryptedCredential) {
throw new AppError(AppErrorCode.INVALID_REQUEST);
}
const parsedCredential = JSON.parse(decryptedCredential);
if (typeof parsedCredential !== 'object' || parsedCredential === null) {
throw new AppError(AppErrorCode.INVALID_REQUEST);
}
const { userId, email } = parsedCredential;
if (typeof userId !== 'number' || typeof email !== 'string') {
throw new AppError(AppErrorCode.INVALID_REQUEST);
}
const user = await prisma.user.findFirst({
where: {
id: userId,
},
});
if (!user) {
throw new AppError(AppErrorCode.INVALID_REQUEST);
}
return {
id: Number(user.id),
email: user.email,

View File

@ -2,25 +2,33 @@ import { prisma } from '@documenso/prisma';
import type { User } from '@documenso/prisma/client';
import { UserSecurityAuditLogType } from '@documenso/prisma/client';
import { AppError } from '../../errors/app-error';
import { AppError, AppErrorCode } from '../../errors/app-error';
import type { RequestMetadata } from '../../universal/extract-request-metadata';
import { validateTwoFactorAuthentication } from './validate-2fa';
type DisableTwoFactorAuthenticationOptions = {
user: User;
token: string;
totpCode?: string;
backupCode?: string;
requestMetadata?: RequestMetadata;
};
export const disableTwoFactorAuthentication = async ({
token,
totpCode,
backupCode,
user,
requestMetadata,
}: DisableTwoFactorAuthenticationOptions) => {
let isValid = await validateTwoFactorAuthentication({ totpCode: token, user });
let isValid = false;
if (!isValid) {
isValid = await validateTwoFactorAuthentication({ backupCode: token, user });
if (!totpCode && !backupCode) {
throw new AppError(AppErrorCode.INVALID_REQUEST);
}
if (totpCode) {
isValid = await validateTwoFactorAuthentication({ totpCode, user });
} else if (backupCode) {
isValid = await validateTwoFactorAuthentication({ backupCode, user });
}
if (!isValid) {

View File

@ -5,7 +5,7 @@ import { render } from '@documenso/email/render';
import { DocumentInviteEmailTemplate } from '@documenso/email/templates/document-invite';
import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email';
import {
RECIPIENT_ROLES_DESCRIPTION,
RECIPIENT_ROLES_DESCRIPTION_ENG,
RECIPIENT_ROLE_TO_EMAIL_TYPE,
} from '@documenso/lib/constants/recipient-roles';
import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs';
@ -58,10 +58,17 @@ export const resendDocument = async ({
},
},
documentMeta: true,
team: {
select: {
teamEmail: true,
name: true,
},
},
},
});
const customEmail = document?.documentMeta;
const isTeamDocument = document?.team !== null;
if (!document) {
throw new Error('Document not found');
@ -90,9 +97,21 @@ export const resendDocument = async ({
const { email, name } = recipient;
const selfSigner = email === user.email;
const selfSignerCustomEmail = `You have initiated the document ${`"${document.title}"`} that requires you to ${RECIPIENT_ROLES_DESCRIPTION[
recipient.role
].actionVerb.toLowerCase()} it.`;
const recipientActionVerb =
RECIPIENT_ROLES_DESCRIPTION_ENG[recipient.role].actionVerb.toLowerCase();
let emailMessage = customEmail?.message || '';
let emailSubject = `Reminder: Please ${recipientActionVerb} this document`;
if (selfSigner) {
emailMessage = `You have initiated the document ${`"${document.title}"`} that requires you to ${recipientActionVerb} it.`;
emailSubject = `Reminder: Please ${recipientActionVerb} your document`;
}
if (isTeamDocument && document.team) {
emailSubject = `Reminder: ${document.team.name} invited you to ${recipientActionVerb} a document`;
emailMessage = `${user.name} on behalf of ${document.team.name} has invited you to ${recipientActionVerb} the document "${document.title}".`;
}
const customEmailTemplate = {
'signer.name': name,
@ -106,23 +125,16 @@ export const resendDocument = async ({
const template = createElement(DocumentInviteEmailTemplate, {
documentName: document.title,
inviterName: user.name || undefined,
inviterEmail: user.email,
inviterEmail: isTeamDocument ? document.team?.teamEmail?.email || user.email : user.email,
assetBaseUrl,
signDocumentLink,
customBody: renderCustomEmailTemplate(
selfSigner && !customEmail?.message ? selfSignerCustomEmail : customEmail?.message || '',
customEmailTemplate,
),
customBody: renderCustomEmailTemplate(emailMessage, customEmailTemplate),
role: recipient.role,
selfSigner,
isTeamInvite: isTeamDocument,
teamName: document.team?.name,
});
const { actionVerb } = RECIPIENT_ROLES_DESCRIPTION[recipient.role];
const emailSubject = selfSigner
? `Reminder: Please ${actionVerb.toLowerCase()} your document`
: `Reminder: Please ${actionVerb.toLowerCase()} this document`;
await prisma.$transaction(
async (tx) => {
await mailer.sendMail({

View File

@ -1,6 +1,16 @@
import { match } from 'ts-pattern';
import { prisma } from '@documenso/prisma';
import type { FieldType, Team } from '@documenso/prisma/client';
import {
ZCheckboxFieldMeta,
ZDropdownFieldMeta,
ZNumberFieldMeta,
ZRadioFieldMeta,
ZTextFieldMeta,
} from '../../types/field-meta';
import type { TFieldMetaSchema as FieldMeta } from '../../types/field-meta';
import type { RequestMetadata } from '../../universal/extract-request-metadata';
import { createDocumentAuditLogData } from '../../utils/document-audit-logs';
@ -15,6 +25,7 @@ export type CreateFieldOptions = {
pageY: number;
pageWidth: number;
pageHeight: number;
fieldMeta?: FieldMeta;
requestMetadata?: RequestMetadata;
};
@ -29,6 +40,7 @@ export const createField = async ({
pageY,
pageWidth,
pageHeight,
fieldMeta,
requestMetadata,
}: CreateFieldOptions) => {
const document = await prisma.document.findFirst({
@ -85,6 +97,42 @@ export const createField = async ({
});
}
const advancedField = ['NUMBER', 'RADIO', 'CHECKBOX', 'DROPDOWN', 'TEXT'].includes(type);
if (advancedField && !fieldMeta) {
throw new Error(
'Field meta is required for this type of field. Please provide the appropriate field meta object.',
);
}
if (fieldMeta && fieldMeta.type.toLowerCase() !== String(type).toLowerCase()) {
throw new Error('Field meta type does not match the field type');
}
const result = match(type)
.with('RADIO', () => {
return ZRadioFieldMeta.safeParse(fieldMeta);
})
.with('CHECKBOX', () => {
return ZCheckboxFieldMeta.safeParse(fieldMeta);
})
.with('DROPDOWN', () => {
return ZDropdownFieldMeta.safeParse(fieldMeta);
})
.with('NUMBER', () => {
return ZNumberFieldMeta.safeParse(fieldMeta);
})
.with('TEXT', () => {
return ZTextFieldMeta.safeParse(fieldMeta);
})
.otherwise(() => {
return { success: false, data: {} };
});
if (!result.success) {
throw new Error('Field meta parsing failed');
}
const field = await prisma.field.create({
data: {
documentId,
@ -97,6 +145,7 @@ export const createField = async ({
height: pageHeight,
customText: '',
inserted: false,
fieldMeta: advancedField ? result.data : undefined,
},
include: {
Recipient: true,

View File

@ -1,12 +1,12 @@
import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise';
import {
DIRECT_TEMPLATE_RECIPIENT_EMAIL,
DIRECT_TEMPLATE_RECIPIENT_NAME,
} from '@documenso/lib/constants/direct-templates';
import { prisma } from '@documenso/prisma';
import type { Recipient } from '@documenso/prisma/client';
import { RecipientRole } from '@documenso/prisma/client';
import {
DIRECT_TEMPLATE_RECIPIENT_EMAIL,
DIRECT_TEMPLATE_RECIPIENT_NAME,
} from '../../constants/template';
import { AppError, AppErrorCode } from '../../errors/app-error';
import {
type TRecipientActionAuthTypes,

View File

@ -1,6 +1,7 @@
import { updateSubscriptionItemQuantity } from '@documenso/ee/server-only/stripe/update-subscription-item-quantity';
import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app';
import { prisma } from '@documenso/prisma';
import { TeamMemberInviteStatus } from '@documenso/prisma/client';
import { jobs } from '../../jobs/client';
@ -22,6 +23,9 @@ export const acceptTeamInvitation = async ({ userId, teamId }: AcceptTeamInvitat
where: {
teamId,
email: user.email,
status: {
not: TeamMemberInviteStatus.DECLINED,
},
},
include: {
team: {
@ -37,6 +41,10 @@ export const acceptTeamInvitation = async ({ userId, teamId }: AcceptTeamInvitat
},
});
if (teamMemberInvite.status === TeamMemberInviteStatus.ACCEPTED) {
return;
}
const { team } = teamMemberInvite;
const teamMember = await tx.teamMember.create({
@ -47,10 +55,13 @@ export const acceptTeamInvitation = async ({ userId, teamId }: AcceptTeamInvitat
},
});
await tx.teamMemberInvite.delete({
await tx.teamMemberInvite.update({
where: {
id: teamMemberInvite.id,
},
data: {
status: TeamMemberInviteStatus.ACCEPTED,
},
});
if (IS_BILLING_ENABLED() && team.subscription) {

View File

@ -28,11 +28,24 @@ export const transferTeamOwnership = async ({ token }: TransferTeamOwnershipOpti
const { team, userId: newOwnerUserId } = teamTransferVerification;
await tx.teamTransferVerification.delete({
where: {
teamId: team.id,
},
});
await Promise.all([
tx.teamTransferVerification.updateMany({
where: {
teamId: team.id,
},
data: {
completed: true,
},
}),
tx.teamTransferVerification.deleteMany({
where: {
teamId: team.id,
expiresAt: {
lt: new Date(),
},
},
}),
]);
const newOwnerUser = await tx.user.findFirstOrThrow({
where: {

View File

@ -2,13 +2,13 @@
import { nanoid } from 'nanoid';
import { prisma } from '@documenso/prisma';
import type { Recipient, TemplateDirectLink } from '@documenso/prisma/client';
import {
DIRECT_TEMPLATE_RECIPIENT_EMAIL,
DIRECT_TEMPLATE_RECIPIENT_NAME,
} from '../../constants/template';
} from '@documenso/lib/constants/direct-templates';
import { prisma } from '@documenso/prisma';
import type { Recipient, TemplateDirectLink } from '@documenso/prisma/client';
import { AppError, AppErrorCode } from '../../errors/app-error';
export type CreateTemplateDirectLinkOptions = {

View File

@ -4,6 +4,13 @@ import { prisma } from '@documenso/prisma';
import { jobsClient } from '../../jobs/client';
export const EMAIL_VERIFICATION_STATE = {
NOT_FOUND: 'NOT_FOUND',
VERIFIED: 'VERIFIED',
EXPIRED: 'EXPIRED',
ALREADY_VERIFIED: 'ALREADY_VERIFIED',
} as const;
export type VerifyEmailProps = {
token: string;
};
@ -19,7 +26,7 @@ export const verifyEmail = async ({ token }: VerifyEmailProps) => {
});
if (!verificationToken) {
return null;
return EMAIL_VERIFICATION_STATE.NOT_FOUND;
}
// check if the token is valid or expired
@ -48,10 +55,14 @@ export const verifyEmail = async ({ token }: VerifyEmailProps) => {
});
}
return valid;
return EMAIL_VERIFICATION_STATE.EXPIRED;
}
const [updatedUser, deletedToken] = await prisma.$transaction([
if (verificationToken.completed) {
return EMAIL_VERIFICATION_STATE.ALREADY_VERIFIED;
}
const [updatedUser] = await prisma.$transaction([
prisma.user.update({
where: {
id: verificationToken.userId,
@ -60,16 +71,28 @@ export const verifyEmail = async ({ token }: VerifyEmailProps) => {
emailVerified: new Date(),
},
}),
prisma.verificationToken.updateMany({
where: {
userId: verificationToken.userId,
},
data: {
completed: true,
},
}),
// Tidy up old expired tokens
prisma.verificationToken.deleteMany({
where: {
userId: verificationToken.userId,
expires: {
lt: new Date(),
},
},
}),
]);
if (!updatedUser || !deletedToken) {
if (!updatedUser) {
throw new Error('Something went wrong while verifying your email. Please try again.');
}
return !!updatedUser && !!deletedToken;
return EMAIL_VERIFICATION_STATE.VERIFIED;
};

View File

@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-07-26 06:04\n"
"PO-Revision-Date: 2024-08-27 16:03\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -17,3 +17,734 @@ msgstr ""
"X-Crowdin-Language: de\n"
"X-Crowdin-File: common.po\n"
"X-Crowdin-File-ID: 4\n"
#: packages/ui/primitives/data-table-pagination.tsx:30
msgid "{0} of {1} row(s) selected."
msgstr "{0} von {1} Zeile(n) ausgewählt."
#: packages/ui/primitives/data-table-pagination.tsx:41
msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}"
msgstr "{visibleRows, plural, one {Eine # Ergebnis wird angezeigt.} other {# Ergebnisse werden angezeigt.}}"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:53
msgid "<0>Inherit authentication method</0> - Use the global action signing authentication method configured in the \"General Settings\" step"
msgstr "<0>Authentifizierungsmethode erben</0> - Verwenden Sie die in den \"Allgemeinen Einstellungen\" konfigurierte globale Aktionssignatur-Authentifizierungsmethode"
#: packages/ui/components/document/document-global-auth-action-select.tsx:95
msgid "<0>No restrictions</0> - No authentication required"
msgstr "<0>Keine Einschränkungen</0> - Keine Authentifizierung erforderlich"
#: packages/ui/components/document/document-global-auth-access-select.tsx:77
msgid "<0>No restrictions</0> - The document can be accessed directly by the URL sent to the recipient"
msgstr "<0>Keine Einschränkungen</0> - Das Dokument kann direkt über die dem Empfänger gesendete URL abgerufen werden"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:75
msgid "<0>None</0> - No authentication required"
msgstr "<0>Keine</0> - Keine Authentifizierung erforderlich"
#: packages/ui/components/document/document-global-auth-action-select.tsx:89
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:69
msgid "<0>Require 2FA</0> - The recipient must have an account and 2FA enabled via their settings"
msgstr "<0>2FA erforderlich</0> - Der Empfänger muss ein Konto haben und die 2FA über seine Einstellungen aktiviert haben"
#: packages/ui/components/document/document-global-auth-access-select.tsx:72
msgid "<0>Require account</0> - The recipient must be signed in to view the document"
msgstr "<0>Konto erforderlich</0> - Der Empfänger muss angemeldet sein, um das Dokument anzeigen zu können"
#: packages/ui/components/document/document-global-auth-action-select.tsx:83
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:63
msgid "<0>Require passkey</0> - The recipient must have an account and passkey configured via their settings"
msgstr "<0>Passkey erforderlich</0> - Der Empfänger muss ein Konto haben und den Passkey über seine Einstellungen konfiguriert haben"
#: packages/ui/primitives/document-dropzone.tsx:69
msgid "Add a document"
msgstr "Dokument hinzufügen"
#: packages/ui/primitives/document-flow/add-settings.tsx:305
#: packages/ui/primitives/template-flow/add-template-settings.tsx:339
msgid "Add a URL to redirect the user to once the document is signed"
msgstr "Fügen Sie eine URL hinzu, um den Benutzer nach der Unterzeichnung des Dokuments weiterzuleiten"
#: packages/ui/primitives/document-flow/add-settings.tsx:217
msgid "Add an external ID to the document. This can be used to identify the document in external systems."
msgstr "Fügen Sie dem Dokument eine externe ID hinzu. Diese kann verwendet werden, um das Dokument in externen Systemen zu identifizieren."
#: packages/ui/primitives/template-flow/add-template-settings.tsx:256
msgid "Add an external ID to the template. This can be used to identify in external systems."
msgstr "Fügen Sie der Vorlage eine externe ID hinzu. Diese kann zur Identifizierung in externen Systemen verwendet werden."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:177
msgid "Add another option"
msgstr "Weitere Option hinzufügen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:230
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167
msgid "Add another value"
msgstr "Weiteren Wert hinzufügen"
#: packages/ui/primitives/document-flow/add-signers.tsx:359
msgid "Add myself"
msgstr "Mich selbst hinzufügen"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:369
msgid "Add Myself"
msgstr "Mich hinzufügen"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:355
msgid "Add Placeholder Recipient"
msgstr "Platzhalterempfänger hinzufügen"
#: packages/ui/primitives/document-flow/add-signers.tsx:348
msgid "Add Signer"
msgstr "Unterzeichner hinzufügen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70
msgid "Add text"
msgstr "Text hinzufügen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75
msgid "Add text to the field"
msgstr "Text zum Feld hinzufügen"
#: packages/lib/constants/teams.ts:10
msgid "Admin"
msgstr "Admin"
#: packages/ui/primitives/document-flow/add-settings.tsx:199
#: packages/ui/primitives/template-flow/add-template-settings.tsx:238
msgid "Advanced Options"
msgstr "Erweiterte Optionen"
#: packages/ui/primitives/document-flow/add-fields.tsx:510
#: packages/ui/primitives/template-flow/add-template-fields.tsx:369
msgid "Advanced settings"
msgstr "Erweiterte Einstellungen"
#: packages/lib/constants/template.ts:21
msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email."
msgstr "Nach der Übermittlung wird ein Dokument automatisch generiert und zu Ihrer Dokumentenseite hinzugefügt. Sie erhalten außerdem eine Benachrichtigung per E-Mail."
#: packages/lib/constants/recipient-roles.ts:8
msgid "Approve"
msgstr "Genehmigen"
#: packages/lib/constants/recipient-roles.ts:9
msgid "Approved"
msgstr "Genehmigt"
#: packages/lib/constants/recipient-roles.ts:11
msgid "Approver"
msgstr "Genehmiger"
#: packages/lib/constants/recipient-roles.ts:10
msgid "Approving"
msgstr "Genehmigung"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:297
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
msgid "Cancel"
msgstr "Abbrechen"
#: packages/ui/primitives/document-flow/add-signers.tsx:164
msgid "Cannot remove signer"
msgstr "Unterzeichner kann nicht entfernt werden"
#: packages/lib/constants/recipient-roles.ts:17
msgid "Cc"
msgstr "Cc"
#: packages/lib/constants/recipient-roles.ts:14
#: packages/lib/constants/recipient-roles.ts:16
msgid "CC"
msgstr "CC"
#: packages/lib/constants/recipient-roles.ts:15
msgid "CC'd"
msgstr "CC'd"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83
msgid "Character Limit"
msgstr "Zeichenbeschränkung"
#: packages/ui/primitives/document-flow/add-fields.tsx:932
#: packages/ui/primitives/template-flow/add-template-fields.tsx:755
msgid "Checkbox"
msgstr "Checkbox"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195
msgid "Checkbox values"
msgstr "Checkbox-Werte"
#: packages/ui/primitives/data-table.tsx:156
msgid "Clear filters"
msgstr "Filter löschen"
#: packages/ui/primitives/signature-pad/signature-pad.tsx:256
msgid "Clear Signature"
msgstr "Unterschrift löschen"
#: packages/ui/primitives/document-flow/add-signature.tsx:394
msgid "Click to insert field"
msgstr "Klicken, um das Feld einzufügen"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:44
msgid "Close"
msgstr "Schließen"
#: packages/lib/constants/template.ts:12
msgid "Configure Direct Recipient"
msgstr "Direkten Empfänger konfigurieren"
#: packages/ui/primitives/document-flow/add-fields.tsx:511
#: packages/ui/primitives/template-flow/add-template-fields.tsx:370
msgid "Configure the {0} field"
msgstr "Konfigurieren Sie das Feld {0}"
#: packages/ui/primitives/document-flow/document-flow-root.tsx:141
msgid "Continue"
msgstr "Fortsetzen"
#: packages/ui/components/document/document-share-button.tsx:46
msgid "Copied to clipboard"
msgstr "In die Zwischenablage kopiert"
#: packages/ui/primitives/document-flow/add-signature.tsx:360
msgid "Custom Text"
msgstr "Benutzerdefinierter Text"
#: packages/ui/primitives/document-flow/add-fields.tsx:828
#: packages/ui/primitives/template-flow/add-template-fields.tsx:651
msgid "Date"
msgstr "Datum"
#: packages/ui/primitives/document-flow/add-settings.tsx:240
#: packages/ui/primitives/template-flow/add-template-settings.tsx:279
msgid "Date Format"
msgstr "Datumsformat"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:312
msgid "Direct link receiver"
msgstr "Empfänger des direkten Links"
#: packages/ui/components/document/document-global-auth-access-select.tsx:62
#: packages/ui/primitives/document-flow/add-settings.tsx:166
#: packages/ui/primitives/template-flow/add-template-settings.tsx:151
msgid "Document access"
msgstr "Dokumentenzugriff"
#: packages/lib/constants/template.ts:20
msgid "Document Creation"
msgstr "Dokumenterstellung"
#: packages/ui/components/document/document-download-button.tsx:68
msgid "Download"
msgstr "Herunterladen"
#: packages/ui/primitives/document-dropzone.tsx:162
msgid "Drag & drop your PDF here."
msgstr "Ziehen Sie Ihr PDF hierher."
#: packages/ui/primitives/document-flow/add-fields.tsx:958
#: packages/ui/primitives/template-flow/add-template-fields.tsx:781
msgid "Dropdown"
msgstr "Dropdown"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148
msgid "Dropdown options"
msgstr "Dropdown-Optionen"
#: packages/ui/primitives/document-flow/add-fields.tsx:776
#: packages/ui/primitives/document-flow/add-signature.tsx:272
#: packages/ui/primitives/document-flow/add-signers.tsx:232
#: packages/ui/primitives/document-flow/add-signers.tsx:239
#: packages/ui/primitives/template-flow/add-template-fields.tsx:599
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:210
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:217
msgid "Email"
msgstr "E-Mail"
#: packages/ui/primitives/template-flow/add-template-settings.tsx:184
msgid "Email Options"
msgstr "E-Mail-Optionen"
#: packages/lib/constants/template.ts:8
msgid "Enable Direct Link Signing"
msgstr "Direktlink-Signierung aktivieren"
#: packages/ui/primitives/document-password-dialog.tsx:84
msgid "Enter password"
msgstr "Passwort eingeben"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:226
msgid "Error"
msgstr "Fehler"
#: packages/ui/primitives/document-flow/add-settings.tsx:210
#: packages/ui/primitives/template-flow/add-template-settings.tsx:249
msgid "External ID"
msgstr "Externe ID"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:227
msgid "Failed to save settings."
msgstr "Einstellungen konnten nicht gespeichert werden."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90
msgid "Field character limit"
msgstr "Zeichenbeschränkung des Feldes"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107
msgid "Field format"
msgstr "Feldformat"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50
msgid "Field label"
msgstr "Feldbeschriftung"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62
msgid "Field placeholder"
msgstr "Feldplatzhalter"
#: packages/ui/components/document/document-global-auth-action-select.tsx:64
msgid "Global recipient action authentication"
msgstr "Globale Empfängerauthentifizierung"
#: packages/ui/primitives/document-flow/document-flow-root.tsx:142
msgid "Go Back"
msgstr "Zurück"
#: packages/lib/constants/recipient-roles.ts:72
msgid "I am a signer of this document"
msgstr "Ich bin ein Unterzeichner dieses Dokuments"
#: packages/lib/constants/recipient-roles.ts:75
msgid "I am a viewer of this document"
msgstr "Ich bin ein Betrachter dieses Dokuments"
#: packages/lib/constants/recipient-roles.ts:73
msgid "I am an approver of this document"
msgstr "Ich bin ein Genehmiger dieses Dokuments"
#: packages/lib/constants/recipient-roles.ts:74
msgid "I am required to receive a copy of this document"
msgstr "Ich bin verpflichtet, eine Kopie dieses Dokuments zu erhalten"
#: packages/lib/constants/recipient-roles.ts:74
#~ msgid "I am required to recieve a copy of this document"
#~ msgstr "I am required to recieve a copy of this document"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:29
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:87
msgid "Inherit authentication method"
msgstr "Authentifizierungsmethode erben"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:64
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:69
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45
msgid "Label"
msgstr "Beschriftung"
#: packages/lib/constants/teams.ts:11
msgid "Manager"
msgstr "Manager"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168
msgid "Max"
msgstr "Max"
#: packages/lib/constants/teams.ts:12
msgid "Member"
msgstr "Mitglied"
#: packages/ui/primitives/document-flow/add-subject.tsx:95
#: packages/ui/primitives/template-flow/add-template-settings.tsx:215
msgid "Message <0>(Optional)</0>"
msgstr "Nachricht <0>(Optional)</0>"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
msgid "Min"
msgstr "Min"
#: packages/ui/primitives/document-flow/add-fields.tsx:802
#: packages/ui/primitives/document-flow/add-signature.tsx:298
#: packages/ui/primitives/document-flow/add-signers.tsx:265
#: packages/ui/primitives/template-flow/add-template-fields.tsx:625
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:245
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:251
msgid "Name"
msgstr "Name"
#: packages/ui/components/recipient/recipient-role-select.tsx:52
msgid "Needs to approve"
msgstr "Muss genehmigen"
#: packages/ui/components/recipient/recipient-role-select.tsx:31
msgid "Needs to sign"
msgstr "Muss unterzeichnen"
#: packages/ui/components/recipient/recipient-role-select.tsx:73
msgid "Needs to view"
msgstr "Muss sehen"
#: packages/ui/primitives/document-flow/add-fields.tsx:613
#: packages/ui/primitives/template-flow/add-template-fields.tsx:464
msgid "No recipient matching this description was found."
msgstr "Kein passender Empfänger mit dieser Beschreibung gefunden."
#: packages/ui/primitives/document-flow/add-fields.tsx:629
#: packages/ui/primitives/template-flow/add-template-fields.tsx:480
msgid "No recipients with this role"
msgstr "Keine Empfänger mit dieser Rolle"
#: packages/ui/components/document/document-global-auth-access-select.tsx:30
#: packages/ui/components/document/document-global-auth-access-select.tsx:43
#: packages/ui/components/document/document-global-auth-action-select.tsx:31
#: packages/ui/components/document/document-global-auth-action-select.tsx:46
msgid "No restrictions"
msgstr "Keine Einschränkungen"
#: packages/ui/primitives/data-table.tsx:148
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:30
msgid "No signature field found"
msgstr "Kein Unterschriftsfeld gefunden"
#: packages/ui/primitives/combobox.tsx:60
#: packages/ui/primitives/multi-select-combobox.tsx:153
msgid "No value found."
msgstr "Kein Wert gefunden."
#: packages/ui/primitives/document-flow/add-fields.tsx:880
#: packages/ui/primitives/template-flow/add-template-fields.tsx:703
msgid "Number"
msgstr "Nummer"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100
msgid "Number format"
msgstr "Zahlenformat"
#: packages/lib/constants/template.ts:9
msgid "Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted."
msgstr "Sobald aktiviert, können Sie einen aktiven Empfänger für die Direktlink-Signierung auswählen oder einen neuen erstellen. Dieser Empfängertyp kann nicht bearbeitet oder gelöscht werden."
#: packages/lib/constants/template.ts:17
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
msgstr "Sobald Ihre Vorlage eingerichtet ist, teilen Sie den Link überall, wo Sie möchten. Die Person, die den Link öffnet, kann ihre Informationen im Feld für direkte Empfänger eingeben und alle anderen ihr zugewiesenen Felder ausfüllen."
#: packages/ui/primitives/data-table-pagination.tsx:77
msgid "Page {0} of {1}"
msgstr "Seite {0} von {1}"
#: packages/ui/primitives/document-password-dialog.tsx:62
msgid "Password Required"
msgstr "Passwort erforderlich"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:154
msgid "Pick a number"
msgstr "Wählen Sie eine Zahl"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:76
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:81
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57
msgid "Placeholder"
msgstr "Platzhalter"
#: packages/ui/primitives/document-flow/add-fields.tsx:906
#: packages/ui/primitives/template-flow/add-template-fields.tsx:729
msgid "Radio"
msgstr "Radio"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:133
msgid "Radio values"
msgstr "Radio-Werte"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:184
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:136
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:114
msgid "Read only"
msgstr "Nur lesen"
#: packages/ui/components/recipient/recipient-role-select.tsx:95
msgid "Receives copy"
msgstr "Erhält Kopie"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:39
#: packages/ui/primitives/document-flow/add-settings.tsx:184
#: packages/ui/primitives/template-flow/add-template-settings.tsx:169
msgid "Recipient action authentication"
msgstr "Empfängeraktion Authentifizierung"
#: packages/ui/primitives/document-flow/add-settings.tsx:298
#: packages/ui/primitives/template-flow/add-template-settings.tsx:332
msgid "Redirect URL"
msgstr "Weiterleitungs-URL"
#: packages/ui/primitives/document-flow/add-fields.tsx:996
msgid "Remove"
msgstr "Entfernen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:126
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:104
msgid "Required field"
msgstr "Pflichtfeld"
#: packages/ui/primitives/data-table-pagination.tsx:55
msgid "Rows per page"
msgstr "Zeilen pro Seite"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:296
msgid "Save"
msgstr "Speichern"
#: packages/ui/primitives/template-flow/add-template-fields.tsx:797
msgid "Save Template"
msgstr "Vorlage speichern"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
msgid "Select"
msgstr "Auswählen"
#: packages/ui/primitives/combobox.tsx:38
msgid "Select an option"
msgstr "Option auswählen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137
msgid "Select at least"
msgstr "Wählen Sie mindestens"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95
msgid "Select default option"
msgstr "Standardoption auswählen"
#: packages/ui/primitives/document-flow/add-subject.tsx:124
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:34
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:64
msgid "Send"
msgstr "Senden"
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:41
msgid "Send Document"
msgstr "Dokument senden"
#: packages/ui/components/document/document-share-button.tsx:135
msgid "Share Signature Card"
msgstr "Unterschriftenkarte teilen"
#: packages/lib/constants/template.ts:16
msgid "Share the Link"
msgstr "Link teilen"
#: packages/ui/primitives/document-flow/add-signers.tsx:377
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:387
msgid "Show advanced settings"
msgstr "Erweiterte Einstellungen anzeigen"
#: packages/lib/constants/recipient-roles.ts:20
msgid "Sign"
msgstr "Unterschreiben"
#: packages/ui/primitives/document-flow/add-fields.tsx:724
#: packages/ui/primitives/document-flow/add-signature.tsx:323
#: packages/ui/primitives/document-flow/field-icon.tsx:52
#: packages/ui/primitives/template-flow/add-template-fields.tsx:547
msgid "Signature"
msgstr "Unterschrift"
#: packages/lib/constants/recipient-roles.ts:21
msgid "Signed"
msgstr "Unterzeichnet"
#: packages/lib/constants/recipient-roles.ts:23
msgid "Signer"
msgstr "Unterzeichner"
#: packages/lib/constants/recipient-roles.ts:22
msgid "Signing"
msgstr "Unterzeichnung"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:34
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
msgstr "Einige Unterzeichner haben noch kein Unterschriftsfeld zugewiesen bekommen. Bitte weisen Sie jedem Unterzeichner mindestens ein Unterschriftsfeld zu, bevor Sie fortfahren."
#: packages/ui/components/document/document-share-button.tsx:51
msgid "Something went wrong"
msgstr "Etwas ist schief gelaufen"
#: packages/ui/primitives/data-table.tsx:136
msgid "Something went wrong."
msgstr "Etwas ist schief gelaufen."
#: packages/ui/primitives/document-flow/document-flow-root.tsx:107
msgid "Step <0>{step} of {maxStep}</0>"
msgstr "Schritt <0>{step} von {maxStep}</0>"
#: packages/ui/primitives/document-flow/add-subject.tsx:78
#: packages/ui/primitives/template-flow/add-template-settings.tsx:195
msgid "Subject <0>(Optional)</0>"
msgstr "Betreff <0>(Optional)</0>"
#: packages/ui/primitives/document-password-dialog.tsx:97
msgid "Submit"
msgstr "Einreichen"
#: packages/ui/primitives/template-flow/add-template-settings.tsx:134
msgid "Template title"
msgstr "Vorlagentitel"
#: packages/ui/primitives/document-flow/add-fields.tsx:854
#: packages/ui/primitives/template-flow/add-template-fields.tsx:677
msgid "Text"
msgstr "Text"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:44
msgid "The authentication required for recipients to sign fields"
msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger Felder signieren"
#: packages/ui/components/document/document-global-auth-action-select.tsx:68
msgid "The authentication required for recipients to sign the signature field."
msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger das Signaturfeld signieren können."
#: packages/ui/components/document/document-global-auth-access-select.tsx:67
msgid "The authentication required for recipients to view the document."
msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger das Dokument anzeigen können."
#: packages/ui/components/document/document-send-email-message-helper.tsx:31
msgid "The document's name"
msgstr "Der Name des Dokuments"
#: packages/ui/primitives/document-password-dialog.tsx:52
msgid "The password you have entered is incorrect. Please try again."
msgstr "Das eingegebene Passwort ist falsch. Bitte versuchen Sie es erneut."
#: packages/ui/components/recipient/recipient-role-select.tsx:103
msgid "The recipient is not required to take any action and receives a copy of the document after it is completed."
msgstr "Der Empfänger muss keine Aktion ausführen und erhält nach Abschluss eine Kopie des Dokuments."
#: packages/ui/components/recipient/recipient-role-select.tsx:60
msgid "The recipient is required to approve the document for it to be completed."
msgstr "Der Empfänger muss das Dokument genehmigen, damit es abgeschlossen werden kann."
#: packages/ui/components/recipient/recipient-role-select.tsx:39
msgid "The recipient is required to sign the document for it to be completed."
msgstr "Der Empfänger muss das Dokument unterschreiben, damit es abgeschlossen werden kann."
#: packages/ui/components/recipient/recipient-role-select.tsx:81
msgid "The recipient is required to view the document for it to be completed."
msgstr "Der Empfänger muss das Dokument anzeigen, damit es abgeschlossen werden kann."
#: packages/ui/components/document/document-share-button.tsx:52
msgid "The sharing link could not be created at this time. Please try again."
msgstr "Der Freigabelink konnte in diesem Moment nicht erstellt werden. Bitte versuchen Sie es erneut."
#: packages/ui/components/document/document-share-button.tsx:47
msgid "The sharing link has been copied to your clipboard."
msgstr "Der Freigabelink wurde in Ihre Zwischenablage kopiert."
#: packages/ui/components/document/document-send-email-message-helper.tsx:25
msgid "The signer's email"
msgstr "Die E-Mail des Unterzeichners"
#: packages/ui/components/document/document-send-email-message-helper.tsx:19
msgid "The signer's name"
msgstr "Der Name des Unterzeichners"
#: packages/ui/components/document/document-global-auth-action-select.tsx:72
msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step."
msgstr "Dies kann überschrieben werden, indem die Authentifizierungsanforderungen im nächsten Schritt direkt für jeden Empfänger festgelegt werden."
#: packages/ui/primitives/document-flow/add-fields.tsx:685
msgid "This document has already been sent to this recipient. You can no longer edit this recipient."
msgstr "Dieses Dokument wurde bereits an diesen Empfänger gesendet. Sie können diesen Empfänger nicht mehr bearbeiten."
#: packages/ui/primitives/document-password-dialog.tsx:66
msgid "This document is password protected. Please enter the password to view the document."
msgstr "Dieses Dokument ist durch ein Passwort geschützt. Bitte geben Sie das Passwort ein, um das Dokument anzusehen."
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:315
msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them."
msgstr "Dieses Feld kann nicht geändert oder gelöscht werden. Wenn Sie den direkten Link dieser Vorlage teilen oder zu Ihrem öffentlichen Profil hinzufügen, kann jeder, der darauf zugreift, seinen Namen und seine E-Mail-Adresse eingeben und die ihm zugewiesenen Felder ausfüllen."
#: packages/ui/primitives/document-flow/add-signers.tsx:165
msgid "This signer has already received the document."
msgstr "Dieser Unterzeichner hat das Dokument bereits erhalten."
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:48
msgid "This will override any global settings."
msgstr "Dies überschreibt alle globalen Einstellungen."
#: packages/ui/primitives/document-flow/add-settings.tsx:274
#: packages/ui/primitives/template-flow/add-template-settings.tsx:309
msgid "Time Zone"
msgstr "Zeitzone"
#: packages/ui/primitives/document-flow/add-settings.tsx:145
msgid "Title"
msgstr "Titel"
#: packages/ui/primitives/document-flow/add-fields.tsx:971
msgid "To proceed further, please set at least one value for the {0} field."
msgstr "Um fortzufahren, legen Sie bitte mindestens einen Wert für das Feld {0} fest."
#: packages/ui/primitives/document-flow/add-subject.tsx:124
msgid "Update"
msgstr "Aktualisieren"
#: packages/lib/constants/template.ts:13
msgid "Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient."
msgstr "Aktualisieren Sie die Rolle und fügen Sie Felder nach Bedarf für den direkten Empfänger hinzu. Die Person, die den direkten Link verwendet, wird das Dokument als direkter Empfänger unterzeichnen."
#: packages/ui/primitives/document-dropzone.tsx:168
msgid "Upgrade"
msgstr "Upgrade"
#: packages/ui/primitives/document-dropzone.tsx:70
msgid "Upload Template Document"
msgstr "Vorlagendokument hochladen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:130
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:147
msgid "Validation"
msgstr "Validierung"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:88
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:93
msgid "Value"
msgstr "Wert"
#: packages/lib/constants/recipient-roles.ts:26
msgid "View"
msgstr "View"
#: packages/lib/constants/recipient-roles.ts:27
msgid "Viewed"
msgstr "Viewed"
#: packages/lib/constants/recipient-roles.ts:29
msgid "Viewer"
msgstr "Viewer"
#: packages/lib/constants/recipient-roles.ts:28
msgid "Viewing"
msgstr "Viewing"
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44
msgid "You are about to send this document to the recipients. Are you sure you want to continue?"
msgstr "Sie sind dabei, dieses Dokument an die Empfänger zu senden. Sind Sie sicher, dass Sie fortfahren möchten?"
#: packages/ui/components/document/document-send-email-message-helper.tsx:11
msgid "You can use the following variables in your message:"
msgstr "Sie können die folgenden Variablen in Ihrer Nachricht verwenden:"
#: packages/ui/primitives/document-dropzone.tsx:43
msgid "You cannot upload documents at this time."
msgstr "Sie können derzeit keine Dokumente hochladen."
#: packages/ui/primitives/document-dropzone.tsx:69
msgid "You have reached your document limit."
msgstr "Sie haben Ihr Dokumentenlimit erreicht."

File diff suppressed because one or more lines are too long

View File

@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-07-26 06:04\n"
"PO-Revision-Date: 2024-08-27 16:03\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -30,10 +30,14 @@ msgstr "5 Standarddokumente pro Monat"
msgid "5 Users Included"
msgstr "5 Benutzer inbegriffen"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:30
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:34
msgid "A 10x better signing experience."
msgstr "Eine 10x bessere Signaturerfahrung."
#: apps/marketing/src/app/(marketing)/singleplayer/client.tsx:51
msgid "Add document"
msgstr "Dokument hinzufügen"
#: apps/marketing/src/components/(marketing)/pricing-table.tsx:201
msgid "Add More Users for {0}"
msgstr "Mehr Benutzer hinzufügen für {0}"
@ -52,11 +56,11 @@ msgstr "Erhobener Betrag"
msgid "API Access"
msgstr "API-Zugriff"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:63
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:67
msgid "Beautiful."
msgstr "Schön."
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:65
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:69
msgid "Because signing should be celebrated. Thats why we care about the smallest detail in our product."
msgstr "Weil Unterschriften gefeiert werden sollten. Deshalb kümmern wir uns um jedes kleinste Detail in unserem Produkt."
@ -66,7 +70,7 @@ msgstr "Weil Unterschriften gefeiert werden sollten. Deshalb kümmern wir uns um
msgid "Blog"
msgstr "Blog"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:60
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:64
msgid "Build on top."
msgstr "Aufbauen oben drauf."
@ -82,7 +86,7 @@ msgstr "Karrieren"
msgid "Changelog"
msgstr "Änderungsprotokoll"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:81
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:85
msgid "Choose a template from the community app store. Or submit your own template for others to use."
msgstr "Wählen Sie eine Vorlage aus dem Community-App-Store. Oder reichen Sie Ihre eigene Vorlage ein, damit andere sie benutzen können."
@ -98,7 +102,7 @@ msgstr "Fertige Dokumente"
msgid "Completed Documents per Month"
msgstr "Fertige Dokumente pro Monat"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:61
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:65
msgid "Connections"
msgstr "Verbindungen"
@ -106,7 +110,7 @@ msgstr "Verbindungen"
msgid "Contact Us"
msgstr "Kontaktiere uns"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:63
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:67
msgid "Create connections and automations with Zapier and more to integrate with your favorite tools."
msgstr "Erstellen Sie Verbindungen und Automatisierungen mit Zapier und mehr, um sich mit Ihren Lieblingstools zu integrieren."
@ -118,7 +122,7 @@ msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit der Nutzung modernster Doku
msgid "Customers with an Active Subscriptions."
msgstr "Kunden mit einer aktiven Abonnements."
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:29
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:33
msgid "Customise and expand."
msgstr "Anpassen und erweitern."
@ -130,7 +134,7 @@ msgstr "Design"
msgid "Designed for every stage of your journey."
msgstr "Entwickelt für jede Phase Ihrer Reise."
#: apps/marketing/src/components/(marketing)/carousel.tsx:37
#: apps/marketing/src/components/(marketing)/carousel.tsx:40
msgid "Direct Link"
msgstr "Direktlink"
@ -142,7 +146,7 @@ msgstr "Documenso ist eine Gemeinschaftsanstrengung, um ein offenes und lebendig
msgid "Documenso on X"
msgstr "Documenso auf X"
#: apps/marketing/src/components/(marketing)/hero.tsx:100
#: apps/marketing/src/components/(marketing)/hero.tsx:104
msgid "Document signing,<0/>finally open source."
msgstr "Unterschriften,<0/>endlich Open Source."
@ -152,13 +156,17 @@ msgstr "Unterschriften,<0/>endlich Open Source."
msgid "Documentation"
msgstr "Dokumentation"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:106
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:110
msgid "Easily embed Documenso into your product. Simply copy and paste our react widget into your application."
msgstr "Betten Sie Documenso ganz einfach in Ihr Produkt ein. Kopieren und fügen Sie einfach unser React-Widget in Ihre Anwendung ein."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:42
msgid "Easy Sharing (Soon)."
msgstr "Einfaches Teilen (Bald)."
#~ msgid "Easy Sharing (Soon)."
#~ msgstr "Easy Sharing (Soon)."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:46
msgid "Easy Sharing."
msgstr "Einfaches Teilen."
#: apps/marketing/src/components/(marketing)/pricing-table.tsx:148
#: apps/marketing/src/components/(marketing)/pricing-table.tsx:192
@ -169,6 +177,10 @@ msgstr "E-Mail- und Discord-Support"
msgid "Engagement"
msgstr "Beteiligung"
#: apps/marketing/src/app/(marketing)/singleplayer/client.tsx:64
msgid "Enter your details."
msgstr "Geben Sie Ihre Details ein."
#: apps/marketing/src/components/(marketing)/enterprise.tsx:16
msgid "Enterprise Compliance, License or Technical Needs?"
msgstr "Enterprise-Konformität, Lizenz- oder technische Bedürfnisse?"
@ -177,11 +189,11 @@ msgstr "Enterprise-Konformität, Lizenz- oder technische Bedürfnisse?"
msgid "Everything you need for a great signing experience."
msgstr "Alles, was Sie für ein großartiges Signaturerlebnis benötigen."
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:41
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:45
msgid "Fast."
msgstr "Schnell."
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:32
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:36
msgid "Faster, smarter and more beautiful."
msgstr "Schneller, intelligenter und schöner."
@ -217,7 +229,7 @@ msgstr "Aus dem Blog"
msgid "Full-Time"
msgstr "Vollzeit"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:83
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:87
msgid "Get paid (Soon)."
msgstr "Lassen Sie sich bezahlen (Bald)."
@ -269,11 +281,11 @@ msgstr "Wie gehen Sie mit meinen Daten um?"
msgid "Individual"
msgstr "Einzelperson"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:85
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:89
msgid "Integrated payments with Stripe so you dont have to worry about getting paid."
msgstr "Integrierte Zahlungen mit Stripe, sodass Sie sich keine Sorgen ums Bezahlen machen müssen."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:31
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:35
msgid "Integrates with all your favourite tools."
msgstr "Integriert sich mit all Ihren Lieblingstools."
@ -281,7 +293,7 @@ msgstr "Integriert sich mit all Ihren Lieblingstools."
msgid "Is there more?"
msgstr "Gibt es mehr?"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:40
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:44
msgid "Its up to you. Either clone our repository or rely on our easy to use hosting solution."
msgstr "Es liegt an Ihnen. Entweder klonen Sie unser Repository oder nutzen unsere einfach zu bedienende Hosting-Lösung."
@ -297,7 +309,7 @@ msgstr "Treten Sie der Open Signing-Bewegung bei"
msgid "Location"
msgstr "Standort"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:62
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:66
msgid "Make it your own through advanced customization and adjustability."
msgstr "Machen Sie es zu Ihrem eigenen durch erweiterte Anpassung und Einstellbarkeit."
@ -328,7 +340,7 @@ msgid "No credit card required"
msgstr "Keine Kreditkarte erforderlich"
#: apps/marketing/src/components/(marketing)/callout.tsx:29
#: apps/marketing/src/components/(marketing)/hero.tsx:121
#: apps/marketing/src/components/(marketing)/hero.tsx:125
msgid "No Credit Card required"
msgstr "Keine Kreditkarte erforderlich"
@ -341,7 +353,7 @@ msgstr "Keines dieser Angebote passt zu Ihnen? Versuchen Sie das Selbst-Hosting!
msgid "Open Issues"
msgstr "Offene Issues"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:38
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:42
msgid "Open Source or Hosted."
msgstr "Open Source oder Hosted."
@ -356,7 +368,7 @@ msgstr "Offenes Startup"
msgid "OSS Friends"
msgstr "OSS-Freunde"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:87
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:91
msgid "Our custom templates come with smart rules that can help you save time and energy."
msgstr "Unsere benutzerdefinierten Vorlagen verfügen über intelligente Regeln, die Ihnen Zeit und Energie sparen können."
@ -392,15 +404,15 @@ msgstr "Preise"
msgid "Privacy"
msgstr "Datenschutz"
#: apps/marketing/src/components/(marketing)/carousel.tsx:55
#: apps/marketing/src/components/(marketing)/carousel.tsx:58
msgid "Profile"
msgstr "Profil"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:104
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:108
msgid "React Widget (Soon)."
msgstr "React Widget (Demnächst)."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:44
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:48
msgid "Receive your personal link to share with everyone you care about."
msgstr "Erhalten Sie Ihren persönlichen Link zum Teilen mit allen, die Ihnen wichtig sind."
@ -425,7 +437,7 @@ msgstr "Sprachen suchen..."
msgid "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us."
msgstr "Sicher. Unsere Rechenzentren befinden sich in Frankfurt (Deutschland) und bieten uns die besten lokalen Datenschutzgesetze. Uns ist die sensible Natur unserer Daten sehr bewusst und wir folgen bewährten Praktiken, um die Sicherheit und Integrität der uns anvertrauten Daten zu gewährleisten."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:33
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:37
msgid "Send, connect, receive and embed everywhere."
msgstr "Überall senden, verbinden, empfangen und einbetten."
@ -437,6 +449,10 @@ msgstr "Dienstalter"
msgid "Shop"
msgstr "Shop"
#: apps/marketing/src/app/(marketing)/singleplayer/client.tsx:63
msgid "Sign"
msgstr "Signieren"
#: apps/marketing/src/components/(marketing)/header.tsx:72
#: apps/marketing/src/components/(marketing)/mobile-navigation.tsx:61
msgid "Sign in"
@ -447,7 +463,7 @@ msgstr "Anmelden"
msgid "Sign up"
msgstr "Registrieren"
#: apps/marketing/src/components/(marketing)/carousel.tsx:19
#: apps/marketing/src/components/(marketing)/carousel.tsx:22
msgid "Signing Process"
msgstr "Signaturprozess"
@ -457,11 +473,11 @@ msgstr "Signaturprozess"
msgid "Signup Now"
msgstr "Jetzt registrieren"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:85
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:89
msgid "Smart."
msgstr "Intelligent."
#: apps/marketing/src/components/(marketing)/hero.tsx:128
#: apps/marketing/src/components/(marketing)/hero.tsx:132
msgid "Star on GitHub"
msgstr "Auf GitHub favorisieren"
@ -487,12 +503,12 @@ msgstr "Team"
msgid "Team Inbox"
msgstr "Team-Posteingang"
#: apps/marketing/src/components/(marketing)/carousel.tsx:25
#: apps/marketing/src/components/(marketing)/carousel.tsx:28
#: apps/marketing/src/components/(marketing)/pricing-table.tsx:162
msgid "Teams"
msgstr "Teams"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:79
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:83
msgid "Template Store (Soon)."
msgstr "Vorlagen-Shop (Demnächst)."
@ -528,12 +544,12 @@ msgstr "Insgesamt Finanzierungsvolumen"
msgid "Total Users"
msgstr "Gesamtanzahl der Benutzer"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:27
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:31
msgid "Truly your own."
msgstr "Wirklich Ihr Eigenes."
#: apps/marketing/src/components/(marketing)/callout.tsx:27
#: apps/marketing/src/components/(marketing)/hero.tsx:119
#: apps/marketing/src/components/(marketing)/hero.tsx:123
msgid "Try our Free Plan"
msgstr "Probieren Sie unseren Gratisplan aus"
@ -550,6 +566,10 @@ msgstr "Unbegrenzte Dokumente pro Monat"
msgid "Up to 10 recipients per document"
msgstr "Bis zu 10 Empfänger pro Dokument"
#: apps/marketing/src/app/(marketing)/singleplayer/client.tsx:52
msgid "Upload a document and add fields."
msgstr "Laden Sie ein Dokument hoch und fügen Sie Felder hinzu."
#: apps/marketing/src/app/(marketing)/pricing/page.tsx:123
msgid "Using our hosted version is the easiest way to get started, you can simply subscribe and start signing your documents. We take care of the infrastructure, so you can focus on your business. Additionally, when using our hosted version you benefit from our trusted signing certificates which helps you to build trust with your customers."
msgstr "Die Nutzung unserer gehosteten Version ist der einfachste Weg, um zu starten. Sie können einfach abonnieren und mit der Unterzeichnung Ihrer Dokumente beginnen. Wir kümmern uns um die Infrastruktur, damit Sie sich auf Ihr Geschäft konzentrieren können. Zudem profitieren Sie bei der Nutzung unserer gehosteten Version von unseren vertrauenswürdigen Signaturzertifikaten, die Ihnen helfen, Vertrauen bei Ihren Kunden aufzubauen."
@ -566,7 +586,7 @@ msgstr "Wir helfen Ihnen gerne unter <0>support@documenso.com</0> oder <1>in uns
msgid "What is the difference between the plans?"
msgstr "Was ist der Unterschied zwischen den Plänen?"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:43
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:47
msgid "When it comes to sending or receiving a contract, you can count on lightning-fast speeds."
msgstr "Wenn es um das Senden oder Empfangen eines Vertrags geht, können Sie auf blitzschnelle Geschwindigkeiten zählen."
@ -594,6 +614,6 @@ msgstr "Ja! Documenso wird unter der GNU AGPL V3 Open-Source-Lizenz angeboten. D
msgid "You can self-host Documenso for free or use our ready-to-use hosted version. The hosted version comes with additional support, painless scalability and more. Early adopters will get access to all features we build this year, for no additional cost! Forever! Yes, that includes multiple users per account later. If you want Documenso for your enterprise, we are happy to talk about your needs."
msgstr "Sie können Documenso kostenlos selbst hosten oder unsere sofort einsatzbereite gehostete Version nutzen. Die gehostete Version bietet zusätzlichen Support, schmerzfreie Skalierbarkeit und mehr. Frühzeitige Anwender erhalten in diesem Jahr Zugriff auf alle Funktionen, die wir entwickeln, ohne zusätzliche Kosten! Für immer! Ja, das beinhaltet später mehrere Benutzer pro Konto. Wenn Sie Documenso für Ihr Unternehmen möchten, sprechen wir gerne über Ihre Bedürfnisse."
#: apps/marketing/src/components/(marketing)/carousel.tsx:258
#: apps/marketing/src/components/(marketing)/carousel.tsx:265
msgid "Your browser does not support the video tag."
msgstr "Ihr Browser unterstützt das Video-Tag nicht."

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -12,3 +12,734 @@ msgstr ""
"Last-Translator: \n"
"Language-Team: \n"
"Plural-Forms: \n"
#: packages/ui/primitives/data-table-pagination.tsx:30
msgid "{0} of {1} row(s) selected."
msgstr "{0} of {1} row(s) selected."
#: packages/ui/primitives/data-table-pagination.tsx:41
msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}"
msgstr "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:53
msgid "<0>Inherit authentication method</0> - Use the global action signing authentication method configured in the \"General Settings\" step"
msgstr "<0>Inherit authentication method</0> - Use the global action signing authentication method configured in the \"General Settings\" step"
#: packages/ui/components/document/document-global-auth-action-select.tsx:95
msgid "<0>No restrictions</0> - No authentication required"
msgstr "<0>No restrictions</0> - No authentication required"
#: packages/ui/components/document/document-global-auth-access-select.tsx:77
msgid "<0>No restrictions</0> - The document can be accessed directly by the URL sent to the recipient"
msgstr "<0>No restrictions</0> - The document can be accessed directly by the URL sent to the recipient"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:75
msgid "<0>None</0> - No authentication required"
msgstr "<0>None</0> - No authentication required"
#: packages/ui/components/document/document-global-auth-action-select.tsx:89
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:69
msgid "<0>Require 2FA</0> - The recipient must have an account and 2FA enabled via their settings"
msgstr "<0>Require 2FA</0> - The recipient must have an account and 2FA enabled via their settings"
#: packages/ui/components/document/document-global-auth-access-select.tsx:72
msgid "<0>Require account</0> - The recipient must be signed in to view the document"
msgstr "<0>Require account</0> - The recipient must be signed in to view the document"
#: packages/ui/components/document/document-global-auth-action-select.tsx:83
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:63
msgid "<0>Require passkey</0> - The recipient must have an account and passkey configured via their settings"
msgstr "<0>Require passkey</0> - The recipient must have an account and passkey configured via their settings"
#: packages/ui/primitives/document-dropzone.tsx:69
msgid "Add a document"
msgstr "Add a document"
#: packages/ui/primitives/document-flow/add-settings.tsx:305
#: packages/ui/primitives/template-flow/add-template-settings.tsx:339
msgid "Add a URL to redirect the user to once the document is signed"
msgstr "Add a URL to redirect the user to once the document is signed"
#: packages/ui/primitives/document-flow/add-settings.tsx:217
msgid "Add an external ID to the document. This can be used to identify the document in external systems."
msgstr "Add an external ID to the document. This can be used to identify the document in external systems."
#: packages/ui/primitives/template-flow/add-template-settings.tsx:256
msgid "Add an external ID to the template. This can be used to identify in external systems."
msgstr "Add an external ID to the template. This can be used to identify in external systems."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:177
msgid "Add another option"
msgstr "Add another option"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:230
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167
msgid "Add another value"
msgstr "Add another value"
#: packages/ui/primitives/document-flow/add-signers.tsx:359
msgid "Add myself"
msgstr "Add myself"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:369
msgid "Add Myself"
msgstr "Add Myself"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:355
msgid "Add Placeholder Recipient"
msgstr "Add Placeholder Recipient"
#: packages/ui/primitives/document-flow/add-signers.tsx:348
msgid "Add Signer"
msgstr "Add Signer"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70
msgid "Add text"
msgstr "Add text"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75
msgid "Add text to the field"
msgstr "Add text to the field"
#: packages/lib/constants/teams.ts:10
msgid "Admin"
msgstr "Admin"
#: packages/ui/primitives/document-flow/add-settings.tsx:199
#: packages/ui/primitives/template-flow/add-template-settings.tsx:238
msgid "Advanced Options"
msgstr "Advanced Options"
#: packages/ui/primitives/document-flow/add-fields.tsx:510
#: packages/ui/primitives/template-flow/add-template-fields.tsx:369
msgid "Advanced settings"
msgstr "Advanced settings"
#: packages/lib/constants/template.ts:21
msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email."
msgstr "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email."
#: packages/lib/constants/recipient-roles.ts:8
msgid "Approve"
msgstr "Approve"
#: packages/lib/constants/recipient-roles.ts:9
msgid "Approved"
msgstr "Approved"
#: packages/lib/constants/recipient-roles.ts:11
msgid "Approver"
msgstr "Approver"
#: packages/lib/constants/recipient-roles.ts:10
msgid "Approving"
msgstr "Approving"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:297
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
msgid "Cancel"
msgstr "Cancel"
#: packages/ui/primitives/document-flow/add-signers.tsx:164
msgid "Cannot remove signer"
msgstr "Cannot remove signer"
#: packages/lib/constants/recipient-roles.ts:17
msgid "Cc"
msgstr "Cc"
#: packages/lib/constants/recipient-roles.ts:14
#: packages/lib/constants/recipient-roles.ts:16
msgid "CC"
msgstr "CC"
#: packages/lib/constants/recipient-roles.ts:15
msgid "CC'd"
msgstr "CC'd"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83
msgid "Character Limit"
msgstr "Character Limit"
#: packages/ui/primitives/document-flow/add-fields.tsx:932
#: packages/ui/primitives/template-flow/add-template-fields.tsx:755
msgid "Checkbox"
msgstr "Checkbox"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195
msgid "Checkbox values"
msgstr "Checkbox values"
#: packages/ui/primitives/data-table.tsx:156
msgid "Clear filters"
msgstr "Clear filters"
#: packages/ui/primitives/signature-pad/signature-pad.tsx:256
msgid "Clear Signature"
msgstr "Clear Signature"
#: packages/ui/primitives/document-flow/add-signature.tsx:394
msgid "Click to insert field"
msgstr "Click to insert field"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:44
msgid "Close"
msgstr "Close"
#: packages/lib/constants/template.ts:12
msgid "Configure Direct Recipient"
msgstr "Configure Direct Recipient"
#: packages/ui/primitives/document-flow/add-fields.tsx:511
#: packages/ui/primitives/template-flow/add-template-fields.tsx:370
msgid "Configure the {0} field"
msgstr "Configure the {0} field"
#: packages/ui/primitives/document-flow/document-flow-root.tsx:141
msgid "Continue"
msgstr "Continue"
#: packages/ui/components/document/document-share-button.tsx:46
msgid "Copied to clipboard"
msgstr "Copied to clipboard"
#: packages/ui/primitives/document-flow/add-signature.tsx:360
msgid "Custom Text"
msgstr "Custom Text"
#: packages/ui/primitives/document-flow/add-fields.tsx:828
#: packages/ui/primitives/template-flow/add-template-fields.tsx:651
msgid "Date"
msgstr "Date"
#: packages/ui/primitives/document-flow/add-settings.tsx:240
#: packages/ui/primitives/template-flow/add-template-settings.tsx:279
msgid "Date Format"
msgstr "Date Format"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:312
msgid "Direct link receiver"
msgstr "Direct link receiver"
#: packages/ui/components/document/document-global-auth-access-select.tsx:62
#: packages/ui/primitives/document-flow/add-settings.tsx:166
#: packages/ui/primitives/template-flow/add-template-settings.tsx:151
msgid "Document access"
msgstr "Document access"
#: packages/lib/constants/template.ts:20
msgid "Document Creation"
msgstr "Document Creation"
#: packages/ui/components/document/document-download-button.tsx:68
msgid "Download"
msgstr "Download"
#: packages/ui/primitives/document-dropzone.tsx:162
msgid "Drag & drop your PDF here."
msgstr "Drag & drop your PDF here."
#: packages/ui/primitives/document-flow/add-fields.tsx:958
#: packages/ui/primitives/template-flow/add-template-fields.tsx:781
msgid "Dropdown"
msgstr "Dropdown"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148
msgid "Dropdown options"
msgstr "Dropdown options"
#: packages/ui/primitives/document-flow/add-fields.tsx:776
#: packages/ui/primitives/document-flow/add-signature.tsx:272
#: packages/ui/primitives/document-flow/add-signers.tsx:232
#: packages/ui/primitives/document-flow/add-signers.tsx:239
#: packages/ui/primitives/template-flow/add-template-fields.tsx:599
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:210
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:217
msgid "Email"
msgstr "Email"
#: packages/ui/primitives/template-flow/add-template-settings.tsx:184
msgid "Email Options"
msgstr "Email Options"
#: packages/lib/constants/template.ts:8
msgid "Enable Direct Link Signing"
msgstr "Enable Direct Link Signing"
#: packages/ui/primitives/document-password-dialog.tsx:84
msgid "Enter password"
msgstr "Enter password"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:226
msgid "Error"
msgstr "Error"
#: packages/ui/primitives/document-flow/add-settings.tsx:210
#: packages/ui/primitives/template-flow/add-template-settings.tsx:249
msgid "External ID"
msgstr "External ID"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:227
msgid "Failed to save settings."
msgstr "Failed to save settings."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90
msgid "Field character limit"
msgstr "Field character limit"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107
msgid "Field format"
msgstr "Field format"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50
msgid "Field label"
msgstr "Field label"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62
msgid "Field placeholder"
msgstr "Field placeholder"
#: packages/ui/components/document/document-global-auth-action-select.tsx:64
msgid "Global recipient action authentication"
msgstr "Global recipient action authentication"
#: packages/ui/primitives/document-flow/document-flow-root.tsx:142
msgid "Go Back"
msgstr "Go Back"
#: packages/lib/constants/recipient-roles.ts:72
msgid "I am a signer of this document"
msgstr "I am a signer of this document"
#: packages/lib/constants/recipient-roles.ts:75
msgid "I am a viewer of this document"
msgstr "I am a viewer of this document"
#: packages/lib/constants/recipient-roles.ts:73
msgid "I am an approver of this document"
msgstr "I am an approver of this document"
#: packages/lib/constants/recipient-roles.ts:74
msgid "I am required to receive a copy of this document"
msgstr "I am required to receive a copy of this document"
#: packages/lib/constants/recipient-roles.ts:74
#~ msgid "I am required to recieve a copy of this document"
#~ msgstr "I am required to recieve a copy of this document"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:29
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:87
msgid "Inherit authentication method"
msgstr "Inherit authentication method"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:64
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:69
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45
msgid "Label"
msgstr "Label"
#: packages/lib/constants/teams.ts:11
msgid "Manager"
msgstr "Manager"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168
msgid "Max"
msgstr "Max"
#: packages/lib/constants/teams.ts:12
msgid "Member"
msgstr "Member"
#: packages/ui/primitives/document-flow/add-subject.tsx:95
#: packages/ui/primitives/template-flow/add-template-settings.tsx:215
msgid "Message <0>(Optional)</0>"
msgstr "Message <0>(Optional)</0>"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
msgid "Min"
msgstr "Min"
#: packages/ui/primitives/document-flow/add-fields.tsx:802
#: packages/ui/primitives/document-flow/add-signature.tsx:298
#: packages/ui/primitives/document-flow/add-signers.tsx:265
#: packages/ui/primitives/template-flow/add-template-fields.tsx:625
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:245
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:251
msgid "Name"
msgstr "Name"
#: packages/ui/components/recipient/recipient-role-select.tsx:52
msgid "Needs to approve"
msgstr "Needs to approve"
#: packages/ui/components/recipient/recipient-role-select.tsx:31
msgid "Needs to sign"
msgstr "Needs to sign"
#: packages/ui/components/recipient/recipient-role-select.tsx:73
msgid "Needs to view"
msgstr "Needs to view"
#: packages/ui/primitives/document-flow/add-fields.tsx:613
#: packages/ui/primitives/template-flow/add-template-fields.tsx:464
msgid "No recipient matching this description was found."
msgstr "No recipient matching this description was found."
#: packages/ui/primitives/document-flow/add-fields.tsx:629
#: packages/ui/primitives/template-flow/add-template-fields.tsx:480
msgid "No recipients with this role"
msgstr "No recipients with this role"
#: packages/ui/components/document/document-global-auth-access-select.tsx:30
#: packages/ui/components/document/document-global-auth-access-select.tsx:43
#: packages/ui/components/document/document-global-auth-action-select.tsx:31
#: packages/ui/components/document/document-global-auth-action-select.tsx:46
msgid "No restrictions"
msgstr "No restrictions"
#: packages/ui/primitives/data-table.tsx:148
msgid "No results found"
msgstr "No results found"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:30
msgid "No signature field found"
msgstr "No signature field found"
#: packages/ui/primitives/combobox.tsx:60
#: packages/ui/primitives/multi-select-combobox.tsx:153
msgid "No value found."
msgstr "No value found."
#: packages/ui/primitives/document-flow/add-fields.tsx:880
#: packages/ui/primitives/template-flow/add-template-fields.tsx:703
msgid "Number"
msgstr "Number"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100
msgid "Number format"
msgstr "Number format"
#: packages/lib/constants/template.ts:9
msgid "Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted."
msgstr "Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted."
#: packages/lib/constants/template.ts:17
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
msgstr "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
#: packages/ui/primitives/data-table-pagination.tsx:77
msgid "Page {0} of {1}"
msgstr "Page {0} of {1}"
#: packages/ui/primitives/document-password-dialog.tsx:62
msgid "Password Required"
msgstr "Password Required"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:154
msgid "Pick a number"
msgstr "Pick a number"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:76
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:81
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57
msgid "Placeholder"
msgstr "Placeholder"
#: packages/ui/primitives/document-flow/add-fields.tsx:906
#: packages/ui/primitives/template-flow/add-template-fields.tsx:729
msgid "Radio"
msgstr "Radio"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:133
msgid "Radio values"
msgstr "Radio values"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:184
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:136
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:114
msgid "Read only"
msgstr "Read only"
#: packages/ui/components/recipient/recipient-role-select.tsx:95
msgid "Receives copy"
msgstr "Receives copy"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:39
#: packages/ui/primitives/document-flow/add-settings.tsx:184
#: packages/ui/primitives/template-flow/add-template-settings.tsx:169
msgid "Recipient action authentication"
msgstr "Recipient action authentication"
#: packages/ui/primitives/document-flow/add-settings.tsx:298
#: packages/ui/primitives/template-flow/add-template-settings.tsx:332
msgid "Redirect URL"
msgstr "Redirect URL"
#: packages/ui/primitives/document-flow/add-fields.tsx:996
msgid "Remove"
msgstr "Remove"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:126
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:104
msgid "Required field"
msgstr "Required field"
#: packages/ui/primitives/data-table-pagination.tsx:55
msgid "Rows per page"
msgstr "Rows per page"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:296
msgid "Save"
msgstr "Save"
#: packages/ui/primitives/template-flow/add-template-fields.tsx:797
msgid "Save Template"
msgstr "Save Template"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
msgid "Select"
msgstr "Select"
#: packages/ui/primitives/combobox.tsx:38
msgid "Select an option"
msgstr "Select an option"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137
msgid "Select at least"
msgstr "Select at least"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95
msgid "Select default option"
msgstr "Select default option"
#: packages/ui/primitives/document-flow/add-subject.tsx:124
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:34
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:64
msgid "Send"
msgstr "Send"
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:41
msgid "Send Document"
msgstr "Send Document"
#: packages/ui/components/document/document-share-button.tsx:135
msgid "Share Signature Card"
msgstr "Share Signature Card"
#: packages/lib/constants/template.ts:16
msgid "Share the Link"
msgstr "Share the Link"
#: packages/ui/primitives/document-flow/add-signers.tsx:377
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:387
msgid "Show advanced settings"
msgstr "Show advanced settings"
#: packages/lib/constants/recipient-roles.ts:20
msgid "Sign"
msgstr "Sign"
#: packages/ui/primitives/document-flow/add-fields.tsx:724
#: packages/ui/primitives/document-flow/add-signature.tsx:323
#: packages/ui/primitives/document-flow/field-icon.tsx:52
#: packages/ui/primitives/template-flow/add-template-fields.tsx:547
msgid "Signature"
msgstr "Signature"
#: packages/lib/constants/recipient-roles.ts:21
msgid "Signed"
msgstr "Signed"
#: packages/lib/constants/recipient-roles.ts:23
msgid "Signer"
msgstr "Signer"
#: packages/lib/constants/recipient-roles.ts:22
msgid "Signing"
msgstr "Signing"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:34
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
msgstr "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
#: packages/ui/components/document/document-share-button.tsx:51
msgid "Something went wrong"
msgstr "Something went wrong"
#: packages/ui/primitives/data-table.tsx:136
msgid "Something went wrong."
msgstr "Something went wrong."
#: packages/ui/primitives/document-flow/document-flow-root.tsx:107
msgid "Step <0>{step} of {maxStep}</0>"
msgstr "Step <0>{step} of {maxStep}</0>"
#: packages/ui/primitives/document-flow/add-subject.tsx:78
#: packages/ui/primitives/template-flow/add-template-settings.tsx:195
msgid "Subject <0>(Optional)</0>"
msgstr "Subject <0>(Optional)</0>"
#: packages/ui/primitives/document-password-dialog.tsx:97
msgid "Submit"
msgstr "Submit"
#: packages/ui/primitives/template-flow/add-template-settings.tsx:134
msgid "Template title"
msgstr "Template title"
#: packages/ui/primitives/document-flow/add-fields.tsx:854
#: packages/ui/primitives/template-flow/add-template-fields.tsx:677
msgid "Text"
msgstr "Text"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:44
msgid "The authentication required for recipients to sign fields"
msgstr "The authentication required for recipients to sign fields"
#: packages/ui/components/document/document-global-auth-action-select.tsx:68
msgid "The authentication required for recipients to sign the signature field."
msgstr "The authentication required for recipients to sign the signature field."
#: packages/ui/components/document/document-global-auth-access-select.tsx:67
msgid "The authentication required for recipients to view the document."
msgstr "The authentication required for recipients to view the document."
#: packages/ui/components/document/document-send-email-message-helper.tsx:31
msgid "The document's name"
msgstr "The document's name"
#: packages/ui/primitives/document-password-dialog.tsx:52
msgid "The password you have entered is incorrect. Please try again."
msgstr "The password you have entered is incorrect. Please try again."
#: packages/ui/components/recipient/recipient-role-select.tsx:103
msgid "The recipient is not required to take any action and receives a copy of the document after it is completed."
msgstr "The recipient is not required to take any action and receives a copy of the document after it is completed."
#: packages/ui/components/recipient/recipient-role-select.tsx:60
msgid "The recipient is required to approve the document for it to be completed."
msgstr "The recipient is required to approve the document for it to be completed."
#: packages/ui/components/recipient/recipient-role-select.tsx:39
msgid "The recipient is required to sign the document for it to be completed."
msgstr "The recipient is required to sign the document for it to be completed."
#: packages/ui/components/recipient/recipient-role-select.tsx:81
msgid "The recipient is required to view the document for it to be completed."
msgstr "The recipient is required to view the document for it to be completed."
#: packages/ui/components/document/document-share-button.tsx:52
msgid "The sharing link could not be created at this time. Please try again."
msgstr "The sharing link could not be created at this time. Please try again."
#: packages/ui/components/document/document-share-button.tsx:47
msgid "The sharing link has been copied to your clipboard."
msgstr "The sharing link has been copied to your clipboard."
#: packages/ui/components/document/document-send-email-message-helper.tsx:25
msgid "The signer's email"
msgstr "The signer's email"
#: packages/ui/components/document/document-send-email-message-helper.tsx:19
msgid "The signer's name"
msgstr "The signer's name"
#: packages/ui/components/document/document-global-auth-action-select.tsx:72
msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step."
msgstr "This can be overriden by setting the authentication requirements directly on each recipient in the next step."
#: packages/ui/primitives/document-flow/add-fields.tsx:685
msgid "This document has already been sent to this recipient. You can no longer edit this recipient."
msgstr "This document has already been sent to this recipient. You can no longer edit this recipient."
#: packages/ui/primitives/document-password-dialog.tsx:66
msgid "This document is password protected. Please enter the password to view the document."
msgstr "This document is password protected. Please enter the password to view the document."
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:315
msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them."
msgstr "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them."
#: packages/ui/primitives/document-flow/add-signers.tsx:165
msgid "This signer has already received the document."
msgstr "This signer has already received the document."
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:48
msgid "This will override any global settings."
msgstr "This will override any global settings."
#: packages/ui/primitives/document-flow/add-settings.tsx:274
#: packages/ui/primitives/template-flow/add-template-settings.tsx:309
msgid "Time Zone"
msgstr "Time Zone"
#: packages/ui/primitives/document-flow/add-settings.tsx:145
msgid "Title"
msgstr "Title"
#: packages/ui/primitives/document-flow/add-fields.tsx:971
msgid "To proceed further, please set at least one value for the {0} field."
msgstr "To proceed further, please set at least one value for the {0} field."
#: packages/ui/primitives/document-flow/add-subject.tsx:124
msgid "Update"
msgstr "Update"
#: packages/lib/constants/template.ts:13
msgid "Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient."
msgstr "Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient."
#: packages/ui/primitives/document-dropzone.tsx:168
msgid "Upgrade"
msgstr "Upgrade"
#: packages/ui/primitives/document-dropzone.tsx:70
msgid "Upload Template Document"
msgstr "Upload Template Document"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:130
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:147
msgid "Validation"
msgstr "Validation"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:88
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:93
msgid "Value"
msgstr "Value"
#: packages/lib/constants/recipient-roles.ts:26
msgid "View"
msgstr "View"
#: packages/lib/constants/recipient-roles.ts:27
msgid "Viewed"
msgstr "Viewed"
#: packages/lib/constants/recipient-roles.ts:29
msgid "Viewer"
msgstr "Viewer"
#: packages/lib/constants/recipient-roles.ts:28
msgid "Viewing"
msgstr "Viewing"
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44
msgid "You are about to send this document to the recipients. Are you sure you want to continue?"
msgstr "You are about to send this document to the recipients. Are you sure you want to continue?"
#: packages/ui/components/document/document-send-email-message-helper.tsx:11
msgid "You can use the following variables in your message:"
msgstr "You can use the following variables in your message:"
#: packages/ui/primitives/document-dropzone.tsx:43
msgid "You cannot upload documents at this time."
msgstr "You cannot upload documents at this time."
#: packages/ui/primitives/document-dropzone.tsx:69
msgid "You have reached your document limit."
msgstr "You have reached your document limit."

File diff suppressed because one or more lines are too long

View File

@ -25,10 +25,14 @@ msgstr "5 standard documents per month"
msgid "5 Users Included"
msgstr "5 Users Included"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:30
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:34
msgid "A 10x better signing experience."
msgstr "A 10x better signing experience."
#: apps/marketing/src/app/(marketing)/singleplayer/client.tsx:51
msgid "Add document"
msgstr "Add document"
#: apps/marketing/src/components/(marketing)/pricing-table.tsx:201
msgid "Add More Users for {0}"
msgstr "Add More Users for {0}"
@ -47,11 +51,11 @@ msgstr "Amount Raised"
msgid "API Access"
msgstr "API Access"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:63
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:67
msgid "Beautiful."
msgstr "Beautiful."
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:65
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:69
msgid "Because signing should be celebrated. Thats why we care about the smallest detail in our product."
msgstr "Because signing should be celebrated. Thats why we care about the smallest detail in our product."
@ -61,7 +65,7 @@ msgstr "Because signing should be celebrated. Thats why we care about the sma
msgid "Blog"
msgstr "Blog"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:60
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:64
msgid "Build on top."
msgstr "Build on top."
@ -77,7 +81,7 @@ msgstr "Careers"
msgid "Changelog"
msgstr "Changelog"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:81
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:85
msgid "Choose a template from the community app store. Or submit your own template for others to use."
msgstr "Choose a template from the community app store. Or submit your own template for others to use."
@ -93,7 +97,7 @@ msgstr "Completed Documents"
msgid "Completed Documents per Month"
msgstr "Completed Documents per Month"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:61
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:65
msgid "Connections"
msgstr "Connections"
@ -101,7 +105,7 @@ msgstr "Connections"
msgid "Contact Us"
msgstr "Contact Us"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:63
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:67
msgid "Create connections and automations with Zapier and more to integrate with your favorite tools."
msgstr "Create connections and automations with Zapier and more to integrate with your favorite tools."
@ -113,7 +117,7 @@ msgstr "Create your account and start using state-of-the-art document signing. O
msgid "Customers with an Active Subscriptions."
msgstr "Customers with an Active Subscriptions."
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:29
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:33
msgid "Customise and expand."
msgstr "Customise and expand."
@ -125,7 +129,7 @@ msgstr "Design"
msgid "Designed for every stage of your journey."
msgstr "Designed for every stage of your journey."
#: apps/marketing/src/components/(marketing)/carousel.tsx:37
#: apps/marketing/src/components/(marketing)/carousel.tsx:40
msgid "Direct Link"
msgstr "Direct Link"
@ -137,7 +141,7 @@ msgstr "Documenso is a community effort to create an open and vibrant ecosystem
msgid "Documenso on X"
msgstr "Documenso on X"
#: apps/marketing/src/components/(marketing)/hero.tsx:100
#: apps/marketing/src/components/(marketing)/hero.tsx:104
msgid "Document signing,<0/>finally open source."
msgstr "Document signing,<0/>finally open source."
@ -147,13 +151,17 @@ msgstr "Document signing,<0/>finally open source."
msgid "Documentation"
msgstr "Documentation"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:106
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:110
msgid "Easily embed Documenso into your product. Simply copy and paste our react widget into your application."
msgstr "Easily embed Documenso into your product. Simply copy and paste our react widget into your application."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:42
msgid "Easy Sharing (Soon)."
msgstr "Easy Sharing (Soon)."
#~ msgid "Easy Sharing (Soon)."
#~ msgstr "Easy Sharing (Soon)."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:46
msgid "Easy Sharing."
msgstr "Easy Sharing."
#: apps/marketing/src/components/(marketing)/pricing-table.tsx:148
#: apps/marketing/src/components/(marketing)/pricing-table.tsx:192
@ -164,6 +172,10 @@ msgstr "Email and Discord Support"
msgid "Engagement"
msgstr "Engagement"
#: apps/marketing/src/app/(marketing)/singleplayer/client.tsx:64
msgid "Enter your details."
msgstr "Enter your details."
#: apps/marketing/src/components/(marketing)/enterprise.tsx:16
msgid "Enterprise Compliance, License or Technical Needs?"
msgstr "Enterprise Compliance, License or Technical Needs?"
@ -172,11 +184,11 @@ msgstr "Enterprise Compliance, License or Technical Needs?"
msgid "Everything you need for a great signing experience."
msgstr "Everything you need for a great signing experience."
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:41
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:45
msgid "Fast."
msgstr "Fast."
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:32
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:36
msgid "Faster, smarter and more beautiful."
msgstr "Faster, smarter and more beautiful."
@ -212,7 +224,7 @@ msgstr "From the blog"
msgid "Full-Time"
msgstr "Full-Time"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:83
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:87
msgid "Get paid (Soon)."
msgstr "Get paid (Soon)."
@ -264,11 +276,11 @@ msgstr "How do you handle my data?"
msgid "Individual"
msgstr "Individual"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:85
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:89
msgid "Integrated payments with Stripe so you dont have to worry about getting paid."
msgstr "Integrated payments with Stripe so you dont have to worry about getting paid."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:31
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:35
msgid "Integrates with all your favourite tools."
msgstr "Integrates with all your favourite tools."
@ -276,7 +288,7 @@ msgstr "Integrates with all your favourite tools."
msgid "Is there more?"
msgstr "Is there more?"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:40
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:44
msgid "Its up to you. Either clone our repository or rely on our easy to use hosting solution."
msgstr "Its up to you. Either clone our repository or rely on our easy to use hosting solution."
@ -292,7 +304,7 @@ msgstr "Join the Open Signing Movement"
msgid "Location"
msgstr "Location"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:62
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:66
msgid "Make it your own through advanced customization and adjustability."
msgstr "Make it your own through advanced customization and adjustability."
@ -323,7 +335,7 @@ msgid "No credit card required"
msgstr "No credit card required"
#: apps/marketing/src/components/(marketing)/callout.tsx:29
#: apps/marketing/src/components/(marketing)/hero.tsx:121
#: apps/marketing/src/components/(marketing)/hero.tsx:125
msgid "No Credit Card required"
msgstr "No Credit Card required"
@ -336,7 +348,7 @@ msgstr "None of these work for you? Try self-hosting!"
msgid "Open Issues"
msgstr "Open Issues"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:38
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:42
msgid "Open Source or Hosted."
msgstr "Open Source or Hosted."
@ -351,7 +363,7 @@ msgstr "Open Startup"
msgid "OSS Friends"
msgstr "OSS Friends"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:87
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:91
msgid "Our custom templates come with smart rules that can help you save time and energy."
msgstr "Our custom templates come with smart rules that can help you save time and energy."
@ -387,15 +399,15 @@ msgstr "Pricing"
msgid "Privacy"
msgstr "Privacy"
#: apps/marketing/src/components/(marketing)/carousel.tsx:55
#: apps/marketing/src/components/(marketing)/carousel.tsx:58
msgid "Profile"
msgstr "Profile"
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:104
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:108
msgid "React Widget (Soon)."
msgstr "React Widget (Soon)."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:44
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:48
msgid "Receive your personal link to share with everyone you care about."
msgstr "Receive your personal link to share with everyone you care about."
@ -420,7 +432,7 @@ msgstr "Search languages..."
msgid "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us."
msgstr "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us."
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:33
#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:37
msgid "Send, connect, receive and embed everywhere."
msgstr "Send, connect, receive and embed everywhere."
@ -432,6 +444,10 @@ msgstr "Seniority"
msgid "Shop"
msgstr "Shop"
#: apps/marketing/src/app/(marketing)/singleplayer/client.tsx:63
msgid "Sign"
msgstr "Sign"
#: apps/marketing/src/components/(marketing)/header.tsx:72
#: apps/marketing/src/components/(marketing)/mobile-navigation.tsx:61
msgid "Sign in"
@ -442,7 +458,7 @@ msgstr "Sign in"
msgid "Sign up"
msgstr "Sign up"
#: apps/marketing/src/components/(marketing)/carousel.tsx:19
#: apps/marketing/src/components/(marketing)/carousel.tsx:22
msgid "Signing Process"
msgstr "Signing Process"
@ -452,11 +468,11 @@ msgstr "Signing Process"
msgid "Signup Now"
msgstr "Signup Now"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:85
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:89
msgid "Smart."
msgstr "Smart."
#: apps/marketing/src/components/(marketing)/hero.tsx:128
#: apps/marketing/src/components/(marketing)/hero.tsx:132
msgid "Star on GitHub"
msgstr "Star on GitHub"
@ -482,12 +498,12 @@ msgstr "Team"
msgid "Team Inbox"
msgstr "Team Inbox"
#: apps/marketing/src/components/(marketing)/carousel.tsx:25
#: apps/marketing/src/components/(marketing)/carousel.tsx:28
#: apps/marketing/src/components/(marketing)/pricing-table.tsx:162
msgid "Teams"
msgstr "Teams"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:79
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:83
msgid "Template Store (Soon)."
msgstr "Template Store (Soon)."
@ -523,12 +539,12 @@ msgstr "Total Funding Raised"
msgid "Total Users"
msgstr "Total Users"
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:27
#: apps/marketing/src/components/(marketing)/open-build-template-bento.tsx:31
msgid "Truly your own."
msgstr "Truly your own."
#: apps/marketing/src/components/(marketing)/callout.tsx:27
#: apps/marketing/src/components/(marketing)/hero.tsx:119
#: apps/marketing/src/components/(marketing)/hero.tsx:123
msgid "Try our Free Plan"
msgstr "Try our Free Plan"
@ -545,6 +561,10 @@ msgstr "Unlimited Documents per Month"
msgid "Up to 10 recipients per document"
msgstr "Up to 10 recipients per document"
#: apps/marketing/src/app/(marketing)/singleplayer/client.tsx:52
msgid "Upload a document and add fields."
msgstr "Upload a document and add fields."
#: apps/marketing/src/app/(marketing)/pricing/page.tsx:123
msgid "Using our hosted version is the easiest way to get started, you can simply subscribe and start signing your documents. We take care of the infrastructure, so you can focus on your business. Additionally, when using our hosted version you benefit from our trusted signing certificates which helps you to build trust with your customers."
msgstr "Using our hosted version is the easiest way to get started, you can simply subscribe and start signing your documents. We take care of the infrastructure, so you can focus on your business. Additionally, when using our hosted version you benefit from our trusted signing certificates which helps you to build trust with your customers."
@ -561,7 +581,7 @@ msgstr "We are happy to assist you at <0>support@documenso.com</0> or <1>in our
msgid "What is the difference between the plans?"
msgstr "What is the difference between the plans?"
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:43
#: apps/marketing/src/components/(marketing)/faster-smarter-beautiful-bento.tsx:47
msgid "When it comes to sending or receiving a contract, you can count on lightning-fast speeds."
msgstr "When it comes to sending or receiving a contract, you can count on lightning-fast speeds."
@ -589,6 +609,6 @@ msgstr "Yes! Documenso is offered under the GNU AGPL V3 open source license. Thi
msgid "You can self-host Documenso for free or use our ready-to-use hosted version. The hosted version comes with additional support, painless scalability and more. Early adopters will get access to all features we build this year, for no additional cost! Forever! Yes, that includes multiple users per account later. If you want Documenso for your enterprise, we are happy to talk about your needs."
msgstr "You can self-host Documenso for free or use our ready-to-use hosted version. The hosted version comes with additional support, painless scalability and more. Early adopters will get access to all features we build this year, for no additional cost! Forever! Yes, that includes multiple users per account later. If you want Documenso for your enterprise, we are happy to talk about your needs."
#: apps/marketing/src/components/(marketing)/carousel.tsx:258
#: apps/marketing/src/components/(marketing)/carousel.tsx:265
msgid "Your browser does not support the video tag."
msgstr "Your browser does not support the video tag."

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ import type {
RecipientRole,
} from '@documenso/prisma/client';
import { RECIPIENT_ROLES_DESCRIPTION } from '../constants/recipient-roles';
import { RECIPIENT_ROLES_DESCRIPTION_ENG } from '../constants/recipient-roles';
import type {
TDocumentAuditLog,
TDocumentAuditLogDocumentMetaDiffSchema,
@ -268,6 +268,7 @@ export const formatDocumentAuditLogActionString = (
*
* Provide a userId to prefix the action with the user, example 'X did Y'.
*/
// Todo: Translations.
export const formatDocumentAuditLogAction = (auditLog: TDocumentAuditLog, userId?: number) => {
let prefix = userId === auditLog.userId ? 'You' : auditLog.name || auditLog.email || '';
@ -346,7 +347,7 @@ export const formatDocumentAuditLogAction = (auditLog: TDocumentAuditLog, userId
}))
.with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_RECIPIENT_COMPLETED }, ({ data }) => {
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
const action = RECIPIENT_ROLES_DESCRIPTION[data.recipientRole as RecipientRole]?.actioned;
const action = RECIPIENT_ROLES_DESCRIPTION_ENG[data.recipientRole as RecipientRole]?.actioned;
const value = action ? `${action.toLowerCase()} the document` : 'completed their task';

View File

@ -0,0 +1,3 @@
export * from '@sindresorhus/slugify';
export { default as slugify } from '@sindresorhus/slugify';