mirror of
https://github.com/documenso/documenso.git
synced 2026-06-24 21:32:09 +10:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| eeeee2fa0e | |||
| c50a31a503 | |||
| 7360709795 | |||
| df678d7d69 | |||
| 6739242554 | |||
| a5e5eecf8b | |||
| b0248c20eb | |||
| f129968968 | |||
| c5c87e3fd1 | |||
| 24a74c7b57 | |||
| f0a5a7e816 | |||
| 8462cd13fd | |||
| 576846de32 | |||
| 06071ea035 |
@@ -17,6 +17,7 @@ import { DocumentSigningDisclosure } from '../general/document-signing/document-
|
||||
|
||||
export type SignFieldSignatureDialogProps = {
|
||||
initialSignature?: string;
|
||||
fullName?: string;
|
||||
typedSignatureEnabled?: boolean;
|
||||
uploadSignatureEnabled?: boolean;
|
||||
drawSignatureEnabled?: boolean;
|
||||
@@ -28,6 +29,7 @@ export const SignFieldSignatureDialog = createCallable<
|
||||
>(
|
||||
({
|
||||
call,
|
||||
fullName,
|
||||
typedSignatureEnabled,
|
||||
uploadSignatureEnabled,
|
||||
drawSignatureEnabled,
|
||||
@@ -46,6 +48,7 @@ export const SignFieldSignatureDialog = createCallable<
|
||||
</DialogHeader>
|
||||
|
||||
<SignaturePad
|
||||
fullName={fullName}
|
||||
value={localSignature ?? ''}
|
||||
onChange={({ value }) => setLocalSignature(value)}
|
||||
typedSignatureEnabled={typedSignatureEnabled}
|
||||
|
||||
@@ -438,6 +438,7 @@ export const EmbedDirectTemplateClientPage = ({
|
||||
className="mt-2"
|
||||
disabled={isThrottled || isSubmitting}
|
||||
disableAnimation
|
||||
fullName={fullName}
|
||||
value={signature ?? ''}
|
||||
onChange={(v) => setSignature(v ?? '')}
|
||||
typedSignatureEnabled={metadata?.typedSignatureEnabled}
|
||||
|
||||
@@ -455,6 +455,7 @@ export const EmbedSignDocumentV1ClientPage = ({
|
||||
className="mt-2"
|
||||
disabled={isThrottled || isSubmitting}
|
||||
disableAnimation
|
||||
fullName={fullName}
|
||||
value={signature ?? ''}
|
||||
onChange={(v) => setSignature(v ?? '')}
|
||||
typedSignatureEnabled={metadata?.typedSignatureEnabled}
|
||||
|
||||
@@ -319,6 +319,7 @@ export const MultiSignDocumentSigningView = ({
|
||||
className="mt-2"
|
||||
disabled={isSubmitting}
|
||||
disableAnimation
|
||||
fullName={fullName}
|
||||
value={signature ?? ''}
|
||||
onChange={(v) => setSignature(v ?? '')}
|
||||
typedSignatureEnabled={
|
||||
|
||||
@@ -110,7 +110,7 @@ export const ProfileForm = ({ className }: ProfileFormProps) => {
|
||||
<Label htmlFor="email" className="text-muted-foreground">
|
||||
<Trans>Email</Trans>
|
||||
</Label>
|
||||
<Input id="email" type="email" className="bg-muted mt-2" value={user.email} disabled />
|
||||
<Input id="email" type="email" className="mt-2 bg-muted" value={user.email} disabled />
|
||||
</div>
|
||||
|
||||
<FormField
|
||||
@@ -124,6 +124,7 @@ export const ProfileForm = ({ className }: ProfileFormProps) => {
|
||||
<FormControl>
|
||||
<SignaturePadDialog
|
||||
disabled={isSubmitting}
|
||||
fullName={user.name ?? ''}
|
||||
value={value}
|
||||
onChange={(v) => onChange(v ?? '')}
|
||||
/>
|
||||
|
||||
@@ -417,6 +417,7 @@ export const DirectTemplateSigningForm = ({
|
||||
<SignaturePadDialog
|
||||
className="mt-2"
|
||||
disabled={isSubmitting}
|
||||
fullName={fullName}
|
||||
value={signature ?? ''}
|
||||
onChange={(value) => setSignature(value)}
|
||||
typedSignatureEnabled={template.templateMeta?.typedSignatureEnabled}
|
||||
@@ -433,7 +434,7 @@ export const DirectTemplateSigningForm = ({
|
||||
|
||||
<div className="mt-4 flex gap-x-4">
|
||||
<Button
|
||||
className="dark:bg-muted dark:hover:bg-muted/80 w-full bg-black/5 hover:bg-black/10"
|
||||
className="w-full bg-black/5 hover:bg-black/10 dark:bg-muted dark:hover:bg-muted/80"
|
||||
size="lg"
|
||||
variant="secondary"
|
||||
disabled={isSubmitting}
|
||||
|
||||
@@ -280,6 +280,7 @@ export const DocumentSigningForm = ({
|
||||
<SignaturePadDialog
|
||||
className="mt-2"
|
||||
disabled={isSubmitting}
|
||||
fullName={fullName}
|
||||
value={signature ?? ''}
|
||||
onChange={(v) => setSignature(v ?? '')}
|
||||
typedSignatureEnabled={document.documentMeta?.typedSignatureEnabled}
|
||||
|
||||
+11
-7
@@ -56,8 +56,11 @@ export const DocumentSigningSignatureField = ({
|
||||
const containerRef = useRef<HTMLDivElement>(null);
|
||||
const [fontSize, setFontSize] = useState(2);
|
||||
|
||||
const { signature: providedSignature, setSignature: setProvidedSignature } =
|
||||
useRequiredDocumentSigningContext();
|
||||
const {
|
||||
fullName,
|
||||
signature: providedSignature,
|
||||
setSignature: setProvidedSignature,
|
||||
} = useRequiredDocumentSigningContext();
|
||||
|
||||
const { executeActionAuthProcedure } = useRequiredDocumentSigningAuthContext();
|
||||
|
||||
@@ -236,13 +239,13 @@ export const DocumentSigningSignatureField = ({
|
||||
type="Signature"
|
||||
>
|
||||
{isLoading && (
|
||||
<div className="bg-background absolute inset-0 flex items-center justify-center rounded-md">
|
||||
<Loader className="text-primary h-5 w-5 animate-spin md:h-8 md:w-8" />
|
||||
<div className="absolute inset-0 flex items-center justify-center rounded-md bg-background">
|
||||
<Loader className="h-5 w-5 animate-spin text-primary md:h-8 md:w-8" />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{state === 'empty' && (
|
||||
<p className="group-hover:text-primary font-signature text-muted-foreground group-hover:text-recipient-green text-[clamp(0.575rem,25cqw,1.2rem)] text-xl duration-200">
|
||||
<p className="font-signature text-[clamp(0.575rem,25cqw,1.2rem)] text-xl text-muted-foreground duration-200 group-hover:text-primary group-hover:text-recipient-green">
|
||||
<Trans>Signature</Trans>
|
||||
</p>
|
||||
)}
|
||||
@@ -259,7 +262,7 @@ export const DocumentSigningSignatureField = ({
|
||||
<div ref={containerRef} className="flex h-full w-full items-center justify-center p-2">
|
||||
<p
|
||||
ref={signatureRef}
|
||||
className="font-signature text-muted-foreground w-full overflow-hidden break-all text-center leading-tight duration-200"
|
||||
className="w-full overflow-hidden break-all text-center font-signature leading-tight text-muted-foreground duration-200"
|
||||
style={{ fontSize: `${fontSize}rem` }}
|
||||
>
|
||||
{signature?.typedSignature}
|
||||
@@ -272,12 +275,13 @@ export const DocumentSigningSignatureField = ({
|
||||
<DialogTitle>
|
||||
<Trans>
|
||||
Sign as {recipient.name}{' '}
|
||||
<div className="text-muted-foreground h-5">({recipient.email})</div>
|
||||
<div className="h-5 text-muted-foreground">({recipient.email})</div>
|
||||
</Trans>
|
||||
</DialogTitle>
|
||||
|
||||
<SignaturePad
|
||||
className="mt-2"
|
||||
fullName={fullName}
|
||||
value={localSignature ?? ''}
|
||||
onChange={({ value }) => setLocalSignature(value)}
|
||||
typedSignatureEnabled={typedSignatureEnabled}
|
||||
|
||||
@@ -41,7 +41,7 @@ export default function EnvelopeSignerForm() {
|
||||
|
||||
if (recipient.role === RecipientRole.ASSISTANT) {
|
||||
return (
|
||||
<fieldset className="embed--DocumentWidgetForm dark:bg-background border-border rounded-2xl sm:border sm:p-3">
|
||||
<fieldset className="embed--DocumentWidgetForm rounded-2xl border-border sm:border sm:p-3 dark:bg-background">
|
||||
<RadioGroup
|
||||
className="gap-0 space-y-2 shadow-none sm:space-y-3"
|
||||
value={selectedAssistantRecipient?.id?.toString()}
|
||||
@@ -54,7 +54,7 @@ export default function EnvelopeSignerForm() {
|
||||
.map((r) => (
|
||||
<div
|
||||
key={r.id}
|
||||
className="bg-widget border-border relative flex flex-col gap-4 rounded-lg border p-4"
|
||||
className="relative flex flex-col gap-4 rounded-lg border border-border bg-widget p-4"
|
||||
>
|
||||
<div className="flex items-center justify-between">
|
||||
<div className="flex items-center gap-3">
|
||||
@@ -69,15 +69,15 @@ export default function EnvelopeSignerForm() {
|
||||
{r.name}
|
||||
|
||||
{r.id === recipient.id && (
|
||||
<span className="text-muted-foreground ml-2">
|
||||
<span className="ml-2 text-muted-foreground">
|
||||
<Trans>(You)</Trans>
|
||||
</span>
|
||||
)}
|
||||
</Label>
|
||||
<p className="text-muted-foreground text-xs">{r.email}</p>
|
||||
<p className="text-xs text-muted-foreground">{r.email}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="text-muted-foreground text-xs leading-[inherit]">
|
||||
<div className="text-xs leading-[inherit] text-muted-foreground">
|
||||
<Plural
|
||||
value={assistantFields.filter((field) => field.recipientId === r.id).length}
|
||||
one="# field"
|
||||
@@ -103,7 +103,7 @@ export default function EnvelopeSignerForm() {
|
||||
<Input
|
||||
type="text"
|
||||
id="full-name"
|
||||
className="bg-background mt-2"
|
||||
className="mt-2 bg-background"
|
||||
value={fullName}
|
||||
disabled={isNameLocked}
|
||||
onChange={(e) => !isNameLocked && setFullName(e.target.value.trimStart())}
|
||||
@@ -119,6 +119,7 @@ export default function EnvelopeSignerForm() {
|
||||
<SignaturePadDialog
|
||||
className="mt-2"
|
||||
disabled={isSubmitting}
|
||||
fullName={fullName}
|
||||
value={signature ?? ''}
|
||||
onChange={(v) => setSignature(v ?? '')}
|
||||
typedSignatureEnabled={envelope.documentMeta.typedSignatureEnabled}
|
||||
|
||||
@@ -374,6 +374,7 @@ export default function EnvelopeSignerPageRenderer() {
|
||||
.with({ type: FieldType.SIGNATURE }, (field) => {
|
||||
handleSignatureFieldClick({
|
||||
field,
|
||||
fullName,
|
||||
signature,
|
||||
typedSignatureEnabled: envelope.documentMeta.typedSignatureEnabled,
|
||||
uploadSignatureEnabled: envelope.documentMeta.uploadSignatureEnabled,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { useEffect, useMemo, useState, useTransition } from 'react';
|
||||
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
import { Trans } from '@lingui/react/macro';
|
||||
import type { Role, Subscription } from '@prisma/client';
|
||||
import { Edit, Loader } from 'lucide-react';
|
||||
import { Link } from 'react-router';
|
||||
@@ -82,7 +83,7 @@ export const AdminDashboardUsersTable = ({
|
||||
<Button className="w-24" asChild>
|
||||
<Link to={`/admin/users/${row.original.id}`}>
|
||||
<Edit className="-ml-1 mr-2 h-4 w-4" />
|
||||
Edit
|
||||
<Trans>Edit</Trans>
|
||||
</Link>
|
||||
</Button>
|
||||
);
|
||||
|
||||
@@ -82,7 +82,9 @@ export const OrganisationGroupsDataTable = () => {
|
||||
cell: ({ row }) => (
|
||||
<div className="flex justify-end space-x-2">
|
||||
<Button asChild variant="outline">
|
||||
<Link to={`/o/${organisation.url}/settings/groups/${row.original.id}`}>Manage</Link>
|
||||
<Link to={`/o/${organisation.url}/settings/groups/${row.original.id}`}>
|
||||
<Trans>Manage</Trans>
|
||||
</Link>
|
||||
</Button>
|
||||
|
||||
<OrganisationGroupDeleteDialog
|
||||
|
||||
@@ -120,7 +120,9 @@ export default function OrganisationSettingsTeamsPage() {
|
||||
</div>
|
||||
|
||||
<Button asChild>
|
||||
<Link to={`/o/${organisation.url}/settings`}>Manage Organisation</Link>
|
||||
<Link to={`/o/${organisation.url}/settings`}>
|
||||
<Trans>Manage Organisation</Trans>
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -185,6 +185,9 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
|
||||
(log) =>
|
||||
log.type === DOCUMENT_AUDIT_LOG_TYPE.EMAIL_SENT && log.data.recipientId === recipientId,
|
||||
),
|
||||
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT]: auditLogs[
|
||||
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT
|
||||
].filter((log) => log.type === DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT),
|
||||
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED]: auditLogs[
|
||||
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED
|
||||
].filter(
|
||||
@@ -245,11 +248,11 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
|
||||
<TableCell truncate={false} className="w-[min-content] max-w-[220px] align-top">
|
||||
<div className="hyphens-auto break-words font-medium">{recipient.name}</div>
|
||||
<div className="break-all">{recipient.email}</div>
|
||||
<p className="text-muted-foreground mt-2 text-sm print:text-xs">
|
||||
<p className="mt-2 text-sm text-muted-foreground print:text-xs">
|
||||
{_(RECIPIENT_ROLES_DESCRIPTION[recipient.role].roleName)}
|
||||
</p>
|
||||
|
||||
<p className="text-muted-foreground mt-2 text-sm print:text-xs">
|
||||
<p className="mt-2 text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`Authentication Level`)}:</span>{' '}
|
||||
<span className="block">{getAuthenticationLevel(recipient.id)}</span>
|
||||
</p>
|
||||
@@ -273,13 +276,13 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
|
||||
)}
|
||||
|
||||
{signature.signature?.typedSignature && (
|
||||
<p className="font-signature text-center text-sm">
|
||||
<p className="text-center font-signature text-sm">
|
||||
{signature.signature?.typedSignature}
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<p className="text-muted-foreground mt-2 text-sm print:text-xs">
|
||||
<p className="mt-2 text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`Signature ID`)}:</span>{' '}
|
||||
<span className="block font-mono uppercase">
|
||||
{signature.secondaryId}
|
||||
@@ -290,14 +293,14 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
|
||||
<p className="text-muted-foreground">N/A</p>
|
||||
)}
|
||||
|
||||
<p className="text-muted-foreground mt-2 text-sm print:text-xs">
|
||||
<p className="mt-2 text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`IP Address`)}:</span>{' '}
|
||||
<span className="inline-block">
|
||||
{logs.DOCUMENT_RECIPIENT_COMPLETED[0]?.ipAddress ?? _(msg`Unknown`)}
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p className="text-muted-foreground mt-1 text-sm print:text-xs">
|
||||
<p className="mt-1 text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`Device`)}:</span>{' '}
|
||||
<span className="inline-block">
|
||||
{getDevice(logs.DOCUMENT_RECIPIENT_COMPLETED[0]?.userAgent)}
|
||||
@@ -307,18 +310,22 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
|
||||
|
||||
<TableCell truncate={false} className="w-[min-content] align-top">
|
||||
<div className="space-y-1">
|
||||
<p className="text-muted-foreground text-sm print:text-xs">
|
||||
<p className="text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`Sent`)}:</span>{' '}
|
||||
<span className="inline-block">
|
||||
{logs.EMAIL_SENT[0]
|
||||
? DateTime.fromJSDate(logs.EMAIL_SENT[0].createdAt)
|
||||
.setLocale(APP_I18N_OPTIONS.defaultLocale)
|
||||
.toFormat('yyyy-MM-dd hh:mm:ss a (ZZZZ)')
|
||||
: _(msg`Unknown`)}
|
||||
: logs.DOCUMENT_SENT[0]
|
||||
? DateTime.fromJSDate(logs.DOCUMENT_SENT[0].createdAt)
|
||||
.setLocale(APP_I18N_OPTIONS.defaultLocale)
|
||||
.toFormat('yyyy-MM-dd hh:mm:ss a (ZZZZ)')
|
||||
: _(msg`Unknown`)}
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p className="text-muted-foreground text-sm print:text-xs">
|
||||
<p className="text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`Viewed`)}:</span>{' '}
|
||||
<span className="inline-block">
|
||||
{logs.DOCUMENT_OPENED[0]
|
||||
@@ -330,7 +337,7 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
|
||||
</p>
|
||||
|
||||
{logs.DOCUMENT_RECIPIENT_REJECTED[0] ? (
|
||||
<p className="text-muted-foreground text-sm print:text-xs">
|
||||
<p className="text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`Rejected`)}:</span>{' '}
|
||||
<span className="inline-block">
|
||||
{logs.DOCUMENT_RECIPIENT_REJECTED[0]
|
||||
@@ -341,7 +348,7 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
|
||||
</span>
|
||||
</p>
|
||||
) : (
|
||||
<p className="text-muted-foreground text-sm print:text-xs">
|
||||
<p className="text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`Signed`)}:</span>{' '}
|
||||
<span className="inline-block">
|
||||
{logs.DOCUMENT_RECIPIENT_COMPLETED[0]
|
||||
@@ -355,7 +362,7 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
|
||||
</p>
|
||||
)}
|
||||
|
||||
<p className="text-muted-foreground text-sm print:text-xs">
|
||||
<p className="text-sm text-muted-foreground print:text-xs">
|
||||
<span className="font-medium">{_(msg`Reason`)}:</span>{' '}
|
||||
<span className="inline-block">
|
||||
{recipient.signingStatus === SigningStatus.REJECTED
|
||||
|
||||
@@ -115,7 +115,9 @@ export default function RejectedSigningPage({ loaderData }: Route.ComponentProps
|
||||
|
||||
{user && (
|
||||
<Button className="mt-6" asChild>
|
||||
<Link to={`/`}>Return Home</Link>
|
||||
<Link to={`/`}>
|
||||
<Trans>Return Home</Trans>
|
||||
</Link>
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -98,7 +98,9 @@ export default function WaitingForTurnToSignPage({ loaderData }: Route.Component
|
||||
</Button>
|
||||
) : (
|
||||
<Button variant="link" asChild>
|
||||
<Link to="/">Return Home</Link>
|
||||
<Link to="/">
|
||||
<Trans>Return Home</Trans>
|
||||
</Link>
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -8,6 +8,7 @@ import { SignFieldSignatureDialog } from '~/components/dialogs/sign-field-signat
|
||||
|
||||
type HandleSignatureFieldClickOptions = {
|
||||
field: TFieldSignature;
|
||||
fullName?: string;
|
||||
signature: string | null;
|
||||
typedSignatureEnabled?: boolean;
|
||||
uploadSignatureEnabled?: boolean;
|
||||
@@ -17,8 +18,14 @@ type HandleSignatureFieldClickOptions = {
|
||||
export const handleSignatureFieldClick = async (
|
||||
options: HandleSignatureFieldClickOptions,
|
||||
): Promise<Extract<TSignEnvelopeFieldValue, { type: typeof FieldType.SIGNATURE }> | null> => {
|
||||
const { field, signature, typedSignatureEnabled, uploadSignatureEnabled, drawSignatureEnabled } =
|
||||
options;
|
||||
const {
|
||||
field,
|
||||
fullName,
|
||||
signature,
|
||||
typedSignatureEnabled,
|
||||
uploadSignatureEnabled,
|
||||
drawSignatureEnabled,
|
||||
} = options;
|
||||
|
||||
if (field.type !== FieldType.SIGNATURE) {
|
||||
throw new AppError(AppErrorCode.INVALID_REQUEST, {
|
||||
@@ -37,6 +44,7 @@ export const handleSignatureFieldClick = async (
|
||||
|
||||
if (!signatureToInsert) {
|
||||
signatureToInsert = await SignFieldSignatureDialog.call({
|
||||
fullName,
|
||||
typedSignatureEnabled,
|
||||
uploadSignatureEnabled,
|
||||
drawSignatureEnabled,
|
||||
|
||||
@@ -107,5 +107,5 @@
|
||||
"vite-plugin-babel-macros": "^1.0.6",
|
||||
"vite-tsconfig-paths": "^5.1.4"
|
||||
},
|
||||
"version": "2.2.6"
|
||||
"version": "2.3.1"
|
||||
}
|
||||
|
||||
Generated
+3
-4
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@documenso/root",
|
||||
"version": "2.2.6",
|
||||
"version": "2.3.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@documenso/root",
|
||||
"version": "2.2.6",
|
||||
"version": "2.3.1",
|
||||
"hasInstallScript": true,
|
||||
"workspaces": [
|
||||
"apps/*",
|
||||
@@ -21,7 +21,6 @@
|
||||
"ai": "^5.0.104",
|
||||
"inngest-cli": "^1.13.7",
|
||||
"luxon": "^3.7.2",
|
||||
"next": "15.5.9",
|
||||
"patch-package": "^8.0.1",
|
||||
"posthog-node": "4.18.0",
|
||||
"react": "^18",
|
||||
@@ -110,7 +109,7 @@
|
||||
},
|
||||
"apps/remix": {
|
||||
"name": "@documenso/remix",
|
||||
"version": "2.2.6",
|
||||
"version": "2.3.1",
|
||||
"dependencies": {
|
||||
"@cantoo/pdf-lib": "^2.5.3",
|
||||
"@documenso/api": "*",
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
"apps/*",
|
||||
"packages/*"
|
||||
],
|
||||
"version": "2.2.6",
|
||||
"version": "2.3.1",
|
||||
"scripts": {
|
||||
"postinstall": "patch-package",
|
||||
"build": "turbo run build",
|
||||
|
||||
@@ -286,7 +286,7 @@ const detectFieldsFromPage = async ({
|
||||
});
|
||||
|
||||
const result = await generateObject({
|
||||
model: vertex('gemini-3-pro-preview'),
|
||||
model: vertex('gemini-3-flash-preview'),
|
||||
system: SYSTEM_PROMPT,
|
||||
schema: ZSubmitDetectedFieldsInputSchema,
|
||||
messages,
|
||||
|
||||
@@ -207,7 +207,7 @@ const detectRecipientsFromImages = async ({
|
||||
});
|
||||
|
||||
const result = await generateObject({
|
||||
model: vertex('gemini-2.5-flash'),
|
||||
model: vertex('gemini-3-flash-preview'),
|
||||
system: SYSTEM_PROMPT,
|
||||
schema: ZDetectedRecipientsSchema,
|
||||
messages,
|
||||
|
||||
@@ -9,7 +9,10 @@ globalThis.Image = Image;
|
||||
|
||||
class SkiaCanvasFactory {
|
||||
_createCanvas(width: number, height: number) {
|
||||
return new Canvas(width, height);
|
||||
const canvas = new Canvas(width, height);
|
||||
canvas.gpu = false;
|
||||
|
||||
return canvas;
|
||||
}
|
||||
|
||||
create(width: number, height: number) {
|
||||
@@ -44,10 +47,12 @@ export type PdfToImagesOptions = {
|
||||
export const pdfToImages = async (pdfBytes: Uint8Array, options: PdfToImagesOptions = {}) => {
|
||||
const { scale = 2 } = options;
|
||||
|
||||
const pdf = await pdfjsLib.getDocument({
|
||||
const task = await pdfjsLib.getDocument({
|
||||
data: pdfBytes,
|
||||
CanvasFactory: SkiaCanvasFactory,
|
||||
}).promise;
|
||||
});
|
||||
|
||||
const pdf = await task.promise;
|
||||
|
||||
const images = await pMap(
|
||||
Array.from({ length: pdf.numPages }),
|
||||
@@ -58,6 +63,8 @@ export const pdfToImages = async (pdfBytes: Uint8Array, options: PdfToImagesOpti
|
||||
const viewport = page.getViewport({ scale });
|
||||
|
||||
const canvas = new Canvas(viewport.width, viewport.height);
|
||||
canvas.gpu = false;
|
||||
|
||||
const canvasContext = canvas.getContext('2d');
|
||||
|
||||
await page.render({
|
||||
@@ -68,18 +75,23 @@ export const pdfToImages = async (pdfBytes: Uint8Array, options: PdfToImagesOpti
|
||||
viewport,
|
||||
}).promise;
|
||||
|
||||
return {
|
||||
const result = {
|
||||
pageNumber,
|
||||
image: await canvas.toBuffer('jpeg'),
|
||||
width: Math.floor(viewport.width),
|
||||
height: Math.floor(viewport.height),
|
||||
mimeType: 'image/jpeg',
|
||||
};
|
||||
|
||||
void page.cleanup();
|
||||
|
||||
return result;
|
||||
},
|
||||
{ concurrency: 10 },
|
||||
);
|
||||
|
||||
void pdf.destroy();
|
||||
void pdf.destroy().catch((e) => console.error(e));
|
||||
void task.destroy().catch((e) => console.error(e));
|
||||
|
||||
return images;
|
||||
};
|
||||
|
||||
@@ -20,6 +20,7 @@ export const getDocumentCertificateAuditLogs = async ({
|
||||
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_FIELD_INSERTED,
|
||||
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED,
|
||||
DOCUMENT_AUDIT_LOG_TYPE.EMAIL_SENT,
|
||||
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT,
|
||||
],
|
||||
},
|
||||
},
|
||||
@@ -37,6 +38,9 @@ export const getDocumentCertificateAuditLogs = async ({
|
||||
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED]: auditLogs.filter(
|
||||
(log) => log.type === DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED,
|
||||
),
|
||||
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT]: auditLogs.filter(
|
||||
(log) => log.type === DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT,
|
||||
),
|
||||
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_FIELD_INSERTED]: auditLogs.filter(
|
||||
(log) => log.type === DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_FIELD_INSERTED,
|
||||
),
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* !: This is a workaround to fix the memory leak in the skia-canvas library.
|
||||
* !: Internals are ported from the original `konva/skia-backend.js` file.
|
||||
*/
|
||||
import { Konva } from 'konva/lib/_CoreInternals';
|
||||
import { Canvas, DOMMatrix, Image, Path2D } from 'skia-canvas';
|
||||
|
||||
// @ts-expect-error skia-canvas satisfies the requirements
|
||||
global.DOMMatrix = DOMMatrix;
|
||||
|
||||
// @ts-expect-error skia-canvas satisfies the requirements
|
||||
global.Path2D = Path2D;
|
||||
Path2D.prototype.toString = () => '[object Path2D]';
|
||||
|
||||
Konva.Util['createCanvasElement'] = () => {
|
||||
const node = new Canvas(300, 300);
|
||||
node.gpu = false;
|
||||
|
||||
if (!('style' in node) || !node['style']) {
|
||||
Object.assign(node, { style: {} });
|
||||
}
|
||||
|
||||
node.toString = () => '[object HTMLCanvasElement]';
|
||||
const ctx = node.getContext('2d');
|
||||
|
||||
Object.defineProperty(ctx, 'canvas', {
|
||||
get: () => node,
|
||||
});
|
||||
|
||||
return node as unknown as HTMLCanvasElement;
|
||||
};
|
||||
|
||||
Konva.Util.createImageElement = () => {
|
||||
const node = new Image();
|
||||
node.toString = () => '[object HTMLImageElement]';
|
||||
|
||||
return node as unknown as HTMLImageElement;
|
||||
};
|
||||
|
||||
Konva._renderBackend = 'skia-canvas';
|
||||
|
||||
export default Konva;
|
||||
@@ -4,8 +4,10 @@ import {
|
||||
PDFDict,
|
||||
type PDFDocument,
|
||||
PDFName,
|
||||
PDFNumber,
|
||||
PDFRadioGroup,
|
||||
PDFRef,
|
||||
PDFStream,
|
||||
drawObject,
|
||||
popGraphicsState,
|
||||
pushGraphicsState,
|
||||
@@ -103,6 +105,36 @@ const getAppearanceRefForWidget = (field: PDFField, widget: PDFWidgetAnnotation)
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Ensures that an appearance stream has the required dictionary entries to be
|
||||
* used as a Form XObject. Some PDFs have appearance streams that are missing
|
||||
* the /Subtype /Form entry, which causes Adobe Reader to fail to render them.
|
||||
*
|
||||
* Per PDF spec, a Form XObject stream requires:
|
||||
* - /Subtype /Form (required)
|
||||
* - /BBox (required, but should already exist for appearance streams)
|
||||
* - /FormType 1 (optional, defaults to 1)
|
||||
*/
|
||||
const normalizeAppearanceStream = (document: PDFDocument, appearanceRef: PDFRef) => {
|
||||
const appearanceStream = document.context.lookup(appearanceRef);
|
||||
|
||||
if (!(appearanceStream instanceof PDFStream)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const dict = appearanceStream.dict;
|
||||
|
||||
// Ensure /Subtype /Form is set (required for XObject Form)
|
||||
if (!dict.has(PDFName.of('Subtype'))) {
|
||||
dict.set(PDFName.of('Subtype'), PDFName.of('Form'));
|
||||
}
|
||||
|
||||
// Ensure /FormType is set (optional, but good practice)
|
||||
if (!dict.has(PDFName.of('FormType'))) {
|
||||
dict.set(PDFName.of('FormType'), PDFNumber.of(1));
|
||||
}
|
||||
};
|
||||
|
||||
const flattenWidget = (document: PDFDocument, field: PDFField, widget: PDFWidgetAnnotation) => {
|
||||
try {
|
||||
const page = getPageForWidget(document, widget);
|
||||
@@ -117,6 +149,9 @@ const flattenWidget = (document: PDFDocument, field: PDFField, widget: PDFWidget
|
||||
return;
|
||||
}
|
||||
|
||||
// Ensure the appearance stream has required XObject Form dictionary entries
|
||||
normalizeAppearanceStream(document, appearanceRef);
|
||||
|
||||
const xObjectKey = page.node.newXObject('FlatWidget', appearanceRef);
|
||||
|
||||
const rectangle = widget.getRectangle();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// sort-imports-ignore
|
||||
import 'konva/skia-backend';
|
||||
import '../konva/skia-backend';
|
||||
|
||||
import Konva from 'konva';
|
||||
import path from 'node:path';
|
||||
@@ -23,6 +23,7 @@ export const insertFieldInPDFV2 = async ({
|
||||
}: InsertFieldInPDFV2Options) => {
|
||||
const fontPath = path.join(process.cwd(), 'public/fonts');
|
||||
|
||||
// eslint-disable-next-line react-hooks/rules-of-hooks
|
||||
FontLibrary.use({
|
||||
['Caveat']: [path.join(fontPath, 'caveat.ttf')],
|
||||
['Noto Sans']: [path.join(fontPath, 'noto-sans.ttf')],
|
||||
|
||||
@@ -185,7 +185,7 @@ export const createDocumentFromDirectTemplate = async ({
|
||||
documentAuth: directTemplateEnvelope.authOptions,
|
||||
});
|
||||
|
||||
const directRecipientName = user?.name || initialDirectRecipientName;
|
||||
let directRecipientName = user?.name || initialDirectRecipientName;
|
||||
|
||||
// Ensure typesafety when we add more options.
|
||||
const isAccessAuthValid = match(derivedRecipientAccessAuth.at(0))
|
||||
@@ -238,7 +238,7 @@ export const createDocumentFromDirectTemplate = async ({
|
||||
}
|
||||
|
||||
if (templateField.type === FieldType.NAME && directRecipientName === undefined) {
|
||||
directRecipientName === signedFieldValue?.value;
|
||||
directRecipientName = signedFieldValue?.value;
|
||||
}
|
||||
|
||||
const derivedRecipientActionAuth = await validateFieldAuth({
|
||||
|
||||
+123
-122
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: de\n"
|
||||
"Project-Id-Version: documenso-app\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2025-11-27 05:32\n"
|
||||
"PO-Revision-Date: 2025-12-15 02:39\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: German\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {(1 Zeichen über dem Limit)} other {(# Zeichen über de
|
||||
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {{1} von # Zeile ausgewählt.} other {{2} von # Zeilen ausgewählt.}}"
|
||||
|
||||
#. placeholder {0}: Math.abs(remaningLength)
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# Ordner} other {# Ordner}}"
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {# Empfänger wurde durch die KI-Erkennung hinzugefügt.} other {# Empfänger wurden durch die KI-Erkennung hinzugefügt.}}"
|
||||
|
||||
#. placeholder {0}: template.recipients.length
|
||||
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
|
||||
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 Empfänger} other {# Empfänger}}"
|
||||
#. placeholder {4}: progress.totalPages
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Seite {1} von {2} - # Feld gefunden} other {Seite {3} von {4} - # Felder gefunden}}"
|
||||
|
||||
#. placeholder {0}: progress.recipientsDetected
|
||||
#. placeholder {1}: progress.pagesProcessed
|
||||
@@ -172,12 +172,12 @@ msgstr ""
|
||||
#. placeholder {4}: progress.totalPages
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Seite {1} von {2} - # Empfänger gefunden} other {Seite {3} von {4} - # Empfänger gefunden}}"
|
||||
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Empfänger hinzugefügt} other {Empfänger hinzugefügt}}"
|
||||
|
||||
#. placeholder {0}: pendingRecipients.length
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
|
||||
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {Warte auf 1 Empfänger} other {Warte auf # Empfänger}}
|
||||
#. placeholder {0}: detectedFields.length
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Wir haben # Feld in Ihrem Dokument gefunden.} other {Wir haben # Felder in Ihrem Dokument gefunden.}}"
|
||||
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Wir haben # Empfänger in Ihrem Dokument gefunden.} other {Wir haben # Empfänger in Ihrem Dokument gefunden.}}"
|
||||
|
||||
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
|
||||
#. placeholder {0}: route.label
|
||||
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {Sie können nicht mehr als # Zugangsschl
|
||||
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
|
||||
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
|
||||
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
|
||||
msgstr ""
|
||||
msgstr "{maximumEnvelopeItemCount, plural, one {Sie können nicht mehr als # Element pro Umschlag hochladen.} other {Sie können nicht mehr als # Elemente pro Umschlag hochladen.}}"
|
||||
|
||||
#: packages/lib/utils/document-audit-logs.ts
|
||||
msgid "{prefix} added a field"
|
||||
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> hat angefragt, Ihr bestehendes Documenso-Konto
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> hat Sie eingeladen, dieses Dokument zu genehmigen"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> hat Sie eingeladen, bei diesem Dokument mitzuwirken"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> hat Sie eingeladen, dieses Dokument zu unterschreiben"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> hat Sie eingeladen, dieses Dokument anzusehen"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> im Namen von \"{0}\" hat Sie eingeladen, dieses Dokument zu genehmigen"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> im Namen von \"{0}\" hat Sie eingeladen, bei diesem Dokument mitzuwirken"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> im Namen von \"{0}\" hat Sie eingeladen, dieses Dokument zu unterschreiben"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> im Namen von \"{0}\" hat Sie eingeladen, dieses Dokument anzusehen"
|
||||
|
||||
#: packages/email/templates/confirm-team-email.tsx
|
||||
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
|
||||
@@ -591,7 +591,7 @@ msgstr "<0>Konto verwalten:</0> Ändern Sie Ihre Kontoeinstellungen, Berechtigun
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "<0>Admins only</0> - Only admins can access and view the document"
|
||||
msgstr ""
|
||||
msgstr "<0>Nur Admins</0> – Nur Admins können auf das Dokument zugreifen und es ansehen"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "<0>Data access:</0> Access all data associated with your account"
|
||||
@@ -612,7 +612,7 @@ msgstr "<0>Ereignisse:</0> Alle"
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "<0>Everyone</0> - Everyone can access and view the document"
|
||||
msgstr ""
|
||||
msgstr "<0>Jede Person</0> – Jede Person kann auf das Dokument zugreifen und es ansehen"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
|
||||
@@ -624,7 +624,7 @@ msgstr "<0>Authentifizierungsmethode erben</0> - Verwenden Sie die in den \"Allg
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
|
||||
msgstr ""
|
||||
msgstr "<0>Manager und höher</0> – Nur Manager und Personen darüber können auf das Dokument zugreifen und es ansehen."
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "<0>No restrictions</0> - No authentication required"
|
||||
@@ -981,11 +981,11 @@ msgstr "Konto aktiviert"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Account link declined"
|
||||
msgstr ""
|
||||
msgstr "Kontoverknüpfung abgelehnt"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Account linked successfully"
|
||||
msgstr ""
|
||||
msgstr "Konto erfolgreich verknüpft"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Account Linking Request"
|
||||
@@ -1047,7 +1047,7 @@ msgstr "Aktiv"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
msgstr "Aktiv"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
@@ -1144,7 +1144,7 @@ msgstr "E-Mail-Domain hinzufügen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Add fields"
|
||||
msgstr ""
|
||||
msgstr "Felder hinzufügen"
|
||||
|
||||
#: apps/remix/app/components/general/document/document-edit-form.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
@@ -1212,7 +1212,7 @@ msgstr "Platzhalter hinzufügen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
msgstr ""
|
||||
msgstr "Empfänger hinzufügen"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "Add Recipients"
|
||||
@@ -1316,11 +1316,11 @@ msgstr "Nach der Übermittlung wird ein Dokument automatisch generiert und zu Ih
|
||||
|
||||
#: apps/remix/app/components/forms/document-preferences-form.tsx
|
||||
msgid "AI Features"
|
||||
msgstr ""
|
||||
msgstr "KI‑Funktionen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
|
||||
msgstr ""
|
||||
msgstr "KI-Funktionen sind für Ihr Team deaktiviert. Bitte bitten Sie den Teambesitzer oder den Organisationsbesitzer, sie zu aktivieren."
|
||||
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
|
||||
@@ -1418,7 +1418,7 @@ msgstr "Erlaubt die Authentifizierung mit biometrischen Daten, Passwort-Managern
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Almost done"
|
||||
msgstr ""
|
||||
msgstr "Fast fertig"
|
||||
|
||||
#: apps/remix/app/components/forms/signup.tsx
|
||||
msgid "Already have an account? <0>Sign in instead</0>"
|
||||
@@ -1512,7 +1512,7 @@ msgstr "Beim automatischen Signieren des Dokuments ist ein Fehler aufgetreten, e
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
|
||||
msgid "An error occurred while completing the document. Please try again."
|
||||
msgstr ""
|
||||
msgstr "Beim Abschließen des Dokuments ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
|
||||
msgid "An error occurred while creating document from template."
|
||||
@@ -1560,7 +1560,7 @@ msgstr "Ein Fehler ist aufgetreten, während die Vorlage verschoben wurde."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
msgid "An error occurred while rejecting the document. Please try again."
|
||||
msgstr ""
|
||||
msgstr "Beim Ablehnen des Dokuments ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
|
||||
@@ -1726,11 +1726,11 @@ msgstr "Ein unbekannter Fehler ist beim Verschieben des Ordners aufgetreten."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Analyzing page layout"
|
||||
msgstr ""
|
||||
msgstr "Seitenlayout wird analysiert"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Analyzing pages"
|
||||
msgstr ""
|
||||
msgstr "Seiten werden analysiert"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/inbox.tsx
|
||||
msgid "Any documents that you have been invited to will appear here"
|
||||
@@ -2301,7 +2301,7 @@ msgstr "Kontrollkästchen"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-content.tsx
|
||||
msgid "Checkbox option"
|
||||
msgstr ""
|
||||
msgstr "Checkbox-Option"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "Checkbox Settings"
|
||||
@@ -2624,7 +2624,7 @@ msgstr "Inhalt"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Context"
|
||||
msgstr ""
|
||||
msgstr "Kontext"
|
||||
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
@@ -2707,13 +2707,13 @@ msgstr "Kopiert"
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
#: packages/ui/primitives/template-flow/add-template-fields.tsx
|
||||
msgid "Copied field"
|
||||
msgstr ""
|
||||
msgstr "Kopiertes Feld"
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
#: packages/ui/primitives/template-flow/add-template-fields.tsx
|
||||
msgid "Copied field to clipboard"
|
||||
msgstr ""
|
||||
msgstr "Feld in die Zwischenablage kopiert"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
|
||||
@@ -3060,7 +3060,7 @@ msgstr "Datumseinstellungen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "David is the Employee, Lucas is the Manager"
|
||||
msgstr ""
|
||||
msgstr "David ist der Mitarbeiter, Lucas ist der Manager"
|
||||
|
||||
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
@@ -3274,48 +3274,48 @@ msgstr "Einzelheiten"
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detect"
|
||||
msgstr ""
|
||||
msgstr "Erkennen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Detect fields"
|
||||
msgstr ""
|
||||
msgstr "Felder erkennen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detect recipients"
|
||||
msgstr ""
|
||||
msgstr "Empfänger erkennen"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "Detect recipients with AI"
|
||||
msgstr ""
|
||||
msgstr "Empfänger mit KI erkennen"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "Detect with AI"
|
||||
msgstr ""
|
||||
msgstr "Mit KI erkennen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Detected fields"
|
||||
msgstr ""
|
||||
msgstr "Erkannte Felder"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detected recipients"
|
||||
msgstr ""
|
||||
msgstr "Erkannte Empfänger"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Detecting fields"
|
||||
msgstr ""
|
||||
msgstr "Felder werden erkannt"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detecting recipients"
|
||||
msgstr ""
|
||||
msgstr "Empfänger werden erkannt"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Detecting signature areas"
|
||||
msgstr ""
|
||||
msgstr "Signaturbereiche werden erkannt"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detection failed"
|
||||
msgstr ""
|
||||
msgstr "Erkennung fehlgeschlagen"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "Developer Mode"
|
||||
@@ -3329,7 +3329,7 @@ msgstr "Gerät"
|
||||
|
||||
#: packages/email/templates/reset-password.tsx
|
||||
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
|
||||
msgstr ""
|
||||
msgstr "Du hast keine Passwortänderung angefordert? Wir helfen dir, dein Konto zu sichern, kontaktiere uns einfach <0>hier</0>."
|
||||
|
||||
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
@@ -3873,7 +3873,7 @@ msgstr "Haben Sie kein Konto? <0>Registrieren</0>"
|
||||
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
|
||||
msgid "Don't transfer (Delete all documents)"
|
||||
msgstr ""
|
||||
msgstr "Nicht übertragen (alle Dokumente löschen)"
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
|
||||
@@ -4231,16 +4231,16 @@ msgstr "Konto Aktivieren"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "Enable AI detection"
|
||||
msgstr ""
|
||||
msgstr "KI-Erkennung aktivieren"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "Enable AI features"
|
||||
msgstr ""
|
||||
msgstr "KI-Funktionen aktivieren"
|
||||
|
||||
#: apps/remix/app/components/forms/document-preferences-form.tsx
|
||||
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
|
||||
msgstr ""
|
||||
msgstr "Aktivieren Sie KI‑gestützte Funktionen wie die automatische Empfängererkennung. Wenn diese Option aktiviert ist, werden die Dokumentinhalte an KI‑Anbieter gesendet. Wir verwenden nur Anbieter, die Daten nicht zu Trainingszwecken speichern, und bevorzugen – sofern verfügbar – Standorte in Europa."
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
|
||||
msgid "Enable Authenticator App"
|
||||
@@ -4476,11 +4476,11 @@ msgstr "Fehler"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Error declining account link"
|
||||
msgstr ""
|
||||
msgstr "Fehler beim Ablehnen der Kontoverknüpfung"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Error linking account"
|
||||
msgstr ""
|
||||
msgstr "Fehler beim Verknüpfen des Kontos"
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
|
||||
msgid "Error uploading file"
|
||||
@@ -4538,7 +4538,7 @@ msgstr "Externe ID"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Extracting contact details"
|
||||
msgstr ""
|
||||
msgstr "Kontaktdaten werden extrahiert"
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
|
||||
@@ -4547,7 +4547,7 @@ msgstr "Fehlgeschlagen"
|
||||
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
msgid "Failed to complete the document. Please try again."
|
||||
msgstr ""
|
||||
msgstr "Das Dokument konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut."
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Failed to create folder"
|
||||
@@ -4619,7 +4619,7 @@ msgstr "Webhook konnte nicht aktualisiert werden"
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Failed to upload CSV. Please check the file format and try again."
|
||||
msgstr ""
|
||||
msgstr "CSV konnte nicht hochgeladen werden. Bitte überprüfen Sie das Dateiformat und versuchen Sie es erneut."
|
||||
|
||||
#: packages/email/templates/bulk-send-complete.tsx
|
||||
msgid "Failed: {failedCount}"
|
||||
@@ -4779,13 +4779,13 @@ msgstr "Hast du dein Passwort vergessen?"
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
msgctxt "Plan price"
|
||||
msgid "Free"
|
||||
msgstr ""
|
||||
msgstr "Kostenlos"
|
||||
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Free"
|
||||
msgstr ""
|
||||
msgstr "Kostenlos"
|
||||
|
||||
#: packages/lib/utils/fields.ts
|
||||
#: packages/ui/primitives/document-flow/types.ts
|
||||
@@ -4878,15 +4878,15 @@ msgstr "Zum Dokument gehen"
|
||||
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "Go to first page"
|
||||
msgstr ""
|
||||
msgstr "Zur ersten Seite gehen"
|
||||
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "Go to last page"
|
||||
msgstr ""
|
||||
msgstr "Zur letzten Seite gehen"
|
||||
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "Go to next page"
|
||||
msgstr ""
|
||||
msgstr "Zur nächsten Seite gehen"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Go to owner"
|
||||
@@ -4894,7 +4894,7 @@ msgstr "Zum Eigentümer gehen"
|
||||
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "Go to previous page"
|
||||
msgstr ""
|
||||
msgstr "Zur vorherigen Seite gehen"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
msgid "Go to team"
|
||||
@@ -4953,7 +4953,7 @@ msgstr "Hilfe beim Abschließen des Dokuments für andere Unterzeichner."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Help the AI assign fields to the right recipients."
|
||||
msgstr ""
|
||||
msgstr "Helfen Sie der KI, die Felder den richtigen Empfängern zuzuordnen."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
|
||||
msgid "Here you can add email domains to your organisation."
|
||||
@@ -4977,7 +4977,7 @@ msgstr "Hier können Sie Branding-Präferenzen für Ihre Organisation festlegen.
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
|
||||
msgid "Here you can set branding preferences for your team."
|
||||
msgstr ""
|
||||
msgstr "Hier kannst du die Branding-Einstellungen für dein Team festlegen."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
|
||||
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
|
||||
@@ -4993,11 +4993,11 @@ msgstr "Hier können Sie Präferenzen und Voreinstellungen für Ihr Team festleg
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
|
||||
msgid "Here you can set your general branding preferences."
|
||||
msgstr ""
|
||||
msgstr "Hier kannst du deine allgemeinen Branding-Einstellungen festlegen."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
|
||||
msgid "Here you can set your general document preferences."
|
||||
msgstr ""
|
||||
msgstr "Hier kannst du deine allgemeinen Dokumenteinstellungen festlegen."
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Here's how it works:"
|
||||
@@ -5090,11 +5090,11 @@ msgstr "ID in die Zwischenablage kopiert"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Identifying input fields"
|
||||
msgstr ""
|
||||
msgstr "Eingabefelder werden identifiziert"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Identifying recipients"
|
||||
msgstr ""
|
||||
msgstr "Empfänger werden identifiziert"
|
||||
|
||||
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
|
||||
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
|
||||
@@ -5123,7 +5123,7 @@ msgstr "Wichtig: Was dies bedeutet"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
msgstr "Inaktiv"
|
||||
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
@@ -5547,11 +5547,11 @@ msgstr "Protokolle"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Looking for form fields"
|
||||
msgstr ""
|
||||
msgstr "Formularfelder werden gesucht"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Looking for signature fields"
|
||||
msgstr ""
|
||||
msgstr "Signaturfelder werden gesucht"
|
||||
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -5706,7 +5706,7 @@ msgstr "Manager und höher"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Mapping fields to recipients"
|
||||
msgstr ""
|
||||
msgstr "Felder werden Empfängern zugeordnet"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
|
||||
msgid "Mark as viewed"
|
||||
@@ -5975,11 +5975,11 @@ msgstr "Keine Dokumente gefunden"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr ""
|
||||
msgstr "Keine E‑Mail erkannt"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "No fields were detected in your document."
|
||||
msgstr ""
|
||||
msgstr "In Ihrem Dokument wurden keine Felder erkannt."
|
||||
|
||||
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
@@ -6027,7 +6027,7 @@ msgstr "Keine Empfänger"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No recipients were detected in your document."
|
||||
msgstr ""
|
||||
msgstr "In Ihrem Dokument wurden keine Empfänger erkannt."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
|
||||
#: packages/ui/primitives/recipient-selector.tsx
|
||||
@@ -6168,7 +6168,7 @@ msgstr "Sobald Sie den QR-Code gescannt oder den Code manuell eingegeben haben,
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
|
||||
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
|
||||
msgstr ""
|
||||
msgstr "Nachdem du deine DNS-Einträge aktualisiert hast, kann es bis zu 48 Stunden dauern, bis sie verbreitet sind. Sobald die DNS-Propagation abgeschlossen ist, musst du zurückkehren und die Schaltfläche \"Domains synchronisieren\" drücken."
|
||||
|
||||
#: packages/lib/constants/template.ts
|
||||
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."
|
||||
@@ -6204,7 +6204,7 @@ msgstr "Hoppla! Etwas ist schief gelaufen."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
msgid "Open menu"
|
||||
msgstr ""
|
||||
msgstr "Menü öffnen"
|
||||
|
||||
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
|
||||
msgid "Opened"
|
||||
@@ -6408,7 +6408,7 @@ msgstr "Seite {0} von {numPages}"
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Paid"
|
||||
msgstr ""
|
||||
msgstr "Bezahlt"
|
||||
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
|
||||
@@ -6490,7 +6490,7 @@ msgstr "Passwort aktualisiert!"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Past Due"
|
||||
msgstr ""
|
||||
msgstr "Überfällig"
|
||||
|
||||
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
|
||||
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
|
||||
@@ -6925,7 +6925,7 @@ msgstr "Lesen Sie die vollständige <0>Offenlegung der Unterschrift</0>."
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Reading your document"
|
||||
msgstr ""
|
||||
msgstr "Ihr Dokument wird gelesen"
|
||||
|
||||
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
|
||||
msgid "Ready"
|
||||
@@ -6988,7 +6988,7 @@ msgstr "Empfänger"
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
|
||||
msgid "Recipient {0}"
|
||||
msgstr ""
|
||||
msgstr "Empfänger {0}"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
|
||||
@@ -7170,7 +7170,7 @@ msgstr "Organisationsmitglied entfernen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr ""
|
||||
msgstr "Empfänger entfernen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
|
||||
msgid "Remove team email"
|
||||
@@ -7195,7 +7195,7 @@ msgstr "Auf E-Mail antworten"
|
||||
#: packages/ui/primitives/document-flow/add-subject.tsx
|
||||
#: packages/ui/primitives/template-flow/add-template-settings.tsx
|
||||
msgid "Reply To Email <0>(Optional)</0>"
|
||||
msgstr ""
|
||||
msgstr "Antwort an E-Mail-Adresse <0>(Optional)</0>"
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Request"
|
||||
@@ -8120,7 +8120,7 @@ msgstr "Website Einstellungen"
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Skip"
|
||||
msgstr ""
|
||||
msgstr "Überspringen"
|
||||
|
||||
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
|
||||
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
|
||||
@@ -8182,11 +8182,11 @@ msgstr "Etwas ist schiefgelaufen beim Versuch, Ihre E-Mail-Adresse für <0>{0}</
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Something went wrong while detecting fields."
|
||||
msgstr ""
|
||||
msgstr "Bei der Felderkennung ist ein Fehler aufgetreten."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Something went wrong while detecting recipients."
|
||||
msgstr ""
|
||||
msgstr "Bei der Empfängererkennung ist ein Fehler aufgetreten."
|
||||
|
||||
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
|
||||
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
|
||||
@@ -8808,7 +8808,7 @@ msgstr "Der Anzeigename für diese E-Mail-Adresse"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
|
||||
msgid "The Document has been deleted successfully."
|
||||
msgstr ""
|
||||
msgstr "Das Dokument wurde erfolgreich gelöscht."
|
||||
|
||||
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
|
||||
msgid "The document has been moved successfully."
|
||||
@@ -8816,7 +8816,7 @@ msgstr "Das Dokument wurde erfolgreich verschoben."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
msgid "The document has been successfully rejected."
|
||||
msgstr ""
|
||||
msgstr "Das Dokument wurde erfolgreich abgelehnt."
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
|
||||
msgid "The document is already saved and cannot be changed."
|
||||
@@ -8870,7 +8870,7 @@ msgstr "Die gesuchte E-Mail-Domäne wurde möglicherweise entfernt, umbenannt od
|
||||
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "The email or password provided is incorrect."
|
||||
msgstr ""
|
||||
msgstr "Die angegebene E-Mail-Adresse oder das Passwort ist falsch."
|
||||
|
||||
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
|
||||
@@ -8903,7 +8903,7 @@ msgstr "Die folgenden Fehler sind aufgetreten:"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
|
||||
msgid "The following recipients require an email address:"
|
||||
msgstr ""
|
||||
msgstr "Für die folgenden Empfänger wird eine E‑Mail‑Adresse benötigt:"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
|
||||
msgid "The following signers are missing signature fields:"
|
||||
@@ -9069,7 +9069,7 @@ msgstr "Der Token, den Sie zur Zurücksetzung Ihres Passworts verwendet haben, i
|
||||
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "The two-factor authentication code provided is incorrect."
|
||||
msgstr ""
|
||||
msgstr "Der angegebene Zwei-Faktor-Authentifizierungscode ist falsch."
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
|
||||
msgid "The typed signature font size"
|
||||
@@ -9094,7 +9094,7 @@ msgstr "Die Zwei-Faktor-Authentifizierung des Nutzers wurde erfolgreich zurückg
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "The visibility of the document to the recipient."
|
||||
msgstr ""
|
||||
msgstr "Die Sichtbarkeit des Dokuments für den Empfänger."
|
||||
|
||||
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
|
||||
msgid "The webhook has been successfully deleted."
|
||||
@@ -9165,7 +9165,7 @@ msgstr "Diese Aktion ist umkehrbar, jedoch bitte seien Sie vorsichtig, da das Ko
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "This can take a minute or two depending on the size of your document."
|
||||
msgstr ""
|
||||
msgstr "Je nach Größe Ihres Dokuments kann dies ein bis zwei Minuten dauern."
|
||||
|
||||
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
|
||||
msgid "This claim is locked and cannot be deleted."
|
||||
@@ -9240,7 +9240,7 @@ msgstr "Dieses Dokument wurde mit einem direkten Link erstellt."
|
||||
|
||||
#: packages/email/template-components/template-footer.tsx
|
||||
msgid "This document was sent using <0>Documenso</0>."
|
||||
msgstr ""
|
||||
msgstr "Dieses Dokument wurde mit <0>Documenso</0> versendet."
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
|
||||
msgid "This document will be duplicated."
|
||||
@@ -9545,7 +9545,7 @@ msgstr "Token-Name"
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Too many requests"
|
||||
msgstr ""
|
||||
msgstr "Zu viele Anfragen"
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
msgid "Top"
|
||||
@@ -9573,7 +9573,7 @@ msgstr "Gesamtanzahl der Benutzer"
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
|
||||
msgid "Transfer documents to a different team"
|
||||
msgstr ""
|
||||
msgstr "Dokumente auf ein anderes Team übertragen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
|
||||
@@ -9585,11 +9585,11 @@ msgstr "Auslöser"
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Try again"
|
||||
msgstr ""
|
||||
msgstr "Erneut versuchen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
|
||||
msgstr ""
|
||||
msgstr "Aktivieren Sie die KI-Erkennung, um automatisch Empfänger und Felder in Ihren Dokumenten zu finden. KI-Anbieter behalten Ihre Daten nicht für Trainingszwecke."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
|
||||
msgid "Two factor authentication"
|
||||
@@ -9739,7 +9739,7 @@ msgstr "Unvollendet"
|
||||
|
||||
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
|
||||
msgid "Undo"
|
||||
msgstr ""
|
||||
msgstr "Rückgängig"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
@@ -9759,7 +9759,7 @@ msgstr "Unbekannter Fehler"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Unknown name"
|
||||
msgstr ""
|
||||
msgstr "Unbekannter Name"
|
||||
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
msgid "Unlimited"
|
||||
@@ -10354,7 +10354,7 @@ msgstr "Warten auf deine Reihe"
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
|
||||
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
|
||||
msgstr ""
|
||||
msgstr "Möchtest du schicke Signatur-Links wie diesen versenden? <0>Sieh dir Documenso an</0>."
|
||||
|
||||
#: apps/remix/app/routes/_profile+/_layout.tsx
|
||||
msgid "Want your own public profile?"
|
||||
@@ -10391,7 +10391,7 @@ msgstr "Wir konnten keinen Stripe-Kunden erstellen. Bitte versuchen Sie es erneu
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "We couldn't enable AI features right now. Please try again."
|
||||
msgstr ""
|
||||
msgstr "Wir konnten die KI-Funktionen gerade nicht aktivieren. Bitte versuchen Sie es erneut."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "We couldn't update the group. Please try again."
|
||||
@@ -10476,7 +10476,7 @@ msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht h
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
|
||||
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
|
||||
msgstr ""
|
||||
msgstr "Beim Versuch, Ihr Dokument zu löschen, ist ein unbekannter Fehler aufgetreten. Bitte versuchen Sie es später erneut."
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
|
||||
msgid "We encountered an unknown error while attempting to disable access."
|
||||
@@ -10686,11 +10686,11 @@ msgstr "Wir werden uns so schnell wie möglich per E-Mail bei Ihnen melden."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
|
||||
msgstr ""
|
||||
msgstr "Wir scannen Ihr Dokument, um Formularfelder wie Signaturzeilen, Texteingaben, Kontrollkästchen und mehr zu finden. Erkannte Felder werden Ihnen zur Überprüfung vorgeschlagen."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
|
||||
msgstr ""
|
||||
msgstr "Wir scannen Ihr Dokument, um Signaturfelder zu finden und zu ermitteln, wer unterschreiben muss. Erkannte Empfänger werden Ihnen zur Überprüfung vorgeschlagen."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
|
||||
msgid "We'll send a 6-digit code to your email"
|
||||
@@ -10955,12 +10955,12 @@ msgstr "Sie aktualisieren derzeit <0>{0}</0>"
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
|
||||
msgid "You are currently updating <0>{memberName}</0>."
|
||||
msgstr ""
|
||||
msgstr "Du bearbeitest aktuell <0>{memberName}</0>."
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
|
||||
msgid "You are currently updating <0>{organisationMemberName}</0>."
|
||||
msgstr ""
|
||||
msgstr "Du bearbeitest aktuell <0>{organisationMemberName}</0>."
|
||||
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
|
||||
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
|
||||
@@ -10997,11 +10997,11 @@ msgstr "Sie sind nicht berechtigt, die Zwei-Faktor-Authentifizierung für diesen
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "You can add fields manually in the editor."
|
||||
msgstr ""
|
||||
msgstr "Sie können im Editor manuell Felder hinzufügen."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "You can add recipients manually in the editor."
|
||||
msgstr ""
|
||||
msgstr "Sie können im Editor manuell Empfänger hinzufügen."
|
||||
|
||||
#: packages/email/template-components/template-confirmation-email.tsx
|
||||
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
|
||||
@@ -11022,15 +11022,15 @@ msgstr "Sie können den Zugriff so aktivieren, dass alle Organisationsmitglieder
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
|
||||
msgid "You can manage your email preferences here."
|
||||
msgstr ""
|
||||
msgstr "Du kannst deine E-Mail-Einstellungen hier verwalten."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "You can only detect fields in draft envelopes"
|
||||
msgstr ""
|
||||
msgstr "Sie können Felder nur in Entwürfen von Umschlägen erkennen."
|
||||
|
||||
#: packages/email/templates/confirm-team-email.tsx
|
||||
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
|
||||
msgstr ""
|
||||
msgstr "Sie können den Zugriff jederzeit in Ihren Teameinstellungen auf Documenso <0>hier</0> widerrufen."
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "You can update the profile URL by updating the team URL in the general settings page."
|
||||
@@ -11064,7 +11064,7 @@ msgstr "Sie können keine Gruppe löschen, die eine höhere Rolle hat als Sie."
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
msgid "You cannot delete this item because the document has been sent to recipients."
|
||||
msgstr ""
|
||||
msgstr "Du kannst dieses Element nicht löschen, weil das Dokument bereits an Empfänger gesendet wurde."
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
|
||||
msgid "You cannot modify a group which has a higher role than you."
|
||||
@@ -11091,7 +11091,7 @@ msgstr "Sie können derzeit keine Dokumente hochladen."
|
||||
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
|
||||
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
|
||||
msgid "You cannot upload encrypted PDFs."
|
||||
msgstr ""
|
||||
msgstr "Du kannst keine verschlüsselten PDFs hochladen."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
|
||||
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
|
||||
@@ -11103,7 +11103,7 @@ msgstr "Derzeit haben Sie keinen Zugriff auf Teams in dieser Organisation. Bitte
|
||||
|
||||
#: apps/remix/app/components/forms/token.tsx
|
||||
msgid "You do not have permission to create a token for this team."
|
||||
msgstr ""
|
||||
msgstr "Sie haben keine Berechtigung, ein Token für dieses Team zu erstellen."
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "You don't manage billing for any organisations."
|
||||
@@ -11173,7 +11173,7 @@ msgstr "Sie haben noch keine Dokumente erstellt oder erhalten. Bitte laden Sie e
|
||||
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
|
||||
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
|
||||
msgid "You have reached the limit of the number of files per envelope."
|
||||
msgstr ""
|
||||
msgstr "Sie haben die maximale Anzahl von Dateien pro Umschlag erreicht."
|
||||
|
||||
#. placeholder {0}: quota.directTemplates
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
@@ -11330,12 +11330,12 @@ msgstr "Sie erhalten eine Kopie des unterschriebenen Dokuments per E-Mail, sobal
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
|
||||
msgstr ""
|
||||
msgstr "Sie sind Administrator. Sie können die KI-Funktionen für dieses Team sofort aktivieren. Alle im Team sehen die KI-Erkennung, sobald sie aktiviert ist."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "You've made too many detection requests. Please wait a minute before trying again."
|
||||
msgstr ""
|
||||
msgstr "Sie haben zu viele Erkennungsanfragen gestellt. Bitte warten Sie eine Minute, bevor Sie es erneut versuchen."
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Your Account"
|
||||
@@ -11392,7 +11392,7 @@ msgstr "Ihre direkten Unterzeichnungsvorlagen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
|
||||
msgstr ""
|
||||
msgstr "Der Inhalt Ihres Dokuments wird ausschließlich zum Zweck der Erkennung sicher an unseren KI-Anbieter gesendet und weder gespeichert noch für Trainingszwecke verwendet."
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
|
||||
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
|
||||
@@ -11436,7 +11436,7 @@ msgstr "Ihr Dokument wurde erfolgreich hochgeladen. Sie werden zur Vorlagenseite
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Your document is processed securely using AI services that don't retain your data."
|
||||
msgstr ""
|
||||
msgstr "Ihr Dokument wird sicher mit KI‑Diensten verarbeitet, die Ihre Daten nicht speichern."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
|
||||
@@ -11621,3 +11621,4 @@ msgstr "Ihr Verifizierungscode:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "your-domain.com another-domain.com"
|
||||
|
||||
|
||||
+123
-122
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: es\n"
|
||||
"Project-Id-Version: documenso-app\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2025-11-27 05:32\n"
|
||||
"PO-Revision-Date: 2025-12-15 02:39\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {(1 carácter excedido)} other {(# caracteres excedidos)
|
||||
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {{1} de # fila seleccionada.} other {{2} de # filas seleccionadas.}}"
|
||||
|
||||
#. placeholder {0}: Math.abs(remaningLength)
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# carpeta} other {# carpetas}}"
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Se ha añadido # destinatario a partir de la detección por IA.} other {Se han añadido # destinatarios a partir de la detección por IA.}}"
|
||||
|
||||
#. placeholder {0}: template.recipients.length
|
||||
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
|
||||
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 Destinatario} other {# Destinatarios}}"
|
||||
#. placeholder {4}: progress.totalPages
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Página {1} de {2} - se ha encontrado # campo} other {Página {3} de {4} - se han encontrado # campos}}"
|
||||
|
||||
#. placeholder {0}: progress.recipientsDetected
|
||||
#. placeholder {1}: progress.pagesProcessed
|
||||
@@ -172,12 +172,12 @@ msgstr ""
|
||||
#. placeholder {4}: progress.totalPages
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Página {1} de {2} - se ha encontrado # destinatario} other {Página {3} de {4} - se han encontrado # destinatarios}}"
|
||||
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Destinatario añadido} other {Destinatarios añadidos}}"
|
||||
|
||||
#. placeholder {0}: pendingRecipients.length
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
|
||||
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {Esperando 1 destinatario} other {Esperando # destinatar
|
||||
#. placeholder {0}: detectedFields.length
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Hemos encontrado # campo en tu documento.} other {Hemos encontrado # campos en tu documento.}}"
|
||||
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Hemos encontrado # destinatario en tu documento.} other {Hemos encontrado # destinatarios en tu documento.}}"
|
||||
|
||||
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
|
||||
#. placeholder {0}: route.label
|
||||
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {No puedes tener más de # clave de acces
|
||||
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
|
||||
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
|
||||
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
|
||||
msgstr ""
|
||||
msgstr "{maximumEnvelopeItemCount, plural, one {No puedes subir más de # elemento por sobre.} other {No puedes subir más de # elementos por sobre.}}"
|
||||
|
||||
#: packages/lib/utils/document-audit-logs.ts
|
||||
msgid "{prefix} added a field"
|
||||
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> ha solicitado vincular tu cuenta actual de Doc
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> te ha invitado a aprobar este documento"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> te ha invitado a asistir en este documento"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> te ha invitado a firmar este documento"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> te ha invitado a ver este documento"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0>, en nombre de \"{0}\", te ha invitado a aprobar este documento"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0>, en nombre de \"{0}\", te ha invitado a asistir en este documento"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0>, en nombre de \"{0}\", te ha invitado a firmar este documento"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0>, en nombre de \"{0}\", te ha invitado a ver este documento"
|
||||
|
||||
#: packages/email/templates/confirm-team-email.tsx
|
||||
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
|
||||
@@ -591,7 +591,7 @@ msgstr "<0>Administración de cuenta:</0> Modifica la configuración, permisos y
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "<0>Admins only</0> - Only admins can access and view the document"
|
||||
msgstr ""
|
||||
msgstr "<0>Solo administradores</0> - Solo los administradores pueden acceder y ver el documento"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "<0>Data access:</0> Access all data associated with your account"
|
||||
@@ -612,7 +612,7 @@ msgstr "<0>Eventos:</0> Todos"
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "<0>Everyone</0> - Everyone can access and view the document"
|
||||
msgstr ""
|
||||
msgstr "<0>Todos</0> - Todos pueden acceder y ver el documento"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
|
||||
@@ -624,7 +624,7 @@ msgstr "<0>Heredar método de autenticación</0> - Use el método de autenticaci
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
|
||||
msgstr ""
|
||||
msgstr "<0>Gerentes y superiores</0> - Solo los gerentes y superiores pueden acceder y ver el documento"
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "<0>No restrictions</0> - No authentication required"
|
||||
@@ -981,11 +981,11 @@ msgstr "Cuenta habilitada"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Account link declined"
|
||||
msgstr ""
|
||||
msgstr "Enlace de cuenta rechazado"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Account linked successfully"
|
||||
msgstr ""
|
||||
msgstr "Cuenta vinculada correctamente"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Account Linking Request"
|
||||
@@ -1047,7 +1047,7 @@ msgstr "Activo"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
msgstr "Activa"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
@@ -1144,7 +1144,7 @@ msgstr "Agregar dominio de correo electrónico"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Add fields"
|
||||
msgstr ""
|
||||
msgstr "Agregar campos"
|
||||
|
||||
#: apps/remix/app/components/general/document/document-edit-form.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
@@ -1212,7 +1212,7 @@ msgstr "Agregar Marcadores de posición"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
msgstr ""
|
||||
msgstr "Agregar destinatarios"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "Add Recipients"
|
||||
@@ -1316,11 +1316,11 @@ msgstr "Después de la presentación, se generará automáticamente un documento
|
||||
|
||||
#: apps/remix/app/components/forms/document-preferences-form.tsx
|
||||
msgid "AI Features"
|
||||
msgstr ""
|
||||
msgstr "Funciones de IA"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
|
||||
msgstr ""
|
||||
msgstr "Las funciones de IA están desactivadas para tu equipo. Pide a la persona propietaria del equipo u organización que las habilite."
|
||||
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
|
||||
@@ -1418,7 +1418,7 @@ msgstr "Permite autenticarse usando biometría, administradores de contraseñas,
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Almost done"
|
||||
msgstr ""
|
||||
msgstr "Casi listo"
|
||||
|
||||
#: apps/remix/app/components/forms/signup.tsx
|
||||
msgid "Already have an account? <0>Sign in instead</0>"
|
||||
@@ -1512,7 +1512,7 @@ msgstr "Se produjo un error al firmar automáticamente el documento, es posible
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
|
||||
msgid "An error occurred while completing the document. Please try again."
|
||||
msgstr ""
|
||||
msgstr "Se produjo un error al completar el documento. Inténtalo de nuevo."
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
|
||||
msgid "An error occurred while creating document from template."
|
||||
@@ -1560,7 +1560,7 @@ msgstr "Ocurrió un error al mover la plantilla."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
msgid "An error occurred while rejecting the document. Please try again."
|
||||
msgstr ""
|
||||
msgstr "Se produjo un error al rechazar el documento. Inténtalo de nuevo."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
|
||||
@@ -1726,11 +1726,11 @@ msgstr "Se produjo un error desconocido al mover la carpeta."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Analyzing page layout"
|
||||
msgstr ""
|
||||
msgstr "Analizando el diseño de la página"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Analyzing pages"
|
||||
msgstr ""
|
||||
msgstr "Analizando las páginas"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/inbox.tsx
|
||||
msgid "Any documents that you have been invited to will appear here"
|
||||
@@ -2301,7 +2301,7 @@ msgstr "Casilla de verificación"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-content.tsx
|
||||
msgid "Checkbox option"
|
||||
msgstr ""
|
||||
msgstr "Opción de casilla de verificación"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "Checkbox Settings"
|
||||
@@ -2624,7 +2624,7 @@ msgstr "Contenido"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Context"
|
||||
msgstr ""
|
||||
msgstr "Contexto"
|
||||
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
@@ -2707,13 +2707,13 @@ msgstr "Copiado"
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
#: packages/ui/primitives/template-flow/add-template-fields.tsx
|
||||
msgid "Copied field"
|
||||
msgstr ""
|
||||
msgstr "Campo copiado"
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
#: packages/ui/primitives/template-flow/add-template-fields.tsx
|
||||
msgid "Copied field to clipboard"
|
||||
msgstr ""
|
||||
msgstr "Campo copiado al portapapeles"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
|
||||
@@ -3060,7 +3060,7 @@ msgstr "Configuración de Fecha"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "David is the Employee, Lucas is the Manager"
|
||||
msgstr ""
|
||||
msgstr "David es el empleado, Lucas es el gerente"
|
||||
|
||||
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
@@ -3274,48 +3274,48 @@ msgstr "Detalles"
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detect"
|
||||
msgstr ""
|
||||
msgstr "Detectar"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Detect fields"
|
||||
msgstr ""
|
||||
msgstr "Detectar campos"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detect recipients"
|
||||
msgstr ""
|
||||
msgstr "Detectar destinatarios"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "Detect recipients with AI"
|
||||
msgstr ""
|
||||
msgstr "Detectar destinatarios con IA"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "Detect with AI"
|
||||
msgstr ""
|
||||
msgstr "Detectar con IA"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Detected fields"
|
||||
msgstr ""
|
||||
msgstr "Campos detectados"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detected recipients"
|
||||
msgstr ""
|
||||
msgstr "Destinatarios detectados"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Detecting fields"
|
||||
msgstr ""
|
||||
msgstr "Detectando campos"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detecting recipients"
|
||||
msgstr ""
|
||||
msgstr "Detectando destinatarios"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Detecting signature areas"
|
||||
msgstr ""
|
||||
msgstr "Detectando áreas de firma"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Detection failed"
|
||||
msgstr ""
|
||||
msgstr "La detección ha fallado"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "Developer Mode"
|
||||
@@ -3329,7 +3329,7 @@ msgstr "Dispositivo"
|
||||
|
||||
#: packages/email/templates/reset-password.tsx
|
||||
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
|
||||
msgstr ""
|
||||
msgstr "¿No solicitaste un cambio de contraseña? Estamos aquí para ayudarte a asegurar tu cuenta, solo <0>contáctanos</0>."
|
||||
|
||||
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
@@ -3873,7 +3873,7 @@ msgstr "¿No tienes una cuenta? <0>Regístrate</0>"
|
||||
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
|
||||
msgid "Don't transfer (Delete all documents)"
|
||||
msgstr ""
|
||||
msgstr "No transferir (Eliminar todos los documentos)"
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
|
||||
@@ -4231,16 +4231,16 @@ msgstr "Habilitar Cuenta"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "Enable AI detection"
|
||||
msgstr ""
|
||||
msgstr "Habilitar detección por IA"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "Enable AI features"
|
||||
msgstr ""
|
||||
msgstr "Habilitar funciones de IA"
|
||||
|
||||
#: apps/remix/app/components/forms/document-preferences-form.tsx
|
||||
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
|
||||
msgstr ""
|
||||
msgstr "Activa las funciones impulsadas por IA, como la detección automática de destinatarios. Cuando esté activado, el contenido del documento se enviará a proveedores de IA. Solo usamos proveedores que no conservan datos para entrenamiento y preferimos regiones europeas cuando sea posible."
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
|
||||
msgid "Enable Authenticator App"
|
||||
@@ -4476,11 +4476,11 @@ msgstr "Error"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Error declining account link"
|
||||
msgstr ""
|
||||
msgstr "Error al rechazar el enlace de cuenta"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Error linking account"
|
||||
msgstr ""
|
||||
msgstr "Error al vincular la cuenta"
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
|
||||
msgid "Error uploading file"
|
||||
@@ -4538,7 +4538,7 @@ msgstr "ID externo"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Extracting contact details"
|
||||
msgstr ""
|
||||
msgstr "Extrayendo datos de contacto"
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
|
||||
@@ -4547,7 +4547,7 @@ msgstr "Error"
|
||||
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
msgid "Failed to complete the document. Please try again."
|
||||
msgstr ""
|
||||
msgstr "No se pudo completar el documento. Inténtalo de nuevo."
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Failed to create folder"
|
||||
@@ -4619,7 +4619,7 @@ msgstr "Falló al actualizar el webhook"
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Failed to upload CSV. Please check the file format and try again."
|
||||
msgstr ""
|
||||
msgstr "Error al subir el CSV. Verifica el formato del archivo e inténtalo de nuevo."
|
||||
|
||||
#: packages/email/templates/bulk-send-complete.tsx
|
||||
msgid "Failed: {failedCount}"
|
||||
@@ -4779,13 +4779,13 @@ msgstr "¿Olvidaste tu contraseña?"
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
msgctxt "Plan price"
|
||||
msgid "Free"
|
||||
msgstr ""
|
||||
msgstr "Gratis"
|
||||
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Free"
|
||||
msgstr ""
|
||||
msgstr "Gratis"
|
||||
|
||||
#: packages/lib/utils/fields.ts
|
||||
#: packages/ui/primitives/document-flow/types.ts
|
||||
@@ -4878,15 +4878,15 @@ msgstr "Ir al documento"
|
||||
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "Go to first page"
|
||||
msgstr ""
|
||||
msgstr "Ir a la primera página"
|
||||
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "Go to last page"
|
||||
msgstr ""
|
||||
msgstr "Ir a la última página"
|
||||
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "Go to next page"
|
||||
msgstr ""
|
||||
msgstr "Ir a la página siguiente"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Go to owner"
|
||||
@@ -4894,7 +4894,7 @@ msgstr "Ir al propietario"
|
||||
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "Go to previous page"
|
||||
msgstr ""
|
||||
msgstr "Ir a la página anterior"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
msgid "Go to team"
|
||||
@@ -4953,7 +4953,7 @@ msgstr "Ayuda a completar el documento para otros firmantes."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Help the AI assign fields to the right recipients."
|
||||
msgstr ""
|
||||
msgstr "Ayuda a la IA a asignar los campos a los destinatarios correctos."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
|
||||
msgid "Here you can add email domains to your organisation."
|
||||
@@ -4977,7 +4977,7 @@ msgstr "Aquí puedes configurar las preferencias de marca para tu organización.
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
|
||||
msgid "Here you can set branding preferences for your team."
|
||||
msgstr ""
|
||||
msgstr "Aquí puedes configurar las preferencias de marca de tu equipo."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
|
||||
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
|
||||
@@ -4993,11 +4993,11 @@ msgstr "Aquí puedes establecer preferencias y valores predeterminados para tu e
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
|
||||
msgid "Here you can set your general branding preferences."
|
||||
msgstr ""
|
||||
msgstr "Aquí puedes configurar tus preferencias generales de marca."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
|
||||
msgid "Here you can set your general document preferences."
|
||||
msgstr ""
|
||||
msgstr "Aquí puedes configurar tus preferencias generales de documentos."
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Here's how it works:"
|
||||
@@ -5090,11 +5090,11 @@ msgstr "ID copiado al portapapeles"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Identifying input fields"
|
||||
msgstr ""
|
||||
msgstr "Identificando campos de entrada"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Identifying recipients"
|
||||
msgstr ""
|
||||
msgstr "Identificando destinatarios"
|
||||
|
||||
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
|
||||
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
|
||||
@@ -5123,7 +5123,7 @@ msgstr "Importante: Lo que esto significa"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
msgstr "Inactiva"
|
||||
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
@@ -5547,11 +5547,11 @@ msgstr "Registros"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Looking for form fields"
|
||||
msgstr ""
|
||||
msgstr "Buscando campos de formulario"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Looking for signature fields"
|
||||
msgstr ""
|
||||
msgstr "Buscando campos de firma"
|
||||
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -5706,7 +5706,7 @@ msgstr "Gerentes y superiores"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Mapping fields to recipients"
|
||||
msgstr ""
|
||||
msgstr "Asignando campos a destinatarios"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
|
||||
msgid "Mark as viewed"
|
||||
@@ -5975,11 +5975,11 @@ msgstr "No se encontraron documentos"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr ""
|
||||
msgstr "No se detectó ningún correo electrónico"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "No fields were detected in your document."
|
||||
msgstr ""
|
||||
msgstr "No se detectaron campos en tu documento."
|
||||
|
||||
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
@@ -6027,7 +6027,7 @@ msgstr "Sin destinatarios"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No recipients were detected in your document."
|
||||
msgstr ""
|
||||
msgstr "No se detectaron destinatarios en tu documento."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
|
||||
#: packages/ui/primitives/recipient-selector.tsx
|
||||
@@ -6168,7 +6168,7 @@ msgstr "Una vez que hayas escaneado el código QR o ingresado el código manualm
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
|
||||
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
|
||||
msgstr ""
|
||||
msgstr "Una vez que actualices tus registros DNS, la propagación puede tardar hasta 48 horas. Cuando la propagación del DNS se haya completado, deberás volver y presionar el botón \"Sincronizar\" dominios."
|
||||
|
||||
#: packages/lib/constants/template.ts
|
||||
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."
|
||||
@@ -6204,7 +6204,7 @@ msgstr "¡Ups! Algo salió mal."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
msgid "Open menu"
|
||||
msgstr ""
|
||||
msgstr "Abrir menú"
|
||||
|
||||
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
|
||||
msgid "Opened"
|
||||
@@ -6408,7 +6408,7 @@ msgstr "Página {0} de {numPages}"
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Paid"
|
||||
msgstr ""
|
||||
msgstr "De pago"
|
||||
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
|
||||
@@ -6490,7 +6490,7 @@ msgstr "¡Contraseña actualizada!"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgctxt "Subscription status"
|
||||
msgid "Past Due"
|
||||
msgstr ""
|
||||
msgstr "Vencida"
|
||||
|
||||
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
|
||||
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
|
||||
@@ -6925,7 +6925,7 @@ msgstr "Lea la <0>divulgación de firma</0> completa."
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Reading your document"
|
||||
msgstr ""
|
||||
msgstr "Leyendo tu documento"
|
||||
|
||||
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
|
||||
msgid "Ready"
|
||||
@@ -6988,7 +6988,7 @@ msgstr "Destinatario"
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
|
||||
msgid "Recipient {0}"
|
||||
msgstr ""
|
||||
msgstr "Destinatario {0}"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
|
||||
@@ -7170,7 +7170,7 @@ msgstr "Eliminar miembro de la organización"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr ""
|
||||
msgstr "Eliminar destinatario"
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
|
||||
msgid "Remove team email"
|
||||
@@ -7195,7 +7195,7 @@ msgstr "Responder al correo"
|
||||
#: packages/ui/primitives/document-flow/add-subject.tsx
|
||||
#: packages/ui/primitives/template-flow/add-template-settings.tsx
|
||||
msgid "Reply To Email <0>(Optional)</0>"
|
||||
msgstr ""
|
||||
msgstr "Responder al correo electrónico <0>(Opcional)</0>"
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Request"
|
||||
@@ -8120,7 +8120,7 @@ msgstr "Configuraciones del sitio"
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Skip"
|
||||
msgstr ""
|
||||
msgstr "Omitir"
|
||||
|
||||
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
|
||||
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
|
||||
@@ -8182,11 +8182,11 @@ msgstr "Algo salió mal al intentar verificar tu dirección de correo electróni
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "Something went wrong while detecting fields."
|
||||
msgstr ""
|
||||
msgstr "Algo salió mal al detectar los campos."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Something went wrong while detecting recipients."
|
||||
msgstr ""
|
||||
msgstr "Algo salió mal al detectar los destinatarios."
|
||||
|
||||
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
|
||||
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
|
||||
@@ -8808,7 +8808,7 @@ msgstr "El nombre para mostrar para esta dirección de correo electrónico"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
|
||||
msgid "The Document has been deleted successfully."
|
||||
msgstr ""
|
||||
msgstr "El documento se ha eliminado correctamente."
|
||||
|
||||
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
|
||||
msgid "The document has been moved successfully."
|
||||
@@ -8816,7 +8816,7 @@ msgstr "El documento se ha movido exitosamente."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
msgid "The document has been successfully rejected."
|
||||
msgstr ""
|
||||
msgstr "El documento se ha rechazado correctamente."
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
|
||||
msgid "The document is already saved and cannot be changed."
|
||||
@@ -8870,7 +8870,7 @@ msgstr "El dominio de correo electrónico que estás buscando puede haber sido e
|
||||
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "The email or password provided is incorrect."
|
||||
msgstr ""
|
||||
msgstr "El correo electrónico o la contraseña proporcionados son incorrectos."
|
||||
|
||||
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
|
||||
@@ -8903,7 +8903,7 @@ msgstr "Se produjeron los siguientes errores:"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
|
||||
msgid "The following recipients require an email address:"
|
||||
msgstr ""
|
||||
msgstr "Los siguientes destinatarios requieren una dirección de correo electrónico:"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
|
||||
msgid "The following signers are missing signature fields:"
|
||||
@@ -9069,7 +9069,7 @@ msgstr "El token que has utilizado para restablecer tu contraseña ha expirado o
|
||||
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "The two-factor authentication code provided is incorrect."
|
||||
msgstr ""
|
||||
msgstr "El código de autenticación de dos factores proporcionado es incorrecto."
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
|
||||
msgid "The typed signature font size"
|
||||
@@ -9094,7 +9094,7 @@ msgstr "La autenticación de dos factores del usuario se ha restablecido con éx
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "The visibility of the document to the recipient."
|
||||
msgstr ""
|
||||
msgstr "La visibilidad del documento para el destinatario."
|
||||
|
||||
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
|
||||
msgid "The webhook has been successfully deleted."
|
||||
@@ -9165,7 +9165,7 @@ msgstr "Esta acción es reversible, pero ten cuidado ya que la cuenta podría ve
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "This can take a minute or two depending on the size of your document."
|
||||
msgstr ""
|
||||
msgstr "Esto puede tardar uno o dos minutos, según el tamaño de tu documento."
|
||||
|
||||
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
|
||||
msgid "This claim is locked and cannot be deleted."
|
||||
@@ -9240,7 +9240,7 @@ msgstr "Este documento fue creado usando un enlace directo."
|
||||
|
||||
#: packages/email/template-components/template-footer.tsx
|
||||
msgid "This document was sent using <0>Documenso</0>."
|
||||
msgstr ""
|
||||
msgstr "Este documento fue enviado usando <0>Documenso</0>."
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
|
||||
msgid "This document will be duplicated."
|
||||
@@ -9545,7 +9545,7 @@ msgstr "Nombre del token"
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Too many requests"
|
||||
msgstr ""
|
||||
msgstr "Demasiadas solicitudes"
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
msgid "Top"
|
||||
@@ -9573,7 +9573,7 @@ msgstr "Total de usuarios"
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
|
||||
msgid "Transfer documents to a different team"
|
||||
msgstr ""
|
||||
msgstr "Transferir documentos a un equipo diferente"
|
||||
|
||||
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
|
||||
@@ -9585,11 +9585,11 @@ msgstr "Desencadenadores"
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Try again"
|
||||
msgstr ""
|
||||
msgstr "Intentar de nuevo"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
|
||||
msgstr ""
|
||||
msgstr "Activa la detección por IA para encontrar automáticamente destinatarios y campos en tus documentos. Los proveedores de IA no conservan tus datos para entrenamiento."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
|
||||
msgid "Two factor authentication"
|
||||
@@ -9739,7 +9739,7 @@ msgstr "Incompleto"
|
||||
|
||||
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
|
||||
msgid "Undo"
|
||||
msgstr ""
|
||||
msgstr "Deshacer"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
@@ -9759,7 +9759,7 @@ msgstr "Error desconocido"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Unknown name"
|
||||
msgstr ""
|
||||
msgstr "Nombre desconocido"
|
||||
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
msgid "Unlimited"
|
||||
@@ -10354,7 +10354,7 @@ msgstr "Esperando tu turno"
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
|
||||
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
|
||||
msgstr ""
|
||||
msgstr "¿Quieres enviar enlaces de firma tan elegantes como este? <0>Prueba Documenso</0>."
|
||||
|
||||
#: apps/remix/app/routes/_profile+/_layout.tsx
|
||||
msgid "Want your own public profile?"
|
||||
@@ -10391,7 +10391,7 @@ msgstr "No pudimos crear un cliente de Stripe. Por favor, intente nuevamente."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "We couldn't enable AI features right now. Please try again."
|
||||
msgstr ""
|
||||
msgstr "No hemos podido habilitar las funciones de IA en este momento. Inténtalo de nuevo."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "We couldn't update the group. Please try again."
|
||||
@@ -10476,7 +10476,7 @@ msgstr "Encontramos un error desconocido al intentar eliminar tu cuenta. Por fav
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
|
||||
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
|
||||
msgstr ""
|
||||
msgstr "Encontramos un error desconocido al intentar eliminar tu documento. Inténtalo de nuevo más tarde."
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
|
||||
msgid "We encountered an unknown error while attempting to disable access."
|
||||
@@ -10686,11 +10686,11 @@ msgstr "Nos pondremos en contacto contigo lo antes posible, a través de correo
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
|
||||
msgstr ""
|
||||
msgstr "Escanearemos tu documento para encontrar campos de formulario como líneas de firma, entradas de texto, casillas de verificación y más. Los campos detectados se sugerirán para que los revises."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
|
||||
msgstr ""
|
||||
msgstr "Escanearemos tu documento para encontrar campos de firma e identificar quién debe firmar. Los destinatarios detectados se sugerirán para que los revises."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
|
||||
msgid "We'll send a 6-digit code to your email"
|
||||
@@ -10955,12 +10955,12 @@ msgstr "Actualmente estás actualizando <0>{0}</0>"
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
|
||||
msgid "You are currently updating <0>{memberName}</0>."
|
||||
msgstr ""
|
||||
msgstr "Actualmente estás actualizando a <0>{memberName}</0>."
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
|
||||
msgid "You are currently updating <0>{organisationMemberName}</0>."
|
||||
msgstr ""
|
||||
msgstr "Actualmente estás actualizando a <0>{organisationMemberName}</0>."
|
||||
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
|
||||
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
|
||||
@@ -10997,11 +10997,11 @@ msgstr "No está autorizado para restablecer la autenticación de dos factores p
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "You can add fields manually in the editor."
|
||||
msgstr ""
|
||||
msgstr "Puedes agregar campos manualmente en el editor."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "You can add recipients manually in the editor."
|
||||
msgstr ""
|
||||
msgstr "Puedes agregar destinatarios manualmente en el editor."
|
||||
|
||||
#: packages/email/template-components/template-confirmation-email.tsx
|
||||
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
|
||||
@@ -11022,15 +11022,15 @@ msgstr "Puedes habilitar el acceso para permitir que todos los miembros de la or
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
|
||||
msgid "You can manage your email preferences here."
|
||||
msgstr ""
|
||||
msgstr "Aquí puedes gestionar tus preferencias de correo electrónico."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
msgid "You can only detect fields in draft envelopes"
|
||||
msgstr ""
|
||||
msgstr "Solo puedes detectar campos en sobres en borrador"
|
||||
|
||||
#: packages/email/templates/confirm-team-email.tsx
|
||||
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
|
||||
msgstr ""
|
||||
msgstr "Puedes revocar el acceso en cualquier momento en la configuración de tu equipo en Documenso <0>aquí</0>."
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "You can update the profile URL by updating the team URL in the general settings page."
|
||||
@@ -11064,7 +11064,7 @@ msgstr "No puedes eliminar un grupo que tiene un rol superior al tuyo."
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
msgid "You cannot delete this item because the document has been sent to recipients."
|
||||
msgstr ""
|
||||
msgstr "No puedes eliminar este elemento porque el documento ha sido enviado a los destinatarios."
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
|
||||
msgid "You cannot modify a group which has a higher role than you."
|
||||
@@ -11091,7 +11091,7 @@ msgstr "No puede cargar documentos en este momento."
|
||||
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
|
||||
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
|
||||
msgid "You cannot upload encrypted PDFs."
|
||||
msgstr ""
|
||||
msgstr "No puedes subir archivos PDF cifrados."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
|
||||
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
|
||||
@@ -11103,7 +11103,7 @@ msgstr "Actualmente no tienes acceso a ningún equipo dentro de esta organizaci
|
||||
|
||||
#: apps/remix/app/components/forms/token.tsx
|
||||
msgid "You do not have permission to create a token for this team."
|
||||
msgstr ""
|
||||
msgstr "No tienes permiso para crear un token para este equipo."
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "You don't manage billing for any organisations."
|
||||
@@ -11173,7 +11173,7 @@ msgstr "Aún no has creado ni recibido documentos. Para crear un documento, por
|
||||
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
|
||||
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
|
||||
msgid "You have reached the limit of the number of files per envelope."
|
||||
msgstr ""
|
||||
msgstr "Has alcanzado el límite de archivos por sobre."
|
||||
|
||||
#. placeholder {0}: quota.directTemplates
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
@@ -11330,12 +11330,12 @@ msgstr "Recibirás una copia por correo electrónico del documento firmado cuand
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
|
||||
msgstr ""
|
||||
msgstr "Eres administrador. Puedes habilitar las funciones de IA para este equipo de inmediato. Todos los miembros del equipo verán la detección por IA una vez que esté habilitada."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "You've made too many detection requests. Please wait a minute before trying again."
|
||||
msgstr ""
|
||||
msgstr "Has realizado demasiadas solicitudes de detección. Espera un minuto antes de intentarlo de nuevo."
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Your Account"
|
||||
@@ -11392,7 +11392,7 @@ msgstr "Tus {0} plantillas de firma directa"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
|
||||
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
|
||||
msgstr ""
|
||||
msgstr "El contenido de tu documento se enviará de forma segura a nuestro proveedor de IA únicamente para la detección y no se almacenará ni se utilizará para entrenamiento."
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
|
||||
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
|
||||
@@ -11436,7 +11436,7 @@ msgstr "Tu documento ha sido subido con éxito. Serás redirigido a la página d
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Your document is processed securely using AI services that don't retain your data."
|
||||
msgstr ""
|
||||
msgstr "Tu documento se procesa de forma segura mediante servicios de IA que no conservan tus datos."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
|
||||
@@ -11621,3 +11621,4 @@ msgstr "Su código de verificación:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "su-dominio.com otro-dominio.com"
|
||||
|
||||
|
||||
+123
-122
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fr\n"
|
||||
"Project-Id-Version: documenso-app\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2025-11-27 05:32\n"
|
||||
"PO-Revision-Date: 2025-12-15 02:39\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: French\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {(1 caractère de trop)} other {(# caractères de trop)}
|
||||
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
|
||||
#: packages/ui/primitives/data-table-pagination.tsx
|
||||
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {{1} sur # ligne sélectionnée.} other {{2} sur # lignes sélectionnées.}}"
|
||||
|
||||
#. placeholder {0}: Math.abs(remaningLength)
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# dossier} other {# dossiers}}"
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {# destinataire a été ajouté grâce à la détection par IA.} other {# destinataires ont été ajoutés grâce à la détection par IA.}}"
|
||||
|
||||
#. placeholder {0}: template.recipients.length
|
||||
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
|
||||
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 Destinataire} other {# Destinataires}}"
|
||||
#. placeholder {4}: progress.totalPages
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Page {1} sur {2} - # champ trouvé} other {Page {3} sur {4} - # champs trouvés}}"
|
||||
|
||||
#. placeholder {0}: progress.recipientsDetected
|
||||
#. placeholder {1}: progress.pagesProcessed
|
||||
@@ -172,12 +172,12 @@ msgstr ""
|
||||
#. placeholder {4}: progress.totalPages
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Page {1} sur {2} - # destinataire trouvé} other {Page {3} sur {4} - # destinataires trouvés}}"
|
||||
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
|
||||
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Destinataire ajouté} other {Destinataires ajoutés}}"
|
||||
|
||||
#. placeholder {0}: pendingRecipients.length
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
|
||||
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {En attente d'1 destinataire} other {En attente de # des
|
||||
#. placeholder {0}: detectedFields.length
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Nous avons trouvé # champ dans votre document.} other {Nous avons trouvé # champs dans votre document.}}"
|
||||
|
||||
#. placeholder {0}: detectedRecipients.length
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
|
||||
msgstr ""
|
||||
msgstr "{0, plural, one {Nous avons trouvé # destinataire dans votre document.} other {Nous avons trouvé # destinataires dans votre document.}}"
|
||||
|
||||
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
|
||||
#. placeholder {0}: route.label
|
||||
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {Vous ne pouvez pas avoir plus de # clé
|
||||
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
|
||||
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
|
||||
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
|
||||
msgstr ""
|
||||
msgstr "{maximumEnvelopeItemCount, plural, one {Vous ne pouvez pas téléverser plus d’un élément par enveloppe.} other {Vous ne pouvez pas téléverser plus de # éléments par enveloppe.}}"
|
||||
|
||||
#: packages/lib/utils/document-audit-logs.ts
|
||||
msgid "{prefix} added a field"
|
||||
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> a demandé à lier votre compte Documenso actu
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> vous a invité à approuver ce document"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> vous a invité à assister ce document"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> vous a invité à signer ce document"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0> vous a invité à voir ce document"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0>, au nom de \"{0}\", vous a invité à approuver ce document"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0>, au nom de \"{0}\", vous a invité à assister ce document"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0>, au nom de \"{0}\", vous a invité à signer ce document"
|
||||
|
||||
#. placeholder {0}: document.team?.name
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
|
||||
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
|
||||
msgstr ""
|
||||
msgstr "<0>{senderName} {senderEmail}</0>, au nom de \"{0}\", vous a invité à voir ce document"
|
||||
|
||||
#: packages/email/templates/confirm-team-email.tsx
|
||||
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
|
||||
@@ -591,7 +591,7 @@ msgstr "<0>Gestion du compte :</0> Modifiez les paramètres, permissions, et pr
|
||||
|
||||
#: packages/ui/components/document/document-visibility-select.tsx
|
||||
msgid "<0>Admins only</0> - Only admins can access and view the document"
|
||||
msgstr ""
|
||||
msgstr "<0>Administrateurs uniquement</0> - Seuls les administrateurs peuvent accéder au document et le voir"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "<0>Data access:</0> Access all data associated with your account"
|
||||
@@ -612,7 +612,7 @@ msgstr "<0>Événements | ||||