diff --git a/.env.example b/.env.example index 693f1d8a5..87ad09a63 100644 --- a/.env.example +++ b/.env.example @@ -105,6 +105,12 @@ NEXT_PRIVATE_MAILCHANNELS_DKIM_PRIVATE_KEY= # OPTIONAL: Displays the maximum document upload limit to the user in MBs NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=5 +# [[EE ONLY]] +# OPTIONAL: The AWS SES API KEY to verify email domains with. +NEXT_PRIVATE_SES_ACCESS_KEY_ID= +NEXT_PRIVATE_SES_SECRET_ACCESS_KEY= +NEXT_PRIVATE_SES_REGION= + # [[STRIPE]] NEXT_PRIVATE_STRIPE_API_KEY= NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET= diff --git a/apps/documentation/pages/users/_meta.json b/apps/documentation/pages/users/_meta.json index 06334a4d8..3726fbd08 100644 --- a/apps/documentation/pages/users/_meta.json +++ b/apps/documentation/pages/users/_meta.json @@ -11,6 +11,7 @@ "documents": "Documents", "templates": "Templates", "branding": "Branding", + "email-domains": "Email Domains", "direct-links": "Direct Signing Links", "-- Legal Overview": { "type": "separator", diff --git a/apps/documentation/pages/users/branding.mdx b/apps/documentation/pages/users/branding.mdx index 8fb9412cb..68fb16cf5 100644 --- a/apps/documentation/pages/users/branding.mdx +++ b/apps/documentation/pages/users/branding.mdx @@ -17,7 +17,7 @@ Branding preferences can be set on either the organisation or team level. By default, teams inherit the preferences from the organisation. You can override these preferences on the team level at any time. -To access the preferences, navigate to either the organisation or teams settings page and click the **Preferences** tab. This page contains both the preferences for documents and branding, the branding section is located at the bottom of the page. +To access the preferences, navigate to either the organisation or teams settings page and click the **Branding** tab under the **Preferences** section. ![A screenshot of the organisation's document preferences page](/organisations/organisation-branding.webp) diff --git a/apps/documentation/pages/users/documents/_meta.json b/apps/documentation/pages/users/documents/_meta.json index 0705deb93..9312fe12c 100644 --- a/apps/documentation/pages/users/documents/_meta.json +++ b/apps/documentation/pages/users/documents/_meta.json @@ -1,5 +1,7 @@ { "sending-documents": "Sending Documents", "document-preferences": "Document Preferences", - "document-visibility": "Document Visibility" + "document-visibility": "Document Visibility", + "fields": "Document Fields", + "email-preferences": "Email Preferences" } \ No newline at end of file diff --git a/apps/documentation/pages/users/documents/document-preferences.mdx b/apps/documentation/pages/users/documents/document-preferences.mdx index 18b26f44b..0b1e3093b 100644 --- a/apps/documentation/pages/users/documents/document-preferences.mdx +++ b/apps/documentation/pages/users/documents/document-preferences.mdx @@ -19,12 +19,14 @@ Document preferences can be set on either the organisation or team level. By default, teams inherit the preferences from the organisation. You can override these preferences on the team level at any time. -To access the preferences, navigate to either the organisation or teams settings page and click the **Preferences** tab. +To access the preferences, navigate to either the organisation or teams settings page and click the **Document** tab under the **Preferences** section. ![A screenshot of the organisation's document preferences page](/organisations/organisation-document-preferences.webp) - **Document Visibility** - Set the default visibility of the documents created by team members. Learn more about [document visibility](/users/documents/document-visibility). - **Default Document Language** - This setting allows you to set the default language for the documents uploaded in the organisation. The default language is used as the default language in the email communications with the document recipients. +- **Default Time Zone** - The timezone to use for date fields and signing the document. +- **Default Date Format** - The date format to use for date fields and signing the document. - **Signature Settings** - Controls what signatures are allowed to be used when signing the documents. - **Sender Details** - Set whether the sender's name should be included in the emails sent by the team. See more below [sender details](/users/documents/document-preferences#sender-details). - **Include the Signing Certificate** - This setting controls whether the signing certificate should be included in the signed documents. If enabled, the signing certificate is included in the signed documents. If disabled, the signing certificate is not included in the signed documents. Regardless of this setting, the signing certificate is always available in the document's audit log page. diff --git a/apps/documentation/pages/users/documents/email-preferences.mdx b/apps/documentation/pages/users/documents/email-preferences.mdx new file mode 100644 index 000000000..95cc42456 --- /dev/null +++ b/apps/documentation/pages/users/documents/email-preferences.mdx @@ -0,0 +1,26 @@ +--- +title: Email Preferences +description: Learn how to set the email preferences for your team account. +--- + +import Image from 'next/image'; + +import { Callout, Steps } from 'nextra/components'; + +# Email Preferences + +Email preferences allow you to set the default settings when emailing documents to your recipients. + +## Preferences + +Email preferences can be set on either the organisation or team level. + +By default, teams inherit the preferences from the organisation. You can override these preferences on the team level at any time. + +To access the preferences, navigate to either the organisation or teams settings page and click the **Email** tab under the **Preferences** section. + +![A screenshot of the organisation's email preferences page](/organisations/organisation-email-preferences.webp) + +- **Default Email** - Use a custom email address when sending documents to your recipients. See [email domains](/users/email-domains) for more information. +- **Reply To** - The email address that will be used in the "Reply To" field in emails +- **Email Settings** - Which emails to send to recipients during document signing diff --git a/apps/documentation/pages/users/email-domains.mdx b/apps/documentation/pages/users/email-domains.mdx new file mode 100644 index 000000000..c30005ae5 --- /dev/null +++ b/apps/documentation/pages/users/email-domains.mdx @@ -0,0 +1,112 @@ +import { Callout, Steps } from 'nextra/components'; + +# Email Domains + +Email Domains allow you to send emails to recipients from your own domain instead of the default Documenso email address. + + + **Platform and Enterprise Only**: Email Domains is only available to Platform and Enterprise + customers. + + +## Creating Email Domains + +Before setting up email domains, ensure you have: + +- A Platform or Enterprise subscription +- Access to your domain's DNS settings +- Access to your Documenso organisation as an admin or manager + + + +### Access Email Domains Settings + +Navigate to your Organisation email domains settings page and click the "Add Email Domain" button. + +![Email Domains settings page](/email-domains/email-domains-settings-page.webp) + +### Configure DNS Records + +After adding your domain, Documenso will provide you with the following required DNS records that need to be configured on your domain: + +- **SPF Record**: Specifies which servers are authorized to send emails from your domain +- **DKIM Record**: Provides email authentication and prevents tampering + +![DNS configuration instructions](/email-domains/email-domains-record.webp) + + + If you already have an SPF record configured, you will need to update it to include Amazon SES as + an authorized server instead of creating a new record. + + +Configure these records in your domain's DNS settings according to their specific instructions. + +### Verify Domain Configuration + +Once you've added the DNS records, return to the Documenso email domains settings page and click the "Verify" button. +This will trigger a verification process which will check if the DNS records are properly configured. If successful, the domain will be marked as "Active". + +![Domain verification process](/email-domains/email-domain-sync.webp) + + + Please note that it may take up to 48 hours for the DNS records to propagate. + + + + +## Creating Emails + +Once your email domain has been configured, you can create multiple email addresses which your members can use when sending documents to recipients. + + + +### Select the Email Domain You Want to Use + +Navigate to the email domains settings page and click "Manage" on the domain you want to use. + +![Email Domains settings page](/email-domains/email-domains-manage.webp) + +### Add a New Email + +Click on the "Add Email" button to begin the setup process. + +![Create email](/email-domains/email-domains-manage-create-email.webp) + +### Use Email + +Once you have added an email, you can configure it to be the default email on either the: + +- Organisation email preferences page +- Team email preferences page + +When a draft document is created, it will inherit the email configured on the team if set, otherwise it will inherit the email configured in the organisation. + +You can also configure the email address directly on the document to override the default email if required. + + + +## Notes + +- If you change the default email, it will not retroactively update any existing documents with the old default email. +- If the email domain becomes invalid, all emails using that domain will fail to send. + +## Troubleshooting + +### Common Issues + +**DNS Verification Fails** + +- Double-check all DNS record values +- Ensure records are added to the correct domain +- Wait for DNS propagation (up to 48 hours) + +**Emails Not Delivering** + +- Check domain reputation and blacklist status +- Verify SPF, DKIM, and DMARC records +- Review bounce and spam reports + + + For additional support with Email Domains configuration, contact our support team at + support@documenso.com. + diff --git a/apps/documentation/public/email-domains/create-domain-dialog.webp b/apps/documentation/public/email-domains/create-domain-dialog.webp new file mode 100644 index 000000000..0e9c3bc70 Binary files /dev/null and b/apps/documentation/public/email-domains/create-domain-dialog.webp differ diff --git a/apps/documentation/public/email-domains/email-domain-sync.webp b/apps/documentation/public/email-domains/email-domain-sync.webp new file mode 100644 index 000000000..cd62cce21 Binary files /dev/null and b/apps/documentation/public/email-domains/email-domain-sync.webp differ diff --git a/apps/documentation/public/email-domains/email-domains-manage-create-email.webp b/apps/documentation/public/email-domains/email-domains-manage-create-email.webp new file mode 100644 index 000000000..d3aafb982 Binary files /dev/null and b/apps/documentation/public/email-domains/email-domains-manage-create-email.webp differ diff --git a/apps/documentation/public/email-domains/email-domains-manage.webp b/apps/documentation/public/email-domains/email-domains-manage.webp new file mode 100644 index 000000000..ec0dc9269 Binary files /dev/null and b/apps/documentation/public/email-domains/email-domains-manage.webp differ diff --git a/apps/documentation/public/email-domains/email-domains-record.webp b/apps/documentation/public/email-domains/email-domains-record.webp new file mode 100644 index 000000000..f69696799 Binary files /dev/null and b/apps/documentation/public/email-domains/email-domains-record.webp differ diff --git a/apps/documentation/public/email-domains/email-domains-settings-page.webp b/apps/documentation/public/email-domains/email-domains-settings-page.webp new file mode 100644 index 000000000..512c436a0 Binary files /dev/null and b/apps/documentation/public/email-domains/email-domains-settings-page.webp differ diff --git a/apps/documentation/public/organisations/organisation-branding.webp b/apps/documentation/public/organisations/organisation-branding.webp index dee0d7c32..e28df3530 100644 Binary files a/apps/documentation/public/organisations/organisation-branding.webp and b/apps/documentation/public/organisations/organisation-branding.webp differ diff --git a/apps/documentation/public/organisations/organisation-document-preferences.webp b/apps/documentation/public/organisations/organisation-document-preferences.webp index 4aa01b4a5..6f2548590 100644 Binary files a/apps/documentation/public/organisations/organisation-document-preferences.webp and b/apps/documentation/public/organisations/organisation-document-preferences.webp differ diff --git a/apps/documentation/public/organisations/organisation-email-preferences.webp b/apps/documentation/public/organisations/organisation-email-preferences.webp new file mode 100644 index 000000000..a66e64316 Binary files /dev/null and b/apps/documentation/public/organisations/organisation-email-preferences.webp differ diff --git a/apps/remix/app/components/dialogs/organisation-create-dialog.tsx b/apps/remix/app/components/dialogs/organisation-create-dialog.tsx index eec04ff2e..ba211538b 100644 --- a/apps/remix/app/components/dialogs/organisation-create-dialog.tsx +++ b/apps/remix/app/components/dialogs/organisation-create-dialog.tsx @@ -87,7 +87,7 @@ export const OrganisationCreateDialog = ({ trigger, ...props }: OrganisationCrea const { mutateAsync: createOrganisation } = trpc.organisation.create.useMutation(); - const { data: plansData } = trpc.billing.plans.get.useQuery(undefined, { + const { data: plansData } = trpc.enterprise.billing.plans.get.useQuery(undefined, { enabled: IS_BILLING_ENABLED(), }); diff --git a/apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx b/apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx new file mode 100644 index 000000000..c05fadd8c --- /dev/null +++ b/apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx @@ -0,0 +1,243 @@ +import { useEffect, useState } from 'react'; + +import { zodResolver } from '@hookform/resolvers/zod'; +import { useLingui } from '@lingui/react/macro'; +import { Trans } from '@lingui/react/macro'; +import type * as DialogPrimitive from '@radix-ui/react-dialog'; +import { useForm } from 'react-hook-form'; +import type { z } from 'zod'; + +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { trpc } from '@documenso/trpc/react'; +import { ZCreateOrganisationEmailRequestSchema } from '@documenso/trpc/server/enterprise-router/create-organisation-email.types'; +import { Button } from '@documenso/ui/primitives/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@documenso/ui/primitives/dialog'; +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@documenso/ui/primitives/form/form'; +import { Input } from '@documenso/ui/primitives/input'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +type EmailDomain = { + id: string; + domain: string; + status: string; +}; + +export type OrganisationEmailCreateDialogProps = { + trigger?: React.ReactNode; + emailDomain: EmailDomain; +} & Omit; + +const ZCreateOrganisationEmailFormSchema = ZCreateOrganisationEmailRequestSchema.pick({ + emailName: true, + email: true, + // replyTo: true, +}); + +type TCreateOrganisationEmailFormSchema = z.infer; + +export const OrganisationEmailCreateDialog = ({ + trigger, + emailDomain, + ...props +}: OrganisationEmailCreateDialogProps) => { + const { t } = useLingui(); + const { toast } = useToast(); + + const [open, setOpen] = useState(false); + + const form = useForm({ + resolver: zodResolver(ZCreateOrganisationEmailFormSchema), + defaultValues: { + emailName: '', + email: '', + // replyTo: '', + }, + }); + + const { mutateAsync: createOrganisationEmail, isPending } = + trpc.enterprise.organisation.email.create.useMutation(); + + // Reset state when dialog closes + useEffect(() => { + if (!open) { + form.reset(); + } + }, [open, form]); + + const onFormSubmit = async (data: TCreateOrganisationEmailFormSchema) => { + try { + await createOrganisationEmail({ + emailDomainId: emailDomain.id, + ...data, + }); + + toast({ + title: t`Email Created`, + description: t`The organisation email has been created successfully.`, + }); + + setOpen(false); + } catch (err) { + const error = AppError.parseError(err); + + console.error(error); + + if (error.code === AppErrorCode.ALREADY_EXISTS) { + toast({ + title: t`Email already exists`, + description: t`An email with this address already exists.`, + variant: 'destructive', + }); + } else { + toast({ + title: t`An error occurred`, + description: t`We encountered an error while creating the email. Please try again later.`, + variant: 'destructive', + }); + } + } + }; + + return ( + !isPending && setOpen(value)}> + e.stopPropagation()} asChild={true}> + {trigger ?? ( + + )} + + + + + + Add Organisation Email + + + + Create a new email address for your organisation using the domain{' '} + {emailDomain.domain}. + + + + +
+ +
+ ( + + + Display Name + + + + + + + The display name for this email address + + + )} + /> + + ( + + + Email Address + + +
+ { + field.onChange(e.target.value + '@' + emailDomain.domain); + }} + placeholder="support" + /> +
+ @{emailDomain.domain} +
+
+
+ + {!form.formState.errors.email && ( + + {field.value ? ( + field.value + ) : ( + + The part before the @ symbol (e.g., "support" for support@ + {emailDomain.domain}) + + )} + + )} +
+ )} + /> + + {/* ( + + + Reply-To Email + + + + + + + + Optional no-reply email address attached to emails. Leave blank to default + to the organisation settings reply-to email. + + + + )} + /> */} + + + + + + +
+
+ +
+
+ ); +}; diff --git a/apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx b/apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx new file mode 100644 index 000000000..5f48ce9f1 --- /dev/null +++ b/apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx @@ -0,0 +1,111 @@ +import { useState } from 'react'; + +import { useLingui } from '@lingui/react/macro'; +import { Trans } from '@lingui/react/macro'; + +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; +import { trpc } from '@documenso/trpc/react'; +import { Alert, AlertDescription } from '@documenso/ui/primitives/alert'; +import { Button } from '@documenso/ui/primitives/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@documenso/ui/primitives/dialog'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +export type OrganisationEmailDeleteDialogProps = { + emailId: string; + email: string; + trigger?: React.ReactNode; +}; + +export const OrganisationEmailDeleteDialog = ({ + trigger, + emailId, + email, +}: OrganisationEmailDeleteDialogProps) => { + const [open, setOpen] = useState(false); + + const { t } = useLingui(); + const { toast } = useToast(); + + const organisation = useCurrentOrganisation(); + + const { mutateAsync: deleteEmail, isPending: isDeleting } = + trpc.enterprise.organisation.email.delete.useMutation({ + onSuccess: () => { + toast({ + title: t`Success`, + description: t`You have successfully removed this email from the organisation.`, + duration: 5000, + }); + + setOpen(false); + }, + onError: () => { + toast({ + title: t`An unknown error occurred`, + description: t`We encountered an unknown error while attempting to remove this email. Please try again later.`, + variant: 'destructive', + duration: 10000, + }); + }, + }); + + return ( + !isDeleting && setOpen(value)}> + + {trigger ?? ( + + )} + + + + + + Are you sure? + + + + + You are about to remove the following email from{' '} + {organisation.name}. + + + + + + {email} + + +
+ + + + + +
+
+
+ ); +}; diff --git a/apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx b/apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx new file mode 100644 index 000000000..d51967b1d --- /dev/null +++ b/apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx @@ -0,0 +1,199 @@ +import { useEffect, useState } from 'react'; + +import { zodResolver } from '@hookform/resolvers/zod'; +import { useLingui } from '@lingui/react/macro'; +import { Trans } from '@lingui/react/macro'; +import type * as DialogPrimitive from '@radix-ui/react-dialog'; +import { useForm } from 'react-hook-form'; +import type { z } from 'zod'; + +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { trpc } from '@documenso/trpc/react'; +import { ZCreateOrganisationEmailDomainRequestSchema } from '@documenso/trpc/server/enterprise-router/create-organisation-email-domain.types'; +import { Button } from '@documenso/ui/primitives/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@documenso/ui/primitives/dialog'; +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@documenso/ui/primitives/form/form'; +import { Input } from '@documenso/ui/primitives/input'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +import { OrganisationEmailDomainRecordContent } from './organisation-email-domain-records-dialog'; + +export type OrganisationEmailCreateDialogProps = { + trigger?: React.ReactNode; +} & Omit; + +const ZCreateOrganisationEmailDomainFormSchema = ZCreateOrganisationEmailDomainRequestSchema.pick({ + domain: true, +}); + +type TCreateOrganisationEmailDomainFormSchema = z.infer< + typeof ZCreateOrganisationEmailDomainFormSchema +>; + +type DomainRecord = { + name: string; + value: string; + type: string; +}; + +export const OrganisationEmailDomainCreateDialog = ({ + trigger, + ...props +}: OrganisationEmailCreateDialogProps) => { + const { t } = useLingui(); + const { toast } = useToast(); + const organisation = useCurrentOrganisation(); + + const [open, setOpen] = useState(false); + const [step, setStep] = useState<'domain' | 'verification'>('domain'); + const [recordsToAdd, setRecordsToAdd] = useState([]); + + const form = useForm({ + resolver: zodResolver(ZCreateOrganisationEmailDomainFormSchema), + defaultValues: { + domain: '', + }, + }); + + const { mutateAsync: createOrganisationEmail } = + trpc.enterprise.organisation.emailDomain.create.useMutation(); + + // Reset state when dialog closes + useEffect(() => { + if (!open) { + form.reset(); + setStep('domain'); + } + }, [open, form]); + + const onFormSubmit = async ({ domain }: TCreateOrganisationEmailDomainFormSchema) => { + try { + const { records } = await createOrganisationEmail({ + domain, + organisationId: organisation.id, + }); + + setRecordsToAdd(records); + setStep('verification'); + + toast({ + title: t`Domain Added`, + description: t`DKIM records generated. Please add the DNS records to verify your domain.`, + }); + } catch (err) { + const error = AppError.parseError(err); + console.error(error); + + if (error.code === AppErrorCode.ALREADY_EXISTS) { + toast({ + title: t`Domain already in use`, + description: t`Please try a different domain.`, + variant: 'destructive', + duration: 10000, + }); + } else { + toast({ + title: t`An unknown error occurred`, + description: t`We encountered an unknown error while attempting to add your domain. Please try again later.`, + variant: 'destructive', + }); + } + } + }; + + return ( + !form.formState.isSubmitting && setOpen(value)} + > + e.stopPropagation()} asChild={true}> + {trigger ?? ( + + )} + + + {step === 'domain' ? ( + + + + Add Custom Email Domain + + + + Add a custom domain to send emails on behalf of your organisation. We'll generate + DKIM records that you need to add to your DNS provider. + + + + +
+ +
+ ( + + + Domain Name + + + + + + + + Enter the domain you want to use for sending emails (without http:// or + www) + + + + )} + /> + + + + + + +
+
+ +
+ ) : ( + + )} +
+ ); +}; diff --git a/apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx b/apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx new file mode 100644 index 000000000..0fb7eedd2 --- /dev/null +++ b/apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx @@ -0,0 +1,161 @@ +import { useState } from 'react'; + +import { zodResolver } from '@hookform/resolvers/zod'; +import { useLingui } from '@lingui/react/macro'; +import { Trans } from '@lingui/react/macro'; +import { useForm } from 'react-hook-form'; +import { z } from 'zod'; + +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; +import { trpc } from '@documenso/trpc/react'; +import { Button } from '@documenso/ui/primitives/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@documenso/ui/primitives/dialog'; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@documenso/ui/primitives/form/form'; +import { Input } from '@documenso/ui/primitives/input'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +export type OrganisationEmailDomainDeleteDialogProps = { + emailDomainId: string; + emailDomain: string; + trigger?: React.ReactNode; +}; + +export const OrganisationEmailDomainDeleteDialog = ({ + trigger, + emailDomainId, + emailDomain, +}: OrganisationEmailDomainDeleteDialogProps) => { + const [open, setOpen] = useState(false); + + const { t } = useLingui(); + const { toast } = useToast(); + + const organisation = useCurrentOrganisation(); + + const deleteMessage = t`delete ${emailDomain}`; + + const ZDeleteEmailDomainFormSchema = z.object({ + confirmText: z.literal(deleteMessage, { + errorMap: () => ({ message: t`You must type '${deleteMessage}' to confirm` }), + }), + }); + + const form = useForm>({ + resolver: zodResolver(ZDeleteEmailDomainFormSchema), + defaultValues: { + confirmText: '', + }, + }); + + const { mutateAsync: deleteEmailDomain, isPending: isDeleting } = + trpc.enterprise.organisation.emailDomain.delete.useMutation({ + onSuccess: () => { + toast({ + title: t`Success`, + description: t`You have successfully removed this email domain from the organisation.`, + duration: 5000, + }); + + setOpen(false); + }, + onError: () => { + toast({ + title: t`An unknown error occurred`, + description: t`We encountered an unknown error while attempting to remove this email domain. Please try again later.`, + variant: 'destructive', + duration: 10000, + }); + }, + }); + + const onFormSubmit = async () => { + await deleteEmailDomain({ + emailDomainId, + }); + }; + + return ( + !isDeleting && setOpen(value)}> + + {trigger ?? ( + + )} + + + + + + Are you sure? + + + + + You are about to remove the email domain{' '} + {emailDomain} from{' '} + {organisation.name}. All emails associated with + this domain will be deleted. + + + + +
+ +
+ ( + + + + Confirm by typing{' '} + + {deleteMessage} + + + + + + + + + )} + /> + + + + + +
+
+ +
+
+ ); +}; diff --git a/apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx b/apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx new file mode 100644 index 000000000..ce91f3d52 --- /dev/null +++ b/apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx @@ -0,0 +1,139 @@ +import { useLingui } from '@lingui/react/macro'; +import { Trans } from '@lingui/react/macro'; +import type * as DialogPrimitive from '@radix-ui/react-dialog'; + +import { CopyTextButton } from '@documenso/ui/components/common/copy-text-button'; +import { Alert, AlertDescription } from '@documenso/ui/primitives/alert'; +import { Button } from '@documenso/ui/primitives/button'; +import { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@documenso/ui/primitives/dialog'; +import { Input } from '@documenso/ui/primitives/input'; +import { Label } from '@documenso/ui/primitives/label'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +export type OrganisationEmailDomainRecordsDialogProps = { + trigger: React.ReactNode; + records: DomainRecord[]; +} & Omit; + +type DomainRecord = { + name: string; + value: string; + type: string; +}; + +export const OrganisationEmailDomainRecordsDialog = ({ + trigger, + records, + ...props +}: OrganisationEmailDomainRecordsDialogProps) => { + return ( + + e.stopPropagation()} asChild={true}> + {trigger} + + + + + ); +}; + +export const OrganisationEmailDomainRecordContent = ({ records }: { records: DomainRecord[] }) => { + const { t } = useLingui(); + const { toast } = useToast(); + + return ( + + + + Verify Domain + + + Add these DNS records to verify your domain ownership + + + +
+
+ {records.map((record) => ( +
+
+ + +
+ +
+ toast({ title: t`Copied to clipboard` })} + /> +
+
+
+ +
+ + +
+ +
+ toast({ title: t`Copied to clipboard` })} + /> +
+
+
+ +
+ + +
+ +
+ toast({ title: t`Copied to clipboard` })} + /> +
+
+
+
+ ))} +
+ + + + + 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 + + + + + + + + + +
+
+ ); +}; diff --git a/apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx b/apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx new file mode 100644 index 000000000..4bca18d8d --- /dev/null +++ b/apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx @@ -0,0 +1,184 @@ +import { useEffect, useState } from 'react'; + +import { zodResolver } from '@hookform/resolvers/zod'; +import { useLingui } from '@lingui/react/macro'; +import { Trans } from '@lingui/react/macro'; +import type * as DialogPrimitive from '@radix-ui/react-dialog'; +import { useForm } from 'react-hook-form'; +import type { z } from 'zod'; + +import { trpc } from '@documenso/trpc/react'; +import type { TGetOrganisationEmailDomainResponse } from '@documenso/trpc/server/enterprise-router/get-organisation-email-domain.types'; +import { ZUpdateOrganisationEmailRequestSchema } from '@documenso/trpc/server/enterprise-router/update-organisation-email.types'; +import { Button } from '@documenso/ui/primitives/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@documenso/ui/primitives/dialog'; +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@documenso/ui/primitives/form/form'; +import { Input } from '@documenso/ui/primitives/input'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +export type OrganisationEmailUpdateDialogProps = { + trigger: React.ReactNode; + organisationEmail: TGetOrganisationEmailDomainResponse['emails'][number]; +} & Omit; + +const ZUpdateOrganisationEmailFormSchema = ZUpdateOrganisationEmailRequestSchema.pick({ + emailName: true, + // replyTo: true, +}); + +type ZUpdateOrganisationEmailSchema = z.infer; + +export const OrganisationEmailUpdateDialog = ({ + trigger, + organisationEmail, + ...props +}: OrganisationEmailUpdateDialogProps) => { + const [open, setOpen] = useState(false); + + const { t } = useLingui(); + const { toast } = useToast(); + + const form = useForm({ + resolver: zodResolver(ZUpdateOrganisationEmailFormSchema), + defaultValues: { + emailName: organisationEmail.emailName, + // replyTo: organisationEmail.replyTo ?? undefined, + }, + }); + + const { mutateAsync: updateOrganisationEmail, isPending } = + trpc.enterprise.organisation.email.update.useMutation(); + + const onFormSubmit = async ({ emailName }: ZUpdateOrganisationEmailSchema) => { + try { + await updateOrganisationEmail({ + emailId: organisationEmail.id, + emailName, + // replyTo, + }); + + toast({ + title: t`Success`, + duration: 5000, + }); + + setOpen(false); + } catch { + toast({ + title: t`An unknown error occurred`, + variant: 'destructive', + }); + } + }; + + useEffect(() => { + if (!open) { + return; + } + + form.reset({ + emailName: organisationEmail.emailName, + // replyTo: organisationEmail.replyTo ?? undefined, + }); + }, [open, form]); + + return ( + !form.formState.isSubmitting && setOpen(value)} + > + e.stopPropagation()} asChild> + {trigger} + + + + + + Update email + + + + + You are currently updating{' '} + {organisationEmail.email} + + + + +
+ +
+ ( + + + Display Name + + + + + + + The display name for this email address + + + )} + /> + + {/* ( + + + Reply-To Email + + + + + + + + Optional no-reply email address attached to emails. Leave blank to default + to the organisation settings reply-to email. + + + + )} + /> */} + + + + + + +
+
+ +
+
+ ); +}; diff --git a/apps/remix/app/components/embed/embed-document-fields.tsx b/apps/remix/app/components/embed/embed-document-fields.tsx index 0cb53f17c..561fdf4cb 100644 --- a/apps/remix/app/components/embed/embed-document-fields.tsx +++ b/apps/remix/app/components/embed/embed-document-fields.tsx @@ -32,7 +32,14 @@ import { DocumentSigningTextField } from '~/components/general/document-signing/ export type EmbedDocumentFieldsProps = { fields: Field[]; - metadata?: DocumentMeta | TemplateMeta | null; + metadata?: Pick< + DocumentMeta | TemplateMeta, + | 'timezone' + | 'dateFormat' + | 'typedSignatureEnabled' + | 'uploadSignatureEnabled' + | 'drawSignatureEnabled' + > | null; onSignField?: (value: TSignFieldWithTokenMutationSchema) => Promise | void; onUnsignField?: (value: TRemovedSignedFieldWithTokenMutationSchema) => Promise | void; }; diff --git a/apps/remix/app/components/forms/document-preferences-form.tsx b/apps/remix/app/components/forms/document-preferences-form.tsx index ac91ee13e..eb91a4b84 100644 --- a/apps/remix/app/components/forms/document-preferences-form.tsx +++ b/apps/remix/app/components/forms/document-preferences-form.tsx @@ -8,17 +8,24 @@ import { useForm } from 'react-hook-form'; import { z } from 'zod'; import { useSession } from '@documenso/lib/client-only/providers/session'; +import { DATE_FORMATS } from '@documenso/lib/constants/date-formats'; import { DOCUMENT_SIGNATURE_TYPES, DocumentSignatureType } from '@documenso/lib/constants/document'; import { SUPPORTED_LANGUAGES, SUPPORTED_LANGUAGE_CODES, isValidLanguageCode, } from '@documenso/lib/constants/i18n'; +import { TIME_ZONES } from '@documenso/lib/constants/time-zones'; import { isPersonalLayout } from '@documenso/lib/utils/organisations'; import { extractTeamSignatureSettings } from '@documenso/lib/utils/teams'; +import { + type TDocumentMetaDateFormat, + ZDocumentMetaTimezoneSchema, +} from '@documenso/trpc/server/document-router/schema'; import { DocumentSignatureSettingsTooltip } from '@documenso/ui/components/document/document-signature-settings-tooltip'; import { Alert } from '@documenso/ui/primitives/alert'; import { Button } from '@documenso/ui/primitives/button'; +import { Combobox } from '@documenso/ui/primitives/combobox'; import { Form, FormControl, @@ -44,6 +51,8 @@ import { export type TDocumentPreferencesFormSchema = { documentVisibility: DocumentVisibility | null; documentLanguage: (typeof SUPPORTED_LANGUAGE_CODES)[number] | null; + documentTimezone: string | null; + documentDateFormat: TDocumentMetaDateFormat | null; includeSenderDetails: boolean | null; includeSigningCertificate: boolean | null; signatureTypes: DocumentSignatureType[]; @@ -53,6 +62,8 @@ type SettingsSubset = Pick< TeamGlobalSettings, | 'documentVisibility' | 'documentLanguage' + | 'documentTimezone' + | 'documentDateFormat' | 'includeSenderDetails' | 'includeSigningCertificate' | 'typedSignatureEnabled' @@ -81,6 +92,8 @@ export const DocumentPreferencesForm = ({ const ZDocumentPreferencesFormSchema = z.object({ documentVisibility: z.nativeEnum(DocumentVisibility).nullable(), documentLanguage: z.enum(SUPPORTED_LANGUAGE_CODES).nullable(), + documentTimezone: z.string().nullable(), + documentDateFormat: ZDocumentMetaTimezoneSchema.nullable(), includeSenderDetails: z.boolean().nullable(), includeSigningCertificate: z.boolean().nullable(), signatureTypes: z.array(z.nativeEnum(DocumentSignatureType)).min(canInherit ? 0 : 1, { @@ -94,6 +107,9 @@ export const DocumentPreferencesForm = ({ documentLanguage: isValidLanguageCode(settings.documentLanguage) ? settings.documentLanguage : null, + documentTimezone: settings.documentTimezone, + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + documentDateFormat: settings.documentDateFormat as TDocumentMetaDateFormat | null, includeSenderDetails: settings.includeSenderDetails, includeSigningCertificate: settings.includeSigningCertificate, signatureTypes: extractTeamSignatureSettings({ ...settings }), @@ -124,7 +140,10 @@ export const DocumentPreferencesForm = ({ value={field.value === null ? '-1' : field.value} onValueChange={(value) => field.onChange(value === '-1' ? null : value)} > - + @@ -171,7 +190,10 @@ export const DocumentPreferencesForm = ({ value={field.value === null ? '-1' : field.value} onValueChange={(value) => field.onChange(value === '-1' ? null : value)} > - + @@ -199,6 +221,72 @@ export const DocumentPreferencesForm = ({ )} /> + ( + + + Default Date Format + + + + + + + + + )} + /> + + ( + + + Default Time Zone + + + + field.onChange(value)} + testId="document-timezone-trigger" + /> + + + + + )} + /> + @@ -257,7 +345,10 @@ export const DocumentPreferencesForm = ({ field.onChange(value === 'true' ? true : value === 'false' ? false : null) } > - + @@ -325,7 +416,10 @@ export const DocumentPreferencesForm = ({ field.onChange(value === 'true' ? true : value === 'false' ? false : null) } > - + diff --git a/apps/remix/app/components/forms/email-preferences-form.tsx b/apps/remix/app/components/forms/email-preferences-form.tsx new file mode 100644 index 000000000..2dd992676 --- /dev/null +++ b/apps/remix/app/components/forms/email-preferences-form.tsx @@ -0,0 +1,238 @@ +import { zodResolver } from '@hookform/resolvers/zod'; +import { Trans } from '@lingui/react/macro'; +import type { TeamGlobalSettings } from '@prisma/client'; +import { useForm } from 'react-hook-form'; +import { z } from 'zod'; + +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; +import { FROM_ADDRESS } from '@documenso/lib/constants/email'; +import { + DEFAULT_DOCUMENT_EMAIL_SETTINGS, + ZDocumentEmailSettingsSchema, +} from '@documenso/lib/types/document-email'; +import { trpc } from '@documenso/trpc/react'; +import { DocumentEmailCheckboxes } from '@documenso/ui/components/document/document-email-checkboxes'; +import { Button } from '@documenso/ui/primitives/button'; +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@documenso/ui/primitives/form/form'; +import { Input } from '@documenso/ui/primitives/input'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@documenso/ui/primitives/select'; + +const ZEmailPreferencesFormSchema = z.object({ + emailId: z.string().nullable(), + emailReplyTo: z.string().email().nullable(), + // emailReplyToName: z.string(), + emailDocumentSettings: ZDocumentEmailSettingsSchema.nullable(), +}); + +export type TEmailPreferencesFormSchema = z.infer; + +type SettingsSubset = Pick< + TeamGlobalSettings, + 'emailId' | 'emailReplyTo' | 'emailDocumentSettings' +>; + +export type EmailPreferencesFormProps = { + settings: SettingsSubset; + canInherit: boolean; + onFormSubmit: (data: TEmailPreferencesFormSchema) => Promise; +}; + +export const EmailPreferencesForm = ({ + settings, + onFormSubmit, + canInherit, +}: EmailPreferencesFormProps) => { + const organisation = useCurrentOrganisation(); + + const form = useForm({ + defaultValues: { + emailId: settings.emailId, + emailReplyTo: settings.emailReplyTo, + // emailReplyToName: settings.emailReplyToName, + emailDocumentSettings: settings.emailDocumentSettings, + }, + resolver: zodResolver(ZEmailPreferencesFormSchema), + }); + + const { data: emailData, isLoading: isLoadingEmails } = + trpc.enterprise.organisation.email.find.useQuery({ + organisationId: organisation.id, + perPage: 100, + }); + + const emails = emailData?.data || []; + + return ( +
+ +
+ {organisation.organisationClaim.flags.emailDomains && ( + ( + + + Default Email + + + + + + + + The default email to use when sending emails to recipients + + + )} + /> + )} + + ( + + + Reply to email + + + field.onChange(value.target.value || null)} + placeholder="noreply@example.com" + type="email" + /> + + + + + The email address which will show up in the "Reply To" field in emails + + + {canInherit && ( + + {'. '} + Leave blank to inherit from the organisation. + + )} + + + )} + /> + + {/* ( + + + Reply to name + + + + + + + )} + /> */} + + ( + + + Default Email Settings + + {canInherit && ( + + )} + + {field.value && ( +
+ field.onChange(value)} + /> +
+ )} + + + + Controls the default email settings when new documents or templates are created + + +
+ )} + /> + +
+ +
+
+
+ + ); +}; diff --git a/apps/remix/app/components/general/billing-plans.tsx b/apps/remix/app/components/general/billing-plans.tsx index 6c85ac89d..e85a8480d 100644 --- a/apps/remix/app/components/general/billing-plans.tsx +++ b/apps/remix/app/components/general/billing-plans.tsx @@ -186,7 +186,7 @@ const BillingDialog = ({ }); const { mutateAsync: createSubscription, isPending: isCreatingSubscription } = - trpc.billing.subscription.create.useMutation(); + trpc.enterprise.billing.subscription.create.useMutation(); const { mutateAsync: createOrganisation, isPending: isCreatingOrganisation } = trpc.organisation.create.useMutation(); @@ -346,7 +346,7 @@ export const IndividualPersonalLayoutCheckoutButton = ({ const { organisations } = useSession(); const { mutateAsync: createSubscription, isPending } = - trpc.billing.subscription.create.useMutation(); + trpc.enterprise.billing.subscription.create.useMutation(); const onSubscribeClick = async () => { try { diff --git a/apps/remix/app/components/general/document-signing/document-signing-fields.tsx b/apps/remix/app/components/general/document-signing/document-signing-fields.tsx index 8899836ba..805cbf7ea 100644 --- a/apps/remix/app/components/general/document-signing/document-signing-fields.tsx +++ b/apps/remix/app/components/general/document-signing/document-signing-fields.tsx @@ -12,7 +12,7 @@ export const DocumentSigningFieldsLoader = () => { export const DocumentSigningFieldsUninserted = ({ children }: { children: React.ReactNode }) => { return ( -

+

{children}

); @@ -37,7 +37,7 @@ export const DocumentSigningFieldsInserted = ({

{ - const { subject, message, distributionMethod, emailSettings } = data.meta; + const { subject, message, distributionMethod, emailId, emailReplyTo, emailSettings } = + data.meta; try { await sendDocument({ @@ -287,7 +288,9 @@ export const DocumentEditForm = ({ subject, message, distributionMethod, - emailSettings, + emailId, + emailReplyTo, + emailSettings: emailSettings, }, }); diff --git a/apps/remix/app/components/general/document/document-upload.tsx b/apps/remix/app/components/general/document/document-upload.tsx index c19929b66..c21fcc5f0 100644 --- a/apps/remix/app/components/general/document/document-upload.tsx +++ b/apps/remix/app/components/general/document/document-upload.tsx @@ -78,7 +78,7 @@ export const DocumentUploadDropzone = ({ className }: DocumentUploadDropzoneProp const { id } = await createDocument({ title: file.name, documentDataId: response.id, - timezone: userTimezone, + timezone: userTimezone, // Note: When migrating to v2 document upload remember to pass this through as a 'userTimezone' field. folderId: folderId ?? undefined, }); diff --git a/apps/remix/app/components/general/organisations/organisation-billing-banner.tsx b/apps/remix/app/components/general/organisations/organisation-billing-banner.tsx index 0a78faaf0..a533ad42e 100644 --- a/apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +++ b/apps/remix/app/components/general/organisations/organisation-billing-banner.tsx @@ -35,7 +35,7 @@ export const OrganisationBillingBanner = () => { const organisation = useOptionalCurrentOrganisation(); const { mutateAsync: manageSubscription, isPending } = - trpc.billing.subscription.manage.useMutation(); + trpc.enterprise.billing.subscription.manage.useMutation(); const handleCreatePortal = async (organisationId: string) => { try { diff --git a/apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx b/apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx index cda0c4ab4..7e4e1cb53 100644 --- a/apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +++ b/apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx @@ -21,7 +21,7 @@ export const OrganisationBillingPortalButton = ({ const { toast } = useToast(); const { mutateAsync: manageSubscription, isPending } = - trpc.billing.subscription.manage.useMutation(); + trpc.enterprise.billing.subscription.manage.useMutation(); const canManageBilling = canExecuteOrganisationAction( 'MANAGE_BILLING', diff --git a/apps/remix/app/components/general/settings-nav-desktop.tsx b/apps/remix/app/components/general/settings-nav-desktop.tsx index 7f4100f87..7be14fe23 100644 --- a/apps/remix/app/components/general/settings-nav-desktop.tsx +++ b/apps/remix/app/components/general/settings-nav-desktop.tsx @@ -46,16 +46,46 @@ export const SettingsDesktopNav = ({ className, ...props }: SettingsDesktopNavPr {isPersonalLayoutMode && ( <> - + + + + + + + + + + + + + diff --git a/apps/remix/app/components/general/settings-nav-mobile.tsx b/apps/remix/app/components/general/settings-nav-mobile.tsx index 196b464ed..5278a6af9 100644 --- a/apps/remix/app/components/general/settings-nav-mobile.tsx +++ b/apps/remix/app/components/general/settings-nav-mobile.tsx @@ -6,6 +6,8 @@ import { CreditCardIcon, Globe2Icon, Lock, + MailIcon, + PaletteIcon, Settings2Icon, User, Users, @@ -48,16 +50,42 @@ export const SettingsMobileNav = ({ className, ...props }: SettingsMobileNavProp {isPersonalLayoutMode && ( <> - + + + + + + + + + diff --git a/apps/remix/app/components/general/share-document-download-button.tsx b/apps/remix/app/components/general/share-document-download-button.tsx index c79ac4f51..5ee7d0453 100644 --- a/apps/remix/app/components/general/share-document-download-button.tsx +++ b/apps/remix/app/components/general/share-document-download-button.tsx @@ -28,10 +28,6 @@ export const ShareDocumentDownloadButton = ({ try { setIsDownloading(true); - await new Promise((resolve) => { - setTimeout(resolve, 4000); - }); - await downloadPDF({ documentData, fileName: title }); } catch (err) { toast({ diff --git a/apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx b/apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx deleted file mode 100644 index 0429b5db2..000000000 --- a/apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import type { HTMLAttributes } from 'react'; - -import { Trans } from '@lingui/react/macro'; -import { Braces, Globe2Icon, GroupIcon, Settings, Settings2, Users, Webhook } from 'lucide-react'; -import { Link, useLocation, useParams } from 'react-router'; - -import { cn } from '@documenso/ui/lib/utils'; -import { Button } from '@documenso/ui/primitives/button'; - -export type TeamSettingsNavDesktopProps = HTMLAttributes; - -export const TeamSettingsNavDesktop = ({ className, ...props }: TeamSettingsNavDesktopProps) => { - const { pathname } = useLocation(); - const params = useParams(); - - const teamUrl = typeof params?.teamUrl === 'string' ? params?.teamUrl : ''; - - const settingsPath = `/t/${teamUrl}/settings`; - const preferencesPath = `/t/${teamUrl}/settings/preferences`; - const publicProfilePath = `/t/${teamUrl}/settings/public-profile`; - const membersPath = `/t/${teamUrl}/settings/members`; - const groupsPath = `/t/${teamUrl}/settings/groups`; - const tokensPath = `/t/${teamUrl}/settings/tokens`; - const webhooksPath = `/t/${teamUrl}/settings/webhooks`; - - return ( -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); -}; diff --git a/apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx b/apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx deleted file mode 100644 index c769cb27d..000000000 --- a/apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import type { HTMLAttributes } from 'react'; - -import { Trans } from '@lingui/react/macro'; -import { Braces, Globe2Icon, GroupIcon, Key, Settings2, User, Webhook } from 'lucide-react'; -import { Link, useLocation, useParams } from 'react-router'; - -import { cn } from '@documenso/ui/lib/utils'; -import { Button } from '@documenso/ui/primitives/button'; - -export type TeamSettingsNavMobileProps = HTMLAttributes; - -export const TeamSettingsNavMobile = ({ className, ...props }: TeamSettingsNavMobileProps) => { - const { pathname } = useLocation(); - const params = useParams(); - - const teamUrl = typeof params?.teamUrl === 'string' ? params?.teamUrl : ''; - - const settingsPath = `/t/${teamUrl}/settings`; - const preferencesPath = `/t/${teamUrl}/preferences`; - const publicProfilePath = `/t/${teamUrl}/settings/public-profile`; - const membersPath = `/t/${teamUrl}/settings/members`; - const groupsPath = `/t/${teamUrl}/settings/groups`; - const tokensPath = `/t/${teamUrl}/settings/tokens`; - const webhooksPath = `/t/${teamUrl}/settings/webhooks`; - - return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); -}; diff --git a/apps/remix/app/components/tables/organisation-billing-invoices-table.tsx b/apps/remix/app/components/tables/organisation-billing-invoices-table.tsx index 43af226df..9cc84d903 100644 --- a/apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +++ b/apps/remix/app/components/tables/organisation-billing-invoices-table.tsx @@ -25,7 +25,7 @@ export const OrganisationBillingInvoicesTable = ({ }: OrganisationBillingInvoicesTableProps) => { const { _ } = useLingui(); - const { data, isLoading, isLoadingError } = trpc.billing.invoices.get.useQuery( + const { data, isLoading, isLoadingError } = trpc.enterprise.billing.invoices.get.useQuery( { organisationId, }, diff --git a/apps/remix/app/components/tables/organisation-email-domains-table.tsx b/apps/remix/app/components/tables/organisation-email-domains-table.tsx new file mode 100644 index 000000000..e864b02a3 --- /dev/null +++ b/apps/remix/app/components/tables/organisation-email-domains-table.tsx @@ -0,0 +1,205 @@ +import { useMemo } from 'react'; + +import { Trans, useLingui } from '@lingui/react/macro'; +import { EmailDomainStatus } from '@prisma/client'; +import { CheckCircle2Icon, ClockIcon } from 'lucide-react'; +import { Link, useSearchParams } from 'react-router'; +import { match } from 'ts-pattern'; + +import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params'; +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; +import { ZUrlSearchParamsSchema } from '@documenso/lib/types/search-params'; +import { trpc } from '@documenso/trpc/react'; +import { AnimateGenericFadeInOut } from '@documenso/ui/components/animate/animate-generic-fade-in-out'; +import { Alert, AlertDescription, AlertTitle } from '@documenso/ui/primitives/alert'; +import { Badge } from '@documenso/ui/primitives/badge'; +import { Button } from '@documenso/ui/primitives/button'; +import type { DataTableColumnDef } from '@documenso/ui/primitives/data-table'; +import { DataTable } from '@documenso/ui/primitives/data-table'; +import { DataTablePagination } from '@documenso/ui/primitives/data-table-pagination'; +import { Skeleton } from '@documenso/ui/primitives/skeleton'; +import { TableCell } from '@documenso/ui/primitives/table'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +import { OrganisationEmailDomainDeleteDialog } from '../dialogs/organisation-email-domain-delete-dialog'; + +export const OrganisationEmailDomainsDataTable = () => { + const { t } = useLingui(); + const { toast } = useToast(); + + const [searchParams] = useSearchParams(); + const updateSearchParams = useUpdateSearchParams(); + const organisation = useCurrentOrganisation(); + + const parsedSearchParams = ZUrlSearchParamsSchema.parse(Object.fromEntries(searchParams ?? [])); + + const { mutate: verifyEmails, isPending: isVerifyingEmails } = + trpc.enterprise.organisation.emailDomain.verify.useMutation({ + onSuccess: () => { + toast({ + title: t`Email domains synced`, + description: t`All email domains have been synced successfully`, + }); + }, + }); + + const { data, isLoading, isLoadingError } = + trpc.enterprise.organisation.emailDomain.find.useQuery( + { + organisationId: organisation.id, + query: parsedSearchParams.query, + page: parsedSearchParams.page, + perPage: parsedSearchParams.perPage, + }, + { + placeholderData: (previousData) => previousData, + }, + ); + + const onPaginationChange = (page: number, perPage: number) => { + updateSearchParams({ + page, + perPage, + }); + }; + + const results = data ?? { + data: [], + perPage: 10, + currentPage: 1, + totalPages: 1, + }; + + const columns = useMemo(() => { + return [ + { + header: t`Domain`, + accessorKey: 'domain', + }, + { + header: t`Status`, + accessorKey: 'status', + cell: ({ row }) => + match(row.original.status) + .with(EmailDomainStatus.ACTIVE, () => ( + + + Active + + )) + .with(EmailDomainStatus.PENDING, () => ( + + + Pending + + )) + .exhaustive(), + }, + { + header: t`Emails`, + accessorKey: 'emailCount', + cell: ({ row }) => row.original.emailCount, + }, + { + header: t`Actions`, + cell: ({ row }) => ( +
+ + + + Delete + + } + /> +
+ ), + }, + ] satisfies DataTableColumnDef<(typeof results)['data'][number]>[]; + }, []); + + return ( + <> + + + + + + + + + + + +
+ + +
+
+ + ), + }} + > + {(table) => + results.totalPages > 1 && ( + + ) + } +
+ + + {results.data.length > 0 && ( + +
+ + Sync Email Domains + + + + + This will check and sync the status of all email domains for this organisation + + +
+ + +
+ )} +
+ + ); +}; diff --git a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx index 4ac4f285e..87326a5fa 100644 --- a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +++ b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx @@ -1,6 +1,13 @@ import { msg } from '@lingui/core/macro'; import { Trans, useLingui } from '@lingui/react/macro'; -import { Building2Icon, CreditCardIcon, GroupIcon, Settings2Icon, Users2Icon } from 'lucide-react'; +import { + Building2Icon, + CreditCardIcon, + GroupIcon, + MailboxIcon, + Settings2Icon, + Users2Icon, +} from 'lucide-react'; import { FaUsers } from 'react-icons/fa6'; import { Link, NavLink, Outlet } from 'react-router'; @@ -30,9 +37,30 @@ export default function SettingsLayout() { icon: Building2Icon, }, { - path: `/o/${organisation.url}/settings/preferences`, + path: `/o/${organisation.url}/settings/document`, label: t`Preferences`, icon: Settings2Icon, + hideHighlight: true, + }, + { + path: `/o/${organisation.url}/settings/document`, + label: t`Document`, + isSubNav: true, + }, + { + path: `/o/${organisation.url}/settings/branding`, + label: t`Branding`, + isSubNav: true, + }, + { + path: `/o/${organisation.url}/settings/email`, + label: t`Email`, + isSubNav: true, + }, + { + path: `/o/${organisation.url}/settings/email-domains`, + label: t`Email Domains`, + icon: MailboxIcon, }, { path: `/o/${organisation.url}/settings/teams`, @@ -54,7 +82,20 @@ export default function SettingsLayout() { label: t`Billing`, icon: CreditCardIcon, }, - ].filter((route) => (isBillingEnabled ? route : !route.path.includes('/billing'))); + ].filter((route) => { + if (!isBillingEnabled && route.path.includes('/billing')) { + return false; + } + + if ( + (!isBillingEnabled || !organisation.organisationClaim.flags.emailDomains) && + route.path.includes('/email-domains') + ) { + return false; + } + + return true; + }); if (!canExecuteOrganisationAction('MANAGE_ORGANISATION', organisation.currentOrganisationRole)) { return ( @@ -93,12 +134,18 @@ export default function SettingsLayout() { )} > {organisationSettingRoutes.map((route) => ( - + diff --git a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx index 992f365fa..d309cf166 100644 --- a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +++ b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx @@ -24,7 +24,7 @@ export default function TeamsSettingBillingPage() { const organisation = useCurrentOrganisation(); const { data: subscriptionQuery, isLoading: isLoadingSubscription } = - trpc.billing.subscription.get.useQuery({ + trpc.enterprise.billing.subscription.get.useQuery({ organisationId: organisation.id, }); diff --git a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx similarity index 64% rename from apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx rename to apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx index 2b2920711..4109835f3 100644 --- a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +++ b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx @@ -5,7 +5,6 @@ import { Link } from 'react-router'; import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; import { useSession } from '@documenso/lib/client-only/providers/session'; import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app'; -import { DocumentSignatureType } from '@documenso/lib/constants/document'; import { putFile } from '@documenso/lib/universal/upload/put-file'; import { canExecuteOrganisationAction, isPersonalLayout } from '@documenso/lib/utils/organisations'; import { trpc } from '@documenso/trpc/react'; @@ -17,21 +16,19 @@ import { BrandingPreferencesForm, type TBrandingPreferencesFormSchema, } from '~/components/forms/branding-preferences-form'; -import { - DocumentPreferencesForm, - type TDocumentPreferencesFormSchema, -} from '~/components/forms/document-preferences-form'; import { SettingsHeader } from '~/components/general/settings-header'; +import { useOptionalCurrentTeam } from '~/providers/team'; import { appMetaTags } from '~/utils/meta'; export function meta() { - return appMetaTags('Preferences'); + return appMetaTags('Branding Preferences'); } -export default function OrganisationSettingsPreferencesPage() { +export default function OrganisationSettingsBrandingPage() { const { organisations } = useSession(); const organisation = useCurrentOrganisation(); + const team = useOptionalCurrentTeam(); const { t } = useLingui(); const { toast } = useToast(); @@ -46,51 +43,6 @@ export default function OrganisationSettingsPreferencesPage() { const { mutateAsync: updateOrganisationSettings } = trpc.organisation.settings.update.useMutation(); - const onDocumentPreferencesFormSubmit = async (data: TDocumentPreferencesFormSchema) => { - try { - const { - documentVisibility, - documentLanguage, - includeSenderDetails, - includeSigningCertificate, - signatureTypes, - } = data; - - if ( - documentVisibility === null || - documentLanguage === null || - includeSenderDetails === null || - includeSigningCertificate === null - ) { - throw new Error('Should not be possible.'); - } - - await updateOrganisationSettings({ - organisationId: organisation.id, - data: { - documentVisibility, - documentLanguage, - includeSenderDetails, - includeSigningCertificate, - typedSignatureEnabled: signatureTypes.includes(DocumentSignatureType.TYPE), - uploadSignatureEnabled: signatureTypes.includes(DocumentSignatureType.UPLOAD), - drawSignatureEnabled: signatureTypes.includes(DocumentSignatureType.DRAW), - }, - }); - - toast({ - title: t`Document preferences updated`, - description: t`Your document preferences have been updated`, - }); - } catch (err) { - toast({ - title: t`Something went wrong!`, - description: t`We were unable to update your document preferences at this time, please try again later`, - variant: 'destructive', - }); - } - }; - const onBrandingPreferencesFormSubmit = async (data: TBrandingPreferencesFormSchema) => { try { const { brandingEnabled, brandingLogo, brandingUrl, brandingCompanyDetails } = data; @@ -132,32 +84,21 @@ export default function OrganisationSettingsPreferencesPage() { ); } - const settingsHeaderText = isPersonalLayoutMode ? t`Preferences` : t`Organisation Preferences`; + const settingsHeaderText = t`Branding Preferences`; + const settingsHeaderSubtitle = isPersonalLayoutMode - ? t`Here you can set your general preferences` - : t`Here you can set preferences and defaults for your organisation. Teams will inherit these settings by default.`; + ? t`Here you can set your general branding preferences` + : team + ? t`Here you can set branding preferences for your team` + : t`Here you can set branding preferences for your organisation. Teams will inherit these settings by default.`; return (
-
- -
- {organisationWithSettings.organisationClaim.flags.allowCustomBranding || !IS_BILLING_ENABLED() ? (
- - { + try { + const { + documentVisibility, + documentLanguage, + documentTimezone, + documentDateFormat, + includeSenderDetails, + includeSigningCertificate, + signatureTypes, + } = data; + + if ( + documentVisibility === null || + documentLanguage === null || + documentDateFormat === null || + includeSenderDetails === null || + includeSigningCertificate === null + ) { + throw new Error('Should not be possible.'); + } + + await updateOrganisationSettings({ + organisationId: organisation.id, + data: { + documentVisibility, + documentLanguage, + documentTimezone, + documentDateFormat, + includeSenderDetails, + includeSigningCertificate, + typedSignatureEnabled: signatureTypes.includes(DocumentSignatureType.TYPE), + uploadSignatureEnabled: signatureTypes.includes(DocumentSignatureType.UPLOAD), + drawSignatureEnabled: signatureTypes.includes(DocumentSignatureType.DRAW), + }, + }); + + toast({ + title: t`Document preferences updated`, + description: t`Your document preferences have been updated`, + }); + } catch (err) { + toast({ + title: t`Something went wrong!`, + description: t`We were unable to update your document preferences at this time, please try again later`, + variant: 'destructive', + }); + } + }; + + if (isLoadingOrganisation || !organisationWithSettings) { + return ( +
+ +
+ ); + } + + const settingsHeaderText = t`Document Preferences`; + const settingsHeaderSubtitle = isPersonalLayoutMode + ? t`Here you can set your general document preferences` + : t`Here you can set document preferences for your organisation. Teams will inherit these settings by default.`; + + return ( +
+ + +
+ +
+
+ ); +} diff --git a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx new file mode 100644 index 000000000..e495d82ea --- /dev/null +++ b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx @@ -0,0 +1,207 @@ +import { useMemo } from 'react'; + +import { msg } from '@lingui/core/macro'; +import { useLingui } from '@lingui/react/macro'; +import { Trans } from '@lingui/react/macro'; +import { EditIcon, MoreHorizontalIcon, Trash2Icon } from 'lucide-react'; +import { Link } from 'react-router'; + +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; +import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app'; +import { generateEmailDomainRecords } from '@documenso/lib/utils/email-domains'; +import { trpc } from '@documenso/trpc/react'; +import type { TGetOrganisationEmailDomainResponse } from '@documenso/trpc/server/enterprise-router/get-organisation-email-domain.types'; +import { Alert, AlertDescription, AlertTitle } from '@documenso/ui/primitives/alert'; +import { Button } from '@documenso/ui/primitives/button'; +import { DataTable, type DataTableColumnDef } from '@documenso/ui/primitives/data-table'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuTrigger, +} from '@documenso/ui/primitives/dropdown-menu'; +import { SpinnerBox } from '@documenso/ui/primitives/spinner'; + +import { OrganisationEmailCreateDialog } from '~/components/dialogs/organisation-email-create-dialog'; +import { OrganisationEmailDeleteDialog } from '~/components/dialogs/organisation-email-delete-dialog'; +import { OrganisationEmailDomainDeleteDialog } from '~/components/dialogs/organisation-email-domain-delete-dialog'; +import { OrganisationEmailDomainRecordsDialog } from '~/components/dialogs/organisation-email-domain-records-dialog'; +import { OrganisationEmailUpdateDialog } from '~/components/dialogs/organisation-email-update-dialog'; +import { GenericErrorLayout } from '~/components/general/generic-error-layout'; +import { SettingsHeader } from '~/components/general/settings-header'; + +import type { Route } from './+types/o.$orgUrl.settings.groups.$id'; + +export default function OrganisationEmailDomainSettingsPage({ params }: Route.ComponentProps) { + const { t } = useLingui(); + + const organisation = useCurrentOrganisation(); + + const emailDomainId = params.id; + + const { data: emailDomain, isLoading: isLoadingEmailDomain } = + trpc.enterprise.organisation.emailDomain.get.useQuery( + { + emailDomainId, + }, + { + enabled: !!emailDomainId, + }, + ); + + const emailColumns = useMemo(() => { + return [ + { + header: t`Name`, + accessorKey: 'emailName', + }, + { + header: t`Email`, + accessorKey: 'email', + }, + { + header: t`Actions`, + cell: ({ row }) => ( + + + + + + + + Actions + + + e.preventDefault()}> + + Update + + } + /> + + e.preventDefault()}> + + Remove + + } + /> + + + ), + }, + ] satisfies DataTableColumnDef[]; + }, [organisation]); + + if (!IS_BILLING_ENABLED()) { + return null; + } + + if (isLoadingEmailDomain) { + return ; + } + + // Todo: Update UI, currently out of place. + if (!emailDomain) { + return ( + + + Go back + + + } + secondaryButton={null} + /> + ); + } + + const records = generateEmailDomainRecords(emailDomain.selector, emailDomain.publicKey); + + return ( +
+ + + + +
+ + +
+ +
+
+ + +
+ + DNS Records + + + + View the DNS records for this email domain + +
+ + + View DNS Records + + } + /> +
+ + +
+ + Delete email domain + + + + This will remove all emails associated with this email domain + +
+ + + Delete Email Domain + + } + /> +
+
+ ); +} diff --git a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx new file mode 100644 index 000000000..e2b988a79 --- /dev/null +++ b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx @@ -0,0 +1,81 @@ +import { Trans, useLingui } from '@lingui/react/macro'; +import { Link } from 'react-router'; + +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; +import { useSession } from '@documenso/lib/client-only/providers/session'; +import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app'; +import { canExecuteOrganisationAction, isPersonalLayout } from '@documenso/lib/utils/organisations'; +import { Alert, AlertDescription, AlertTitle } from '@documenso/ui/primitives/alert'; +import { Button } from '@documenso/ui/primitives/button'; + +import { OrganisationEmailDomainCreateDialog } from '~/components/dialogs/organisation-email-domain-create-dialog'; +import { SettingsHeader } from '~/components/general/settings-header'; +import { OrganisationEmailDomainsDataTable } from '~/components/tables/organisation-email-domains-table'; +import { appMetaTags } from '~/utils/meta'; + +export function meta() { + return appMetaTags('Email Domains'); +} + +export default function OrganisationSettingsEmailDomains() { + const { t } = useLingui(); + const { organisations } = useSession(); + + const organisation = useCurrentOrganisation(); + + const isPersonalLayoutMode = isPersonalLayout(organisations); + + const isEmailDomainsEnabled = organisation.organisationClaim.flags.emailDomains; + + if (!IS_BILLING_ENABLED()) { + return null; + } + + return ( +
+ + {isEmailDomainsEnabled && } + + + {isEmailDomainsEnabled ? ( +
+ +
+ ) : ( + +
+ + Email Domains + + + + + Currently email domains can only be configured for Platform and above plans. + + +
+ + {canExecuteOrganisationAction('MANAGE_BILLING', organisation.currentOrganisationRole) && ( + + )} +
+ )} +
+ ); +} diff --git a/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx new file mode 100644 index 000000000..7d74e5776 --- /dev/null +++ b/apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx @@ -0,0 +1,80 @@ +import { useLingui } from '@lingui/react/macro'; + +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; +import { trpc } from '@documenso/trpc/react'; +import { SpinnerBox } from '@documenso/ui/primitives/spinner'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +import { + EmailPreferencesForm, + type TEmailPreferencesFormSchema, +} from '~/components/forms/email-preferences-form'; +import { SettingsHeader } from '~/components/general/settings-header'; +import { appMetaTags } from '~/utils/meta'; + +export function meta() { + return appMetaTags('Email Preferences'); +} + +export default function OrganisationSettingsGeneral() { + const { t } = useLingui(); + const { toast } = useToast(); + + const organisation = useCurrentOrganisation(); + + const { data: organisationWithSettings, isLoading: isLoadingOrganisation } = + trpc.organisation.get.useQuery({ + organisationReference: organisation.url, + }); + + const { mutateAsync: updateOrganisationSettings } = + trpc.organisation.settings.update.useMutation(); + + const onEmailPreferencesSubmit = async (data: TEmailPreferencesFormSchema) => { + try { + const { emailId, emailReplyTo, emailDocumentSettings } = data; + + await updateOrganisationSettings({ + organisationId: organisation.id, + data: { + emailId, + emailReplyTo: emailReplyTo || null, + // emailReplyToName, + emailDocumentSettings, + }, + }); + + toast({ + title: t`Email preferences updated`, + description: t`Your email preferences have been updated`, + }); + } catch (err) { + toast({ + title: t`Something went wrong!`, + description: t`We were unable to update your email preferences at this time, please try again later`, + variant: 'destructive', + }); + } + }; + + if (isLoadingOrganisation || !organisationWithSettings) { + return ; + } + + return ( +
+ + +
+ +
+
+ ); +} diff --git a/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/branding.tsx b/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/branding.tsx new file mode 100644 index 000000000..80a662596 --- /dev/null +++ b/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/branding.tsx @@ -0,0 +1,5 @@ +import BrandingPage, { meta } from '../../o.$orgUrl.settings.branding'; + +export { meta }; + +export default BrandingPage; diff --git a/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/document.tsx b/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/document.tsx new file mode 100644 index 000000000..697d2fc37 --- /dev/null +++ b/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/document.tsx @@ -0,0 +1,5 @@ +import DocumentPage, { meta } from '../../o.$orgUrl.settings.document'; + +export { meta }; + +export default DocumentPage; diff --git a/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/email.tsx b/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/email.tsx new file mode 100644 index 000000000..c076fe1c3 --- /dev/null +++ b/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/email.tsx @@ -0,0 +1,5 @@ +import EmailPage, { meta } from '../../o.$orgUrl.settings.email'; + +export { meta }; + +export default EmailPage; diff --git a/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/preferences.tsx b/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/preferences.tsx deleted file mode 100644 index db082d779..000000000 --- a/apps/remix/app/routes/_authenticated+/settings+/_dynamic_personal_routes+/preferences.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import PreferencesPage, { meta } from '../../o.$orgUrl.settings.preferences'; - -export { meta }; - -export default PreferencesPage; diff --git a/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx b/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx index 004f8aa7a..ab98512f9 100644 --- a/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +++ b/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx @@ -1,15 +1,23 @@ import { msg } from '@lingui/core/macro'; -import { Trans } from '@lingui/react/macro'; -import { Link, Outlet, redirect } from 'react-router'; +import { Trans, useLingui } from '@lingui/react/macro'; +import { + BracesIcon, + Globe2Icon, + GroupIcon, + Settings2Icon, + SettingsIcon, + Users2Icon, + WebhookIcon, +} from 'lucide-react'; +import { Link, NavLink, Outlet, redirect } from 'react-router'; import { getSession } from '@documenso/auth/server/lib/utils/get-session'; import { getTeamByUrl } from '@documenso/lib/server-only/team/get-team'; import { canExecuteTeamAction } from '@documenso/lib/utils/teams'; +import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; import { GenericErrorLayout } from '~/components/general/generic-error-layout'; -import { TeamSettingsNavDesktop } from '~/components/general/teams/team-settings-nav-desktop'; -import { TeamSettingsNavMobile } from '~/components/general/teams/team-settings-nav-mobile'; import { useCurrentTeam } from '~/providers/team'; import { appMetaTags } from '~/utils/meta'; @@ -37,8 +45,64 @@ export async function clientLoader() { } export default function TeamsSettingsLayout() { + const { t } = useLingui(); + const team = useCurrentTeam(); + const teamSettingRoutes = [ + { + path: `/t/${team.url}/settings`, + label: t`General`, + icon: SettingsIcon, + }, + { + path: `/t/${team.url}/settings/document`, + label: t`Preferences`, + icon: Settings2Icon, + isSubNavParent: true, + }, + { + path: `/t/${team.url}/settings/document`, + label: t`Document`, + isSubNav: true, + }, + { + path: `/t/${team.url}/settings/branding`, + label: t`Branding`, + isSubNav: true, + }, + { + path: `/t/${team.url}/settings/email`, + label: t`Email`, + isSubNav: true, + }, + { + path: `/t/${team.url}/settings/public-profile`, + label: t`Public Profile`, + icon: Globe2Icon, + }, + { + path: `/t/${team.url}/settings/members`, + label: t`Members`, + icon: Users2Icon, + }, + { + path: `/t/${team.url}/settings/groups`, + label: t`Groups`, + icon: GroupIcon, + }, + { + path: `/t/${team.url}/settings/tokens`, + label: t`API Tokens`, + icon: BracesIcon, + }, + { + path: `/t/${team.url}/settings/webhooks`, + label: t`Webhooks`, + icon: WebhookIcon, + }, + ]; + if (!canExecuteTeamAction('MANAGE_TEAM', team.currentTeamRole)) { return (
- - +
+ {teamSettingRoutes.map((route) => ( + + + + ))} +
diff --git a/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx b/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx new file mode 100644 index 000000000..e13bcd030 --- /dev/null +++ b/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx @@ -0,0 +1,94 @@ +import { useLingui } from '@lingui/react/macro'; +import { Loader } from 'lucide-react'; + +import { putFile } from '@documenso/lib/universal/upload/put-file'; +import { trpc } from '@documenso/trpc/react'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +import { + BrandingPreferencesForm, + type TBrandingPreferencesFormSchema, +} from '~/components/forms/branding-preferences-form'; +import { SettingsHeader } from '~/components/general/settings-header'; +import { useCurrentTeam } from '~/providers/team'; +import { appMetaTags } from '~/utils/meta'; + +export function meta() { + return appMetaTags('Branding Preferences'); +} + +export default function TeamsSettingsPage() { + const team = useCurrentTeam(); + + const { t } = useLingui(); + const { toast } = useToast(); + + const { data: teamWithSettings, isLoading: isLoadingTeam } = trpc.team.get.useQuery({ + teamReference: team.id, + }); + + const { mutateAsync: updateTeamSettings } = trpc.team.settings.update.useMutation(); + + const onBrandingPreferencesFormSubmit = async (data: TBrandingPreferencesFormSchema) => { + try { + const { brandingEnabled, brandingLogo, brandingUrl, brandingCompanyDetails } = data; + + let uploadedBrandingLogo = teamWithSettings?.teamSettings?.brandingLogo; + + if (brandingLogo) { + uploadedBrandingLogo = JSON.stringify(await putFile(brandingLogo)); + } + + if (brandingLogo === null) { + uploadedBrandingLogo = ''; + } + + await updateTeamSettings({ + teamId: team.id, + data: { + brandingEnabled, + brandingLogo: uploadedBrandingLogo || null, + brandingUrl: brandingUrl || null, + brandingCompanyDetails: brandingCompanyDetails || null, + }, + }); + + toast({ + title: t`Branding preferences updated`, + description: t`Your branding preferences have been updated`, + }); + } catch (err) { + toast({ + title: t`Something went wrong`, + description: t`We were unable to update your branding preferences at this time, please try again later`, + variant: 'destructive', + }); + } + }; + + if (isLoadingTeam || !teamWithSettings) { + return ( +
+ +
+ ); + } + + return ( +
+ + +
+ +
+
+ ); +} diff --git a/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx b/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx similarity index 61% rename from apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx rename to apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx index c7d631de9..45c376077 100644 --- a/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +++ b/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx @@ -2,14 +2,9 @@ import { useLingui } from '@lingui/react/macro'; import { Loader } from 'lucide-react'; import { DocumentSignatureType } from '@documenso/lib/constants/document'; -import { putFile } from '@documenso/lib/universal/upload/put-file'; import { trpc } from '@documenso/trpc/react'; import { useToast } from '@documenso/ui/primitives/use-toast'; -import { - BrandingPreferencesForm, - type TBrandingPreferencesFormSchema, -} from '~/components/forms/branding-preferences-form'; import { DocumentPreferencesForm, type TDocumentPreferencesFormSchema, @@ -19,7 +14,7 @@ import { useCurrentTeam } from '~/providers/team'; import { appMetaTags } from '~/utils/meta'; export function meta() { - return appMetaTags('Preferences'); + return appMetaTags('Document Preferences'); } export default function TeamsSettingsPage() { @@ -39,6 +34,8 @@ export default function TeamsSettingsPage() { const { documentVisibility, documentLanguage, + documentTimezone, + documentDateFormat, includeSenderDetails, includeSigningCertificate, signatureTypes, @@ -49,6 +46,8 @@ export default function TeamsSettingsPage() { data: { documentVisibility, documentLanguage, + documentTimezone, + documentDateFormat, includeSenderDetails, includeSigningCertificate, ...(signatureTypes.length === 0 @@ -78,43 +77,6 @@ export default function TeamsSettingsPage() { } }; - const onBrandingPreferencesFormSubmit = async (data: TBrandingPreferencesFormSchema) => { - try { - const { brandingEnabled, brandingLogo, brandingUrl, brandingCompanyDetails } = data; - - let uploadedBrandingLogo = teamWithSettings?.teamSettings?.brandingLogo; - - if (brandingLogo) { - uploadedBrandingLogo = JSON.stringify(await putFile(brandingLogo)); - } - - if (brandingLogo === null) { - uploadedBrandingLogo = ''; - } - - await updateTeamSettings({ - teamId: team.id, - data: { - brandingEnabled, - brandingLogo: uploadedBrandingLogo || null, - brandingUrl: brandingUrl || null, - brandingCompanyDetails: brandingCompanyDetails || null, - }, - }); - - toast({ - title: t`Branding preferences updated`, - description: t`Your branding preferences have been updated`, - }); - } catch (err) { - toast({ - title: t`Something went wrong`, - description: t`We were unable to update your branding preferences at this time, please try again later`, - variant: 'destructive', - }); - } - }; - if (isLoadingTeam || !teamWithSettings) { return (
@@ -126,7 +88,7 @@ export default function TeamsSettingsPage() { return (
@@ -137,21 +99,6 @@ export default function TeamsSettingsPage() { onFormSubmit={onDocumentPreferencesSubmit} />
- - - -
- -
); } diff --git a/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx b/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx new file mode 100644 index 000000000..f1fed0374 --- /dev/null +++ b/apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx @@ -0,0 +1,78 @@ +import { useLingui } from '@lingui/react/macro'; + +import { trpc } from '@documenso/trpc/react'; +import { SpinnerBox } from '@documenso/ui/primitives/spinner'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +import { + EmailPreferencesForm, + type TEmailPreferencesFormSchema, +} from '~/components/forms/email-preferences-form'; +import { SettingsHeader } from '~/components/general/settings-header'; +import { useCurrentTeam } from '~/providers/team'; +import { appMetaTags } from '~/utils/meta'; + +export function meta() { + return appMetaTags('Settings'); +} + +export default function TeamEmailSettingsGeneral() { + const { t } = useLingui(); + const { toast } = useToast(); + + const team = useCurrentTeam(); + + const { data: teamWithSettings, isLoading: isLoadingTeam } = trpc.team.get.useQuery({ + teamReference: team.url, + }); + + const { mutateAsync: updateTeamSettings } = trpc.team.settings.update.useMutation(); + + const onEmailPreferencesSubmit = async (data: TEmailPreferencesFormSchema) => { + try { + const { emailId, emailReplyTo, emailDocumentSettings } = data; + + await updateTeamSettings({ + teamId: team.id, + data: { + emailId, + emailReplyTo, + // emailReplyToName, + emailDocumentSettings, + }, + }); + + toast({ + title: t`Email preferences updated`, + description: t`Your email preferences have been updated`, + }); + } catch (err) { + toast({ + title: t`Something went wrong!`, + description: t`We were unable to update your email preferences at this time, please try again later`, + variant: 'destructive', + }); + } + }; + + if (isLoadingTeam || !teamWithSettings) { + return ; + } + + return ( +
+ + +
+ +
+
+ ); +} diff --git a/package-lock.json b/package-lock.json index da1f7c26f..e07bdf900 100644 --- a/package-lock.json +++ b/package-lock.json @@ -514,6 +514,534 @@ "node": ">=18.0.0" } }, + "node_modules/@aws-sdk/client-sesv2": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sesv2/-/client-sesv2-3.828.0.tgz", + "integrity": "sha512-pJQE+D1Su2sbYcSwqgq/fgkPMY1c/h90ntvwknGiTlHJRWoF8MRHJ65+PaLBiS6nGvjEtTE1+Y1YQDA7etrRNg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.828.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.828.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/signature-v4-multi-region": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.828.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.828.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/client-sso": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.828.0.tgz", + "integrity": "sha512-qxw8JcPTaFaBwTBUr4YmLajaMh3En65SuBWAKEtjctbITRRekzR7tvr/TkwoyVOh+XoAtkwOn+BQeQbX+/wgHw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.828.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.828.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.828.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/core": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.826.0.tgz", + "integrity": "sha512-BGbQYzWj3ps+dblq33FY5tz/SsgJCcXX0zjQlSC07tYvU1jHTUvsefphyig+fY38xZ4wdKjbTop+KUmXUYrOXw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@aws-sdk/xml-builder": "3.821.0", + "@smithy/core": "^3.5.3", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/property-provider": "^4.0.4", + "@smithy/protocol-http": "^5.1.2", + "@smithy/signature-v4": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-utf8": "^4.0.0", + "fast-xml-parser": "4.4.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.826.0.tgz", + "integrity": "sha512-DK3pQY8+iKK3MGDdC3uOZQ2psU01obaKlTYhEwNu4VWzgwQL4Vi3sWj4xSWGEK41vqZxiRLq6fOq7ysRI+qEZA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.826.0.tgz", + "integrity": "sha512-N+IVZBh+yx/9GbMZTKO/gErBi/FYZQtcFRItoLbY+6WU+0cSWyZYfkoeOxHmQV3iX9k65oljERIWUmL9x6OSQg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/property-provider": "^4.0.4", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/util-stream": "^4.2.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.828.0.tgz", + "integrity": "sha512-T3DJMo2/j7gCPpFg2+xEHWgua05t8WP89ye7PaZxA2Fc6CgScHkZsJZTri1QQIU2h+eOZ75EZWkeFLIPgN0kRQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-env": "3.826.0", + "@aws-sdk/credential-provider-http": "3.826.0", + "@aws-sdk/credential-provider-process": "3.826.0", + "@aws-sdk/credential-provider-sso": "3.828.0", + "@aws-sdk/credential-provider-web-identity": "3.828.0", + "@aws-sdk/nested-clients": "3.828.0", + "@aws-sdk/types": "3.821.0", + "@smithy/credential-provider-imds": "^4.0.6", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.828.0.tgz", + "integrity": "sha512-9z3iPwVYOQYNzVZj8qycZaS/BOSKRXWA+QVNQlfEnQ4sA4sOcKR4kmV2h+rJcuBsSFfmOF62ZDxyIBGvvM4t/w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.826.0", + "@aws-sdk/credential-provider-http": "3.826.0", + "@aws-sdk/credential-provider-ini": "3.828.0", + "@aws-sdk/credential-provider-process": "3.826.0", + "@aws-sdk/credential-provider-sso": "3.828.0", + "@aws-sdk/credential-provider-web-identity": "3.828.0", + "@aws-sdk/types": "3.821.0", + "@smithy/credential-provider-imds": "^4.0.6", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.826.0.tgz", + "integrity": "sha512-kURrc4amu3NLtw1yZw7EoLNEVhmOMRUTs+chaNcmS+ERm3yK0nKjaJzmKahmwlTQTSl3wJ8jjK7x962VPo+zWw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.828.0.tgz", + "integrity": "sha512-9CEAXzUDSzOjOCb3XfM15TZhTaM+l07kumZyx2z8NC6T2U4qbCJqn4h8mFlRvYrs6cBj2SN40sD3r5Wp0Cq2Kw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.828.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/token-providers": "3.828.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.828.0.tgz", + "integrity": "sha512-MguDhGHlQBeK9CQ/P4NOY0whAJ4HJU4x+f1dphg3I1sGlccFqfB8Moor2vXNKu0Th2kvAwkn9pr7gGb/+NGR9g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/nested-clients": "3.828.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.821.0.tgz", + "integrity": "sha512-xSMR+sopSeWGx5/4pAGhhfMvGBHioVBbqGvDs6pG64xfNwM5vq5s5v6D04e2i+uSTj4qGa71dLUs5I0UzAK3sw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/middleware-logger": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.821.0.tgz", + "integrity": "sha512-0cvI0ipf2tGx7fXYEEN5fBeZDz2RnHyb9xftSgUsEq7NBxjV0yTZfLJw6Za5rjE6snC80dRN8+bTNR1tuG89zA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.821.0.tgz", + "integrity": "sha512-efmaifbhBoqKG3bAoEfDdcM8hn1psF+4qa7ykWuYmfmah59JBeqHLfz5W9m9JoTwoKPkFcVLWZxnyZzAnVBOIg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.826.0.tgz", + "integrity": "sha512-8F0qWaYKfvD/de1AKccXuigM+gb/IZSncCqxdnFWqd+TFzo9qI9Hh+TpUhWOMYSgxsMsYQ8ipmLzlD/lDhjrmA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-arn-parser": "3.804.0", + "@smithy/core": "^3.5.3", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/protocol-http": "^5.1.2", + "@smithy/signature-v4": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-stream": "^4.2.2", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.828.0.tgz", + "integrity": "sha512-nixvI/SETXRdmrVab4D9LvXT3lrXkwAWGWk2GVvQvzlqN1/M/RfClj+o37Sn4FqRkGH9o9g7Fqb1YqZ4mqDAtA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.828.0", + "@smithy/core": "^3.5.3", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/nested-clients": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.828.0.tgz", + "integrity": "sha512-xmeOILiR9LvfC8MctgeRXXN8nQTwbOvO4wHvgE8tDRsjnBpyyO0j50R4+viHXdMUGtgGkHEXRv8fFNBq54RgnA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.828.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.828.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.828.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.821.0.tgz", + "integrity": "sha512-t8og+lRCIIy5nlId0bScNpCkif8sc0LhmtaKsbm0ZPm3sCa/WhCbSZibjbZ28FNjVCV+p0D9RYZx0VDDbtWyjw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/types": "^4.3.1", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.826.0.tgz", + "integrity": "sha512-3fEi/zy6tpMzomYosksGtu7jZqGFcdBXoL7YRsG7OEeQzBbOW9B+fVaQZ4jnsViSjzA/yKydLahMrfPnt+iaxg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/signature-v4": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/token-providers": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.828.0.tgz", + "integrity": "sha512-JdOjI/TxkfQpY/bWbdGMdCiePESXTbtl6MfnJxz35zZ3tfHvBnxAWCoYJirdmjzY/j/dFo5oEyS6mQuXAG9w2w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/nested-clients": "3.828.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/types": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.821.0.tgz", + "integrity": "sha512-Znroqdai1a90TlxGaJ+FK1lwC0fHpo97Xjsp5UKGR5JODYm7f9+/fF17ebO1KdoBr/Rm0UIFiF5VmI8ts9F1eA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/util-endpoints": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.828.0.tgz", + "integrity": "sha512-RvKch111SblqdkPzg3oCIdlGxlQs+k+P7Etory9FmxPHyPDvsP1j1c74PmgYqtzzMWmoXTjd+c9naUHh9xG8xg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/types": "^4.3.1", + "@smithy/util-endpoints": "^3.0.6", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.821.0.tgz", + "integrity": "sha512-irWZHyM0Jr1xhC+38OuZ7JB6OXMLPZlj48thElpsO1ZSLRkLZx5+I7VV6k3sp2yZ7BYbKz/G2ojSv4wdm7XTLw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/types": "^4.3.1", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.828.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.828.0.tgz", + "integrity": "sha512-LdN6fTBzTlQmc8O8f1wiZN0qF3yBWVGis7NwpWK7FUEzP9bEZRxYfIkV9oV9zpt6iNRze1SedK3JQVB/udxBoA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-user-agent": "3.828.0", + "@aws-sdk/types": "3.821.0", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-sesv2/node_modules/@aws-sdk/xml-builder": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.821.0.tgz", + "integrity": "sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@aws-sdk/client-sso": { "version": "3.812.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.812.0.tgz", @@ -9906,12 +10434,12 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.3.tgz", - "integrity": "sha512-AqXFf6DXnuRBXy4SoK/n1mfgHaKaq36bmkphmD1KO0nHq6xK/g9KHSW4HEsPQUBCGdIEfuJifGHwxFXPIFay9Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.4.tgz", + "integrity": "sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -9944,15 +10472,15 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.3.tgz", - "integrity": "sha512-N5e7ofiyYDmHxnPnqF8L4KtsbSDwyxFRfDK9bp1d9OyPO4ytRLd0/XxCqi5xVaaqB65v4woW8uey6jND6zxzxQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.4.tgz", + "integrity": "sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.1.2", - "@smithy/types": "^4.3.0", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/types": "^4.3.1", "@smithy/util-config-provider": "^4.0.0", - "@smithy/util-middleware": "^4.0.3", + "@smithy/util-middleware": "^4.0.4", "tslib": "^2.6.2" }, "engines": { @@ -9960,17 +10488,18 @@ } }, "node_modules/@smithy/core": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.4.0.tgz", - "integrity": "sha512-dDYISQo7k0Ml/rXlFIjkTmTcQze/LxhtIRAEmZ6HJ/EI0inVxVEVnrUXJ7jPx6ZP0GHUhFm40iQcCgS5apXIXA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.5.3.tgz", + "integrity": "sha512-xa5byV9fEguZNofCclv6v9ra0FYh5FATQW/da7FQUVTic94DfrN/NvmKZjrMyzbpqfot9ZjBaO8U1UeTbmSLuA==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^4.0.6", - "@smithy/protocol-http": "^5.1.1", - "@smithy/types": "^4.3.0", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", - "@smithy/util-middleware": "^4.0.3", - "@smithy/util-stream": "^4.2.1", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-stream": "^4.2.2", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" }, @@ -9979,15 +10508,15 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.5.tgz", - "integrity": "sha512-saEAGwrIlkb9XxX/m5S5hOtzjoJPEK6Qw2f9pYTbIsMPOFyGSXBBTw95WbOyru8A1vIS2jVCCU1Qhz50QWG3IA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.6.tgz", + "integrity": "sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.1.2", - "@smithy/property-provider": "^4.0.3", - "@smithy/types": "^4.3.0", - "@smithy/url-parser": "^4.0.3", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/property-provider": "^4.0.4", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", "tslib": "^2.6.2" }, "engines": { @@ -10065,14 +10594,14 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.0.3.tgz", - "integrity": "sha512-yBZwavI31roqTndNI7ONHqesfH01JmjJK6L3uUpZAhyAmr86LN5QiPzfyZGIxQmed8VEK2NRSQT3/JX5V1njfQ==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.0.4.tgz", + "integrity": "sha512-AMtBR5pHppYMVD7z7G+OlHHAcgAN7v0kVKEpHuTO4Gb199Gowh0taYi9oDStFeUhetkeP55JLSVlTW1n9rFtUw==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.1.1", - "@smithy/querystring-builder": "^4.0.3", - "@smithy/types": "^4.3.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/querystring-builder": "^4.0.4", + "@smithy/types": "^4.3.1", "@smithy/util-base64": "^4.0.0", "tslib": "^2.6.2" }, @@ -10096,12 +10625,12 @@ } }, "node_modules/@smithy/hash-node": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.3.tgz", - "integrity": "sha512-W5Uhy6v/aYrgtjh9y0YP332gIQcwccQ+EcfWhllL0B9rPae42JngTTUpb8W6wuxaNFzqps4xq5klHckSSOy5fw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.4.tgz", + "integrity": "sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "@smithy/util-buffer-from": "^4.0.0", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" @@ -10125,12 +10654,12 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.3.tgz", - "integrity": "sha512-1Bo8Ur1ZGqxvwTqBmv6DZEn0rXtwJGeqiiO2/JFcCtz3nBakOqeXbJBElXJMMzd0ghe8+eB6Dkw98nMYctgizg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.4.tgz", + "integrity": "sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10164,13 +10693,13 @@ } }, "node_modules/@smithy/middleware-content-length": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.3.tgz", - "integrity": "sha512-NE/Zph4BP5u16bzYq2csq9qD0T6UBLeg4AuNrwNJ7Gv9uLYaGEgelZUOdRndGdMGcUfSGvNlXGb2aA2hPCwJ6g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.4.tgz", + "integrity": "sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.1.1", - "@smithy/types": "^4.3.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10178,18 +10707,18 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.7.tgz", - "integrity": "sha512-KDzM7Iajo6K7eIWNNtukykRT4eWwlHjCEsULZUaSfi/SRSBK8BPRqG5FsVfp58lUxcvre8GT8AIPIqndA0ERKw==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.11.tgz", + "integrity": "sha512-zDogwtRLzKl58lVS8wPcARevFZNBOOqnmzWWxVe9XiaXU2CADFjvJ9XfNibgkOWs08sxLuSr81NrpY4mgp9OwQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.4.0", - "@smithy/middleware-serde": "^4.0.6", - "@smithy/node-config-provider": "^4.1.2", - "@smithy/shared-ini-file-loader": "^4.0.3", - "@smithy/types": "^4.3.0", - "@smithy/url-parser": "^4.0.3", - "@smithy/util-middleware": "^4.0.3", + "@smithy/core": "^3.5.3", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-middleware": "^4.0.4", "tslib": "^2.6.2" }, "engines": { @@ -10197,18 +10726,18 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.1.8.tgz", - "integrity": "sha512-e2OtQgFzzlSG0uCjcJmi02QuFSRTrpT11Eh2EcqqDFy7DYriteHZJkkf+4AsxsrGDugAtPFcWBz1aq06sSX5fQ==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.1.12.tgz", + "integrity": "sha512-wvIH70c4e91NtRxdaLZF+mbLZ/HcC6yg7ySKUiufL6ESp6zJUSnJucZ309AvG9nqCFHSRB5I6T3Ez1Q9wCh0Ww==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.1.2", - "@smithy/protocol-http": "^5.1.1", - "@smithy/service-error-classification": "^4.0.4", - "@smithy/smithy-client": "^4.3.0", - "@smithy/types": "^4.3.0", - "@smithy/util-middleware": "^4.0.3", - "@smithy/util-retry": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/protocol-http": "^5.1.2", + "@smithy/service-error-classification": "^4.0.5", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -10217,13 +10746,13 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.6.tgz", - "integrity": "sha512-YECyl7uNII+jCr/9qEmCu8xYL79cU0fqjo0qxpcVIU18dAPHam/iYwcknAu4Jiyw1uN+sAx7/SMf/Kmef/Jjsg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.8.tgz", + "integrity": "sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.1.1", - "@smithy/types": "^4.3.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10231,12 +10760,12 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.3.tgz", - "integrity": "sha512-baeV7t4jQfQtFxBADFmnhmqBmqR38dNU5cvEgHcMK/Kp3D3bEI0CouoX2Sr/rGuntR+Eg0IjXdxnGGTc6SbIkw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.4.tgz", + "integrity": "sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10244,14 +10773,14 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.1.2.tgz", - "integrity": "sha512-SUvNup8iU1v7fmM8XPk+27m36udmGCfSz+VZP5Gb0aJ3Ne0X28K/25gnsrg3X1rWlhcnhzNUUysKW/Ied46ivQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.1.3.tgz", + "integrity": "sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.0.3", - "@smithy/shared-ini-file-loader": "^4.0.3", - "@smithy/types": "^4.3.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10259,15 +10788,15 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.0.5.tgz", - "integrity": "sha512-T7QglZC1vS7SPT44/1qSIAQEx5bFKb3LfO6zw/o4Xzt1eC5HNoH1TkS4lMYA9cWFbacUhx4hRl/blLun4EOCkg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.0.6.tgz", + "integrity": "sha512-NqbmSz7AW2rvw4kXhKGrYTiJVDHnMsFnX4i+/FzcZAfbOBauPYs2ekuECkSbtqaxETLLTu9Rl/ex6+I2BKErPA==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^4.0.3", - "@smithy/protocol-http": "^5.1.1", - "@smithy/querystring-builder": "^4.0.3", - "@smithy/types": "^4.3.0", + "@smithy/abort-controller": "^4.0.4", + "@smithy/protocol-http": "^5.1.2", + "@smithy/querystring-builder": "^4.0.4", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10275,12 +10804,12 @@ } }, "node_modules/@smithy/property-provider": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.3.tgz", - "integrity": "sha512-Wcn17QNdawJZcZZPBuMuzyBENVi1AXl4TdE0jvzo4vWX2x5df/oMlmr/9M5XAAC6+yae4kWZlOYIsNsgDrMU9A==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.4.tgz", + "integrity": "sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10288,12 +10817,12 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.1.1.tgz", - "integrity": "sha512-Vsay2mzq05DwNi9jK01yCFtfvu9HimmgC7a4HTs7lhX12Sx8aWsH0mfz6q/02yspSp+lOB+Q2HJwi4IV2GKz7A==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.1.2.tgz", + "integrity": "sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10301,12 +10830,12 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.3.tgz", - "integrity": "sha512-UUzIWMVfPmDZcOutk2/r1vURZqavvQW0OHvgsyNV0cKupChvqg+/NKPRMaMEe+i8tP96IthMFeZOZWpV+E4RAw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.4.tgz", + "integrity": "sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "@smithy/util-uri-escape": "^4.0.0", "tslib": "^2.6.2" }, @@ -10315,12 +10844,12 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.3.tgz", - "integrity": "sha512-K5M4ZJQpFCblOJ5Oyw7diICpFg1qhhR47m2/5Ef1PhGE19RaIZf50tjYFrxa6usqcuXyTiFPGo4d1geZdH4YcQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.4.tgz", + "integrity": "sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10328,24 +10857,24 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.4.tgz", - "integrity": "sha512-W5ScbQ1bTzgH91kNEE2CvOzM4gXlDOqdow4m8vMFSIXCel2scbHwjflpVNnC60Y3F1m5i7w2gQg9lSnR+JsJAA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.5.tgz", + "integrity": "sha512-LvcfhrnCBvCmTee81pRlh1F39yTS/+kYleVeLCwNtkY8wtGg8V/ca9rbZZvYIl8OjlMtL6KIjaiL/lgVqHD2nA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0" + "@smithy/types": "^4.3.1" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.3.tgz", - "integrity": "sha512-vHwlrqhZGIoLwaH8vvIjpHnloShqdJ7SUPNM2EQtEox+yEDFTVQ7E+DLZ+6OhnYEgFUwPByJyz6UZaOu2tny6A==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.4.tgz", + "integrity": "sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10353,16 +10882,16 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.1.1.tgz", - "integrity": "sha512-zy8Repr5zvT0ja+Tf5wjV/Ba6vRrhdiDcp/ww6cvqYbSEudIkziDe3uppNRlFoCViyJXdPnLcwyZdDLA4CHzSg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.1.2.tgz", + "integrity": "sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^4.0.0", - "@smithy/protocol-http": "^5.1.1", - "@smithy/types": "^4.3.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", "@smithy/util-hex-encoding": "^4.0.0", - "@smithy/util-middleware": "^4.0.3", + "@smithy/util-middleware": "^4.0.4", "@smithy/util-uri-escape": "^4.0.0", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" @@ -10372,17 +10901,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.3.0.tgz", - "integrity": "sha512-DNsRA38pN6tYHUjebmwD9e4KcgqTLldYQb2gC6K+oxXYdCTxPn6wV9+FvOa6wrU2FQEnGJoi+3GULzOTKck/tg==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.4.3.tgz", + "integrity": "sha512-xxzNYgA0HD6ETCe5QJubsxP0hQH3QK3kbpJz3QrosBCuIWyEXLR/CO5hFb2OeawEKUxMNhz3a1nuJNN2np2RMA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.4.0", - "@smithy/middleware-endpoint": "^4.1.7", - "@smithy/middleware-stack": "^4.0.3", - "@smithy/protocol-http": "^5.1.1", - "@smithy/types": "^4.3.0", - "@smithy/util-stream": "^4.2.1", + "@smithy/core": "^3.5.3", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "@smithy/util-stream": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -10390,9 +10919,9 @@ } }, "node_modules/@smithy/types": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.3.0.tgz", - "integrity": "sha512-+1iaIQHthDh9yaLhRzaoQxRk+l9xlk+JjMFxGRhNLz+m9vKOkjNeU8QuB4w3xvzHyVR/BVlp/4AXDHjoRIkfgQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.3.1.tgz", + "integrity": "sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -10402,13 +10931,13 @@ } }, "node_modules/@smithy/url-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.3.tgz", - "integrity": "sha512-n5/DnosDu/tweOqUUNtUbu7eRIR4J/Wz9nL7V5kFYQQVb8VYdj7a4G5NJHCw6o21ul7CvZoJkOpdTnsQDLT0tQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.4.tgz", + "integrity": "sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^4.0.3", - "@smithy/types": "^4.3.0", + "@smithy/querystring-parser": "^4.0.4", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10479,14 +11008,14 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.15.tgz", - "integrity": "sha512-bJJ/B8owQbHAflatSq92f9OcV8858DJBQF1Y3GRjB8psLyUjbISywszYPFw16beREHO/C3I3taW4VGH+tOuwrQ==", + "version": "4.0.19", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.19.tgz", + "integrity": "sha512-mvLMh87xSmQrV5XqnUYEPoiFFeEGYeAKIDDKdhE2ahqitm8OHM3aSvhqL6rrK6wm1brIk90JhxDf5lf2hbrLbQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.0.3", - "@smithy/smithy-client": "^4.3.0", - "@smithy/types": "^4.3.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", "bowser": "^2.11.0", "tslib": "^2.6.2" }, @@ -10495,17 +11024,17 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.15.tgz", - "integrity": "sha512-8CUrEW2Ni5q+NmYkj8wsgkfqoP7l4ZquptFbq92yQE66xevc4SxqP2zH6tMtN158kgBqBDsZ+qlrRwXWOjCR8A==", + "version": "4.0.19", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.19.tgz", + "integrity": "sha512-8tYnx+LUfj6m+zkUUIrIQJxPM1xVxfRBvoGHua7R/i6qAxOMjqR6CpEpDwKoIs1o0+hOjGvkKE23CafKL0vJ9w==", "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^4.1.3", - "@smithy/credential-provider-imds": "^4.0.5", - "@smithy/node-config-provider": "^4.1.2", - "@smithy/property-provider": "^4.0.3", - "@smithy/smithy-client": "^4.3.0", - "@smithy/types": "^4.3.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/credential-provider-imds": "^4.0.6", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/property-provider": "^4.0.4", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10513,13 +11042,13 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.5.tgz", - "integrity": "sha512-PjDpqLk24/vAl340tmtCA++Q01GRRNH9cwL9qh46NspAX9S+IQVcK+GOzPt0GLJ6KYGyn8uOgo2kvJhiThclJw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.6.tgz", + "integrity": "sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.1.2", - "@smithy/types": "^4.3.0", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10539,12 +11068,12 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.3.tgz", - "integrity": "sha512-iIsC6qZXxkD7V3BzTw3b1uK8RVC1M8WvwNxK1PKrH9FnxntCd30CSunXjL/8iJBE8Z0J14r2P69njwIpRG4FBQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.4.tgz", + "integrity": "sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.0", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10552,13 +11081,13 @@ } }, "node_modules/@smithy/util-retry": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.4.tgz", - "integrity": "sha512-Aoqr9W2jDYGrI6OxljN8VmLDQIGO4VdMAUKMf9RGqLG8hn6or+K41NEy1Y5dtum9q8F7e0obYAuKl2mt/GnpZg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.5.tgz", + "integrity": "sha512-V7MSjVDTlEt/plmOFBn1762Dyu5uqMrV2Pl2X0dYk4XvWfdWJNe9Bs5Bzb56wkCuiWjSfClVMGcsuKrGj7S/yg==", "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^4.0.4", - "@smithy/types": "^4.3.0", + "@smithy/service-error-classification": "^4.0.5", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -10566,14 +11095,14 @@ } }, "node_modules/@smithy/util-stream": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.2.1.tgz", - "integrity": "sha512-W3IR0x5DY6iVtjj5p902oNhD+Bz7vs5S+p6tppbPa509rV9BdeXZjGuRSCtVEad9FA0Mba+tNUtUmtnSI1nwUw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.2.2.tgz", + "integrity": "sha512-aI+GLi7MJoVxg24/3J1ipwLoYzgkB4kUfogZfnslcYlynj3xsQ0e7vk4TnTro9hhsS5PvX1mwmkRqqHQjwcU7w==", "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^5.0.3", - "@smithy/node-http-handler": "^4.0.5", - "@smithy/types": "^4.3.0", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/types": "^4.3.1", "@smithy/util-base64": "^4.0.0", "@smithy/util-buffer-from": "^4.0.0", "@smithy/util-hex-encoding": "^4.0.0", @@ -10610,13 +11139,13 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.4.tgz", - "integrity": "sha512-73aeIvHjtSB6fd9I08iFaQIGTICKpLrI3EtlWAkStVENGo1ARMq9qdoD4QwkY0RUp6A409xlgbD9NCCfCF5ieg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.5.tgz", + "integrity": "sha512-4QvC49HTteI1gfemu0I1syWovJgPvGn7CVUoN9ZFkdvr/cCFkrEL7qNCdx/2eICqDWEGnnr68oMdSIPCLAriSQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^4.0.3", - "@smithy/types": "^4.3.0", + "@smithy/abort-controller": "^4.0.4", + "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, "engines": { @@ -36037,6 +36566,7 @@ "license": "MIT", "dependencies": { "@aws-sdk/client-s3": "^3.410.0", + "@aws-sdk/client-sesv2": "^3.410.0", "@aws-sdk/cloudfront-signer": "^3.410.0", "@aws-sdk/s3-request-presigner": "^3.410.0", "@aws-sdk/signature-v4-crt": "^3.410.0", diff --git a/packages/app-tests/e2e/features/include-document-certificate.spec.ts b/packages/app-tests/e2e/features/include-document-certificate.spec.ts index 0f8c30be7..b447b09c2 100644 --- a/packages/app-tests/e2e/features/include-document-certificate.spec.ts +++ b/packages/app-tests/e2e/features/include-document-certificate.spec.ts @@ -244,7 +244,7 @@ test.describe('Signing Certificate Tests', () => { await apiSignin({ page, email: owner.email, - redirectPath: `/t/${team.url}/settings/preferences`, + redirectPath: `/t/${team.url}/settings/document`, }); await page diff --git a/packages/app-tests/e2e/organisations/organisation-team-preferences.spec.ts b/packages/app-tests/e2e/organisations/organisation-team-preferences.spec.ts index dff2d5ddd..90cb6ae34 100644 --- a/packages/app-tests/e2e/organisations/organisation-team-preferences.spec.ts +++ b/packages/app-tests/e2e/organisations/organisation-team-preferences.spec.ts @@ -8,7 +8,7 @@ import { seedUser } from '@documenso/prisma/seed/users'; import { apiSignin } from '../fixtures/authentication'; -test('[ORGANISATIONS]: manage preferences', async ({ page }) => { +test('[ORGANISATIONS]: manage document preferences', async ({ page }) => { const { user, organisation, team } = await seedUser({ isPersonalOrganisation: false, }); @@ -16,7 +16,7 @@ test('[ORGANISATIONS]: manage preferences', async ({ page }) => { await apiSignin({ page, email: user.email, - redirectPath: `/o/${organisation.url}/settings/preferences`, + redirectPath: `/o/${organisation.url}/settings/document`, }); // Update document preferences. @@ -24,26 +24,25 @@ test('[ORGANISATIONS]: manage preferences', async ({ page }) => { await page.getByRole('option', { name: 'Only managers and above can' }).click(); await page.getByRole('combobox').filter({ hasText: 'English' }).click(); await page.getByRole('option', { name: 'German' }).click(); - await page.getByTestId('signature-types-combobox').click(); + + // Set default timezone + await page.getByRole('combobox').filter({ hasText: 'Local timezone' }).click(); + await page.getByRole('option', { name: 'Australia/Perth' }).click(); + + // Set default date + await page.getByRole('combobox').filter({ hasText: 'yyyy-MM-dd hh:mm a' }).click(); + await page.getByRole('option', { name: 'DD/MM/YYYY' }).click(); + + await page.getByTestId('signature-types-trigger').click(); await page.getByRole('option', { name: 'Draw' }).click(); await page.getByRole('option', { name: 'Upload' }).click(); - await page.getByRole('combobox').nth(3).click(); + await page.getByTestId('include-sender-details-trigger').click(); await page.getByRole('option', { name: 'No' }).click(); - await page.getByRole('combobox').filter({ hasText: 'Yes' }).click(); + await page.getByTestId('include-signing-certificate-trigger').click(); await page.getByRole('option', { name: 'No' }).click(); await page.getByRole('button', { name: 'Update' }).first().click(); await expect(page.getByText('Your document preferences have been updated').first()).toBeVisible(); - // Update branding. - await page.getByTestId('enable-branding').click(); - await page.getByRole('option', { name: 'Yes' }).click(); - await page.getByRole('textbox', { name: 'Brand Website' }).click(); - await page.getByRole('textbox', { name: 'Brand Website' }).fill('https://documenso.com'); - await page.getByRole('textbox', { name: 'Brand Details' }).click(); - await page.getByRole('textbox', { name: 'Brand Details' }).fill('BrandDetails'); - await page.getByRole('button', { name: 'Update' }).nth(1).click(); - await expect(page.getByText('Your branding preferences have been updated').first()).toBeVisible(); - const teamSettings = await getTeamSettings({ teamId: team.id, }); @@ -51,34 +50,30 @@ test('[ORGANISATIONS]: manage preferences', async ({ page }) => { // Check that the team settings have inherited these values. expect(teamSettings.documentVisibility).toEqual(DocumentVisibility.MANAGER_AND_ABOVE); expect(teamSettings.documentLanguage).toEqual('de'); + expect(teamSettings.documentTimezone).toEqual('Australia/Perth'); + expect(teamSettings.documentDateFormat).toEqual('dd/MM/yyyy hh:mm a'); expect(teamSettings.includeSenderDetails).toEqual(false); expect(teamSettings.includeSigningCertificate).toEqual(false); expect(teamSettings.typedSignatureEnabled).toEqual(true); expect(teamSettings.uploadSignatureEnabled).toEqual(false); expect(teamSettings.drawSignatureEnabled).toEqual(false); - expect(teamSettings.brandingEnabled).toEqual(true); - expect(teamSettings.brandingUrl).toEqual('https://documenso.com'); - expect(teamSettings.brandingCompanyDetails).toEqual('BrandDetails'); // Edit the team settings - await page.goto(`/t/${team.url}/settings/preferences`); + await page.goto(`/t/${team.url}/settings/document`); - await page - .getByRole('group') - .locator('div') - .filter({ - hasText: 'Default Document Visibility', - }) - .getByRole('combobox') - .click(); + await page.getByTestId('document-visibility-trigger').click(); await page.getByRole('option', { name: 'Everyone can access and view' }).click(); - await page - .getByRole('group') - .locator('div') - .filter({ hasText: 'Default Document Language' }) - .getByRole('combobox') - .click(); + await page.getByTestId('document-language-trigger').click(); await page.getByRole('option', { name: 'Polish' }).click(); + + // Override team timezone settings + await page.getByTestId('document-timezone-trigger').click(); + await page.getByRole('option', { name: 'Europe/London' }).click(); + + // Override team date format settings + await page.getByTestId('document-date-format-trigger').click(); + await page.getByRole('option', { name: 'MM/DD/YYYY' }).click(); + await page.getByRole('button', { name: 'Update' }).first().click(); await expect(page.getByText('Your document preferences have been updated').first()).toBeVisible(); @@ -89,6 +84,8 @@ test('[ORGANISATIONS]: manage preferences', async ({ page }) => { // Check that the team settings have inherited/overriden the correct values. expect(updatedTeamSettings.documentVisibility).toEqual(DocumentVisibility.EVERYONE); expect(updatedTeamSettings.documentLanguage).toEqual('pl'); + expect(updatedTeamSettings.documentTimezone).toEqual('Europe/London'); + expect(updatedTeamSettings.documentDateFormat).toEqual('MM/dd/yyyy hh:mm a'); expect(updatedTeamSettings.includeSenderDetails).toEqual(false); expect(updatedTeamSettings.includeSigningCertificate).toEqual(false); expect(updatedTeamSettings.typedSignatureEnabled).toEqual(true); @@ -110,4 +107,228 @@ test('[ORGANISATIONS]: manage preferences', async ({ page }) => { expect(documentMeta.uploadSignatureEnabled).toEqual(false); expect(documentMeta.drawSignatureEnabled).toEqual(false); expect(documentMeta.language).toEqual('pl'); + expect(documentMeta.timezone).toEqual('Europe/London'); + expect(documentMeta.dateFormat).toEqual('MM/dd/yyyy hh:mm a'); +}); + +test('[ORGANISATIONS]: manage branding preferences', async ({ page }) => { + const { user, organisation, team } = await seedUser({ + isPersonalOrganisation: false, + }); + + await apiSignin({ + page, + email: user.email, + redirectPath: `/o/${organisation.url}/settings/branding`, + }); + + // Update branding preferences. + await page.getByTestId('enable-branding').click(); + await page.getByRole('option', { name: 'Yes' }).click(); + await page.getByRole('textbox', { name: 'Brand Website' }).click(); + await page.getByRole('textbox', { name: 'Brand Website' }).fill('https://documenso.com'); + await page.getByRole('textbox', { name: 'Brand Details' }).click(); + await page.getByRole('textbox', { name: 'Brand Details' }).fill('BrandDetails'); + await page.getByRole('button', { name: 'Update' }).first().click(); + await expect(page.getByText('Your branding preferences have been updated').first()).toBeVisible(); + + const teamSettings = await getTeamSettings({ + teamId: team.id, + }); + + // Check that the team settings have inherited these values. + expect(teamSettings.brandingEnabled).toEqual(true); + expect(teamSettings.brandingUrl).toEqual('https://documenso.com'); + expect(teamSettings.brandingCompanyDetails).toEqual('BrandDetails'); + + // Edit the team branding settings + await page.goto(`/t/${team.url}/settings/branding`); + + // Override team settings with different values + await page.getByTestId('enable-branding').click(); + await page.getByRole('option', { name: 'Yes' }).click(); + await page.getByRole('textbox', { name: 'Brand Website' }).click(); + await page.getByRole('textbox', { name: 'Brand Website' }).fill('https://example.com'); + await page.getByRole('textbox', { name: 'Brand Details' }).click(); + await page.getByRole('textbox', { name: 'Brand Details' }).fill('UpdatedBrandDetails'); + await page.getByRole('button', { name: 'Update' }).first().click(); + await expect(page.getByText('Your branding preferences have been updated').first()).toBeVisible(); + + const updatedTeamSettings = await getTeamSettings({ + teamId: team.id, + }); + + // Check that the team settings have overridden the organisation values. + expect(updatedTeamSettings.brandingEnabled).toEqual(true); + expect(updatedTeamSettings.brandingUrl).toEqual('https://example.com'); + expect(updatedTeamSettings.brandingCompanyDetails).toEqual('UpdatedBrandDetails'); + + // Test inheritance by setting team back to inherit from organisation + await page.getByTestId('enable-branding').click(); + await page.getByRole('option', { name: 'Inherit from organisation' }).click(); + await page.getByRole('button', { name: 'Update' }).first().click(); + await expect(page.getByText('Your branding preferences have been updated').first()).toBeVisible(); + + await page.waitForTimeout(2000); + + const inheritedTeamSettings = await getTeamSettings({ + teamId: team.id, + }); + + // Check that the team settings now inherit from organisation again. + expect(inheritedTeamSettings.brandingEnabled).toEqual(true); + expect(inheritedTeamSettings.brandingUrl).toEqual('https://documenso.com'); + expect(inheritedTeamSettings.brandingCompanyDetails).toEqual('BrandDetails'); + + // Verify that a document can be created successfully with the branding settings + const document = await seedTeamDocumentWithMeta(team); + + // Confirm the document was created successfully with the team's branding settings + expect(document).toBeDefined(); + expect(document.teamId).toEqual(team.id); +}); + +test('[ORGANISATIONS]: manage email preferences', async ({ page }) => { + const { user, organisation, team } = await seedUser({ + isPersonalOrganisation: false, + }); + + await apiSignin({ + page, + email: user.email, + redirectPath: `/o/${organisation.url}/settings/email`, + }); + + // Update email preferences at organisation level. + // Set reply to email + await page.getByRole('textbox', { name: 'Reply to email' }).click(); + await page.getByRole('textbox', { name: 'Reply to email' }).fill('organisation@documenso.com'); + + // Update email document settings by enabling/disabling some checkboxes + await page.getByRole('checkbox', { name: 'Send recipient signed email' }).uncheck(); + await page.getByRole('checkbox', { name: 'Send document pending email' }).uncheck(); + await page.getByRole('checkbox', { name: 'Send document deleted email' }).uncheck(); + + await page.getByRole('button', { name: 'Update' }).first().click(); + await expect(page.getByText('Your email preferences have been updated').first()).toBeVisible(); + + const teamSettings = await getTeamSettings({ + teamId: team.id, + }); + + // Check that the team settings have inherited these values. + expect(teamSettings.emailReplyTo).toEqual('organisation@documenso.com'); + expect(teamSettings.emailDocumentSettings).toEqual({ + recipientSigningRequest: true, + recipientRemoved: true, + recipientSigned: false, // unchecked + documentPending: false, // unchecked + documentCompleted: true, + documentDeleted: false, // unchecked + ownerDocumentCompleted: true, + }); + + // Edit the team email settings + await page.goto(`/t/${team.url}/settings/email`); + + // Override team settings with different values + await page.getByRole('textbox', { name: 'Reply to email' }).click(); + await page.getByRole('textbox', { name: 'Reply to email' }).fill('team@example.com'); + + // Change email document settings inheritance to controlled + await page.getByRole('combobox').filter({ hasText: 'Inherit from organisation' }).click(); + await page.getByRole('option', { name: 'Override organisation settings' }).click(); + + // Update some email settings + await page.getByRole('checkbox', { name: 'Send recipient signing request email' }).uncheck(); + await page + .getByRole('checkbox', { name: 'Send document completed email', exact: true }) + .uncheck(); + await page + .getByRole('checkbox', { name: 'Send document completed email to the owner' }) + .uncheck(); + + await page.getByRole('button', { name: 'Update' }).first().click(); + await expect(page.getByText('Your email preferences have been updated').first()).toBeVisible(); + + const updatedTeamSettings = await getTeamSettings({ + teamId: team.id, + }); + + // Check that the team settings have overridden the organisation values. + expect(updatedTeamSettings.emailReplyTo).toEqual('team@example.com'); + expect(updatedTeamSettings.emailDocumentSettings).toEqual({ + recipientSigned: true, + recipientSigningRequest: false, + recipientRemoved: true, + documentPending: true, + documentCompleted: false, + documentDeleted: true, + ownerDocumentCompleted: false, + }); + + // Verify that a document can be created successfully with the team email settings + const teamOverrideDocument = await seedTeamDocumentWithMeta(team); + + const teamOverrideDocumentMeta = await prisma.documentMeta.findFirstOrThrow({ + where: { + documentId: teamOverrideDocument.id, + }, + }); + + expect(teamOverrideDocumentMeta.emailReplyTo).toEqual('team@example.com'); + expect(teamOverrideDocumentMeta.emailSettings).toEqual({ + recipientSigned: true, + recipientSigningRequest: false, + recipientRemoved: true, + documentPending: true, + documentCompleted: false, + documentDeleted: true, + ownerDocumentCompleted: false, + }); + + // Test inheritance by setting team back to inherit from organisation + await page.getByRole('textbox', { name: 'Reply to email' }).fill(''); + await page.getByRole('combobox').filter({ hasText: 'Override organisation settings' }).click(); + await page.getByRole('option', { name: 'Inherit from organisation' }).click(); + await page.getByRole('button', { name: 'Update' }).first().click(); + await expect(page.getByText('Your email preferences have been updated').first()).toBeVisible(); + + await page.waitForTimeout(1000); + + const inheritedTeamSettings = await getTeamSettings({ + teamId: team.id, + }); + + // Check that the team settings now inherit from organisation again. + expect(inheritedTeamSettings.emailReplyTo).toEqual('organisation@documenso.com'); + expect(inheritedTeamSettings.emailDocumentSettings).toEqual({ + recipientSigningRequest: true, + recipientRemoved: true, + recipientSigned: false, + documentPending: false, + documentCompleted: true, + documentDeleted: false, + ownerDocumentCompleted: true, + }); + + // Verify that a document can be created successfully with the email settings + const document = await seedTeamDocumentWithMeta(team); + + const documentMeta = await prisma.documentMeta.findFirstOrThrow({ + where: { + documentId: document.id, + }, + }); + + expect(documentMeta.emailReplyTo).toEqual('organisation@documenso.com'); + expect(documentMeta.emailSettings).toEqual({ + recipientSigningRequest: true, + recipientRemoved: true, + recipientSigned: false, + documentPending: false, + documentCompleted: true, + documentDeleted: false, + ownerDocumentCompleted: true, + }); }); diff --git a/packages/app-tests/e2e/teams/team-signature-settings.spec.ts b/packages/app-tests/e2e/teams/team-signature-settings.spec.ts index 987fedc23..bebf91371 100644 --- a/packages/app-tests/e2e/teams/team-signature-settings.spec.ts +++ b/packages/app-tests/e2e/teams/team-signature-settings.spec.ts @@ -15,7 +15,7 @@ test('[TEAMS]: check that default team signature settings are all enabled', asyn await apiSignin({ page, email: user.email, - redirectPath: `/t/${team.url}/settings/preferences`, + redirectPath: `/t/${team.url}/settings/document`, }); const document = await seedTeamDocumentWithMeta(team); @@ -45,17 +45,17 @@ test('[TEAMS]: check signature modes can be disabled', async ({ page }) => { await apiSignin({ page, email: user.email, - redirectPath: `/t/${team.url}/settings/preferences`, + redirectPath: `/t/${team.url}/settings/document`, }); const allTabs = ['Type', 'Upload', 'Draw']; const tabTest = [['Type', 'Upload', 'Draw'], ['Type', 'Upload'], ['Type']]; for (const tabs of tabTest) { - await page.goto(`/t/${team.url}/settings/preferences`); + await page.goto(`/t/${team.url}/settings/document`); // Update combobox to have the correct tabs - await page.getByTestId('signature-types-combobox').click(); + await page.getByTestId('signature-types-trigger').click(); await expect(page.getByRole('option', { name: 'Type' })).toBeVisible(); await expect(page.getByRole('option', { name: 'Upload' })).toBeVisible(); @@ -112,17 +112,17 @@ test('[TEAMS]: check signature modes work for templates', async ({ page }) => { await apiSignin({ page, email: user.email, - redirectPath: `/t/${team.url}/settings/preferences`, + redirectPath: `/t/${team.url}/settings/document`, }); const allTabs = ['Type', 'Upload', 'Draw']; const tabTest = [['Type', 'Upload', 'Draw'], ['Type', 'Upload'], ['Type']]; for (const tabs of tabTest) { - await page.goto(`/t/${team.url}/settings/preferences`); + await page.goto(`/t/${team.url}/settings/document`); // Update combobox to have the correct tabs - await page.getByTestId('signature-types-combobox').click(); + await page.getByTestId('signature-types-trigger').click(); await expect(page.getByRole('option', { name: 'Type' })).toBeVisible(); await expect(page.getByRole('option', { name: 'Upload' })).toBeVisible(); diff --git a/packages/ee/server-only/lib/create-email-domain.ts b/packages/ee/server-only/lib/create-email-domain.ts new file mode 100644 index 000000000..b50a55965 --- /dev/null +++ b/packages/ee/server-only/lib/create-email-domain.ts @@ -0,0 +1,154 @@ +import { CreateEmailIdentityCommand, SESv2Client } from '@aws-sdk/client-sesv2'; +import { EmailDomainStatus } from '@prisma/client'; +import { generateKeyPair } from 'crypto'; +import { promisify } from 'util'; + +import { DOCUMENSO_ENCRYPTION_KEY } from '@documenso/lib/constants/crypto'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { symmetricEncrypt } from '@documenso/lib/universal/crypto'; +import { generateDatabaseId } from '@documenso/lib/universal/id'; +import { generateEmailDomainRecords } from '@documenso/lib/utils/email-domains'; +import { env } from '@documenso/lib/utils/env'; +import { prisma } from '@documenso/prisma'; + +export const getSesClient = () => { + const accessKeyId = env('NEXT_PRIVATE_SES_ACCESS_KEY_ID'); + const secretAccessKey = env('NEXT_PRIVATE_SES_SECRET_ACCESS_KEY'); + const region = env('NEXT_PRIVATE_SES_REGION'); + + if (!accessKeyId || !secretAccessKey || !region) { + throw new AppError(AppErrorCode.UNKNOWN_ERROR, { + message: 'Missing AWS SES credentials', + }); + } + + return new SESv2Client({ + region, + credentials: { + accessKeyId, + secretAccessKey, + }, + }); +}; + +/** + * Removes first and last line, then removes all newlines + */ +const flattenKey = (key: string) => { + return key.trim().split('\n').slice(1, -1).join(''); +}; + +export async function verifyDomainWithDKIM(domain: string, selector: string, privateKey: string) { + const command = new CreateEmailIdentityCommand({ + EmailIdentity: domain, + DkimSigningAttributes: { + DomainSigningSelector: selector, + DomainSigningPrivateKey: privateKey, + }, + }); + + return await getSesClient().send(command); +} + +type CreateEmailDomainOptions = { + domain: string; + organisationId: string; +}; + +type DomainRecord = { + name: string; + value: string; + type: string; +}; + +export const createEmailDomain = async ({ domain, organisationId }: CreateEmailDomainOptions) => { + const encryptionKey = DOCUMENSO_ENCRYPTION_KEY; + + if (!encryptionKey) { + throw new Error('Missing DOCUMENSO_ENCRYPTION_KEY'); + } + + const selector = `documenso-${organisationId}`.replace(/[_.]/g, '-'); + const recordName = `${selector}._domainkey.${domain}`; + + // Check if domain already exists + const existingDomain = await prisma.emailDomain.findUnique({ + where: { + domain, + }, + }); + + if (existingDomain) { + throw new AppError(AppErrorCode.ALREADY_EXISTS, { + message: 'Domain already exists in database', + }); + } + + // Generate DKIM key pair + const generateKeyPairAsync = promisify(generateKeyPair); + + const { publicKey, privateKey } = await generateKeyPairAsync('rsa', { + modulusLength: 2048, + publicKeyEncoding: { + type: 'spki', + format: 'pem', + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem', + }, + }); + + // Format public key for DNS record + const publicKeyFlattened = flattenKey(publicKey); + const privateKeyFlattened = flattenKey(privateKey); + + // Create DNS records + const records: DomainRecord[] = generateEmailDomainRecords(recordName, publicKeyFlattened); + + const encryptedPrivateKey = symmetricEncrypt({ + key: encryptionKey, + data: privateKeyFlattened, + }); + + const emailDomain = await prisma.$transaction(async (tx) => { + await verifyDomainWithDKIM(domain, selector, privateKeyFlattened).catch((err) => { + if (err.name === 'AlreadyExistsException') { + throw new AppError(AppErrorCode.ALREADY_EXISTS, { + message: 'Domain already exists in SES', + }); + } + + throw err; + }); + + // Create email domain record. + return await tx.emailDomain.create({ + data: { + id: generateDatabaseId('email_domain'), + domain, + status: EmailDomainStatus.PENDING, + organisationId, + selector: recordName, + publicKey: publicKeyFlattened, + privateKey: encryptedPrivateKey, + }, + select: { + id: true, + status: true, + organisationId: true, + domain: true, + selector: true, + publicKey: true, + createdAt: true, + updatedAt: true, + emails: true, + }, + }); + }); + + return { + emailDomain, + records, + }; +}; diff --git a/packages/ee/server-only/lib/delete-email-domain.ts b/packages/ee/server-only/lib/delete-email-domain.ts new file mode 100644 index 000000000..0598d9425 --- /dev/null +++ b/packages/ee/server-only/lib/delete-email-domain.ts @@ -0,0 +1,52 @@ +import { DeleteEmailIdentityCommand } from '@aws-sdk/client-sesv2'; + +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { prisma } from '@documenso/prisma'; + +import { getSesClient } from './create-email-domain'; + +type DeleteEmailDomainOptions = { + emailDomainId: string; +}; + +/** + * Delete the email domain and SES email identity. + * + * Permission is assumed to be checked in the caller. + */ +export const deleteEmailDomain = async ({ emailDomainId }: DeleteEmailDomainOptions) => { + const emailDomain = await prisma.emailDomain.findUnique({ + where: { + id: emailDomainId, + }, + }); + + if (!emailDomain) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email domain not found', + }); + } + + const sesClient = getSesClient(); + + await sesClient + .send( + new DeleteEmailIdentityCommand({ + EmailIdentity: emailDomain.domain, + }), + ) + .catch((err) => { + console.error(err); + + // Do nothing if it no longer exists in SES. + if (err.name === 'NotFoundException') { + return; + } + }); + + await prisma.emailDomain.delete({ + where: { + id: emailDomainId, + }, + }); +}; diff --git a/packages/ee/server-only/lib/verify-email-domain.ts b/packages/ee/server-only/lib/verify-email-domain.ts new file mode 100644 index 000000000..0c898016e --- /dev/null +++ b/packages/ee/server-only/lib/verify-email-domain.ts @@ -0,0 +1,45 @@ +import { GetEmailIdentityCommand } from '@aws-sdk/client-sesv2'; +import { EmailDomainStatus } from '@prisma/client'; + +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { prisma } from '@documenso/prisma'; + +import { getSesClient } from './create-email-domain'; + +export const verifyEmailDomain = async (emailDomainId: string) => { + const emailDomain = await prisma.emailDomain.findUnique({ + where: { + id: emailDomainId, + }, + }); + + if (!emailDomain) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email domain not found', + }); + } + + const sesClient = getSesClient(); + + const response = await sesClient.send( + new GetEmailIdentityCommand({ + EmailIdentity: emailDomain.domain, + }), + ); + + const isVerified = response.VerificationStatus === 'SUCCESS'; + + const updatedEmailDomain = await prisma.emailDomain.update({ + where: { + id: emailDomainId, + }, + data: { + status: isVerified ? EmailDomainStatus.ACTIVE : EmailDomainStatus.PENDING, + }, + }); + + return { + emailDomain: updatedEmailDomain, + isVerified, + }; +}; diff --git a/packages/lib/constants/email.ts b/packages/lib/constants/email.ts index f385e1748..3eb597ce1 100644 --- a/packages/lib/constants/email.ts +++ b/packages/lib/constants/email.ts @@ -3,6 +3,11 @@ import { env } from '../utils/env'; export const FROM_ADDRESS = env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com'; export const FROM_NAME = env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso'; +export const DOCUMENSO_INTERNAL_EMAIL = { + name: FROM_NAME, + address: FROM_ADDRESS, +}; + export const SERVICE_USER_EMAIL = 'serviceaccount@documenso.com'; export const EMAIL_VERIFICATION_STATE = { diff --git a/packages/lib/jobs/definitions/emails/send-document-cancelled-emails.handler.ts b/packages/lib/jobs/definitions/emails/send-document-cancelled-emails.handler.ts index 245d34463..43cbc7846 100644 --- a/packages/lib/jobs/definitions/emails/send-document-cancelled-emails.handler.ts +++ b/packages/lib/jobs/definitions/emails/send-document-cancelled-emails.handler.ts @@ -9,7 +9,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; import { getEmailContext } from '../../../server-only/email/get-email-context'; import { extractDerivedDocumentEmailSettings } from '../../../types/document-email'; import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; @@ -43,11 +42,13 @@ export const run = async ({ }, }); - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail, replyToEmail } = await getEmailContext({ + emailType: 'RECIPIENT', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); const { documentMeta, user: documentOwner } = document; @@ -59,9 +60,7 @@ export const run = async ({ return; } - const lang = documentMeta?.language ?? settings.documentLanguage; - - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); // Send cancellation emails to all recipients who have been sent the document or viewed it const recipientsToNotify = document.recipients.filter( @@ -82,9 +81,9 @@ export const run = async ({ }); const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), @@ -95,10 +94,8 @@ export const run = async ({ name: recipient.name, address: recipient.email, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, + replyTo: replyToEmail, subject: i18n._(msg`Document "${document.title}" Cancelled`), html, text, diff --git a/packages/lib/jobs/definitions/emails/send-organisation-member-joined-email.handler.ts b/packages/lib/jobs/definitions/emails/send-organisation-member-joined-email.handler.ts index 37b1db387..444ce2985 100644 --- a/packages/lib/jobs/definitions/emails/send-organisation-member-joined-email.handler.ts +++ b/packages/lib/jobs/definitions/emails/send-organisation-member-joined-email.handler.ts @@ -8,7 +8,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '../../../constants/organisations'; import { getEmailContext } from '../../../server-only/email/get-email-context'; import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; @@ -56,7 +55,8 @@ export const run = async ({ }, }); - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'organisation', organisationId: organisation.id, @@ -80,29 +80,24 @@ export const run = async ({ organisationUrl: organisation.url, }); - const lang = settings.documentLanguage; - // !: Replace with the actual language of the recipient later const [html, text] = await Promise.all([ renderEmailWithI18N(emailContent, { - lang, + lang: emailLanguage, branding, }), renderEmailWithI18N(emailContent, { - lang, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: member.user.email, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, subject: i18n._(msg`A new member has joined your organisation`), html, text, diff --git a/packages/lib/jobs/definitions/emails/send-organisation-member-left-email.handler.ts b/packages/lib/jobs/definitions/emails/send-organisation-member-left-email.handler.ts index 9ce4162ab..2bfc88aef 100644 --- a/packages/lib/jobs/definitions/emails/send-organisation-member-left-email.handler.ts +++ b/packages/lib/jobs/definitions/emails/send-organisation-member-left-email.handler.ts @@ -8,7 +8,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '../../../constants/organisations'; import { getEmailContext } from '../../../server-only/email/get-email-context'; import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; @@ -52,7 +51,8 @@ export const run = async ({ }, }); - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'organisation', organisationId: organisation.id, @@ -76,28 +76,23 @@ export const run = async ({ organisationUrl: organisation.url, }); - const lang = settings.documentLanguage; - const [html, text] = await Promise.all([ renderEmailWithI18N(emailContent, { - lang, + lang: emailLanguage, branding, }), renderEmailWithI18N(emailContent, { - lang, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: member.user.email, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, subject: i18n._(msg`A member has left your organisation`), html, text, diff --git a/packages/lib/jobs/definitions/emails/send-recipient-signed-email.handler.ts b/packages/lib/jobs/definitions/emails/send-recipient-signed-email.handler.ts index 6c094c606..7845333c1 100644 --- a/packages/lib/jobs/definitions/emails/send-recipient-signed-email.handler.ts +++ b/packages/lib/jobs/definitions/emails/send-recipient-signed-email.handler.ts @@ -8,7 +8,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; import { getEmailContext } from '../../../server-only/email/get-email-context'; import { extractDerivedDocumentEmailSettings } from '../../../types/document-email'; import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; @@ -71,17 +70,18 @@ export const run = async ({ return; } - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000'; - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); const template = createElement(DocumentRecipientSignedEmailTemplate, { documentName: document.title, @@ -92,9 +92,9 @@ export const run = async ({ await io.runTask('send-recipient-signed-email', async () => { const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), @@ -105,10 +105,7 @@ export const run = async ({ name: owner.name ?? '', address: owner.email, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, subject: i18n._(msg`${recipientReference} has signed "${document.title}"`), html, text, diff --git a/packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts b/packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts index 25ff654a7..8faa098f8 100644 --- a/packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts +++ b/packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts @@ -10,7 +10,7 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; +import { DOCUMENSO_INTERNAL_EMAIL } from '../../../constants/email'; import { getEmailContext } from '../../../server-only/email/get-email-context'; import { extractDerivedDocumentEmailSettings } from '../../../types/document-email'; import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; @@ -52,7 +52,7 @@ export const run = async ({ }), ]); - const { documentMeta, user: documentOwner } = document; + const { user: documentOwner } = document; const isEmailEnabled = extractDerivedDocumentEmailSettings( document.documentMeta, @@ -62,16 +62,16 @@ export const run = async ({ return; } - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail, replyToEmail } = await getEmailContext({ + emailType: 'RECIPIENT', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); - const lang = documentMeta?.language ?? settings.documentLanguage; - - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); // Send confirmation email to the recipient who rejected await io.runTask('send-rejection-confirmation-email', async () => { @@ -84,9 +84,9 @@ export const run = async ({ }); const [html, text] = await Promise.all([ - renderEmailWithI18N(recipientTemplate, { lang, branding }), + renderEmailWithI18N(recipientTemplate, { lang: emailLanguage, branding }), renderEmailWithI18N(recipientTemplate, { - lang, + lang: emailLanguage, branding, plainText: true, }), @@ -97,10 +97,8 @@ export const run = async ({ name: recipient.name, address: recipient.email, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, + replyTo: replyToEmail, subject: i18n._(msg`Document "${document.title}" - Rejection Confirmed`), html, text, @@ -120,9 +118,9 @@ export const run = async ({ }); const [html, text] = await Promise.all([ - renderEmailWithI18N(ownerTemplate, { lang, branding }), + renderEmailWithI18N(ownerTemplate, { lang: emailLanguage, branding }), renderEmailWithI18N(ownerTemplate, { - lang, + lang: emailLanguage, branding, plainText: true, }), @@ -133,10 +131,7 @@ export const run = async ({ name: documentOwner.name || '', address: documentOwner.email, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: DOCUMENSO_INTERNAL_EMAIL, // Purposefully using internal email here. subject: i18n._(msg`Document "${document.title}" - Rejected by ${recipient.name}`), html, text, diff --git a/packages/lib/jobs/definitions/emails/send-signing-email.handler.ts b/packages/lib/jobs/definitions/emails/send-signing-email.handler.ts index edc585a11..dc5bde691 100644 --- a/packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +++ b/packages/lib/jobs/definitions/emails/send-signing-email.handler.ts @@ -15,7 +15,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; import { RECIPIENT_ROLES_DESCRIPTION, RECIPIENT_ROLE_TO_EMAIL_TYPE, @@ -80,12 +79,15 @@ export const run = async ({ return; } - const { branding, settings, organisationType } = await getEmailContext({ - source: { - type: 'team', - teamId: document.teamId, - }, - }); + const { branding, emailLanguage, settings, organisationType, senderEmail, replyToEmail } = + await getEmailContext({ + emailType: 'RECIPIENT', + source: { + type: 'team', + teamId: document.teamId, + }, + meta: document.documentMeta || null, + }); const customEmail = document?.documentMeta; const isDirectTemplate = document.source === DocumentSource.TEMPLATE_DIRECT_LINK; @@ -95,9 +97,7 @@ export const run = async ({ const { email, name } = recipient; const selfSigner = email === user.email; - const lang = documentMeta?.language ?? settings.documentLanguage; - - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); const recipientActionVerb = i18n ._(RECIPIENT_ROLES_DESCRIPTION[recipient.role].actionVerb) @@ -166,9 +166,9 @@ export const run = async ({ await io.runTask('send-signing-email', async () => { const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), @@ -179,10 +179,8 @@ export const run = async ({ name: recipient.name, address: recipient.email, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, + replyTo: replyToEmail, subject: renderCustomEmailTemplate( documentMeta?.subject || emailSubject, customEmailTemplate, diff --git a/packages/lib/jobs/definitions/internal/bulk-send-template.handler.ts b/packages/lib/jobs/definitions/internal/bulk-send-template.handler.ts index a7ee7d6b2..98e6daba9 100644 --- a/packages/lib/jobs/definitions/internal/bulk-send-template.handler.ts +++ b/packages/lib/jobs/definitions/internal/bulk-send-template.handler.ts @@ -13,7 +13,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; import { AppError } from '../../../errors/app-error'; import { getEmailContext } from '../../../server-only/email/get-email-context'; import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; @@ -162,24 +161,23 @@ export const run = async ({ assetBaseUrl: NEXT_PUBLIC_WEBAPP_URL(), }); - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'team', teamId, }, }); - const lang = template.templateMeta?.language ?? settings.documentLanguage; - - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); const [html, text] = await Promise.all([ renderEmailWithI18N(completionTemplate, { - lang, + lang: emailLanguage, branding, }), renderEmailWithI18N(completionTemplate, { - lang, + lang: emailLanguage, branding, plainText: true, }), @@ -190,10 +188,7 @@ export const run = async ({ name: user.name || '', address: user.email, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, subject: i18n._(msg`Bulk Send Complete: ${template.title}`), html, text, diff --git a/packages/lib/package.json b/packages/lib/package.json index 5d2a4053e..374793db8 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "@aws-sdk/client-s3": "^3.410.0", + "@aws-sdk/client-sesv2": "^3.410.0", "@aws-sdk/cloudfront-signer": "^3.410.0", "@aws-sdk/s3-request-presigner": "^3.410.0", "@aws-sdk/signature-v4-crt": "^3.410.0", diff --git a/packages/lib/server-only/document-meta/upsert-document-meta.ts b/packages/lib/server-only/document-meta/upsert-document-meta.ts index a9edede98..08ceadcba 100644 --- a/packages/lib/server-only/document-meta/upsert-document-meta.ts +++ b/packages/lib/server-only/document-meta/upsert-document-meta.ts @@ -23,6 +23,8 @@ export type CreateDocumentMetaOptions = { password?: string; dateFormat?: string; redirectUrl?: string; + emailId?: string | null; + emailReplyTo?: string | null; emailSettings?: TDocumentEmailSettings; signingOrder?: DocumentSigningOrder; allowDictateNextSigner?: boolean; @@ -46,6 +48,8 @@ export const upsertDocumentMeta = async ({ redirectUrl, signingOrder, allowDictateNextSigner, + emailId, + emailReplyTo, emailSettings, distributionMethod, typedSignatureEnabled, @@ -54,7 +58,7 @@ export const upsertDocumentMeta = async ({ language, requestMetadata, }: CreateDocumentMetaOptions) => { - const { documentWhereInput } = await getDocumentWhereInput({ + const { documentWhereInput, team } = await getDocumentWhereInput({ documentId, userId, teamId, @@ -75,6 +79,22 @@ export const upsertDocumentMeta = async ({ const { documentMeta: originalDocumentMeta } = document; + // Validate the emailId belongs to the organisation. + if (emailId) { + const email = await prisma.organisationEmail.findFirst({ + where: { + id: emailId, + organisationId: team.organisationId, + }, + }); + + if (!email) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email not found', + }); + } + } + return await prisma.$transaction(async (tx) => { const upsertedDocumentMeta = await tx.documentMeta.upsert({ where: { @@ -90,6 +110,8 @@ export const upsertDocumentMeta = async ({ redirectUrl, signingOrder, allowDictateNextSigner, + emailId, + emailReplyTo, emailSettings, distributionMethod, typedSignatureEnabled, @@ -106,6 +128,8 @@ export const upsertDocumentMeta = async ({ redirectUrl, signingOrder, allowDictateNextSigner, + emailId, + emailReplyTo, emailSettings, distributionMethod, typedSignatureEnabled, diff --git a/packages/lib/server-only/document/create-document-v2.ts b/packages/lib/server-only/document/create-document-v2.ts index 1fdb1f962..419bc8935 100644 --- a/packages/lib/server-only/document/create-document-v2.ts +++ b/packages/lib/server-only/document/create-document-v2.ts @@ -24,6 +24,7 @@ import { } from '../../types/webhook-payload'; import { getFileServerSide } from '../../universal/upload/get-file.server'; import { putPdfFileServerSide } from '../../universal/upload/put-file.server'; +import { extractDerivedDocumentMeta } from '../../utils/document'; import { createDocumentAuthOptions, createRecipientAuthOptions } from '../../utils/document-auth'; import { determineDocumentVisibility } from '../../utils/document-visibility'; import { buildTeamWhereQuery } from '../../utils/teams'; @@ -134,6 +135,24 @@ export const createDocumentV2 = async ({ const visibility = determineDocumentVisibility(settings.documentVisibility, teamRole); + const emailId = meta?.emailId; + + // Validate that the email ID belongs to the organisation. + if (emailId) { + const email = await prisma.organisationEmail.findFirst({ + where: { + id: emailId, + organisationId: team.organisationId, + }, + }); + + if (!email) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email not found', + }); + } + } + return await prisma.$transaction(async (tx) => { const document = await tx.document.create({ data: { @@ -148,15 +167,7 @@ export const createDocumentV2 = async ({ formValues, source: DocumentSource.DOCUMENT, documentMeta: { - create: { - ...meta, - signingOrder: meta?.signingOrder || undefined, - emailSettings: meta?.emailSettings || undefined, - language: meta?.language || settings.documentLanguage, - typedSignatureEnabled: meta?.typedSignatureEnabled ?? settings.typedSignatureEnabled, - uploadSignatureEnabled: meta?.uploadSignatureEnabled ?? settings.uploadSignatureEnabled, - drawSignatureEnabled: meta?.drawSignatureEnabled ?? settings.drawSignatureEnabled, - }, + create: extractDerivedDocumentMeta(settings, meta), }, }, }); diff --git a/packages/lib/server-only/document/create-document.ts b/packages/lib/server-only/document/create-document.ts index e0fb096fc..1f1bab522 100644 --- a/packages/lib/server-only/document/create-document.ts +++ b/packages/lib/server-only/document/create-document.ts @@ -15,6 +15,7 @@ import { import { prefixedId } from '../../universal/id'; import { getFileServerSide } from '../../universal/upload/get-file.server'; import { putPdfFileServerSide } from '../../universal/upload/put-file.server'; +import { extractDerivedDocumentMeta } from '../../utils/document'; import { determineDocumentVisibility } from '../../utils/document-visibility'; import { buildTeamWhereQuery } from '../../utils/teams'; import { getTeamById } from '../team/get-team'; @@ -30,6 +31,7 @@ export type CreateDocumentOptions = { formValues?: Record; normalizePdf?: boolean; timezone?: string; + userTimezone?: string; requestMetadata: ApiRequestMetadata; folderId?: string; }; @@ -44,6 +46,7 @@ export const createDocument = async ({ formValues, requestMetadata, timezone, + userTimezone, folderId, }: CreateDocumentOptions) => { const team = await getTeamById({ userId, teamId }); @@ -101,6 +104,10 @@ export const createDocument = async ({ } } + // userTimezone is last because it's always passed in regardless of the organisation/team settings + // for uploads from the frontend + const timezoneToUse = timezone || settings.documentTimezone || userTimezone; + return await prisma.$transaction(async (tx) => { const document = await tx.document.create({ data: { @@ -117,13 +124,9 @@ export const createDocument = async ({ formValues, source: DocumentSource.DOCUMENT, documentMeta: { - create: { - language: settings.documentLanguage, - timezone: timezone, - typedSignatureEnabled: settings.typedSignatureEnabled, - uploadSignatureEnabled: settings.uploadSignatureEnabled, - drawSignatureEnabled: settings.drawSignatureEnabled, - }, + create: extractDerivedDocumentMeta(settings, { + timezone: timezoneToUse, + }), }, }, }); diff --git a/packages/lib/server-only/document/delete-document.ts b/packages/lib/server-only/document/delete-document.ts index 4aea1ec1c..67511bdd6 100644 --- a/packages/lib/server-only/document/delete-document.ts +++ b/packages/lib/server-only/document/delete-document.ts @@ -10,7 +10,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import { extractDerivedDocumentEmailSettings } from '../../types/document-email'; @@ -151,11 +150,13 @@ const handleDocumentOwnerDelete = async ({ return; } - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail, replyToEmail } = await getEmailContext({ + emailType: 'RECIPIENT', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); // Soft delete completed documents. @@ -232,28 +233,24 @@ const handleDocumentOwnerDelete = async ({ assetBaseUrl, }); - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: { address: recipient.email, name: recipient.name, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, + replyTo: replyToEmail, subject: i18n._(msg`Document Cancelled`), html, text, diff --git a/packages/lib/server-only/document/resend-document.ts b/packages/lib/server-only/document/resend-document.ts index 4ec896102..bf64a2e6b 100644 --- a/packages/lib/server-only/document/resend-document.ts +++ b/packages/lib/server-only/document/resend-document.ts @@ -5,7 +5,6 @@ import { DocumentStatus, OrganisationType, RecipientRole, SigningStatus } from ' import { mailer } from '@documenso/email/mailer'; import { DocumentInviteEmailTemplate } from '@documenso/email/templates/document-invite'; -import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; import { RECIPIENT_ROLES_DESCRIPTION, RECIPIENT_ROLE_TO_EMAIL_TYPE, @@ -96,12 +95,15 @@ export const resendDocument = async ({ return; } - const { branding, settings, organisationType } = await getEmailContext({ - source: { - type: 'team', - teamId: document.teamId, - }, - }); + const { branding, emailLanguage, organisationType, senderEmail, replyToEmail } = + await getEmailContext({ + emailType: 'RECIPIENT', + source: { + type: 'team', + teamId: document.teamId, + }, + meta: document.documentMeta || null, + }); await Promise.all( recipientsToRemind.map(async (recipient) => { @@ -109,8 +111,7 @@ export const resendDocument = async ({ return; } - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); const recipientEmailType = RECIPIENT_ROLE_TO_EMAIL_TYPE[recipient.role]; @@ -169,11 +170,11 @@ export const resendDocument = async ({ const [html, text] = await Promise.all([ renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), @@ -186,10 +187,8 @@ export const resendDocument = async ({ address: email, name, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, + replyTo: replyToEmail, subject: customEmail?.subject ? renderCustomEmailTemplate( i18n._(msg`Reminder: ${customEmail.subject}`), diff --git a/packages/lib/server-only/document/send-completed-email.ts b/packages/lib/server-only/document/send-completed-email.ts index 38322f77c..c69ef772b 100644 --- a/packages/lib/server-only/document/send-completed-email.ts +++ b/packages/lib/server-only/document/send-completed-email.ts @@ -14,7 +14,6 @@ import { extractDerivedDocumentEmailSettings } from '../../types/document-email' import type { RequestMetadata } from '../../universal/extract-request-metadata'; import { getFileServerSide } from '../../universal/upload/get-file.server'; import { createDocumentAuditLogData } from '../../utils/document-audit-logs'; -import { env } from '../../utils/env'; import { renderCustomEmailTemplate } from '../../utils/render-custom-email-template'; import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; import { formatDocumentsPath } from '../../utils/teams'; @@ -54,11 +53,13 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo throw new Error('Document has no recipients'); } - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail, replyToEmail } = await getEmailContext({ + emailType: 'RECIPIENT', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); const { user: owner } = document; @@ -97,18 +98,16 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo downloadLink: documentOwnerDownloadLink, }); - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: [ @@ -117,10 +116,8 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo address: owner.email, }, ], - from: { - name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso', - address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com', - }, + from: senderEmail, + replyTo: replyToEmail, subject: i18n._(msg`Signing Complete!`), html, text, @@ -174,18 +171,16 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo : undefined, }); - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: [ @@ -194,10 +189,8 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo address: recipient.email, }, ], - from: { - name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso', - address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com', - }, + from: senderEmail, + replyTo: replyToEmail, subject: isDirectTemplate && document.documentMeta?.subject ? renderCustomEmailTemplate(document.documentMeta.subject, customEmailTemplate) diff --git a/packages/lib/server-only/document/send-delete-email.ts b/packages/lib/server-only/document/send-delete-email.ts index 0c969574f..5ac1043ed 100644 --- a/packages/lib/server-only/document/send-delete-email.ts +++ b/packages/lib/server-only/document/send-delete-email.ts @@ -10,7 +10,6 @@ import { getI18nInstance } from '../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { extractDerivedDocumentEmailSettings } from '../../types/document-email'; -import { env } from '../../utils/env'; import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; import { getEmailContext } from '../email/get-email-context'; @@ -44,11 +43,13 @@ export const sendDeleteEmail = async ({ documentId, reason }: SendDeleteEmailOpt return; } - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); const { email, name } = document.user; @@ -61,28 +62,23 @@ export const sendDeleteEmail = async ({ documentId, reason }: SendDeleteEmailOpt assetBaseUrl, }); - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: { address: email, name: name || '', }, - from: { - name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso', - address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com', - }, + from: senderEmail, subject: i18n._(msg`Document Deleted!`), html, text, diff --git a/packages/lib/server-only/document/send-pending-email.ts b/packages/lib/server-only/document/send-pending-email.ts index 9726cd5cc..7609eb3a3 100644 --- a/packages/lib/server-only/document/send-pending-email.ts +++ b/packages/lib/server-only/document/send-pending-email.ts @@ -9,7 +9,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; import { extractDerivedDocumentEmailSettings } from '../../types/document-email'; -import { env } from '../../utils/env'; import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; import { getEmailContext } from '../email/get-email-context'; @@ -46,11 +45,13 @@ export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingE throw new Error('Document has no recipients'); } - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail, replyToEmail } = await getEmailContext({ + emailType: 'RECIPIENT', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); const isDocumentPendingEmailEnabled = extractDerivedDocumentEmailSettings( @@ -72,28 +73,24 @@ export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingE assetBaseUrl, }); - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: { address: email, name, }, - from: { - name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso', - address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com', - }, + from: senderEmail, + replyTo: replyToEmail, subject: i18n._(msg`Waiting for others to complete signing.`), html, text, diff --git a/packages/lib/server-only/document/super-delete-document.ts b/packages/lib/server-only/document/super-delete-document.ts index 85dc5aab2..ae2e2bf4d 100644 --- a/packages/lib/server-only/document/super-delete-document.ts +++ b/packages/lib/server-only/document/super-delete-document.ts @@ -9,7 +9,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import { extractDerivedDocumentEmailSettings } from '../../types/document-email'; @@ -41,11 +40,13 @@ export const superDeleteDocument = async ({ id, requestMetadata }: SuperDeleteDo }); } - const { branding, settings } = await getEmailContext({ + const { branding, settings, senderEmail, replyToEmail } = await getEmailContext({ + emailType: 'RECIPIENT', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); const { status, user } = document; @@ -92,10 +93,8 @@ export const superDeleteDocument = async ({ id, requestMetadata }: SuperDeleteDo address: recipient.email, name: recipient.name, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, + replyTo: replyToEmail, subject: i18n._(msg`Document Cancelled`), html, text, diff --git a/packages/lib/server-only/document/update-document.ts b/packages/lib/server-only/document/update-document.ts index accb9fadf..0c1586498 100644 --- a/packages/lib/server-only/document/update-document.ts +++ b/packages/lib/server-only/document/update-document.ts @@ -1,5 +1,6 @@ import { DocumentVisibility } from '@prisma/client'; import { DocumentStatus, TeamMemberRole } from '@prisma/client'; +import { isDeepEqual } from 'remeda'; import { match } from 'ts-pattern'; import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs'; @@ -128,9 +129,11 @@ export const updateDocument = async ({ const isTitleSame = data.title === undefined || data.title === document.title; const isExternalIdSame = data.externalId === undefined || data.externalId === document.externalId; const isGlobalAccessSame = - documentGlobalAccessAuth === undefined || documentGlobalAccessAuth === newGlobalAccessAuth; + documentGlobalAccessAuth === undefined || + isDeepEqual(documentGlobalAccessAuth, newGlobalAccessAuth); const isGlobalActionSame = - documentGlobalActionAuth === undefined || documentGlobalActionAuth === newGlobalActionAuth; + documentGlobalActionAuth === undefined || + isDeepEqual(documentGlobalActionAuth, newGlobalActionAuth); const isDocumentVisibilitySame = data.visibility === undefined || data.visibility === document.visibility; diff --git a/packages/lib/server-only/email/get-email-context.ts b/packages/lib/server-only/email/get-email-context.ts index 5b8961008..56964ce28 100644 --- a/packages/lib/server-only/email/get-email-context.ts +++ b/packages/lib/server-only/email/get-email-context.ts @@ -1,16 +1,34 @@ import type { BrandingSettings } from '@documenso/email/providers/branding'; import { prisma } from '@documenso/prisma'; -import type { OrganisationType } from '@documenso/prisma/client'; -import { type OrganisationClaim, type OrganisationGlobalSettings } from '@documenso/prisma/client'; +import type { + DocumentMeta, + EmailDomain, + Organisation, + OrganisationEmail, + OrganisationType, +} from '@documenso/prisma/client'; +import { + EmailDomainStatus, + type OrganisationClaim, + type OrganisationGlobalSettings, +} from '@documenso/prisma/client'; +import { DOCUMENSO_INTERNAL_EMAIL } from '../../constants/email'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { organisationGlobalSettingsToBranding, teamGlobalSettingsToBranding, } from '../../utils/team-global-settings-to-branding'; -import { getTeamSettings } from '../team/get-team-settings'; +import { extractDerivedTeamSettings } from '../../utils/teams'; -type GetEmailContextOptions = { +type EmailMetaOption = Partial>; + +type BaseGetEmailContextOptions = { + /** + * The source to extract the email context from. + * - "Team" will use the team settings followed by the inherited organisation settings + * - "Organisation" will use the organisation settings + */ source: | { type: 'team'; @@ -20,37 +38,112 @@ type GetEmailContextOptions = { type: 'organisation'; organisationId: string; }; + + /** + * The email type being sent, used to determine what email sender and language to use. + * - INTERNAL: Emails to users, such as team invites, etc. + * - RECIPIENT: Emails to recipients, such as document sent, document signed, etc. + */ + emailType: 'INTERNAL' | 'RECIPIENT'; }; +type InternalGetEmailContextOptions = BaseGetEmailContextOptions & { + emailType: 'INTERNAL'; + meta?: EmailMetaOption | null; +}; + +type RecipientGetEmailContextOptions = BaseGetEmailContextOptions & { + emailType: 'RECIPIENT'; + + /** + * Force meta options as a typesafe way to ensure developers don't forget to + * pass it in if it is available. + */ + meta: EmailMetaOption | null; +}; + +type GetEmailContextOptions = InternalGetEmailContextOptions | RecipientGetEmailContextOptions; + type EmailContextResponse = { + allowedEmails: OrganisationEmail[]; branding: BrandingSettings; settings: Omit; claims: OrganisationClaim; organisationType: OrganisationType; + senderEmail: { + name: string; + address: string; + }; + replyToEmail: string | undefined; + emailLanguage: string; }; export const getEmailContext = async ( options: GetEmailContextOptions, ): Promise => { - const { source } = options; + const { source, meta } = options; + let emailContext: Omit; + + if (source.type === 'organisation') { + emailContext = await handleOrganisationEmailContext(source.organisationId); + } else { + emailContext = await handleTeamEmailContext(source.teamId); + } + + const emailLanguage = meta?.language || emailContext.settings.documentLanguage; + + // Immediate return for internal emails. + if (options.emailType === 'INTERNAL') { + return { + ...emailContext, + senderEmail: DOCUMENSO_INTERNAL_EMAIL, + replyToEmail: undefined, + emailLanguage, // Not sure if we want to use this for internal emails. + }; + } + + const replyToEmail = meta?.emailReplyTo || emailContext.settings.emailReplyTo || undefined; + const senderEmailId = meta?.emailId || emailContext.settings.emailId; + + const foundSenderEmail = emailContext.allowedEmails.find((email) => email.id === senderEmailId); + + // Reset the emailId to null if not found. + if (!foundSenderEmail) { + emailContext.settings.emailId = null; + } + + const senderEmail = foundSenderEmail + ? { + name: foundSenderEmail.emailName, + address: foundSenderEmail.email, + } + : DOCUMENSO_INTERNAL_EMAIL; + + return { + ...emailContext, + senderEmail, + replyToEmail, + emailLanguage, + }; +}; + +const handleOrganisationEmailContext = async (organisationId: string) => { const organisation = await prisma.organisation.findFirst({ - where: - source.type === 'organisation' - ? { - id: source.organisationId, - } - : { - teams: { - some: { - id: source.teamId, - }, - }, - }, + where: { + id: organisationId, + }, include: { - subscription: true, organisationClaim: true, organisationGlobalSettings: true, + emailDomains: { + omit: { + privateKey: true, + }, + include: { + emails: true, + }, + }, }, }); @@ -60,27 +153,64 @@ export const getEmailContext = async ( const claims = organisation.organisationClaim; - if (source.type === 'organisation') { - return { - branding: organisationGlobalSettingsToBranding( - organisation.organisationGlobalSettings, - organisation.id, - claims.flags.hidePoweredBy ?? false, - ), - settings: organisation.organisationGlobalSettings, - claims, - organisationType: organisation.type, - }; - } - - const teamSettings = await getTeamSettings({ - teamId: source.teamId, - }); + const allowedEmails = getAllowedEmails(organisation); return { + allowedEmails, + branding: organisationGlobalSettingsToBranding( + organisation.organisationGlobalSettings, + organisation.id, + claims.flags.hidePoweredBy ?? false, + ), + settings: organisation.organisationGlobalSettings, + claims, + organisationType: organisation.type, + }; +}; + +const handleTeamEmailContext = async (teamId: number) => { + const team = await prisma.team.findFirst({ + where: { + id: teamId, + }, + include: { + teamGlobalSettings: true, + organisation: { + include: { + organisationClaim: true, + organisationGlobalSettings: true, + emailDomains: { + omit: { + privateKey: true, + }, + include: { + emails: true, + }, + }, + }, + }, + }, + }); + + if (!team) { + throw new AppError(AppErrorCode.NOT_FOUND); + } + + const organisation = team.organisation; + const claims = organisation.organisationClaim; + + const allowedEmails = getAllowedEmails(organisation); + + const teamSettings = extractDerivedTeamSettings( + organisation.organisationGlobalSettings, + team.teamGlobalSettings, + ); + + return { + allowedEmails, branding: teamGlobalSettingsToBranding( teamSettings, - source.teamId, + teamId, claims.flags.hidePoweredBy ?? false, ), settings: teamSettings, @@ -88,3 +218,18 @@ export const getEmailContext = async ( organisationType: organisation.type, }; }; + +const getAllowedEmails = ( + organisation: Organisation & { + emailDomains: (Pick & { emails: OrganisationEmail[] })[]; + organisationClaim: OrganisationClaim; + }, +) => { + if (!organisation.organisationClaim.flags.emailDomains) { + return []; + } + + return organisation.emailDomains + .filter((emailDomain) => emailDomain.status === EmailDomainStatus.ACTIVE) + .flatMap((emailDomain) => emailDomain.emails); +}; diff --git a/packages/lib/server-only/organisation/create-organisation-member-invites.ts b/packages/lib/server-only/organisation/create-organisation-member-invites.ts index 032a49d03..209b1aeca 100644 --- a/packages/lib/server-only/organisation/create-organisation-member-invites.ts +++ b/packages/lib/server-only/organisation/create-organisation-member-invites.ts @@ -9,7 +9,6 @@ import { syncMemberCountWithStripeSeatPlan } from '@documenso/ee/server-only/str import { mailer } from '@documenso/email/mailer'; import { OrganisationInviteEmailTemplate } from '@documenso/email/templates/organisation-invite'; import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/organisations'; import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import { isOrganisationRoleWithinUserHierarchy } from '@documenso/lib/utils/organisations'; @@ -190,7 +189,8 @@ export const sendOrganisationMemberInviteEmail = async ({ organisationName: organisation.name, }); - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'organisation', organisationId: organisation.id, @@ -199,24 +199,21 @@ export const sendOrganisationMemberInviteEmail = async ({ const [html, text] = await Promise.all([ renderEmailWithI18N(template, { - lang: settings.documentLanguage, + lang: emailLanguage, branding, }), renderEmailWithI18N(template, { - lang: settings.documentLanguage, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(settings.documentLanguage); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: email, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, subject: i18n._(msg`You have been invited to join ${organisation.name} on Documenso`), html, text, diff --git a/packages/lib/server-only/recipient/delete-document-recipient.ts b/packages/lib/server-only/recipient/delete-document-recipient.ts index a364fa410..a9b7790b9 100644 --- a/packages/lib/server-only/recipient/delete-document-recipient.ts +++ b/packages/lib/server-only/recipient/delete-document-recipient.ts @@ -11,7 +11,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { extractDerivedDocumentEmailSettings } from '../../types/document-email'; import { createDocumentAuditLogData } from '../../utils/document-audit-logs'; @@ -125,31 +124,29 @@ export const deleteDocumentRecipient = async ({ assetBaseUrl, }); - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail, replyToEmail } = await getEmailContext({ + emailType: 'RECIPIENT', source: { type: 'team', teamId: document.teamId, }, + meta: document.documentMeta || null, }); - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), - renderEmailWithI18N(template, { lang, branding, plainText: true }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding, plainText: true }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: { address: recipientToDelete.email, name: recipientToDelete.name, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, + replyTo: replyToEmail, subject: i18n._(msg`You have been removed from a document`), html, text, diff --git a/packages/lib/server-only/recipient/set-document-recipients.ts b/packages/lib/server-only/recipient/set-document-recipients.ts index abe55dc58..25ff0b480 100644 --- a/packages/lib/server-only/recipient/set-document-recipients.ts +++ b/packages/lib/server-only/recipient/set-document-recipients.ts @@ -25,7 +25,6 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { extractDerivedDocumentEmailSettings } from '../../types/document-email'; import { canRecipientBeModified } from '../../utils/recipients'; @@ -71,13 +70,6 @@ export const setDocumentRecipients = async ({ }, }); - const { branding, settings } = await getEmailContext({ - source: { - type: 'team', - teamId, - }, - }); - const user = await prisma.user.findFirstOrThrow({ where: { id: userId, @@ -97,6 +89,15 @@ export const setDocumentRecipients = async ({ throw new Error('Document already complete'); } + const { branding, emailLanguage, senderEmail, replyToEmail } = await getEmailContext({ + emailType: 'RECIPIENT', + source: { + type: 'team', + teamId, + }, + meta: document.documentMeta || null, + }); + const recipientsHaveActionAuth = recipients.some( (recipient) => recipient.actionAuth && recipient.actionAuth.length > 0, ); @@ -302,24 +303,20 @@ export const setDocumentRecipients = async ({ assetBaseUrl, }); - const lang = document.documentMeta?.language ?? settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), - renderEmailWithI18N(template, { lang, branding, plainText: true }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding, plainText: true }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: { address: recipient.email, name: recipient.name, }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, + replyTo: replyToEmail, subject: i18n._(msg`You have been removed from a document`), html, text, diff --git a/packages/lib/server-only/team/create-team-email-verification.ts b/packages/lib/server-only/team/create-team-email-verification.ts index de4dcddd2..f2565d6a8 100644 --- a/packages/lib/server-only/team/create-team-email-verification.ts +++ b/packages/lib/server-only/team/create-team-email-verification.ts @@ -8,14 +8,12 @@ import { z } from 'zod'; import { mailer } from '@documenso/email/mailer'; import { ConfirmTeamEmailTemplate } from '@documenso/email/templates/confirm-team-email'; import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; import { TEAM_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/teams'; import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import { createTokenVerification } from '@documenso/lib/utils/token-verification'; import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../client-only/providers/i18n-server'; -import type { SupportedLanguageCodes } from '../../constants/i18n'; import { env } from '../../utils/env'; import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; import { buildTeamWhereQuery } from '../../utils/teams'; @@ -122,33 +120,28 @@ export const sendTeamEmailVerificationEmail = async (email: string, token: strin token, }); - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'team', teamId: team.id, }, }); - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - const lang = settings.documentLanguage as SupportedLanguageCodes; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), renderEmailWithI18N(template, { - lang, + lang: emailLanguage, branding, plainText: true, }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: email, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, subject: i18n._( msg`A request to use your email has been initiated by ${team.name} on Documenso`, ), diff --git a/packages/lib/server-only/team/delete-team-email.ts b/packages/lib/server-only/team/delete-team-email.ts index da6e44f2b..4e4b538e5 100644 --- a/packages/lib/server-only/team/delete-team-email.ts +++ b/packages/lib/server-only/team/delete-team-email.ts @@ -5,7 +5,6 @@ import { msg } from '@lingui/core/macro'; import { mailer } from '@documenso/email/mailer'; import { TeamEmailRemovedTemplate } from '@documenso/email/templates/team-email-removed'; import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; import { TEAM_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/teams'; import { prisma } from '@documenso/prisma'; @@ -27,7 +26,8 @@ export type DeleteTeamEmailOptions = { * The user must either be part of the team with the required permissions, or the owner of the email. */ export const deleteTeamEmail = async ({ userId, userEmail, teamId }: DeleteTeamEmailOptions) => { - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'team', teamId, @@ -82,24 +82,19 @@ export const deleteTeamEmail = async ({ userId, userEmail, teamId }: DeleteTeamE teamUrl: team.url, }); - const lang = settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), - renderEmailWithI18N(template, { lang, branding, plainText: true }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding, plainText: true }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: { address: team.organisation.owner.email, name: team.organisation.owner.name ?? '', }, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, subject: i18n._(msg`Team email has been revoked for ${team.name}`), html, text, diff --git a/packages/lib/server-only/team/delete-team.ts b/packages/lib/server-only/team/delete-team.ts index ccaefa7d4..9ae1cfc68 100644 --- a/packages/lib/server-only/team/delete-team.ts +++ b/packages/lib/server-only/team/delete-team.ts @@ -7,7 +7,6 @@ import { uniqueBy } from 'remeda'; import { mailer } from '@documenso/email/mailer'; import { TeamDeleteEmailTemplate } from '@documenso/email/templates/team-delete'; import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; -import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import { prisma } from '@documenso/prisma'; @@ -130,28 +129,24 @@ export const sendTeamDeleteEmail = async ({ teamUrl: team.url, }); - const { branding, settings } = await getEmailContext({ + const { branding, emailLanguage, senderEmail } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'organisation', organisationId, }, }); - const lang = settings.documentLanguage; - const [html, text] = await Promise.all([ - renderEmailWithI18N(template, { lang, branding }), - renderEmailWithI18N(template, { lang, branding, plainText: true }), + renderEmailWithI18N(template, { lang: emailLanguage, branding }), + renderEmailWithI18N(template, { lang: emailLanguage, branding, plainText: true }), ]); - const i18n = await getI18nInstance(lang); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: email, - from: { - name: FROM_NAME, - address: FROM_ADDRESS, - }, + from: senderEmail, subject: i18n._(msg`Team "${team.name}" has been deleted on Documenso`), html, text, diff --git a/packages/lib/server-only/team/get-team-settings.ts b/packages/lib/server-only/team/get-team-settings.ts index 6eb0b0817..0bdac9e69 100644 --- a/packages/lib/server-only/team/get-team-settings.ts +++ b/packages/lib/server-only/team/get-team-settings.ts @@ -33,5 +33,13 @@ export const getTeamSettings = async ({ userId, teamId }: GetTeamSettingsOptions const organisationSettings = team.organisation.organisationGlobalSettings; const teamSettings = team.teamGlobalSettings; + // Override branding settings if inherit is enabled. + if (teamSettings.brandingEnabled === null) { + teamSettings.brandingEnabled = organisationSettings.brandingEnabled; + teamSettings.brandingLogo = organisationSettings.brandingLogo; + teamSettings.brandingUrl = organisationSettings.brandingUrl; + teamSettings.brandingCompanyDetails = organisationSettings.brandingCompanyDetails; + } + return extractDerivedTeamSettings(organisationSettings, teamSettings); }; diff --git a/packages/lib/server-only/template/create-document-from-direct-template.ts b/packages/lib/server-only/template/create-document-from-direct-template.ts index 9292a8116..bed997aab 100644 --- a/packages/lib/server-only/template/create-document-from-direct-template.ts +++ b/packages/lib/server-only/template/create-document-from-direct-template.ts @@ -3,7 +3,6 @@ import { createElement } from 'react'; import { msg } from '@lingui/core/macro'; import type { Field, Signature } from '@prisma/client'; import { - DocumentSigningOrder, DocumentSource, DocumentStatus, FieldType, @@ -25,8 +24,6 @@ import type { TSignFieldWithTokenMutationSchema } from '@documenso/trpc/server/f import { getI18nInstance } from '../../client-only/providers/i18n-server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; -import { DEFAULT_DOCUMENT_DATE_FORMAT } from '../../constants/date-formats'; -import { DEFAULT_DOCUMENT_TIME_ZONE } from '../../constants/time-zones'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import type { TRecipientActionAuthTypes } from '../../types/document-auth'; @@ -38,6 +35,7 @@ import { } from '../../types/webhook-payload'; import type { ApiRequestMetadata } from '../../universal/extract-request-metadata'; import { isRequiredField } from '../../utils/advanced-fields-helpers'; +import { extractDerivedDocumentMeta } from '../../utils/document'; import type { CreateDocumentAuditLogDataResponse } from '../../utils/document-audit-logs'; import { createDocumentAuditLogData } from '../../utils/document-audit-logs'; import { @@ -45,7 +43,6 @@ import { createRecipientAuthOptions, extractDocumentAuthMethods, } from '../../utils/document-auth'; -import { env } from '../../utils/env'; import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; import { formatDocumentsPath } from '../../utils/teams'; import { sendDocument } from '../document/send-document'; @@ -116,7 +113,8 @@ export const createDocumentFromDirectTemplate = async ({ throw new AppError(AppErrorCode.INVALID_REQUEST, { message: 'Invalid or missing template' }); } - const { branding, settings } = await getEmailContext({ + const { branding, settings, senderEmail, emailLanguage } = await getEmailContext({ + emailType: 'INTERNAL', source: { type: 'team', teamId: template.teamId, @@ -169,13 +167,7 @@ export const createDocumentFromDirectTemplate = async ({ const nonDirectTemplateRecipients = template.recipients.filter( (recipient) => recipient.id !== directTemplateRecipient.id, ); - - const metaTimezone = template.templateMeta?.timezone || DEFAULT_DOCUMENT_TIME_ZONE; - const metaDateFormat = template.templateMeta?.dateFormat || DEFAULT_DOCUMENT_DATE_FORMAT; - const metaEmailMessage = template.templateMeta?.message || ''; - const metaEmailSubject = template.templateMeta?.subject || ''; - const metaLanguage = template.templateMeta?.language ?? settings.documentLanguage; - const metaSigningOrder = template.templateMeta?.signingOrder || DocumentSigningOrder.PARALLEL; + const derivedDocumentMeta = extractDerivedDocumentMeta(settings, template.templateMeta); // Associate, validate and map to a query every direct template recipient field with the provided fields. // Only process fields that are either required or have been signed by the user @@ -234,7 +226,9 @@ export const createDocumentFromDirectTemplate = async ({ const typedSignature = isSignatureField && !isBase64 ? value : undefined; if (templateField.type === FieldType.DATE) { - customText = DateTime.now().setZone(metaTimezone).toFormat(metaDateFormat); + customText = DateTime.now() + .setZone(derivedDocumentMeta.timezone) + .toFormat(derivedDocumentMeta.dateFormat); } if (isSignatureField && !signatureImageAsBase64 && !typedSignature) { @@ -318,18 +312,7 @@ export const createDocumentFromDirectTemplate = async ({ }, }, documentMeta: { - create: { - timezone: metaTimezone, - dateFormat: metaDateFormat, - message: metaEmailMessage, - subject: metaEmailSubject, - language: metaLanguage, - signingOrder: metaSigningOrder, - distributionMethod: template.templateMeta?.distributionMethod, - typedSignatureEnabled: template.templateMeta?.typedSignatureEnabled, - uploadSignatureEnabled: template.templateMeta?.uploadSignatureEnabled, - drawSignatureEnabled: template.templateMeta?.drawSignatureEnabled, - }, + create: derivedDocumentMeta, }, }, include: { @@ -589,11 +572,11 @@ export const createDocumentFromDirectTemplate = async ({ }); const [html, text] = await Promise.all([ - renderEmailWithI18N(emailTemplate, { lang: metaLanguage, branding }), - renderEmailWithI18N(emailTemplate, { lang: metaLanguage, branding, plainText: true }), + renderEmailWithI18N(emailTemplate, { lang: emailLanguage, branding }), + renderEmailWithI18N(emailTemplate, { lang: emailLanguage, branding, plainText: true }), ]); - const i18n = await getI18nInstance(metaLanguage); + const i18n = await getI18nInstance(emailLanguage); await mailer.sendMail({ to: [ @@ -602,10 +585,7 @@ export const createDocumentFromDirectTemplate = async ({ address: templateOwner.email, }, ], - from: { - name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso', - address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com', - }, + from: senderEmail, subject: i18n._(msg`Document created from direct template`), html, text, diff --git a/packages/lib/server-only/template/create-document-from-template-legacy.ts b/packages/lib/server-only/template/create-document-from-template-legacy.ts index 5dd98b032..e0a20f55e 100644 --- a/packages/lib/server-only/template/create-document-from-template-legacy.ts +++ b/packages/lib/server-only/template/create-document-from-template-legacy.ts @@ -3,6 +3,7 @@ import { DocumentSource, type RecipientRole } from '@prisma/client'; import { nanoid, prefixedId } from '@documenso/lib/universal/id'; import { prisma } from '@documenso/prisma'; +import { extractDerivedDocumentMeta } from '../../utils/document'; import { buildTeamWhereQuery } from '../../utils/teams'; import { getTeamSettings } from '../team/get-team-settings'; @@ -78,18 +79,7 @@ export const createDocumentFromTemplateLegacy = async ({ })), }, documentMeta: { - create: { - subject: template.templateMeta?.subject, - message: template.templateMeta?.message, - timezone: template.templateMeta?.timezone, - dateFormat: template.templateMeta?.dateFormat, - redirectUrl: template.templateMeta?.redirectUrl, - signingOrder: template.templateMeta?.signingOrder ?? undefined, - language: template.templateMeta?.language || settings.documentLanguage, - typedSignatureEnabled: template.templateMeta?.typedSignatureEnabled, - uploadSignatureEnabled: template.templateMeta?.uploadSignatureEnabled, - drawSignatureEnabled: template.templateMeta?.drawSignatureEnabled, - }, + create: extractDerivedDocumentMeta(settings, template.templateMeta), }, }, diff --git a/packages/lib/server-only/template/create-document-from-template.ts b/packages/lib/server-only/template/create-document-from-template.ts index 80e1f283a..bdff9dc07 100644 --- a/packages/lib/server-only/template/create-document-from-template.ts +++ b/packages/lib/server-only/template/create-document-from-template.ts @@ -1,6 +1,5 @@ -import type { DocumentDistributionMethod } from '@prisma/client'; +import type { DocumentDistributionMethod, DocumentSigningOrder } from '@prisma/client'; import { - DocumentSigningOrder, DocumentSource, type Field, type Recipient, @@ -40,6 +39,7 @@ import { mapDocumentToWebhookDocumentPayload, } from '../../types/webhook-payload'; import type { ApiRequestMetadata } from '../../universal/extract-request-metadata'; +import { extractDerivedDocumentMeta } from '../../utils/document'; import { createDocumentAuditLogData } from '../../utils/document-audit-logs'; import { createDocumentAuthOptions, @@ -388,7 +388,7 @@ export const createDocumentFromTemplate = async ({ })), }, documentMeta: { - create: { + create: extractDerivedDocumentMeta(settings, { subject: override?.subject || template.templateMeta?.subject, message: override?.message || template.templateMeta?.message, timezone: override?.timezone || template.templateMeta?.timezone, @@ -397,13 +397,8 @@ export const createDocumentFromTemplate = async ({ redirectUrl: override?.redirectUrl || template.templateMeta?.redirectUrl, distributionMethod: override?.distributionMethod || template.templateMeta?.distributionMethod, - // last `undefined` is due to JsonValue's - emailSettings: - override?.emailSettings || template.templateMeta?.emailSettings || undefined, - signingOrder: - override?.signingOrder || - template.templateMeta?.signingOrder || - DocumentSigningOrder.PARALLEL, + emailSettings: override?.emailSettings || template.templateMeta?.emailSettings, + signingOrder: override?.signingOrder || template.templateMeta?.signingOrder, language: override?.language || template.templateMeta?.language || settings.documentLanguage, typedSignatureEnabled: @@ -413,10 +408,8 @@ export const createDocumentFromTemplate = async ({ drawSignatureEnabled: override?.drawSignatureEnabled ?? template.templateMeta?.drawSignatureEnabled, allowDictateNextSigner: - override?.allowDictateNextSigner ?? - template.templateMeta?.allowDictateNextSigner ?? - false, - }, + override?.allowDictateNextSigner ?? template.templateMeta?.allowDictateNextSigner, + }), }, recipients: { createMany: { diff --git a/packages/lib/server-only/template/create-template.ts b/packages/lib/server-only/template/create-template.ts index bd67eebe6..5019407a2 100644 --- a/packages/lib/server-only/template/create-template.ts +++ b/packages/lib/server-only/template/create-template.ts @@ -6,6 +6,7 @@ import { TemplateSchema } from '@documenso/prisma/generated/zod/modelSchema//Tem import { AppError, AppErrorCode } from '../../errors/app-error'; import type { TDocumentAccessAuthTypes, TDocumentActionAuthTypes } from '../../types/document-auth'; +import { extractDerivedDocumentMeta } from '../../utils/document'; import { createDocumentAuthOptions } from '../../utils/document-auth'; import { buildTeamWhereQuery } from '../../utils/teams'; import { getTeamSettings } from '../team/get-team-settings'; @@ -69,6 +70,24 @@ export const createTemplate = async ({ teamId, }); + const emailId = meta.emailId; + + // Validate that the email ID belongs to the organisation. + if (emailId) { + const email = await prisma.organisationEmail.findFirst({ + where: { + id: emailId, + organisationId: team.organisationId, + }, + }); + + if (!email) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email not found', + }); + } + } + return await prisma.template.create({ data: { title, @@ -86,14 +105,7 @@ export const createTemplate = async ({ publicDescription: data.publicDescription, type: data.type, templateMeta: { - create: { - ...meta, - language: meta?.language ?? settings.documentLanguage, - typedSignatureEnabled: meta?.typedSignatureEnabled ?? settings.typedSignatureEnabled, - uploadSignatureEnabled: meta?.uploadSignatureEnabled ?? settings.uploadSignatureEnabled, - drawSignatureEnabled: meta?.drawSignatureEnabled ?? settings.drawSignatureEnabled, - emailSettings: meta?.emailSettings || undefined, - }, + create: extractDerivedDocumentMeta(settings, meta), }, }, }); diff --git a/packages/lib/server-only/template/update-template.ts b/packages/lib/server-only/template/update-template.ts index 4485fdc66..65314dd48 100644 --- a/packages/lib/server-only/template/update-template.ts +++ b/packages/lib/server-only/template/update-template.ts @@ -41,6 +41,7 @@ export const updateTemplate = async ({ templateMeta: true, team: { select: { + organisationId: true, organisation: { select: { organisationClaim: true, @@ -86,6 +87,24 @@ export const updateTemplate = async ({ globalActionAuth: newGlobalActionAuth, }); + const emailId = meta.emailId; + + // Validate the emailId belongs to the organisation. + if (emailId) { + const email = await prisma.organisationEmail.findFirst({ + where: { + id: emailId, + organisationId: template.team.organisationId, + }, + }); + + if (!email) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email not found', + }); + } + } + return await prisma.template.update({ where: { id: templateId, diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po new file mode 100644 index 000000000..e3bdb0536 --- /dev/null +++ b/packages/lib/translations/en/web.po @@ -0,0 +1,9257 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2024-07-24 13:01+1000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: en\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid " Enable direct link signing" +msgstr " Enable direct link signing" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid ".PDF documents accepted (max {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB)" +msgstr ".PDF documents accepted (max {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB)" + +#. placeholder {0}: field.customText +#. placeholder {1}: timezone || '' +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +msgid "\"{0}\" will appear on the document as it has a timezone of \"{1}\"." +msgstr "\"{0}\" will appear on the document as it has a timezone of \"{1}\"." + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "\"{documentName}\" has been deleted by an admin." +msgstr "\"{documentName}\" has been deleted by an admin." + +#: packages/email/template-components/template-document-pending.tsx +msgid "“{documentName}” has been signed" +msgstr "“{documentName}” has been signed" + +#: packages/email/template-components/template-document-completed.tsx +msgid "“{documentName}” was signed by all signers" +msgstr "“{documentName}” was signed by all signers" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "\"{documentTitle}\" has been successfully deleted" +msgstr "\"{documentTitle}\" has been successfully deleted" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "\"{placeholderEmail}\" on behalf of \"Team Name\" has invited you to sign \"example document\"." +msgstr "\"{placeholderEmail}\" on behalf of \"Team Name\" has invited you to sign \"example document\"." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "\"Team Name\" has invited you to sign \"example document\"." +msgstr "\"Team Name\" has invited you to sign \"example document\"." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "(You)" +msgstr "(You)" + +#. placeholder {0}: Math.abs(charactersRemaining) +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "{0, plural, one {(1 character over)} other {(# characters over)}}" +msgstr "{0, plural, one {(1 character over)} other {(# characters over)}}" + +#. placeholder {0}: Math.abs(remaningLength) +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{0, plural, one {# character over the limit} other {# characters over the limit}}" +msgstr "{0, plural, one {# character over the limit} other {# characters over the limit}}" + +#. placeholder {0}: folder._count.documents +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# document} other {# documents}}" +msgstr "{0, plural, one {# document} other {# documents}}" + +#. placeholder {0}: folder._count.subfolders +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# folder} other {# folders}}" +msgstr "{0, plural, one {# folder} other {# folders}}" + +#. placeholder {0}: template.recipients.length +#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx +msgid "{0, plural, one {# recipient} other {# recipients}}" +msgstr "{0, plural, one {# recipient} other {# recipients}}" + +#. placeholder {0}: org.teams.length +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "{0, plural, one {# team} other {# teams}}" +msgstr "{0, plural, one {# team} other {# teams}}" + +#. placeholder {0}: folder._count.templates +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# template} other {# templates}}" +msgstr "{0, plural, one {# template} other {# templates}}" + +#. placeholder {0}: data.length +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "{0, plural, one {<0>You have <1>1 pending invitation} other {<2>You have <3># pending invitations}}" +msgstr "{0, plural, one {<0>You have <1>1 pending invitation} other {<2>You have <3># pending invitations}}" + +#. placeholder {0}: autoSignableFields.filter((f) => f.type === fieldType).length +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "{0, plural, one {1 matching field} other {# matching fields}}" +msgstr "{0, plural, one {1 matching field} other {# matching fields}}" + +#. placeholder {0}: recipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.edit.tsx +msgid "{0, plural, one {1 Recipient} other {# Recipients}}" +msgstr "{0, plural, one {1 Recipient} other {# Recipients}}" + +#. placeholder {0}: pendingRecipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "{0, plural, one {Waiting on 1 recipient} other {Waiting on # recipients}}" +msgstr "{0, plural, one {Waiting on 1 recipient} other {Waiting on # recipients}}" + +#. placeholder {0}: route.label +#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType]) +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "{0}" +msgstr "{0}" + +#. placeholder {0}: team.name +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{0} direct signing templates" +msgstr "{0} direct signing templates" + +#. placeholder {0}: team.name +#. placeholder {1}: document.title +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"." +msgstr "{0} has invited you to {recipientActionVerb} the document \"{1}\"." + +#. placeholder {0}: team.name +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{0} invited you to {recipientActionVerb} a document" +msgstr "{0} invited you to {recipientActionVerb} a document" + +#. placeholder {0}: remaining.documents +#. placeholder {1}: quota.documents +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "{0} of {1} documents remaining this month." +msgstr "{0} of {1} documents remaining this month." + +#. placeholder {0}: table.getFilteredSelectedRowModel().rows.length +#. placeholder {1}: table.getFilteredRowModel().rows.length +#: packages/ui/primitives/data-table-pagination.tsx +msgid "{0} of {1} row(s) selected." +msgstr "{0} of {1} row(s) selected." + +#. placeholder {0}: user.name || user.email +#. placeholder {1}: document.team.name +#. placeholder {2}: document.title +#: packages/lib/server-only/document/resend-document.ts +msgid "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"." +msgstr "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"." + +#. placeholder {0}: recipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "{0} Recipient(s)" +msgstr "{0} Recipient(s)" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "{0} Teams" +msgstr "{0} Teams" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "{charactersRemaining, plural, one {1 character remaining} other {{charactersRemaining} characters remaining}}" +msgstr "{charactersRemaining, plural, one {1 character remaining} other {{charactersRemaining} characters remaining}}" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} <0>({inviterEmail})" +msgstr "{inviterName} <0>({inviterEmail})" + +#: packages/email/templates/document-cancel.tsx +msgid "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." +msgstr "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." + +#: packages/email/template-components/template-document-cancel.tsx +msgid "{inviterName} has cancelled the document<0/>\"{documentName}\"" +msgstr "{inviterName} has cancelled the document<0/>\"{documentName}\"" + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{inviterName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "{inviterName} has invited you to {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} has invited you to {action} {documentName}" +msgstr "{inviterName} has invited you to {action} {documentName}" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} has invited you to {action} the document \"{documentName}\"." +msgstr "{inviterName} has invited you to {action} the document \"{documentName}\"." + +#: packages/email/templates/recipient-removed-from-document.tsx +msgid "{inviterName} has removed you from the document {documentName}." +msgstr "{inviterName} has removed you from the document {documentName}." + +#: packages/email/templates/recipient-removed-from-document.tsx +msgid "{inviterName} has removed you from the document<0/>\"{documentName}\"" +msgstr "{inviterName} has removed you from the document<0/>\"{documentName}\"" + +#. placeholder {0}: team.name +#. placeholder {1}: document.title +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{inviterName} on behalf of \"{0}\" has invited you to {recipientActionVerb} the document \"{1}\"." +msgstr "{inviterName} on behalf of \"{0}\" has invited you to {recipientActionVerb} the document \"{1}\"." + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {0}<0/>\"{documentName}\"" +msgstr "{inviterName} on behalf of \"{teamName}\" has invited you to {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}" +msgstr "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} added a field" +msgstr "{prefix} added a field" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} added a recipient" +msgstr "{prefix} added a recipient" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} created the document" +msgstr "{prefix} created the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} deleted the document" +msgstr "{prefix} deleted the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} moved the document to team" +msgstr "{prefix} moved the document to team" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} opened the document" +msgstr "{prefix} opened the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} prefilled a field" +msgstr "{prefix} prefilled a field" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} removed a field" +msgstr "{prefix} removed a field" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} removed a recipient" +msgstr "{prefix} removed a recipient" + +#. placeholder {0}: data.recipientEmail +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} resent an email to {0}" +msgstr "{prefix} resent an email to {0}" + +#. placeholder {0}: data.recipientEmail +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} sent an email to {0}" +msgstr "{prefix} sent an email to {0}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} sent the document" +msgstr "{prefix} sent the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} signed a field" +msgstr "{prefix} signed a field" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} unsigned a field" +msgstr "{prefix} unsigned a field" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated a field" +msgstr "{prefix} updated a field" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated a recipient" +msgstr "{prefix} updated a recipient" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document" +msgstr "{prefix} updated the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document access auth requirements" +msgstr "{prefix} updated the document access auth requirements" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document external ID" +msgstr "{prefix} updated the document external ID" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document signing auth requirements" +msgstr "{prefix} updated the document signing auth requirements" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document title" +msgstr "{prefix} updated the document title" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document visibility" +msgstr "{prefix} updated the document visibility" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} viewed the document" +msgstr "{prefix} viewed the document" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "{recipientActionVerb} document" +msgstr "{recipientActionVerb} document" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "{recipientActionVerb} the document to complete the process." +msgstr "{recipientActionVerb} the document to complete the process." + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "{recipientCount} recipients" +msgstr "{recipientCount} recipients" + +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "{recipientName} {action} a document by using one of your direct links" +msgstr "{recipientName} {action} a document by using one of your direct links" + +#: packages/email/templates/document-rejected.tsx +msgid "{recipientName} has rejected the document '{documentName}'" +msgstr "{recipientName} has rejected the document '{documentName}'" + +#: packages/email/template-components/template-document-recipient-signed.tsx +msgid "{recipientReference} has completed signing the document." +msgstr "{recipientReference} has completed signing the document." + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-recipient-signed-email.handler.ts +msgid "{recipientReference} has signed \"{0}\"" +msgstr "{recipientReference} has signed \"{0}\"" + +#: packages/email/template-components/template-document-recipient-signed.tsx +msgid "{recipientReference} has signed \"{documentName}\"" +msgstr "{recipientReference} has signed \"{documentName}\"" + +#: packages/email/templates/document-recipient-signed.tsx +msgid "{recipientReference} has signed {documentName}" +msgstr "{recipientReference} has signed {documentName}" + +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{remaningLength, plural, one {# character remaining} other {# characters remaining}}" +msgstr "{remaningLength, plural, one {# character remaining} other {# characters remaining}}" + +#: packages/email/template-components/template-document-rejected.tsx +msgid "{signerName} has rejected the document \"{documentName}\"." +msgstr "{signerName} has rejected the document \"{documentName}\"." + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{teamName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "{teamName} has invited you to {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{teamName} has invited you to {action} {documentName}" +msgstr "{teamName} has invited you to {action} {documentName}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} approved the document" +msgstr "{userName} approved the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} CC'd the document" +msgstr "{userName} CC'd the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} completed their task" +msgstr "{userName} completed their task" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} rejected the document" +msgstr "{userName} rejected the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} signed the document" +msgstr "{userName} signed the document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} viewed the document" +msgstr "{userName} viewed the document" + +#: packages/ui/primitives/data-table-pagination.tsx +msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" +msgstr "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" + +#. placeholder {0}: document.title +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "<0>\"{0}\"is no longer available to sign" +msgstr "<0>\"{0}\"is no longer available to sign" + +#: packages/email/templates/confirm-team-email.tsx +msgid "<0>{teamName} has requested to use your email address for their team on Documenso." +msgstr "<0>{teamName} has requested to use your email address for their team on Documenso." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "<0>Click to upload or drag and drop" +msgstr "<0>Click to upload or drag and drop" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Drawn - A signature that is drawn using a mouse or stylus." +msgstr "<0>Drawn - A signature that is drawn using a mouse or stylus." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>Email - The recipient will be emailed the document to sign, approve, etc." +msgstr "<0>Email - The recipient will be emailed the document to sign, approve, etc." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" +msgstr "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>No restrictions - No authentication required" +msgstr "<0>No restrictions - No authentication required" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "<0>No restrictions - The document can be accessed directly by the URL sent to the recipient" +msgstr "<0>No restrictions - The document can be accessed directly by the URL sent to the recipient" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "<0>None - No authentication required" +msgstr "<0>None - No authentication required" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>None - We will generate links which you can send to the recipients manually." +msgstr "<0>None - We will generate links which you can send to the recipients manually." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>Note - If you use Links in combination with direct templates, you will need to manually send the links to the remaining recipients." +msgstr "<0>Note - If you use Links in combination with direct templates, you will need to manually send the links to the remaining recipients." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require 2FA - The recipient must have an account and 2FA enabled via their settings" +msgstr "<0>Require 2FA - The recipient must have an account and 2FA enabled via their settings" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "<0>Require account - The recipient must be signed in to view the document" +msgstr "<0>Require account - The recipient must be signed in to view the document" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require passkey - The recipient must have an account and passkey configured via their settings" +msgstr "<0>Require passkey - The recipient must have an account and passkey configured via their settings" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require password - The recipient must have an account and password configured via their settings, the password will be verified during signing" +msgstr "<0>Require password - The recipient must have an account and password configured via their settings, the password will be verified during signing" + +#: apps/remix/app/components/tables/documents-table-sender-filter.tsx +msgid "<0>Sender: All" +msgstr "<0>Sender: All" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Typed - A signature that is typed using a keyboard." +msgstr "<0>Typed - A signature that is typed using a keyboard." + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Uploaded - A signature that is uploaded from a file." +msgstr "<0>Uploaded - A signature that is uploaded from a file." + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete approving <1>\"{documentTitle}\".<2/> Are you sure?" +msgstr "<0>You are about to complete approving <1>\"{documentTitle}\".<2/> Are you sure?" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete signing \"<1>{documentTitle}\".<2/> Are you sure?" +msgstr "<0>You are about to complete signing \"<1>{documentTitle}\".<2/> Are you sure?" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete viewing \"<1>{documentTitle}\".<2/> Are you sure?" +msgstr "<0>You are about to complete viewing \"<1>{documentTitle}\".<2/> Are you sure?" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "0 Free organisations left" +msgstr "0 Free organisations left" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "1 Free organisations left" +msgstr "1 Free organisations left" + +#: apps/remix/app/components/forms/token.tsx +msgid "1 month" +msgstr "1 month" + +#: apps/remix/app/components/forms/token.tsx +msgid "12 months" +msgstr "12 months" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "2FA" +msgstr "2FA" + +#: apps/remix/app/components/forms/token.tsx +msgid "3 months" +msgstr "3 months" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "401 Unauthorized" +msgstr "401 Unauthorized" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "404 Email domain not found" +msgstr "404 Email domain not found" + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "404 not found" +msgstr "404 not found" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "404 Organisation group not found" +msgstr "404 Organisation group not found" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "404 Organisation not found" +msgstr "404 Organisation not found" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "404 Profile not found" +msgstr "404 Profile not found" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "404 Team not found" +msgstr "404 Team not found" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "404 User not found" +msgstr "404 User not found" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "404 Webhook not found" +msgstr "404 Webhook not found" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "5 documents a month" +msgstr "5 documents a month" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "5 Documents a month" +msgstr "5 Documents a month" + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "500 Internal Server Error" +msgstr "500 Internal Server Error" + +#: apps/remix/app/components/forms/token.tsx +msgid "6 months" +msgstr "6 months" + +#: apps/remix/app/components/forms/token.tsx +msgid "7 days" +msgstr "7 days" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." +msgstr "A confirmation email has been sent, and it should arrive in your inbox shortly." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A device capable of accessing, opening, and reading documents" +msgstr "A device capable of accessing, opening, and reading documents" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "A document was created by your direct template that requires you to {recipientActionVerb} it." +msgstr "A document was created by your direct template that requires you to {recipientActionVerb} it." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "A draft document will be created" +msgstr "A draft document will be created" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was added" +msgstr "A field was added" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was removed" +msgstr "A field was removed" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was updated" +msgstr "A field was updated" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A means to print or download documents for your records" +msgstr "A means to print or download documents for your records" + +#: packages/email/templates/organisation-join.tsx +msgid "A member has joined your organisation on Documenso" +msgstr "A member has joined your organisation on Documenso" + +#: packages/lib/jobs/definitions/emails/send-organisation-member-left-email.handler.ts +msgid "A member has left your organisation" +msgstr "A member has left your organisation" + +#: packages/email/templates/organisation-leave.tsx +msgid "A member has left your organisation {organisationName}" +msgstr "A member has left your organisation {organisationName}" + +#: packages/email/templates/organisation-leave.tsx +msgid "A member has left your organisation on Documenso" +msgstr "A member has left your organisation on Documenso" + +#: packages/lib/jobs/definitions/emails/send-organisation-member-joined-email.handler.ts +msgid "A new member has joined your organisation" +msgstr "A new member has joined your organisation" + +#: packages/email/templates/organisation-join.tsx +msgid "A new member has joined your organisation {organisationName}" +msgstr "A new member has joined your organisation {organisationName}" + +#: apps/remix/app/components/forms/token.tsx +msgid "A new token was created successfully." +msgstr "A new token was created successfully." + +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "A password reset email has been sent, if you have an account you should see it in your inbox shortly." +msgstr "A password reset email has been sent, if you have an account you should see it in your inbox shortly." + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was added" +msgstr "A recipient was added" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was removed" +msgstr "A recipient was removed" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was updated" +msgstr "A recipient was updated" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/create-team-email-verification.ts +msgid "A request to use your email has been initiated by {0} on Documenso" +msgstr "A request to use your email has been initiated by {0} on Documenso" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso" +msgstr "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." +msgstr "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A stable internet connection" +msgstr "A stable internet connection" + +#: packages/email/templates/team-delete.tsx +#: packages/email/templates/team-delete.tsx +msgid "A team you were a part of has been deleted" +msgstr "A team you were a part of has been deleted" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "A unique URL to access your profile" +msgstr "A unique URL to access your profile" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "A unique URL to identify the organisation" +msgstr "A unique URL to identify the organisation" + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "A unique URL to identify your organisation" +msgstr "A unique URL to identify your organisation" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "A unique URL to identify your team" +msgstr "A unique URL to identify your team" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "A verification email will be sent to the provided email." +msgstr "A verification email will be sent to the provided email." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: packages/email/templates/organisation-invite.tsx +#: packages/email/templates/confirm-team-email.tsx +msgid "Accept" +msgstr "Accept" + +#: packages/email/templates/organisation-invite.tsx +msgid "Accept invitation to join an organisation on Documenso" +msgstr "Accept invitation to join an organisation on Documenso" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Accept team email request for {teamName} on Documenso" +msgstr "Accept team email request for {teamName} on Documenso" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Acceptance and Consent" +msgstr "Acceptance and Consent" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "Access disabled" +msgstr "Access disabled" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Access enabled" +msgstr "Access enabled" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Account" +msgstr "Account" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Account Authentication" +msgstr "Account Authentication" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Account deleted" +msgstr "Account deleted" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Account disabled" +msgstr "Account disabled" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Account enabled" +msgstr "Account enabled" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Account Re-Authentication" +msgstr "Account Re-Authentication" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Acknowledgment" +msgstr "Acknowledgment" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Action" +msgstr "Action" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Actions" +msgstr "Actions" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "Active" +msgstr "Active" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Active sessions" +msgstr "Active sessions" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Active Subscriptions" +msgstr "Active Subscriptions" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add" +msgstr "Add" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Add a custom domain to send emails on behalf of your organisation. We'll generate DKIM records that you need to add to your DNS provider." +msgstr "Add a custom domain to send emails on behalf of your organisation. We'll generate DKIM records that you need to add to your DNS provider." + +#: packages/ui/primitives/document-dropzone.tsx +msgid "Add a document" +msgstr "Add a document" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Add a URL to redirect the user to once the document is signed" +msgstr "Add a URL to redirect the user to once the document is signed" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add all relevant fields for each recipient." +msgstr "Add all relevant fields for each recipient." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Add all relevant placeholders for each recipient." +msgstr "Add all relevant placeholders for each recipient." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Add an authenticator to serve as a secondary authentication method for signing documents." +msgstr "Add an authenticator to serve as a secondary authentication method for signing documents." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Add an authenticator to serve as a secondary authentication method when signing in, or when signing documents." +msgstr "Add an authenticator to serve as a secondary authentication method when signing in, or when signing documents." + +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Add an external ID to the document. This can be used to identify the document in external systems." +msgstr "Add an external ID to the document. This can be used to identify the document in external systems." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Add an external ID to the template. This can be used to identify in external systems." +msgstr "Add an external ID to the template. This can be used to identify in external systems." + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Add another option" +msgstr "Add another option" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Add another value" +msgstr "Add another value" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Add Custom Email Domain" +msgstr "Add Custom Email Domain" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add email" +msgstr "Add email" + +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "Add Email" +msgstr "Add Email" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Add Email Domain" +msgstr "Add Email Domain" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add Fields" +msgstr "Add Fields" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Add group roles" +msgstr "Add group roles" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Add groups" +msgstr "Add groups" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add members" +msgstr "Add members" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add Members" +msgstr "Add Members" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add members roles" +msgstr "Add members roles" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Add more" +msgstr "Add more" + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Add myself" +msgstr "Add myself" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Add Myself" +msgstr "Add Myself" + +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "Add Organisation Email" +msgstr "Add Organisation Email" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Add passkey" +msgstr "Add passkey" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Add Placeholder Recipient" +msgstr "Add Placeholder Recipient" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Add Placeholders" +msgstr "Add Placeholders" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Add Signer" +msgstr "Add Signer" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add Signers" +msgstr "Add Signers" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +msgid "Add signers and configure signing preferences" +msgstr "Add signers and configure signing preferences" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add team email" +msgstr "Add team email" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Add text" +msgstr "Add text" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Add text to the field" +msgstr "Add text to the field" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add the people who will sign the document." +msgstr "Add the people who will sign the document." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Add the recipients to create the document with" +msgstr "Add the recipients to create the document with" + +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +msgid "Add these DNS records to verify your domain ownership" +msgstr "Add these DNS records to verify your domain ownership" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Additional brand information to display at the bottom of emails" +msgstr "Additional brand information to display at the bottom of emails" + +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Admin" +msgstr "Admin" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Admin Actions" +msgstr "Admin Actions" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Admin panel" +msgstr "Admin panel" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Admin Panel" +msgstr "Admin Panel" + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +msgid "Admins only" +msgstr "Admins only" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Advanced Options" +msgstr "Advanced Options" + +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Advanced settings" +msgstr "Advanced settings" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Advanced Settings" +msgstr "Advanced Settings" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." +msgstr "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." + +#: packages/lib/constants/template.ts +msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." +msgstr "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "All" +msgstr "All" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "All documents" +msgstr "All documents" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "All documents have been completed!" +msgstr "All documents have been completed!" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "All documents have been processed. Any new documents that are sent or received will show here." +msgstr "All documents have been processed. Any new documents that are sent or received will show here." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." +msgstr "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." + +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "All email domains have been synced successfully" +msgstr "All email domains have been synced successfully" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +msgid "All Folders" +msgstr "All Folders" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "All inserted signatures will be voided" +msgstr "All inserted signatures will be voided" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "All recipients will be notified" +msgstr "All recipients will be notified" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "All signatures have been voided." +msgstr "All signatures have been voided." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "All signing links have been copied to your clipboard." +msgstr "All signing links have been copied to your clipboard." + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "All templates" +msgstr "All templates" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "All Time" +msgstr "All Time" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Allow all organisation members to access this team" +msgstr "Allow all organisation members to access this team" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Allow document recipients to reply directly to this email address" +msgstr "Allow document recipients to reply directly to this email address" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Allow signers to dictate next signer" +msgstr "Allow signers to dictate next signer" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Allowed Signature Types" +msgstr "Allowed Signature Types" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "Allowed teams" +msgstr "Allowed teams" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Allows authenticating using biometrics, password managers, hardware keys, etc." +msgstr "Allows authenticating using biometrics, password managers, hardware keys, etc." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Already have an account? <0>Sign in instead" +msgstr "Already have an account? <0>Sign in instead" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +msgid "Amount" +msgstr "Amount" + +#: packages/email/templates/document-super-delete.tsx +msgid "An admin has deleted your document \"{documentName}\"." +msgstr "An admin has deleted your document \"{documentName}\"." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." +msgstr "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "An email account" +msgstr "An email account" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "An email containing an invitation will be sent to each member." +msgstr "An email containing an invitation will be sent to each member." + +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "An email with this address already exists." +msgstr "An email with this address already exists." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/token.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "An error occurred" +msgstr "An error occurred" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "An error occurred while adding fields." +msgstr "An error occurred while adding fields." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while adding signers." +msgstr "An error occurred while adding signers." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while adding the fields." +msgstr "An error occurred while adding the fields." + +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "An error occurred while auto-signing the document, some fields may not be signed. Please review and manually sign any remaining fields." +msgstr "An error occurred while auto-signing the document, some fields may not be signed. Please review and manually sign any remaining fields." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "An error occurred while creating document from template." +msgstr "An error occurred while creating document from template." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "An error occurred while creating the webhook. Please try again." +msgstr "An error occurred while creating the webhook. Please try again." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "An error occurred while deleting the user." +msgstr "An error occurred while deleting the user." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "An error occurred while disabling direct link signing." +msgstr "An error occurred while disabling direct link signing." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "An error occurred while disabling the user." +msgstr "An error occurred while disabling the user." + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +msgid "An error occurred while downloading your document." +msgstr "An error occurred while downloading your document." + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "An error occurred while duplicating template." +msgstr "An error occurred while duplicating template." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "An error occurred while enabling direct link signing." +msgstr "An error occurred while enabling direct link signing." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "An error occurred while enabling the user." +msgstr "An error occurred while enabling the user." + +#: packages/ui/primitives/pdf-viewer.tsx +msgid "An error occurred while loading the document." +msgstr "An error occurred while loading the document." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "An error occurred while moving the document." +msgstr "An error occurred while moving the document." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "An error occurred while moving the template." +msgstr "An error occurred while moving the template." + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while removing the field." +msgstr "An error occurred while removing the field." + +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +msgid "An error occurred while removing the selection." +msgstr "An error occurred while removing the selection." + +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "An error occurred while removing the signature." +msgstr "An error occurred while removing the signature." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while sending the document." +msgstr "An error occurred while sending the document." + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "An error occurred while sending your confirmation email" +msgstr "An error occurred while sending your confirmation email" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while signing as assistant." +msgstr "An error occurred while signing as assistant." + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "An error occurred while signing the document." +msgstr "An error occurred while signing the document." + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/billing-plans.tsx +msgid "An error occurred while trying to create a checkout session." +msgstr "An error occurred while trying to create a checkout session." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while updating the document settings." +msgstr "An error occurred while updating the document settings." + +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while updating the signature." +msgstr "An error occurred while updating the signature." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "An error occurred while updating your profile." +msgstr "An error occurred while updating your profile." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "An error occurred while uploading your document." +msgstr "An error occurred while uploading your document." + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "An unexpected error occurred." +msgstr "An unexpected error occurred." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "An unknown error occurred" +msgstr "An unknown error occurred" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "An unknown error occurred while creating the folder." +msgstr "An unknown error occurred while creating the folder." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "An unknown error occurred while deleting the folder." +msgstr "An unknown error occurred while deleting the folder." + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "An unknown error occurred while moving the folder." +msgstr "An unknown error occurred while moving the folder." + +#: apps/remix/app/routes/_authenticated+/inbox.tsx +msgid "Any documents that you have been invited to will appear here" +msgstr "Any documents that you have been invited to will appear here" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Any Source" +msgstr "Any Source" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Any Status" +msgstr "Any Status" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "API Tokens" +msgstr "API Tokens" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "App Version" +msgstr "App Version" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Approve" +msgstr "Approve" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Approve Document" +msgstr "Approve Document" + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Approved" +msgstr "Approved" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approver" +msgstr "Approver" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approvers" +msgstr "Approvers" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approving" +msgstr "Approving" + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Are you sure you want to complete the document? This action cannot be undone. Please ensure that you have completed prefilling all relevant fields before proceeding." +msgstr "Are you sure you want to complete the document? This action cannot be undone. Please ensure that you have completed prefilling all relevant fields before proceeding." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Are you sure you want to delete the following claim?" +msgstr "Are you sure you want to delete the following claim?" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Are you sure you want to delete this folder?" +msgstr "Are you sure you want to delete this folder?" + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Are you sure you want to delete this token?" +msgstr "Are you sure you want to delete this token?" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +msgid "Are you sure you want to reject this document? This action cannot be undone." +msgstr "Are you sure you want to reject this document? This action cannot be undone." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Are you sure you want to remove the <0>{passkeyName} passkey." +msgstr "Are you sure you want to remove the <0>{passkeyName} passkey." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Are you sure you wish to delete this organisation?" +msgstr "Are you sure you wish to delete this organisation?" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Are you sure you wish to delete this team?" +msgstr "Are you sure you wish to delete this team?" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Are you sure?" +msgstr "Are you sure?" + +#: apps/remix/app/components/tables/organisation-groups-table.tsx +msgid "Assigned Teams" +msgstr "Assigned Teams" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assist" +msgstr "Assist" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Assist Document" +msgstr "Assist Document" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Assist with signing" +msgstr "Assist with signing" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assistant" +msgstr "Assistant" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Assistant role is only available when the document is in sequential signing mode." +msgstr "Assistant role is only available when the document is in sequential signing mode." + +#: packages/lib/constants/recipient-roles.ts +msgid "Assistants" +msgstr "Assistants" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Assistants and Copy roles are currently not compatible with the multi-sign experience." +msgstr "Assistants and Copy roles are currently not compatible with the multi-sign experience." + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Assisted" +msgstr "Assisted" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assisting" +msgstr "Assisting" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: packages/ui/primitives/template-flow/add-template-settings.types.tsx +#: packages/ui/primitives/document-flow/add-settings.types.ts +#: packages/lib/types/document-meta.ts +msgid "At least one signature type must be enabled" +msgstr "At least one signature type must be enabled" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Attempts sealing the document again, useful for after a code change has occurred to resolve an erroneous document." +msgstr "Attempts sealing the document again, useful for after a code change has occurred to resolve an erroneous document." + +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Audit Log" +msgstr "Audit Log" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Authentication Level" +msgstr "Authentication Level" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "Authentication required" +msgstr "Authentication required" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Avatar" +msgstr "Avatar" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Avatar Updated" +msgstr "Avatar Updated" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Awaiting email confirmation" +msgstr "Awaiting email confirmation" + +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Back" +msgstr "Back" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Back home" +msgstr "Back home" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Background Color" +msgstr "Background Color" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Backup Code" +msgstr "Backup Code" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Backup codes" +msgstr "Backup codes" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Banner Updated" +msgstr "Banner Updated" + +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Before you get started, please confirm your email address by clicking the button below:" +msgstr "Before you get started, please confirm your email address by clicking the button below:" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Billing" +msgstr "Billing" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Black" +msgstr "Black" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Blue" +msgstr "Blue" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Brand Details" +msgstr "Brand Details" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Brand Website" +msgstr "Brand Website" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Branding" +msgstr "Branding" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Branding Logo" +msgstr "Branding Logo" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +msgid "Branding Preferences" +msgstr "Branding Preferences" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx +msgid "Branding preferences updated" +msgstr "Branding preferences updated" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +msgid "Browser" +msgstr "Browser" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "Bulk Copy" +msgstr "Bulk Copy" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Bulk Import" +msgstr "Bulk Import" + +#. placeholder {0}: template.title +#: packages/lib/jobs/definitions/internal/bulk-send-template.handler.ts +msgid "Bulk Send Complete: {0}" +msgstr "Bulk Send Complete: {0}" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Bulk send operation complete for template \"{templateName}\"" +msgstr "Bulk send operation complete for template \"{templateName}\"" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Bulk Send Template via CSV" +msgstr "Bulk Send Template via CSV" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Bulk Send via CSV" +msgstr "Bulk Send via CSV" + +#: packages/email/templates/organisation-invite.tsx +msgid "by <0>{senderName}" +msgstr "by <0>{senderName}" + +#: packages/email/templates/confirm-team-email.tsx +msgid "By accepting this request, you will be granting <0>{teamName} access to:" +msgstr "By accepting this request, you will be granting <0>{teamName} access to:" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "By deleting this document, the following will occur:" +msgstr "By deleting this document, the following will occur:" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in using email password." +msgstr "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in using email password." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." +msgstr "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." + +#: apps/remix/app/components/general/document-signing/document-signing-disclosure.tsx +msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." +msgstr "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." + +#: apps/remix/app/components/forms/signup.tsx +msgid "By proceeding, you agree to our <0>Terms of Service and <1>Privacy Policy." +msgstr "By proceeding, you agree to our <0>Terms of Service and <1>Privacy Policy." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." +msgstr "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Can prepare" +msgstr "Can prepare" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: packages/ui/primitives/signature-pad/signature-pad-dialog.tsx +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Cancel" +msgstr "Cancel" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Cancelled by user" +msgstr "Cancelled by user" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Cannot remove document" +msgstr "Cannot remove document" + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Cannot remove signer" +msgstr "Cannot remove signer" + +#: packages/lib/constants/recipient-roles.ts +msgid "Cc" +msgstr "Cc" + +#: packages/lib/constants/recipient-roles.ts +#: packages/lib/constants/recipient-roles.ts +msgid "CC" +msgstr "CC" + +#: packages/lib/constants/recipient-roles.ts +msgid "CC'd" +msgstr "CC'd" + +#: packages/lib/constants/recipient-roles.ts +msgid "Ccers" +msgstr "Ccers" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Character Limit" +msgstr "Character Limit" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Charts" +msgstr "Charts" + +#: packages/ui/primitives/document-flow/types.ts +msgid "Checkbox" +msgstr "Checkbox" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Checkbox values" +msgstr "Checkbox values" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Checkout" +msgstr "Checkout" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Choose an existing recipient from below to continue" +msgstr "Choose an existing recipient from below to continue" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Choose Direct Link Recipient" +msgstr "Choose Direct Link Recipient" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Choose how the document will reach recipients" +msgstr "Choose how the document will reach recipients" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Choose how to distribute your document to recipients. Email will send notifications, None will generate signing links for manual distribution." +msgstr "Choose how to distribute your document to recipients. Email will send notifications, None will generate signing links for manual distribution." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Choose your preferred authentication method:" +msgstr "Choose your preferred authentication method:" + +#: apps/remix/app/components/forms/token.tsx +msgid "Choose..." +msgstr "Choose..." + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Claim account" +msgstr "Claim account" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Claims" +msgstr "Claims" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Clear file" +msgstr "Clear file" + +#: packages/ui/primitives/data-table.tsx +msgid "Clear filters" +msgstr "Clear filters" + +#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx +msgid "Clear Signature" +msgstr "Clear Signature" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Click here to get started" +msgstr "Click here to get started" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Click here to retry" +msgstr "Click here to retry" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Click here to upload" +msgstr "Click here to upload" + +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/avatar-with-recipient.tsx +msgid "Click to copy signing link for sending to recipient" +msgstr "Click to copy signing link for sending to recipient" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Click to insert field" +msgstr "Click to insert field" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx +msgid "Close" +msgstr "Close" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Communication" +msgstr "Communication" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Compare all plans and features in detail" +msgstr "Compare all plans and features in detail" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Complete" +msgstr "Complete" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Approval" +msgstr "Complete Approval" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Assisting" +msgstr "Complete Assisting" + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Complete Document" +msgstr "Complete Document" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Signing" +msgstr "Complete Signing" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Complete the fields for the following signers. Once reviewed, they will inform you if any modifications are needed." +msgstr "Complete the fields for the following signers. Once reviewed, they will inform you if any modifications are needed." + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Viewing" +msgstr "Complete Viewing" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/document.ts +#: packages/email/template-components/template-document-self-signed.tsx +#: packages/email/template-components/template-document-recipient-signed.tsx +#: packages/email/template-components/template-document-completed.tsx +msgid "Completed" +msgstr "Completed" + +#: packages/email/templates/document-self-signed.tsx +#: packages/email/templates/document-completed.tsx +msgid "Completed Document" +msgstr "Completed Document" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Completed documents" +msgstr "Completed documents" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Completed Documents" +msgstr "Completed Documents" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Completed on {formattedDate}" +msgstr "Completed on {formattedDate}" + +#. placeholder {0}: parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[currentField.type]) +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +msgid "Configure {0} Field" +msgstr "Configure {0} Field" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Configure additional options and preferences" +msgstr "Configure additional options and preferences" + +#: packages/lib/constants/template.ts +msgid "Configure Direct Recipient" +msgstr "Configure Direct Recipient" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Configure Document" +msgstr "Configure Document" + +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +msgid "Configure Fields" +msgstr "Configure Fields" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Configure general settings for the document." +msgstr "Configure general settings for the document." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Configure general settings for the template." +msgstr "Configure general settings for the template." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Configure template" +msgstr "Configure template" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Configure Template" +msgstr "Configure Template" + +#. placeholder {0}: parseMessageDescriptor( _, FRIENDLY_FIELD_TYPE[currentField.type], ) +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Configure the {0} field" +msgstr "Configure the {0} field" + +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +msgid "Configure the fields you want to place on the document." +msgstr "Configure the fields you want to place on the document." + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Configure the team roles for each group" +msgstr "Configure the team roles for each group" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Configure the team roles for each member" +msgstr "Configure the team roles for each member" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Confirm" +msgstr "Confirm" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Confirm by typing <0>{deleteMessage}" +msgstr "Confirm by typing <0>{deleteMessage}" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Confirm by typing: <0>{deleteMessage}" +msgstr "Confirm by typing: <0>{deleteMessage}" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Confirm Deletion" +msgstr "Confirm Deletion" + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Confirm email" +msgstr "Confirm email" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Confirmation email sent" +msgstr "Confirmation email sent" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Consent to Electronic Transactions" +msgstr "Consent to Electronic Transactions" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Contact Information" +msgstr "Contact Information" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Contact sales here" +msgstr "Contact sales here" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Content" +msgstr "Content" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Continue" +msgstr "Continue" + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by approving the document." +msgstr "Continue by approving the document." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by assisting with the document." +msgstr "Continue by assisting with the document." + +#: packages/email/template-components/template-document-completed.tsx +msgid "Continue by downloading the document." +msgstr "Continue by downloading the document." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by signing the document." +msgstr "Continue by signing the document." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by viewing the document." +msgstr "Continue by viewing the document." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Continue to login" +msgstr "Continue to login" + +#: apps/remix/app/components/forms/email-preferences-form.tsx +msgid "Controls the default email settings when new documents or templates are created" +msgstr "Controls the default email settings when new documents or templates are created" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the default language of an uploaded document. This will be used as the language in email communications with the recipients." +msgstr "Controls the default language of an uploaded document. This will be used as the language in email communications with the recipients." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the default visibility of an uploaded document." +msgstr "Controls the default visibility of an uploaded document." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the formatting of the message that will be sent when inviting a recipient to sign a document. If a custom message has been provided while configuring the document, it will be used instead." +msgstr "Controls the formatting of the message that will be sent when inviting a recipient to sign a document. If a custom message has been provided while configuring the document, it will be used instead." + +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Controls the language for the document, including the language to be used for email notifications, and the final certificate that is generated and attached to the document." +msgstr "Controls the language for the document, including the language to be used for email notifications, and the final certificate that is generated and attached to the document." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls whether the signing certificate will be included in the document when it is downloaded. The signing certificate can still be downloaded from the logs page separately." +msgstr "Controls whether the signing certificate will be included in the document when it is downloaded. The signing certificate can still be downloaded from the logs page separately." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls which signatures are allowed to be used when signing a document." +msgstr "Controls which signatures are allowed to be used when signing a document." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Copied" +msgstr "Copied" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/components/document/document-share-button.tsx +msgid "Copied to clipboard" +msgstr "Copied to clipboard" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Copy" +msgstr "Copy" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Copy Link" +msgstr "Copy Link" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Copy sharable link" +msgstr "Copy sharable link" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Copy Shareable Link" +msgstr "Copy Shareable Link" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "Copy Signing Links" +msgstr "Copy Signing Links" + +#: apps/remix/app/components/forms/token.tsx +msgid "Copy token" +msgstr "Copy token" + +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create" +msgstr "Create" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "Create a <0>free account to access your signed documents at any time." +msgstr "Create a <0>free account to access your signed documents at any time." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Create a new account" +msgstr "Create a new account" + +#. placeholder {0}: emailDomain.domain +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "Create a new email address for your organisation using the domain <0>{0}." +msgstr "Create a new email address for your organisation using the domain <0>{0}." + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Create a new organisation with {planName} plan. Keep your current organisation on it's current plan" +msgstr "Create a new organisation with {planName} plan. Keep your current organisation on it's current plan" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create a team to collaborate with your team members." +msgstr "Create a team to collaborate with your team members." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: packages/email/template-components/template-document-self-signed.tsx +msgid "Create account" +msgstr "Create account" + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create an organisation for this user" +msgstr "Create an organisation for this user" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Create an organisation to collaborate with teams" +msgstr "Create an organisation to collaborate with teams" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Create an organisation to get started." +msgstr "Create an organisation to get started." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create and send" +msgstr "Create and send" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create as draft" +msgstr "Create as draft" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create as pending" +msgstr "Create as pending" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create claim" +msgstr "Create claim" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create Claim" +msgstr "Create Claim" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog-wrapper.tsx +msgid "Create Direct Link" +msgstr "Create Direct Link" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Create Direct Signing Link" +msgstr "Create Direct Signing Link" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create document from template" +msgstr "Create document from template" + +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "Create Email" +msgstr "Create Email" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Create folder" +msgstr "Create folder" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Create Folder" +msgstr "Create Folder" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Create group" +msgstr "Create group" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Create Groups" +msgstr "Create Groups" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Create New Folder" +msgstr "Create New Folder" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Create now" +msgstr "Create now" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Create one automatically" +msgstr "Create one automatically" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create organisation" +msgstr "Create organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Create Organisation" +msgstr "Create Organisation" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Create separate organisation" +msgstr "Create separate organisation" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create signing links" +msgstr "Create signing links" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Create Stripe customer" +msgstr "Create Stripe customer" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Create subscription" +msgstr "Create subscription" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create Subscription Claim" +msgstr "Create Subscription Claim" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create team" +msgstr "Create team" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create Team" +msgstr "Create Team" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create the document as pending and ready to sign." +msgstr "Create the document as pending and ready to sign." + +#: apps/remix/app/components/forms/token.tsx +#: apps/remix/app/components/forms/token.tsx +msgid "Create token" +msgstr "Create token" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Create webhook" +msgstr "Create webhook" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Create Webhook" +msgstr "Create Webhook" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Create your account and start using state-of-the-art document signing." +msgstr "Create your account and start using state-of-the-art document signing." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp." +msgstr "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp." + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Created" +msgstr "Created" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Created At" +msgstr "Created At" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Created by" +msgstr "Created by" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Created on" +msgstr "Created on" + +#. placeholder {0}: i18n.date(webhook.createdAt, DateTime.DATETIME_FULL) +#. placeholder {0}: i18n.date(token.createdAt, DateTime.DATETIME_FULL) +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Created on {0}" +msgstr "Created on {0}" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "CSV Structure" +msgstr "CSV Structure" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Cumulative MAU (signed in)" +msgstr "Cumulative MAU (signed in)" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Current" +msgstr "Current" + +#: apps/remix/app/components/forms/password.tsx +msgid "Current Password" +msgstr "Current Password" + +#: apps/remix/app/components/forms/password.tsx +msgid "Current password is incorrect." +msgstr "Current password is incorrect." + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Current recipients:" +msgstr "Current recipients:" + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "Currently all organisation members can access this team" +msgstr "Currently all organisation members can access this team" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +msgid "Currently branding can only be configured for Teams and above plans." +msgstr "Currently branding can only be configured for Teams and above plans." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx +msgid "Currently email domains can only be configured for Platform and above plans." +msgstr "Currently email domains can only be configured for Platform and above plans." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups._index.tsx +msgid "Custom Organisation Groups" +msgstr "Custom Organisation Groups" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Dark Mode" +msgstr "Dark Mode" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Dashboard" +msgstr "Dashboard" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Date" +msgstr "Date" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Date created" +msgstr "Date created" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Date Format" +msgstr "Date Format" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: packages/email/templates/organisation-invite.tsx +msgid "Decline" +msgstr "Decline" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Date Format" +msgstr "Default Date Format" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Document Language" +msgstr "Default Document Language" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Document Visibility" +msgstr "Default Document Visibility" + +#: apps/remix/app/components/forms/email-preferences-form.tsx +msgid "Default Email" +msgstr "Default Email" + +#: apps/remix/app/components/forms/email-preferences-form.tsx +msgid "Default Email Settings" +msgstr "Default Email Settings" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Signature Settings" +msgstr "Default Signature Settings" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Time Zone" +msgstr "Default Time Zone" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "delete" +msgstr "delete" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/folder/folder-card.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Delete" +msgstr "Delete" + +#. placeholder {0}: webhook.webhookUrl +#. placeholder {0}: token.name +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "delete {0}" +msgstr "delete {0}" + +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +msgid "delete {emailDomain}" +msgstr "delete {emailDomain}" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "delete {teamName}" +msgstr "delete {teamName}" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "Delete account" +msgstr "Delete account" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Delete Account" +msgstr "Delete Account" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete document" +msgstr "Delete document" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete Document" +msgstr "Delete Document" + +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +msgid "Delete email" +msgstr "Delete email" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +msgid "Delete email domain" +msgstr "Delete email domain" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "Delete Email Domain" +msgstr "Delete Email Domain" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Delete Folder" +msgstr "Delete Folder" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "Delete organisation" +msgstr "Delete organisation" + +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "Delete organisation group" +msgstr "Delete organisation group" + +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "Delete organisation member" +msgstr "Delete organisation member" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Delete passkey" +msgstr "Delete passkey" + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Delete Subscription Claim" +msgstr "Delete Subscription Claim" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Delete team" +msgstr "Delete team" + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "Delete team group" +msgstr "Delete team group" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete the document. This action is irreversible so proceed with caution." +msgstr "Delete the document. This action is irreversible so proceed with caution." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." +msgstr "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Delete Webhook" +msgstr "Delete Webhook" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Delete your account and all its contents, including completed documents. This action is irreversible and will cancel your subscription, so proceed with caution." +msgstr "Delete your account and all its contents, including completed documents. This action is irreversible and will cancel your subscription, so proceed with caution." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Deleted" +msgstr "Deleted" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Deleting account..." +msgstr "Deleting account..." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Details" +msgstr "Details" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +msgid "Device" +msgstr "Device" + +#: 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." +msgstr "Didn't request a password change? We are here to help you secure your account, just <0>contact us." + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +msgid "direct link" +msgstr "direct link" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Direct link" +msgstr "Direct link" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Direct Link" +msgstr "Direct Link" + +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +msgid "direct link disabled" +msgstr "direct link disabled" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Direct link receiver" +msgstr "Direct link receiver" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct Link Signing" +msgstr "Direct Link Signing" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct link signing has been disabled" +msgstr "Direct link signing has been disabled" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct link signing has been enabled" +msgstr "Direct link signing has been enabled" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Direct link templates contain one dynamic recipient placeholder. Anyone with access to this link can sign the document, and it will then appear on your documents page." +msgstr "Direct link templates contain one dynamic recipient placeholder. Anyone with access to this link can sign the document, and it will then appear on your documents page." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct template link deleted" +msgstr "Direct template link deleted" + +#. placeholder {0}: quota.directTemplates +#. placeholder {1}: quota.directTemplates +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct template link usage exceeded ({0}/{1})" +msgstr "Direct template link usage exceeded ({0}/{1})" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Direction" +msgstr "Direction" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Disable" +msgstr "Disable" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Disable 2FA" +msgstr "Disable 2FA" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "Disable access" +msgstr "Disable access" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disable account" +msgstr "Disable account" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disable Account" +msgstr "Disable Account" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Disable Two Factor Authentication before deleting your account." +msgstr "Disable Two Factor Authentication before deleting your account." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "Disabled" +msgstr "Disabled" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Disabling direct link signing will prevent anyone from accessing the link." +msgstr "Disabling direct link signing will prevent anyone from accessing the link." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disabling the user results in the user not being able to use the account. It also disables all the related contents such as subscription, webhooks, teams, and API keys." +msgstr "Disabling the user results in the user not being able to use the account. It also disables all the related contents such as subscription, webhooks, teams, and API keys." + +#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "Display Name" +msgstr "Display Name" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Display your name and email in documents" +msgstr "Display your name and email in documents" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Distribute Document" +msgstr "Distribute Document" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Distribution Method" +msgstr "Distribution Method" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "DKIM records generated. Please add the DNS records to verify your domain." +msgstr "DKIM records generated. Please add the DNS records to verify your domain." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "DNS Records" +msgstr "DNS Records" + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Do you want to delete this template?" +msgstr "Do you want to delete this template?" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Do you want to duplicate this template?" +msgstr "Do you want to duplicate this template?" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Documenso will delete <0>all of your documents, along with all of your completed documents, signatures, and all other resources belonging to your Account." +msgstr "Documenso will delete <0>all of your documents, along with all of your completed documents, signatures, and all other resources belonging to your Account." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Document" +msgstr "Document" + +#. placeholder {0}: document.title +#. placeholder {1}: recipient.name +#: packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts +msgid "Document \"{0}\" - Rejected by {1}" +msgstr "Document \"{0}\" - Rejected by {1}" + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts +msgid "Document \"{0}\" - Rejection Confirmed" +msgstr "Document \"{0}\" - Rejection Confirmed" + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-document-cancelled-emails.handler.ts +msgid "Document \"{0}\" Cancelled" +msgstr "Document \"{0}\" Cancelled" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Document access" +msgstr "Document access" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document access auth updated" +msgstr "Document access auth updated" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document All" +msgstr "Document All" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Approved" +msgstr "Document Approved" + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +#: packages/lib/server-only/document/super-delete-document.ts +#: packages/lib/server-only/document/delete-document.ts +msgid "Document Cancelled" +msgstr "Document Cancelled" + +#: apps/remix/app/components/general/document/document-status.tsx +#: packages/lib/utils/document-audit-logs.ts +#: packages/lib/utils/document-audit-logs.ts +msgid "Document completed" +msgstr "Document completed" + +#: packages/ui/components/document/document-email-checkboxes.tsx +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document completed email" +msgstr "Document completed email" + +#: apps/remix/app/components/embed/embed-document-completed.tsx +msgid "Document Completed!" +msgstr "Document Completed!" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document created" +msgstr "Document created" + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Document Created" +msgstr "Document Created" + +#. placeholder {0}: document.user.name +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Document created by <0>{0}" +msgstr "Document created by <0>{0}" + +#: packages/lib/server-only/template/create-document-from-direct-template.ts +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "Document created from direct template" +msgstr "Document created from direct template" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Document created using a <0>direct link" +msgstr "Document created using a <0>direct link" + +#: packages/lib/constants/template.ts +msgid "Document Creation" +msgstr "Document Creation" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document deleted" +msgstr "Document deleted" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document deleted email" +msgstr "Document deleted email" + +#: packages/lib/server-only/document/send-delete-email.ts +msgid "Document Deleted!" +msgstr "Document Deleted!" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Document Distribution Method" +msgstr "Document Distribution Method" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document draft" +msgstr "Document draft" + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Document Duplicated" +msgstr "Document Duplicated" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document external ID updated" +msgstr "Document external ID updated" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Document found in your account" +msgstr "Document found in your account" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document ID" +msgstr "Document ID" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document inbox" +msgstr "Document inbox" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Document is already uploaded" +msgstr "Document is already uploaded" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Document is using legacy field insertion" +msgstr "Document is using legacy field insertion" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Document Limit Exceeded!" +msgstr "Document Limit Exceeded!" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Document metrics" +msgstr "Document metrics" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Document moved" +msgstr "Document moved" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document moved to team" +msgstr "Document moved to team" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document no longer available to sign" +msgstr "Document no longer available to sign" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document opened" +msgstr "Document opened" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document pending" +msgstr "Document pending" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document pending email" +msgstr "Document pending email" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +msgid "Document Preferences" +msgstr "Document Preferences" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx +msgid "Document preferences updated" +msgstr "Document preferences updated" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Document re-sent" +msgstr "Document re-sent" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document rejected" +msgstr "Document rejected" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +#: packages/email/template-components/template-document-rejected.tsx +msgid "Document Rejected" +msgstr "Document Rejected" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Document resealed" +msgstr "Document resealed" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document sent" +msgstr "Document sent" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Signed" +msgstr "Document Signed" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document signing auth updated" +msgstr "Document signing auth updated" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Document signing process will be cancelled" +msgstr "Document signing process will be cancelled" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document status" +msgstr "Document status" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document title" +msgstr "Document title" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document title updated" +msgstr "Document title updated" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document updated" +msgstr "Document updated" + +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Document updated successfully" +msgstr "Document updated successfully" + +#: apps/remix/app/components/general/document/document-upload.tsx +msgid "Document upload disabled due to unpaid invoices" +msgstr "Document upload disabled due to unpaid invoices" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Document uploaded" +msgstr "Document uploaded" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document viewed" +msgstr "Document viewed" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Viewed" +msgstr "Document Viewed" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document visibility updated" +msgstr "Document visibility updated" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Document will be permanently deleted" +msgstr "Document will be permanently deleted" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.edit.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/general/user-profile-timur.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +msgid "Documents" +msgstr "Documents" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Documents created from template" +msgstr "Documents created from template" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Documents Received" +msgstr "Documents Received" + +#: apps/remix/app/components/tables/inbox-table.tsx +msgid "Documents that require your attention will appear here" +msgstr "Documents that require your attention will appear here" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Documents Viewed" +msgstr "Documents Viewed" + +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "Domain" +msgstr "Domain" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Domain Added" +msgstr "Domain Added" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Domain already in use" +msgstr "Domain already in use" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Domain Name" +msgstr "Domain Name" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +msgid "Don't have an account? <0>Sign up" +msgstr "Don't have an account? <0>Sign up" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: packages/ui/components/document/document-download-button.tsx +#: packages/email/template-components/template-document-completed.tsx +msgid "Download" +msgstr "Download" + +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +msgid "Download Audit Logs" +msgstr "Download Audit Logs" + +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +msgid "Download Certificate" +msgstr "Download Certificate" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Download Original" +msgstr "Download Original" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Download Template CSV" +msgstr "Download Template CSV" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: packages/lib/constants/document.ts +msgid "Draft" +msgstr "Draft" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Draft documents" +msgstr "Draft documents" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Drafted Documents" +msgstr "Drafted Documents" + +#: packages/ui/primitives/document-dropzone.tsx +msgid "Drag & drop your PDF here." +msgstr "Drag & drop your PDF here." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Drag and drop or click to upload" +msgstr "Drag and drop or click to upload" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Drag and drop your PDF file here" +msgstr "Drag and drop your PDF file here" + +#: packages/lib/constants/document.ts +msgid "Draw" +msgstr "Draw" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Drop your document here" +msgstr "Drop your document here" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Dropdown" +msgstr "Dropdown" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Dropdown options" +msgstr "Dropdown options" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +msgid "Duplicate" +msgstr "Duplicate" + +#: packages/ui/primitives/document-flow/field-item.tsx +msgid "Duplicate on all pages" +msgstr "Duplicate on all pages" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +msgid "Edit" +msgstr "Edit" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Edit Template" +msgstr "Edit Template" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Edit webhook" +msgstr "Edit webhook" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Electronic Delivery of Documents" +msgstr "Electronic Delivery of Documents" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Electronic Signature Disclosure" +msgstr "Electronic Signature Disclosure" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +#: packages/lib/constants/document.ts +msgid "Email" +msgstr "Email" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/send-confirmation-email.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Email address" +msgstr "Email address" + +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "Email Address" +msgstr "Email Address" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Email already confirmed" +msgstr "Email already confirmed" + +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "Email already exists" +msgstr "Email already exists" + +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +msgid "Email cannot already exist in the template" +msgstr "Email cannot already exist in the template" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Email Confirmed!" +msgstr "Email Confirmed!" + +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "Email Created" +msgstr "Email Created" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "Email domain not found" +msgstr "Email domain not found" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "Email Domain Settings" +msgstr "Email Domain Settings" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +msgid "Email Domains" +msgstr "Email Domains" + +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "Email domains synced" +msgstr "Email domains synced" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Email Options" +msgstr "Email Options" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +msgid "Email Preferences" +msgstr "Email Preferences" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx +msgid "Email preferences updated" +msgstr "Email preferences updated" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Email resent" +msgstr "Email resent" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Email Sender" +msgstr "Email Sender" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Email sent" +msgstr "Email sent" + +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +msgid "Email sent!" +msgstr "Email sent!" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Email verification has been removed" +msgstr "Email verification has been removed" + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Email verification has been resent" +msgstr "Email verification has been resent" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "Emails" +msgstr "Emails" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Embedding, 5 members included and more" +msgstr "Embedding, 5 members included and more" + +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Empty field" +msgstr "Empty field" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Enable" +msgstr "Enable" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Enable 2FA" +msgstr "Enable 2FA" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Enable access" +msgstr "Enable access" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enable account" +msgstr "Enable account" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enable Account" +msgstr "Enable Account" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Enable Authenticator App" +msgstr "Enable Authenticator App" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable Custom Branding" +msgstr "Enable Custom Branding" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable custom branding for all documents in this organisation" +msgstr "Enable custom branding for all documents in this organisation" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable custom branding for all documents in this team" +msgstr "Enable custom branding for all documents in this team" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/lib/constants/template.ts +msgid "Enable Direct Link Signing" +msgstr "Enable Direct Link Signing" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Enable signing order" +msgstr "Enable signing order" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Enabled" +msgstr "Enabled" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enabling the account results in the user being able to use the account again, and all the related features such as webhooks, teams, and API keys for example." +msgstr "Enabling the account results in the user being able to use the account again, and all the related features such as webhooks, teams, and API keys for example." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Enclosed Document" +msgstr "Enclosed Document" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Enter a name for your new folder. Folders help you organise your items." +msgstr "Enter a name for your new folder. Folders help you organise your items." + +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Enter claim name" +msgstr "Enter claim name" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Enter the domain you want to use for sending emails (without http:// or www)" +msgstr "Enter the domain you want to use for sending emails (without http:// or www)" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Enter your 2FA code" +msgstr "Enter your 2FA code" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enter your brand details" +msgstr "Enter your brand details" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Enter your email" +msgstr "Enter your email" + +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +msgid "Enter your email address to receive the completed document." +msgstr "Enter your email address to receive the completed document." + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Enter your name" +msgstr "Enter your name" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Enter your password" +msgstr "Enter your password" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "Enter your text here" +msgstr "Enter your text here" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Enterprise" +msgstr "Enterprise" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/general/verify-email-banner.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Error" +msgstr "Error" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Error uploading file" +msgstr "Error uploading file" + +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +msgid "Event Type" +msgstr "Event Type" + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +msgid "Everyone" +msgstr "Everyone" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Everyone can access and view the document" +msgstr "Everyone can access and view the document" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Everyone has signed" +msgstr "Everyone has signed" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Everyone has signed! You will receive an Email copy of the signed document." +msgstr "Everyone has signed! You will receive an Email copy of the signed document." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Exceeded timeout" +msgstr "Exceeded timeout" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Expired" +msgstr "Expired" + +#. placeholder {0}: i18n.date(token.expires, DateTime.DATETIME_FULL) +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Expires on {0}" +msgstr "Expires on {0}" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "External ID" +msgstr "External ID" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Failed to create folder" +msgstr "Failed to create folder" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Failed to create subscription claim." +msgstr "Failed to create subscription claim." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Failed to delete folder" +msgstr "Failed to delete folder" + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Failed to delete subscription claim." +msgstr "Failed to delete subscription claim." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Failed to load document" +msgstr "Failed to load document" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Failed to move folder" +msgstr "Failed to move folder" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Failed to reseal document" +msgstr "Failed to reseal document" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Failed to revoke session" +msgstr "Failed to revoke session" + +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Failed to save settings." +msgstr "Failed to save settings." + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Failed to sign out all sessions" +msgstr "Failed to sign out all sessions" + +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Failed to update document" +msgstr "Failed to update document" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Failed to update recipient" +msgstr "Failed to update recipient" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Failed to update subscription claim." +msgstr "Failed to update subscription claim." + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +msgid "Failed to update template" +msgstr "Failed to update template" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Failed to update webhook" +msgstr "Failed to update webhook" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Failed: {failedCount}" +msgstr "Failed: {failedCount}" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Feature Flags" +msgstr "Feature Flags" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Field character limit" +msgstr "Field character limit" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Field font size" +msgstr "Field font size" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Field format" +msgstr "Field format" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Field label" +msgstr "Field label" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Field placeholder" +msgstr "Field placeholder" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field prefilled by assistant" +msgstr "Field prefilled by assistant" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field signed" +msgstr "Field signed" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field unsigned" +msgstr "Field unsigned" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Fields" +msgstr "Fields" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Fields updated" +msgstr "Fields updated" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" +msgstr "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "File size exceeds the limit of {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB" +msgstr "File size exceeds the limit of {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Fill in the details to create a new subscription claim." +msgstr "Fill in the details to create a new subscription claim." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Folder" +msgstr "Folder" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Folder created successfully" +msgstr "Folder created successfully" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Folder deleted successfully" +msgstr "Folder deleted successfully" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Folder moved successfully" +msgstr "Folder moved successfully" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Folder Name" +msgstr "Folder Name" + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Folder not found" +msgstr "Folder not found" + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +msgid "Folder Settings" +msgstr "Folder Settings" + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +msgid "Folder updated successfully" +msgstr "Folder updated successfully" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Font Size" +msgstr "Font Size" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" +msgstr "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "For each recipient, provide their email (required) and name (optional) in separate columns. Download the template CSV below for the correct format." +msgstr "For each recipient, provide their email (required) and name (optional) in separate columns. Download the template CSV below for the correct format." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "For example, if the claim has a new flag \"FLAG_1\" set to true, then this organisation will get that flag added." +msgstr "For example, if the claim has a new flag \"FLAG_1\" set to true, then this organisation will get that flag added." + +#: packages/lib/server-only/auth/send-forgot-password.ts +msgid "Forgot Password?" +msgstr "Forgot Password?" + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +#: apps/remix/app/components/forms/signin.tsx +#: packages/email/template-components/template-forgot-password.tsx +msgid "Forgot your password?" +msgstr "Forgot your password?" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Free" +msgstr "Free" + +#: packages/ui/primitives/document-flow/types.ts +msgid "Free Signature" +msgstr "Free Signature" + +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Full Name" +msgstr "Full Name" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "General" +msgstr "General" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Generate DKIM Records" +msgstr "Generate DKIM Records" + +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Generate Links" +msgstr "Generate Links" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "Global recipient action authentication" +msgstr "Global recipient action authentication" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Go back" +msgstr "Go back" + +#: apps/remix/app/routes/_recipient+/_layout.tsx +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Go Back" +msgstr "Go Back" + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Go back home" +msgstr "Go back home" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "Go Back Home" +msgstr "Go Back Home" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "Go home" +msgstr "Go home" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Go to document" +msgstr "Go to document" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Go to owner" +msgstr "Go to owner" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Go to team" +msgstr "Go to team" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "Go to your <0>public profile settings to add documents." +msgstr "Go to your <0>public profile settings to add documents." + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Green" +msgstr "Green" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Group" +msgstr "Group" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Group has been created." +msgstr "Group has been created." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Group has been updated successfully" +msgstr "Group has been updated successfully" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Group Name" +msgstr "Group Name" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Groups" +msgstr "Groups" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to approve this document" +msgstr "has invited you to approve this document" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to assist this document" +msgstr "has invited you to assist this document" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to sign this document" +msgstr "has invited you to sign this document" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to view this document" +msgstr "has invited you to view this document" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Having an assistant as the last signer means they will be unable to take any action as there are no subsequent signers to assist." +msgstr "Having an assistant as the last signer means they will be unable to take any action as there are no subsequent signers to assist." + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Help complete the document for other signers." +msgstr "Help complete the document for other signers." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx +msgid "Here you can add email domains to your organisation." +msgstr "Here you can add email domains to your organisation." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "Here you can edit your organisation details." +msgstr "Here you can edit your organisation details." + +#: apps/remix/app/routes/_authenticated+/settings+/profile.tsx +msgid "Here you can edit your personal details." +msgstr "Here you can edit your personal details." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Here you can manage your password and security settings." +msgstr "Here you can manage your password and security settings." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +msgid "Here you can set branding preferences for your organisation. Teams will inherit these settings by default." +msgstr "Here you can set branding preferences for your organisation. Teams will inherit these settings by default." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +msgid "Here you can set branding preferences for your team" +msgstr "Here you can set branding preferences for your team" + +#: 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." +msgstr "Here you can set document preferences for your organisation. Teams will inherit these settings by default." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx +msgid "Here you can set preferences and defaults for branding." +msgstr "Here you can set preferences and defaults for branding." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx +msgid "Here you can set preferences and defaults for your team." +msgstr "Here you can set preferences and defaults for your team." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +msgid "Here you can set your general branding preferences" +msgstr "Here you can set your general branding preferences" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx +msgid "Here you can set your general document preferences" +msgstr "Here you can set your general document preferences" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Here's how it works:" +msgstr "Here's how it works:" + +#: apps/remix/app/components/general/user-profile-timur.tsx +msgid "Hey I’m Timur" +msgstr "Hey I’m Timur" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Hi {userName}," +msgstr "Hi {userName}," + +#: packages/email/templates/reset-password.tsx +msgid "Hi, {userName} <0>({userEmail})" +msgstr "Hi, {userName} <0>({userEmail})" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Hide" +msgstr "Hide" + +#: apps/remix/app/components/general/generic-error-layout.tsx +#: apps/remix/app/components/general/folder/folder-grid.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Home" +msgstr "Home" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Home (No Folder)" +msgstr "Home (No Folder)" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Horizontal" +msgstr "Horizontal" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am a signer of this document" +msgstr "I am a signer of this document" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am a viewer of this document" +msgstr "I am a viewer of this document" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am an approver of this document" +msgstr "I am an approver of this document" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am an assistant of this document" +msgstr "I am an assistant of this document" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am required to receive a copy of this document" +msgstr "I am required to receive a copy of this document" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "I am the owner of this document" +msgstr "I am the owner of this document" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "I'm sure! Delete it" +msgstr "I'm sure! Delete it" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "ID" +msgstr "ID" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "ID copied to clipboard" +msgstr "ID copied to clipboard" + +#: 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}." +msgstr "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "If you do not want to use the authenticator prompted, you can close it, which will then display the next available authenticator." +msgstr "If you do not want to use the authenticator prompted, you can close it, which will then display the next available authenticator." + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +msgid "If you don't find the confirmation link in your inbox, you can request a new one below." +msgstr "If you don't find the confirmation link in your inbox, you can request a new one below." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "If your authenticator app does not support QR codes, you can use the following code instead:" +msgstr "If your authenticator app does not support QR codes, you can use the following code instead:" + +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Inbox" +msgstr "Inbox" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Inbox documents" +msgstr "Inbox documents" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Include the Signing Certificate in the Document" +msgstr "Include the Signing Certificate in the Document" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Information" +msgstr "Information" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "Inherit authentication method" +msgstr "Inherit authentication method" + +#: apps/remix/app/components/forms/email-preferences-form.tsx +#: apps/remix/app/components/forms/email-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Inherit from organisation" +msgstr "Inherit from organisation" + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "Inherit organisation members" +msgstr "Inherit organisation members" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Inherited subscription claim" +msgstr "Inherited subscription claim" + +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: packages/ui/primitives/document-flow/types.ts +msgid "Initials" +msgstr "Initials" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Inserted" +msgstr "Inserted" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Instance Stats" +msgstr "Instance Stats" + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "Invalid code. Please try again." +msgstr "Invalid code. Please try again." + +#: packages/ui/primitives/document-flow/add-signers.types.ts +msgid "Invalid email" +msgstr "Invalid email" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Invalid link" +msgstr "Invalid link" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Invalid token" +msgstr "Invalid token" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Invalid token provided. Please try again." +msgstr "Invalid token provided. Please try again." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Invitation accepted" +msgstr "Invitation accepted" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Invitation accepted!" +msgstr "Invitation accepted!" + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Invitation declined" +msgstr "Invitation declined" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invitation has been deleted" +msgstr "Invitation has been deleted" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invitation has been resent" +msgstr "Invitation has been resent" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite" +msgstr "Invite" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite member" +msgstr "Invite member" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite Members" +msgstr "Invite Members" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite organisation members" +msgstr "Invite organisation members" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Invite team members to collaborate" +msgstr "Invite team members to collaborate" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invited At" +msgstr "Invited At" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +msgid "Invoice" +msgstr "Invoice" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +msgid "IP Address" +msgstr "IP Address" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "It is crucial to keep your contact information, especially your email address, up to date with us. Please notify us immediately of any changes to ensure that you continue to receive all necessary communications." +msgstr "It is crucial to keep your contact information, especially your email address, up to date with us. Please notify us immediately of any changes to ensure that you continue to receive all necessary communications." + +#. placeholder {0}: publicProfile.name +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "It looks like {0} hasn't added any documents to their profile yet." +msgstr "It looks like {0} hasn't added any documents to their profile yet." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "It looks like we ran into an issue!" +msgstr "It looks like we ran into an issue!" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "It seems that the provided token has expired. We've just sent you another token, please check your email and try again." +msgstr "It seems that the provided token has expired. We've just sent you another token, please check your email and try again." + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +msgid "It seems that there is no token provided, if you are trying to verify your email please follow the link in your email." +msgstr "It seems that there is no token provided, if you are trying to verify your email please follow the link in your email." + +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "It's currently not your turn to sign. Please check back soon as this document should be available for you to sign shortly." +msgstr "It's currently not your turn to sign. Please check back soon as this document should be available for you to sign shortly." + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document." +msgstr "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document." + +#: packages/email/templates/organisation-invite.tsx +msgid "Join {organisationName} on Documenso" +msgstr "Join {organisationName} on Documenso" + +#. placeholder {0}: DateTime.fromJSDate(team.createdAt).toRelative({ style: 'short' }) +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Joined {0}" +msgstr "Joined {0}" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Label" +msgstr "Label" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Language" +msgstr "Language" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 14 days" +msgstr "Last 14 days" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 30 days" +msgstr "Last 30 days" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 7 days" +msgstr "Last 7 days" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Last Active" +msgstr "Last Active" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Last modified" +msgstr "Last modified" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Last updated" +msgstr "Last updated" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Last Updated" +msgstr "Last Updated" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Last updated at" +msgstr "Last updated at" + +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +msgid "Last used" +msgstr "Last used" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Leaderboard" +msgstr "Leaderboard" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "Leave" +msgstr "Leave" + +#: apps/remix/app/components/forms/email-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Leave blank to inherit from the organisation." +msgstr "Leave blank to inherit from the organisation." + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "Leave organisation" +msgstr "Leave organisation" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Legality of Electronic Signatures" +msgstr "Legality of Electronic Signatures" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Light Mode" +msgstr "Light Mode" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Like to have your own public profile with agreements?" +msgstr "Like to have your own public profile with agreements?" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Link expires in 1 hour." +msgstr "Link expires in 1 hour." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Link template" +msgstr "Link template" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Links Generated" +msgstr "Links Generated" + +#. placeholder {0}: webhook.eventTriggers .map((trigger) => toFriendlyWebhookEventName(trigger)) .join(', ') +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "Listening to {0}" +msgstr "Listening to {0}" + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Load older activity" +msgstr "Load older activity" + +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Loading document..." +msgstr "Loading document..." + +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Loading Document..." +msgstr "Loading Document..." + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Loading..." +msgstr "Loading..." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Local timezone" +msgstr "Local timezone" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "Login" +msgstr "Login" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Manage" +msgstr "Manage" + +#. placeholder {0}: user?.name +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Manage {0}'s profile" +msgstr "Manage {0}'s profile" + +#: apps/remix/app/routes/_authenticated+/settings+/organisations.tsx +msgid "Manage all organisations you are currently associated with." +msgstr "Manage all organisations you are currently associated with." + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Manage all subscription claims" +msgstr "Manage all subscription claims" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Manage and view template" +msgstr "Manage and view template" + +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +msgid "Manage billing" +msgstr "Manage billing" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Manage Billing" +msgstr "Manage Billing" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Manage details for this public template" +msgstr "Manage details for this public template" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog-wrapper.tsx +msgid "Manage Direct Link" +msgstr "Manage Direct Link" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +msgid "Manage documents" +msgstr "Manage documents" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage organisation" +msgstr "Manage organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Manage organisations" +msgstr "Manage organisations" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Manage passkeys" +msgstr "Manage passkeys" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Manage permissions and access controls" +msgstr "Manage permissions and access controls" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Manage sessions" +msgstr "Manage sessions" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage subscription" +msgstr "Manage subscription" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage the {0} organisation" +msgstr "Manage the {0} organisation" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage the {0} organisation subscription" +msgstr "Manage the {0} organisation subscription" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups._index.tsx +msgid "Manage the custom groups of members for your organisation." +msgstr "Manage the custom groups of members for your organisation." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Manage the direct link signing for this template" +msgstr "Manage the direct link signing for this template" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +msgid "Manage the groups assigned to this team." +msgstr "Manage the groups assigned to this team." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +msgid "Manage the members of your team." +msgstr "Manage the members of your team." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +msgid "Manage the members or invite new members." +msgstr "Manage the members or invite new members." + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +msgid "Manage the settings for this folder." +msgstr "Manage the settings for this folder." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +msgid "Manage the teams in this organisation." +msgstr "Manage the teams in this organisation." + +#: apps/remix/app/routes/_authenticated+/admin+/users._index.tsx +msgid "Manage users" +msgstr "Manage users" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "Manage your email domain settings." +msgstr "Manage your email domain settings." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Manage your organisation group settings." +msgstr "Manage your organisation group settings." + +#: apps/remix/app/routes/_authenticated+/settings+/security.passkeys.tsx +msgid "Manage your passkeys." +msgstr "Manage your passkeys." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Manage your site settings here" +msgstr "Manage your site settings here" + +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Manager" +msgstr "Manager" + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +msgid "Managers and above" +msgstr "Managers and above" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Mark as viewed" +msgstr "Mark as viewed" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Mark as Viewed" +msgstr "Mark as Viewed" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (created document)" +msgstr "MAU (created document)" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (had document completed)" +msgstr "MAU (had document completed)" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (signed in)" +msgstr "MAU (signed in)" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Max" +msgstr "Max" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults." +msgstr "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Member" +msgstr "Member" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Member Count" +msgstr "Member Count" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Member Since" +msgstr "Member Since" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Members" +msgstr "Members" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Message" +msgstr "Message" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Message <0>(Optional)" +msgstr "Message <0>(Optional)" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Min" +msgstr "Min" + +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Modify recipients" +msgstr "Modify recipients" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Modify the details of the subscription claim." +msgstr "Modify the details of the subscription claim." + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Monthly" +msgstr "Monthly" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Monthly Active Users: Users that created at least one Document" +msgstr "Monthly Active Users: Users that created at least one Document" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Monthly Active Users: Users that had at least one of their documents completed" +msgstr "Monthly Active Users: Users that had at least one of their documents completed" + +#: apps/remix/app/components/general/folder/folder-card.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Move" +msgstr "Move" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Move \"{templateTitle}\" to a folder" +msgstr "Move \"{templateTitle}\" to a folder" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Move Document to Folder" +msgstr "Move Document to Folder" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Move Folder" +msgstr "Move Folder" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Move Template to Folder" +msgstr "Move Template to Folder" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +msgid "Move to Folder" +msgstr "Move to Folder" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Multiple access methods can be selected." +msgstr "Multiple access methods can be selected." + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "My Folder" +msgstr "My Folder" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Name" +msgstr "Name" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Name is required" +msgstr "Name is required" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Need to sign documents?" +msgstr "Need to sign documents?" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to approve" +msgstr "Needs to approve" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to sign" +msgstr "Needs to sign" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to view" +msgstr "Needs to view" + +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +msgid "Never" +msgstr "Never" + +#: apps/remix/app/components/forms/token.tsx +msgid "Never expire" +msgstr "Never expire" + +#: apps/remix/app/components/forms/password.tsx +msgid "New Password" +msgstr "New Password" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "New Template" +msgstr "New Template" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: packages/ui/primitives/signature-pad/signature-pad-dialog.tsx +msgid "Next" +msgstr "Next" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Next field" +msgstr "Next field" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "No" +msgstr "No" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "No active drafts" +msgstr "No active drafts" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "No folders found" +msgstr "No folders found" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +msgid "No folders found matching \"{searchTerm}\"" +msgstr "No folders found matching \"{searchTerm}\"" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "No further action is required from you at this time." +msgstr "No further action is required from you at this time." + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "No organisations found" +msgstr "No organisations found" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "No public profile templates found" +msgstr "No public profile templates found" + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "No recent activity" +msgstr "No recent activity" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "No recent documents" +msgstr "No recent documents" + +#: packages/ui/primitives/recipient-selector.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "No recipient matching this description was found." +msgstr "No recipient matching this description was found." + +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "No recipients" +msgstr "No recipients" + +#: packages/ui/primitives/recipient-selector.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "No recipients with this role" +msgstr "No recipients with this role" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "No restrictions" +msgstr "No restrictions" + +#: packages/ui/primitives/data-table.tsx +msgid "No results found" +msgstr "No results found" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "No results found." +msgstr "No results found." + +#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx +msgid "No signature field found" +msgstr "No signature field found" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "No Stripe customer attached" +msgstr "No Stripe customer attached" + +#: apps/remix/app/components/tables/team-groups-table.tsx +msgid "No team groups found" +msgstr "No team groups found" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "No teams yet" +msgstr "No teams yet" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "No valid direct templates found" +msgstr "No valid direct templates found" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "No valid recipients found" +msgstr "No valid recipients found" + +#: apps/remix/app/components/general/multiselect-role-combobox.tsx +#: packages/ui/primitives/multi-select-combobox.tsx +#: packages/ui/primitives/combobox.tsx +msgid "No value found." +msgstr "No value found." + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +msgid "No worries, it happens! Enter your email and we'll email you a special link to reset your password." +msgstr "No worries, it happens! Enter your email and we'll email you a special link to reset your password." + +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/lib/constants/document.ts +msgid "None" +msgstr "None" + +#: apps/remix/app/components/forms/signin.tsx +msgid "Not supported" +msgstr "Not supported" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "Nothing to do" +msgstr "Nothing to do" + +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Number" +msgstr "Number" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Number format" +msgstr "Number format" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Number of members allowed. 0 = Unlimited" +msgstr "Number of members allowed. 0 = Unlimited" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Number of teams allowed. 0 = Unlimited" +msgstr "Number of teams allowed. 0 = Unlimited" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to approve this document" +msgstr "on behalf of \"{0}\" has invited you to approve this document" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to assist this document" +msgstr "on behalf of \"{0}\" has invited you to assist this document" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to sign this document" +msgstr "on behalf of \"{0}\" has invited you to sign this document" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to view this document" +msgstr "on behalf of \"{0}\" has invited you to view this document" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "On this page, you can create a new webhook." +msgstr "On this page, you can create a new webhook." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "On this page, you can create and manage API tokens. See our <0>Documentation for more information." +msgstr "On this page, you can create and manage API tokens. See our <0>Documentation for more information." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "On this page, you can create new Webhooks and manage the existing ones." +msgstr "On this page, you can create new Webhooks and manage the existing ones." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "On this page, you can edit the webhook and its settings." +msgstr "On this page, you can edit the webhook and its settings." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Once confirmed, the following will occur:" +msgstr "Once confirmed, the following will occur:" + +#: packages/lib/constants/template.ts +msgid "Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted." +msgstr "Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Once you have scanned the QR code or entered the code manually, enter the code provided by your authenticator app below." +msgstr "Once you have scanned the QR code or entered the code manually, enter the code provided by your authenticator app below." + +#: 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 "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" + +#: 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." +msgstr "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "One of the documents in the current bundle has a signing role that is not compatible with the current signing experience." +msgstr "One of the documents in the current bundle has a signing role that is not compatible with the current signing experience." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Only admins can access and view the document" +msgstr "Only admins can access and view the document" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Only managers and above can access and view the document" +msgstr "Only managers and above can access and view the document" + +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "Oops! Something went wrong." +msgstr "Oops! Something went wrong." + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Opened" +msgstr "Opened" + +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Or" +msgstr "Or" + +#: apps/remix/app/components/forms/signin.tsx +msgid "Or continue with" +msgstr "Or continue with" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Organisation" +msgstr "Organisation" + +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Admin" +msgstr "Organisation Admin" + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Organisation created" +msgstr "Organisation created" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Organisation group not found" +msgstr "Organisation group not found" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Organisation Group Settings" +msgstr "Organisation Group Settings" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation has been updated successfully" +msgstr "Organisation has been updated successfully" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Organisation invitation" +msgstr "Organisation invitation" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Organisation invitations have been sent." +msgstr "Organisation invitations have been sent." + +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Manager" +msgstr "Organisation Manager" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Member" +msgstr "Organisation Member" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation Members" +msgstr "Organisation Members" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Organisation Name" +msgstr "Organisation Name" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation not found" +msgstr "Organisation not found" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Organisation role" +msgstr "Organisation role" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Organisation Role" +msgstr "Organisation Role" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Organisation settings" +msgstr "Organisation settings" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +msgid "Organisation Settings" +msgstr "Organisation Settings" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation Teams" +msgstr "Organisation Teams" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Organisation URL" +msgstr "Organisation URL" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/settings+/organisations.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Organisations" +msgstr "Organisations" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Organisations that the user is a member of." +msgstr "Organisations that the user is a member of." + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Organise your documents" +msgstr "Organise your documents" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Organise your members into groups which can be assigned to teams" +msgstr "Organise your members into groups which can be assigned to teams" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Organise your templates" +msgstr "Organise your templates" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Organize your documents and templates" +msgstr "Organize your documents and templates" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Otherwise, the document will be created as a draft." +msgstr "Otherwise, the document will be created as a draft." + +#: apps/remix/app/components/forms/email-preferences-form.tsx +msgid "Override organisation settings" +msgstr "Override organisation settings" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Owner" +msgstr "Owner" + +#. placeholder {0}: table.getState().pagination.pageIndex + 1 +#. placeholder {1}: table.getPageCount() || 1 +#: packages/ui/primitives/data-table-pagination.tsx +msgid "Page {0} of {1}" +msgstr "Page {0} of {1}" + +#. placeholder {0}: i + 1 +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Page {0} of {numPages}" +msgstr "Page {0} of {numPages}" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Passkey" +msgstr "Passkey" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey already exists for the provided authenticator" +msgstr "Passkey already exists for the provided authenticator" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey creation cancelled due to one of the following reasons:" +msgstr "Passkey creation cancelled due to one of the following reasons:" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Passkey has been removed" +msgstr "Passkey has been removed" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Passkey has been updated" +msgstr "Passkey has been updated" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey name" +msgstr "Passkey name" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Passkey Re-Authentication" +msgstr "Passkey Re-Authentication" + +#: apps/remix/app/routes/_authenticated+/settings+/security.passkeys.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Passkeys" +msgstr "Passkeys" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkeys allow you to sign in and authenticate using biometrics, password managers, etc." +msgstr "Passkeys allow you to sign in and authenticate using biometrics, password managers, etc." + +#: apps/remix/app/components/forms/signin.tsx +msgid "Passkeys are not supported on this browser" +msgstr "Passkeys are not supported on this browser" + +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Password" +msgstr "Password" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Password Re-Authentication" +msgstr "Password Re-Authentication" + +#: packages/email/templates/forgot-password.tsx +msgid "Password Reset Requested" +msgstr "Password Reset Requested" + +#: packages/email/templates/reset-password.tsx +msgid "Password Reset Successful" +msgstr "Password Reset Successful" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "Password should not be common or based on personal information" +msgstr "Password should not be common or based on personal information" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Password updated" +msgstr "Password updated" + +#: packages/email/template-components/template-reset-password.tsx +msgid "Password updated!" +msgstr "Password updated!" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Payment overdue" +msgstr "Payment overdue" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/components/document/document-read-only-fields.tsx +#: packages/lib/constants/document.ts +msgid "Pending" +msgstr "Pending" + +#: packages/email/templates/document-pending.tsx +msgid "Pending Document" +msgstr "Pending Document" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Pending documents" +msgstr "Pending documents" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Pending Documents" +msgstr "Pending Documents" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Pending invitations" +msgstr "Pending invitations" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "per month" +msgstr "per month" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "per year" +msgstr "per year" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +msgid "Personal" +msgstr "Personal" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Personal Account" +msgstr "Personal Account" + +#: apps/remix/app/routes/_authenticated+/inbox.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Personal Inbox" +msgstr "Personal Inbox" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Pick a number" +msgstr "Pick a number" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Pick a password" +msgstr "Pick a password" + +#: apps/remix/app/components/general/user-profile-timur.tsx +msgid "Pick any of the following agreements below and start signing to get started" +msgstr "Pick any of the following agreements below and start signing to get started" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Pin" +msgstr "Pin" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Placeholder" +msgstr "Placeholder" + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "Please {0} your document<0/>\"{documentName}\"" +msgstr "Please {0} your document<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "Please {action} your document {documentName}" +msgstr "Please {action} your document {documentName}" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} this document" +msgstr "Please {recipientActionVerb} this document" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} this document created by your direct template" +msgstr "Please {recipientActionVerb} this document created by your direct template" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} your document" +msgstr "Please {recipientActionVerb} your document" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Please check the CSV file and make sure it is according to our format" +msgstr "Please check the CSV file and make sure it is according to our format" + +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "Please check with the parent application for more information." +msgstr "Please check with the parent application for more information." + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "Please check your email for updates." +msgstr "Please check your email for updates." + +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +msgid "Please choose your new password" +msgstr "Please choose your new password" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Please configure the document first" +msgstr "Please configure the document first" + +#: packages/lib/server-only/auth/send-confirmation-email.ts +msgid "Please confirm your email" +msgstr "Please confirm your email" + +#: packages/email/templates/confirm-email.tsx +msgid "Please confirm your email address" +msgstr "Please confirm your email address" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please contact support if you would like to revert this action." +msgstr "Please contact support if you would like to revert this action." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Please contact the site owner for further assistance." +msgstr "Please contact the site owner for further assistance." + +#: apps/remix/app/components/forms/token.tsx +msgid "Please enter a meaningful name for your token. This will help you identify it later." +msgstr "Please enter a meaningful name for your token. This will help you identify it later." + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/profile.tsx +msgid "Please enter a valid name." +msgstr "Please enter a valid name." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please mark as viewed to complete" +msgstr "Please mark as viewed to complete" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." +msgstr "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please note that this action is <0>irreversible." +msgstr "Please note that this action is <0>irreversible." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please note that this action is <0>irreversible. Once confirmed, this document will be permanently deleted." +msgstr "Please note that this action is <0>irreversible. Once confirmed, this document will be permanently deleted." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your template will be permanently deleted." +msgstr "Please note that this action is irreversible. Once confirmed, your template will be permanently deleted." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your token will be permanently deleted." +msgstr "Please note that this action is irreversible. Once confirmed, your token will be permanently deleted." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your webhook will be permanently deleted." +msgstr "Please note that this action is irreversible. Once confirmed, your webhook will be permanently deleted." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Please note that you will lose access to all documents associated with this team & all the members will be removed and notified" +msgstr "Please note that you will lose access to all documents associated with this team & all the members will be removed and notified" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Please provide a token from the authenticator, or a backup code. If you do not have a backup code available, please contact support." +msgstr "Please provide a token from the authenticator, or a backup code. If you do not have a backup code available, please contact support." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "Please provide a token from your authenticator, or a backup code." +msgstr "Please provide a token from your authenticator, or a backup code." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please review the document before approving." +msgstr "Please review the document before approving." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please review the document before signing." +msgstr "Please review the document before signing." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Please select a PDF file" +msgstr "Please select a PDF file" + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "Please try a different domain." +msgstr "Please try a different domain." + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Please try again and make sure you enter the correct email address." +msgstr "Please try again and make sure you enter the correct email address." + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Please try again later." +msgstr "Please try again later." + +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Please try again or contact our support." +msgstr "Please try again or contact our support." + +#. placeholder {0}: `'${_(deleteMessage)}'` +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please type {0} to confirm" +msgstr "Please type {0} to confirm" + +#. placeholder {0}: user.email +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Please type <0>{0} to confirm." +msgstr "Please type <0>{0} to confirm." + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Please upload a logo" +msgstr "Please upload a logo" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Pre-formatted CSV template with example data." +msgstr "Pre-formatted CSV template with example data." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Preferences" +msgstr "Preferences" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Preview" +msgstr "Preview" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "Preview and configure template." +msgstr "Preview and configure template." + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-type.tsx +msgid "Private" +msgstr "Private" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Private templates can only be modified and viewed by you." +msgstr "Private templates can only be modified and viewed by you." + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Proceed" +msgstr "Proceed" + +#: apps/remix/app/routes/_authenticated+/settings+/profile.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Profile" +msgstr "Profile" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Profile is currently <0>hidden." +msgstr "Profile is currently <0>hidden." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Profile is currently <0>visible." +msgstr "Profile is currently <0>visible." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/forms/profile.tsx +msgid "Profile updated" +msgstr "Profile updated" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Progress" +msgstr "Progress" + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-type.tsx +msgid "Public" +msgstr "Public" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Public Profile" +msgstr "Public Profile" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Public profile URL" +msgstr "Public profile URL" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile." +msgstr "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile." + +#: packages/ui/primitives/document-flow/types.ts +msgid "Radio" +msgstr "Radio" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +msgid "Radio values" +msgstr "Radio values" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Read only" +msgstr "Read only" + +#: apps/remix/app/components/general/document-signing/document-signing-disclosure.tsx +msgid "Read the full <0>signature disclosure." +msgstr "Read the full <0>signature disclosure." + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Ready" +msgstr "Ready" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Reason" +msgstr "Reason" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "Reason for cancellation: {cancellationReason}" +msgstr "Reason for cancellation: {cancellationReason}" + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Reason for rejection: " +msgstr "Reason for rejection: " + +#: packages/email/template-components/template-document-rejected.tsx +msgid "Reason for rejection: {rejectionReason}" +msgstr "Reason for rejection: {rejectionReason}" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +msgid "Reason must be less than 500 characters" +msgstr "Reason must be less than 500 characters" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Reauthentication is required to sign this field" +msgstr "Reauthentication is required to sign this field" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Receives copy" +msgstr "Receives copy" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Recent activity" +msgstr "Recent activity" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Recent documents" +msgstr "Recent documents" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +#: packages/lib/utils/document-audit-logs.ts +msgid "Recipient" +msgstr "Recipient" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "Recipient action authentication" +msgstr "Recipient action authentication" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient removed email" +msgstr "Recipient removed email" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient signed email" +msgstr "Recipient signed email" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient signing request email" +msgstr "Recipient signing request email" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Recipient updated" +msgstr "Recipient updated" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +msgid "Recipients" +msgstr "Recipients" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Recipients metrics" +msgstr "Recipients metrics" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Recipients will still retain their copy of the document" +msgstr "Recipients will still retain their copy of the document" + +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +msgid "Record Name" +msgstr "Record Name" + +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +msgid "Record Type" +msgstr "Record Type" + +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +msgid "Record Value" +msgstr "Record Value" + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Recovery code copied" +msgstr "Recovery code copied" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Recovery codes" +msgstr "Recovery codes" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Red" +msgstr "Red" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Redirect URL" +msgstr "Redirect URL" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "Registration Successful" +msgstr "Registration Successful" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Reject Document" +msgstr "Reject Document" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/document.ts +msgid "Rejected" +msgstr "Rejected" + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "Rejection Confirmed" +msgstr "Rejection Confirmed" + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "Rejection reason: {reason}" +msgstr "Rejection reason: {reason}" + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +msgid "Remembered your password? <0>Sign In" +msgstr "Remembered your password? <0>Sign In" + +#. placeholder {0}: customEmail.subject +#: packages/lib/server-only/document/resend-document.ts +msgid "Reminder: {0}" +msgstr "Reminder: {0}" + +#. placeholder {0}: document.team.name +#: packages/lib/server-only/document/resend-document.ts +msgid "Reminder: {0} invited you to {recipientActionVerb} a document" +msgstr "Reminder: {0} invited you to {recipientActionVerb} a document" + +#: packages/lib/server-only/document/resend-document.ts +msgid "Reminder: Please {recipientActionVerb} this document" +msgstr "Reminder: Please {recipientActionVerb} this document" + +#: packages/lib/server-only/document/resend-document.ts +msgid "Reminder: Please {recipientActionVerb} your document" +msgstr "Reminder: Please {recipientActionVerb} your document" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/document-signing/document-signing-field-container.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Remove" +msgstr "Remove" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "Remove email domain" +msgstr "Remove email domain" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +msgid "Remove organisation group" +msgstr "Remove organisation group" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Remove organisation member" +msgstr "Remove organisation member" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Remove team email" +msgstr "Remove team email" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "Remove team member" +msgstr "Remove team member" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Repeat Password" +msgstr "Repeat Password" + +#: apps/remix/app/components/forms/email-preferences-form.tsx +msgid "Reply to email" +msgstr "Reply to email" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Reply To Email" +msgstr "Reply To Email" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Required field" +msgstr "Required field" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Reseal document" +msgstr "Reseal document" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Resend" +msgstr "Resend" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Resend Confirmation Email" +msgstr "Resend Confirmation Email" + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Resend verification" +msgstr "Resend verification" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Reset" +msgstr "Reset" + +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "Reset email sent" +msgstr "Reset email sent" + +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +#: packages/email/template-components/template-forgot-password.tsx +msgid "Reset Password" +msgstr "Reset Password" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Resetting Password..." +msgstr "Resetting Password..." + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Resolve" +msgstr "Resolve" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Resolve payment" +msgstr "Resolve payment" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" +msgstr "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Restricted Access" +msgstr "Restricted Access" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Retention of Documents" +msgstr "Retention of Documents" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Retry" +msgstr "Retry" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Return" +msgstr "Return" + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Return to Home" +msgstr "Return to Home" + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +msgid "Return to sign in" +msgstr "Return to sign in" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Revoke" +msgstr "Revoke" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Revoke access" +msgstr "Revoke access" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Revoke all sessions" +msgstr "Revoke all sessions" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "Role" +msgstr "Role" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +msgid "Roles" +msgstr "Roles" + +#: packages/ui/primitives/data-table-pagination.tsx +msgid "Rows per page" +msgstr "Rows per page" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Save" +msgstr "Save" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "Save Template" +msgstr "Save Template" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +#: apps/remix/app/components/tables/documents-table-sender-filter.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +msgid "Search" +msgstr "Search" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Search and manage all organisations" +msgstr "Search and manage all organisations" + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Search by claim ID or name" +msgstr "Search by claim ID or name" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +msgid "Search by document title" +msgstr "Search by document title" + +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +msgid "Search by name or email" +msgstr "Search by name or email" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Search by organisation ID, name, customer ID or owner email" +msgstr "Search by organisation ID, name, customer ID or owner email" + +#: apps/remix/app/components/general/document/document-search.tsx +msgid "Search documents..." +msgstr "Search documents..." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Search folders..." +msgstr "Search folders..." + +#: packages/ui/components/common/language-switcher-dialog.tsx +msgid "Search languages..." +msgstr "Search languages..." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Secret" +msgstr "Secret" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Security" +msgstr "Security" + +#: apps/remix/app/routes/_authenticated+/settings+/security.activity.tsx +msgid "Security activity" +msgstr "Security activity" + +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Select" +msgstr "Select" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Select a destination for this folder." +msgstr "Select a destination for this folder." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Select a folder to move this document to." +msgstr "Select a folder to move this document to." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Select a plan" +msgstr "Select a plan" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Select a plan to continue" +msgstr "Select a plan to continue" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Select a team to view its dashboard" +msgstr "Select a team to view its dashboard" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Select a template you'd like to display on your public profile" +msgstr "Select a template you'd like to display on your public profile" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Select a template you'd like to display on your team's public profile" +msgstr "Select a template you'd like to display on your team's public profile" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Select a time zone" +msgstr "Select a time zone" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Select access methods" +msgstr "Select access methods" + +#: packages/ui/primitives/combobox.tsx +msgid "Select an option" +msgstr "Select an option" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Select an organisation to view teams" +msgstr "Select an organisation to view teams" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Select at least" +msgstr "Select at least" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "Select authentication methods" +msgstr "Select authentication methods" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Select default option" +msgstr "Select default option" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Select direction" +msgstr "Select direction" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups" +msgstr "Select groups" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups of members to add to the team." +msgstr "Select groups of members to add to the team." + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups to add to this team" +msgstr "Select groups to add to this team" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Select members" +msgstr "Select members" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Select members or groups of members to add to the team." +msgstr "Select members or groups of members to add to the team." + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Select members to add to this team" +msgstr "Select members to add to this team" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Select passkey" +msgstr "Select passkey" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Select signature types" +msgstr "Select signature types" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Select the members to add to this group" +msgstr "Select the members to add to this group" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Select the members to include in this group" +msgstr "Select the members to include in this group" + +#: apps/remix/app/components/general/webhook-multiselect-combobox.tsx +#: apps/remix/app/components/general/webhook-multiselect-combobox.tsx +msgid "Select triggers" +msgstr "Select triggers" + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +msgid "Select visibility" +msgstr "Select visibility" + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Send" +msgstr "Send" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +msgid "Send a test webhook with sample data to verify your integration is working correctly." +msgstr "Send a test webhook with sample data to verify your integration is working correctly." + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Send confirmation email" +msgstr "Send confirmation email" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Send document" +msgstr "Send document" + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +msgid "Send Document" +msgstr "Send Document" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document completed email" +msgstr "Send document completed email" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document completed email to the owner" +msgstr "Send document completed email to the owner" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document deleted email" +msgstr "Send document deleted email" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document pending email" +msgstr "Send document pending email" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Send documents on behalf of the team using the email address" +msgstr "Send documents on behalf of the team using the email address" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Send documents to recipients immediately" +msgstr "Send documents to recipients immediately" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Send on Behalf of Team" +msgstr "Send on Behalf of Team" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient removed email" +msgstr "Send recipient removed email" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient signed email" +msgstr "Send recipient signed email" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient signing request email" +msgstr "Send recipient signing request email" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Send reminder" +msgstr "Send reminder" + +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +msgid "Send Test Webhook" +msgstr "Send Test Webhook" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +msgid "Sender" +msgstr "Sender" + +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "Sending Reset Email..." +msgstr "Sending Reset Email..." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Sending..." +msgstr "Sending..." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Sent" +msgstr "Sent" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Session revoked" +msgstr "Session revoked" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Sessions have been revoked" +msgstr "Sessions have been revoked" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Set a password" +msgstr "Set a password" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Set up your document properties and recipient information" +msgstr "Set up your document properties and recipient information" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Set up your template properties and recipient information" +msgstr "Set up your template properties and recipient information" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/routes/_authenticated+/settings+/_layout.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Settings" +msgstr "Settings" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Setup" +msgstr "Setup" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Share" +msgstr "Share" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Share Signature Card" +msgstr "Share Signature Card" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Share Signing Card" +msgstr "Share Signing Card" + +#: packages/lib/constants/template.ts +msgid "Share the Link" +msgstr "Share the Link" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Share your signing experience!" +msgstr "Share your signing experience!" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Show" +msgstr "Show" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Show advanced settings" +msgstr "Show advanced settings" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Show templates in your public profile for your audience to sign and get started quickly" +msgstr "Show templates in your public profile for your audience to sign and get started quickly" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/user-profile-timur.tsx +#: apps/remix/app/components/general/user-profile-skeleton.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Sign" +msgstr "Sign" + +#. placeholder {0}: recipient.name +#. placeholder {1}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "Sign as {0} <0>({1})" +msgstr "Sign as {0} <0>({1})" + +#. placeholder {0}: recipient.name +#. placeholder {1}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +msgid "Sign as<0>{0} <1>({1})" +msgstr "Sign as<0>{0} <1>({1})" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Sign document" +msgstr "Sign document" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Sign Document" +msgstr "Sign Document" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Sign Documents" +msgstr "Sign Documents" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Sign field" +msgstr "Sign field" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Here" +msgstr "Sign Here" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: packages/email/template-components/template-reset-password.tsx +msgid "Sign In" +msgstr "Sign In" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Sign in to your account" +msgstr "Sign in to your account" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +msgid "Sign Out" +msgstr "Sign Out" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Sign the document to complete the process." +msgstr "Sign the document to complete the process." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +msgid "Sign up" +msgstr "Sign up" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Up with Google" +msgstr "Sign Up with Google" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Up with OIDC" +msgstr "Sign Up with OIDC" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Signature" +msgstr "Signature" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signature ID" +msgstr "Signature ID" + +#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx +msgid "Signature is too small" +msgstr "Signature is too small" + +#: apps/remix/app/components/forms/profile.tsx +msgid "Signature Pad cannot be empty." +msgstr "Signature Pad cannot be empty." + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "Signature types" +msgstr "Signature types" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Signatures Collected" +msgstr "Signatures Collected" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Signatures will appear once the document has been completed" +msgstr "Signatures will appear once the document has been completed" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/components/document/document-read-only-fields.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Signed" +msgstr "Signed" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signer" +msgstr "Signer" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signer Events" +msgstr "Signer Events" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signers" +msgstr "Signers" + +#: packages/ui/primitives/document-flow/add-signers.types.ts +msgid "Signers must have unique emails" +msgstr "Signers must have unique emails" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signing" +msgstr "Signing" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signing Certificate" +msgstr "Signing Certificate" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signing certificate provided by" +msgstr "Signing certificate provided by" + +#: packages/lib/server-only/document/send-completed-email.ts +#: packages/lib/server-only/document/send-completed-email.ts +msgid "Signing Complete!" +msgstr "Signing Complete!" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Signing for" +msgstr "Signing for" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Signing in..." +msgstr "Signing in..." + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Signing Links" +msgstr "Signing Links" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Signing links have been generated for this document." +msgstr "Signing links have been generated for this document." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Signing order is enabled." +msgstr "Signing order is enabled." + +#: apps/remix/app/routes/_authenticated+/admin+/leaderboard.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +msgid "Signing Volume" +msgstr "Signing Volume" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Signups are disabled." +msgstr "Signups are disabled." + +#. placeholder {0}: DateTime.fromJSDate(publicProfile.badge.since).toFormat('LLL ‘yy') +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "Since {0}" +msgstr "Since {0}" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Site Banner" +msgstr "Site Banner" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Site Settings" +msgstr "Site Settings" + +#: 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." +msgstr "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: packages/ui/components/document/document-share-button.tsx +msgid "Something went wrong" +msgstr "Something went wrong" + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Something went wrong while attempting to verify your email address for <0>{0}. Please try again later." +msgstr "Something went wrong while attempting to verify your email address for <0>{0}. Please try again later." + +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Something went wrong while loading the document." +msgstr "Something went wrong while loading the document." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Something went wrong while loading your passkeys." +msgstr "Something went wrong while loading your passkeys." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Something went wrong while sending the confirmation email." +msgstr "Something went wrong while sending the confirmation email." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Something went wrong while updating the team billing subscription, please contact support." +msgstr "Something went wrong while updating the team billing subscription, please contact support." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx +msgid "Something went wrong!" +msgstr "Something went wrong!" + +#: packages/ui/primitives/data-table.tsx +msgid "Something went wrong." +msgstr "Something went wrong." + +#: apps/remix/app/components/forms/token.tsx +msgid "Something went wrong. Please try again later." +msgstr "Something went wrong. Please try again later." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Something went wrong. Please try again or contact support." +msgstr "Something went wrong. Please try again or contact support." + +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +msgid "Sorry, we were unable to download the audit logs. Please try again later." +msgstr "Sorry, we were unable to download the audit logs. Please try again later." + +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +msgid "Sorry, we were unable to download the certificate. Please try again later." +msgstr "Sorry, we were unable to download the certificate. Please try again later." + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Source" +msgstr "Source" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Stats" +msgstr "Stats" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Status" +msgstr "Status" + +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Step <0>{step} of {maxStep}" +msgstr "Step <0>{step} of {maxStep}" + +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Stripe" +msgstr "Stripe" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Stripe customer created successfully" +msgstr "Stripe customer created successfully" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Stripe Customer ID" +msgstr "Stripe Customer ID" + +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Subject" +msgstr "Subject" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Subject <0>(Optional)" +msgstr "Subject <0>(Optional)" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Subscribe" +msgstr "Subscribe" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Subscription" +msgstr "Subscription" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Subscription claim created successfully." +msgstr "Subscription claim created successfully." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Subscription claim deleted successfully." +msgstr "Subscription claim deleted successfully." + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Subscription claim updated successfully." +msgstr "Subscription claim updated successfully." + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Subscription Claims" +msgstr "Subscription Claims" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Subscription invalid" +msgstr "Subscription invalid" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/general/verify-email-banner.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Success" +msgstr "Success" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Successfully created passkey" +msgstr "Successfully created passkey" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Successfully created: {successCount}" +msgstr "Successfully created: {successCount}" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Summary:" +msgstr "Summary:" + +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "Sync" +msgstr "Sync" + +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "Sync Email Domains" +msgstr "Sync Email Domains" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "System Requirements" +msgstr "System Requirements" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "System Theme" +msgstr "System Theme" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +msgid "Team" +msgstr "Team" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/delete-team.ts +msgid "Team \"{0}\" has been deleted on Documenso" +msgstr "Team \"{0}\" has been deleted on Documenso" + +#: packages/lib/constants/teams-translations.ts +msgid "Team Admin" +msgstr "Team Admin" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Team Assignments" +msgstr "Team Assignments" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Team Count" +msgstr "Team Count" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Team email" +msgstr "Team email" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Team Email" +msgstr "Team Email" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email already verified!" +msgstr "Team email already verified!" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Team email has been removed" +msgstr "Team email has been removed" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/delete-team-email.ts +msgid "Team email has been revoked for {0}" +msgstr "Team email has been revoked for {0}" + +#: packages/email/templates/team-email-removed.tsx +msgid "Team email removed" +msgstr "Team email removed" + +#: packages/email/templates/team-email-removed.tsx +msgid "Team email removed for {teamName} on Documenso" +msgstr "Team email removed for {teamName} on Documenso" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email verification" +msgstr "Team email verification" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email verified!" +msgstr "Team email verified!" + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "Team email was updated." +msgstr "Team email was updated." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +msgid "Team Groups" +msgstr "Team Groups" + +#: packages/lib/constants/teams-translations.ts +msgid "Team Manager" +msgstr "Team Manager" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: packages/lib/constants/teams-translations.ts +msgid "Team Member" +msgstr "Team Member" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +msgid "Team Members" +msgstr "Team Members" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Team members have been added." +msgstr "Team members have been added." + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Team Name" +msgstr "Team Name" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "Team not found" +msgstr "Team not found" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Team Only" +msgstr "Team Only" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Team only templates are not linked anywhere and are visible only to your team." +msgstr "Team only templates are not linked anywhere and are visible only to your team." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Team Role" +msgstr "Team Role" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Team settings" +msgstr "Team settings" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "Team Settings" +msgstr "Team Settings" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Team url" +msgstr "Team url" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Team URL" +msgstr "Team URL" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Teams" +msgstr "Teams" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Teams help you organise your work and collaborate with others. Create your first team to get started." +msgstr "Teams help you organise your work and collaborate with others. Create your first team to get started." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Teams that this organisation group is currently assigned to" +msgstr "Teams that this organisation group is currently assigned to" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id.edit.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Template" +msgstr "Template" + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Template Created" +msgstr "Template Created" + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Template deleted" +msgstr "Template deleted" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Template document uploaded" +msgstr "Template document uploaded" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Template duplicated" +msgstr "Template duplicated" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Template has been removed from your public profile." +msgstr "Template has been removed from your public profile." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Template has been updated." +msgstr "Template has been updated." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Template is using legacy field insertion" +msgstr "Template is using legacy field insertion" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Template moved" +msgstr "Template moved" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Template saved" +msgstr "Template saved" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Template title" +msgstr "Template title" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +msgid "Template updated successfully" +msgstr "Template updated successfully" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Templates" +msgstr "Templates" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Templates allow you to quickly generate documents with pre-filled recipients and fields." +msgstr "Templates allow you to quickly generate documents with pre-filled recipients and fields." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +msgid "Test Webhook" +msgstr "Test Webhook" + +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +msgid "Test webhook failed" +msgstr "Test webhook failed" + +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +msgid "Test webhook sent" +msgstr "Test webhook sent" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Text" +msgstr "Text" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Text Align" +msgstr "Text Align" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Text Color" +msgstr "Text Color" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Thank you for completing the signing process." +msgstr "Thank you for completing the signing process." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." +msgstr "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." + +#: packages/email/template-components/template-forgot-password.tsx +msgid "That's okay, it happens! Click the button below to reset your password." +msgstr "That's okay, it happens! Click the button below to reset your password." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "The account has been deleted successfully." +msgstr "The account has been deleted successfully." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "The account has been disabled successfully." +msgstr "The account has been disabled successfully." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "The account has been enabled successfully." +msgstr "The account has been enabled successfully." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "The authentication methods required for recipients to sign fields" +msgstr "The authentication methods required for recipients to sign fields" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "The authentication methods required for recipients to sign the signature field." +msgstr "The authentication methods required for recipients to sign the signature field." + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "The authentication methods required for recipients to view the document." +msgstr "The authentication methods required for recipients to view the document." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "The content to show in the banner, HTML is allowed" +msgstr "The content to show in the banner, HTML is allowed" + +#: apps/remix/app/components/forms/email-preferences-form.tsx +msgid "The default email to use when sending emails to recipients" +msgstr "The default email to use when sending emails to recipients" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "The direct link has been copied to your clipboard" +msgstr "The direct link has been copied to your clipboard" + +#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "The display name for this email address" +msgstr "The display name for this email address" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "The document has been moved successfully." +msgstr "The document has been moved successfully." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "The document is already saved and cannot be changed." +msgstr "The document is already saved and cannot be changed." + +#: apps/remix/app/components/embed/embed-document-completed.tsx +msgid "The document is now completed, please follow any instructions provided within the parent application." +msgstr "The document is now completed, please follow any instructions provided within the parent application." + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "The document owner has been notified of this rejection. No further action is required from you at this time. The document owner may contact you with any questions regarding this rejection." +msgstr "The document owner has been notified of this rejection. No further action is required from you at this time. The document owner may contact you with any questions regarding this rejection." + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary." +msgstr "The document owner has been notified of your decision. They may contact you with further instructions if necessary." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "The document was created but could not be sent to recipients." +msgstr "The document was created but could not be sent to recipients." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "The document will be hidden from your account" +msgstr "The document will be hidden from your account" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "The document will be immediately sent to recipients if this is checked." +msgstr "The document will be immediately sent to recipients if this is checked." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The document's name" +msgstr "The document's name" + +#: apps/remix/app/components/forms/email-preferences-form.tsx +msgid "The email address which will show up in the \"Reply To\" field in emails" +msgstr "The email address which will show up in the \"Reply To\" field in emails" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "" +"The email domain you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "" +"The email domain you are looking for may have been removed, renamed or may have never\n" +" existed." + +#: apps/remix/app/components/forms/signin.tsx +msgid "The email or password provided is incorrect" +msgstr "The email or password provided is incorrect" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The events that will trigger a webhook to be sent to your URL." +msgstr "The events that will trigger a webhook to be sent to your URL." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "The fields have been updated to the new field insertion method successfully" +msgstr "The fields have been updated to the new field insertion method successfully" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "The folder you are trying to delete does not exist." +msgstr "The folder you are trying to delete does not exist." + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "The folder you are trying to move does not exist." +msgstr "The folder you are trying to move does not exist." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "The folder you are trying to move the document to does not exist." +msgstr "The folder you are trying to move the document to does not exist." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "The folder you are trying to move the template to does not exist." +msgstr "The folder you are trying to move the template to does not exist." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "The following errors occurred:" +msgstr "The following errors occurred:" + +#: packages/email/templates/team-delete.tsx +msgid "The following team has been deleted. You will no longer be able to access this team and its documents" +msgstr "The following team has been deleted. You will no longer be able to access this team and its documents" + +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "The organisation email has been created successfully." +msgstr "The organisation email has been created successfully." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "" +"The organisation group you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "" +"The organisation group you are looking for may have been removed, renamed or may have never\n" +" existed." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "The organisation role that will be applied to all members in this group." +msgstr "The organisation role that will be applied to all members in this group." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "" +"The organisation you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "" +"The organisation you are looking for may have been removed, renamed or may have never\n" +" existed." + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "" +"The organisation you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "" +"The organisation you are looking for may have been removed, renamed or may have never\n" +" existed." + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "The page you are looking for was moved, removed, renamed or might never have existed." +msgstr "The page you are looking for was moved, removed, renamed or might never have existed." + +#. placeholder {0}: emailDomain.domain +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "The part before the @ symbol (e.g., \"support\" for support@{0})" +msgstr "The part before the @ symbol (e.g., \"support\" for support@{0})" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "The profile link has been copied to your clipboard" +msgstr "The profile link has been copied to your clipboard" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "The profile you are looking for could not be found." +msgstr "The profile you are looking for could not be found." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The public description that will be displayed with this template" +msgstr "The public description that will be displayed with this template" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The public name for your template" +msgstr "The public name for your template" + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "The reason provided for deletion is the following:" +msgstr "The reason provided for deletion is the following:" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient can prepare the document for later signers by pre-filling suggest values." +msgstr "The recipient can prepare the document for later signers by pre-filling suggest values." + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "The recipient has been updated successfully" +msgstr "The recipient has been updated successfully" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is not required to take any action and receives a copy of the document after it is completed." +msgstr "The recipient is not required to take any action and receives a copy of the document after it is completed." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to approve the document for it to be completed." +msgstr "The recipient is required to approve the document for it to be completed." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to sign the document for it to be completed." +msgstr "The recipient is required to sign the document for it to be completed." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to view the document for it to be completed." +msgstr "The recipient is required to view the document for it to be completed." + +#: packages/ui/components/document/document-share-button.tsx +msgid "The sharing link could not be created at this time. Please try again." +msgstr "The sharing link could not be created at this time. Please try again." + +#: packages/ui/components/document/document-share-button.tsx +msgid "The sharing link has been copied to your clipboard." +msgstr "The sharing link has been copied to your clipboard." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The signer's email" +msgstr "The signer's email" + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The signer's name" +msgstr "The signer's name" + +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "The signing link has been copied to your clipboard." +msgstr "The signing link has been copied to your clipboard." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." +msgstr "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." + +#: packages/email/templates/team-email-removed.tsx +msgid "The team email <0>{teamEmail} has been removed from the following team" +msgstr "The team email <0>{teamEmail} has been removed from the following team" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "" +"The team you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "" +"The team you are looking for may have been removed, renamed or may have never\n" +" existed." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "" +"The team you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "" +"The team you are looking for may have been removed, renamed or may have never\n" +" existed." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "The template has been moved successfully." +msgstr "The template has been moved successfully." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The template will be removed from your profile" +msgstr "The template will be removed from your profile" + +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +msgid "The test webhook has been successfully sent to your endpoint." +msgstr "The test webhook has been successfully sent to your endpoint." + +#: apps/remix/app/components/forms/token.tsx +msgid "The token was copied to your clipboard." +msgstr "The token was copied to your clipboard." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "The token was deleted successfully." +msgstr "The token was deleted successfully." + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +msgid "The token you have used to reset your password is either expired or it never existed. If you have still forgotten your password, please request a new reset link." +msgstr "The token you have used to reset your password is either expired or it never existed. If you have still forgotten your password, please request a new reset link." + +#: apps/remix/app/components/forms/signin.tsx +msgid "The two-factor authentication code provided is incorrect" +msgstr "The two-factor authentication code provided is incorrect" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "The types of signatures that recipients are allowed to use when signing the document." +msgstr "The types of signatures that recipients are allowed to use when signing the document." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The URL for Documenso to send webhook events to." +msgstr "The URL for Documenso to send webhook events to." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "" +"The user you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "" +"The user you are looking for may have been removed, renamed or may have never\n" +" existed." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "The webhook has been successfully deleted." +msgstr "The webhook has been successfully deleted." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "The webhook has been updated successfully." +msgstr "The webhook has been updated successfully." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The webhook was successfully created." +msgstr "The webhook was successfully created." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "" +"The webhook you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "" +"The webhook you are looking for may have been removed, renamed or may have never\n" +" existed." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "There are no active drafts at the current moment. You can upload a document to start drafting." +msgstr "There are no active drafts at the current moment. You can upload a document to start drafting." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "There are no completed documents yet. Documents that you have created or received will appear here once completed." +msgstr "There are no completed documents yet. Documents that you have created or received will appear here once completed." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "There was an error uploading your file. Please try again." +msgstr "There was an error uploading your file. Please try again." + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "These can be overriden by setting the authentication requirements directly on each recipient in the next step. Multiple methods can be selected." +msgstr "These can be overriden by setting the authentication requirements directly on each recipient in the next step. Multiple methods can be selected." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "These will override any global settings. Multiple methods can be selected." +msgstr "These will override any global settings. Multiple methods can be selected." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "They have permission on your behalf to:" +msgstr "They have permission on your behalf to:" + +#: apps/remix/app/components/forms/signin.tsx +msgid "This account has been disabled. Please contact support." +msgstr "This account has been disabled. Please contact support." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This account has not been verified. Please verify your account before signing in." +msgstr "This account has not been verified. Please verify your account before signing in." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "This action is not reversible. Please be certain." +msgstr "This action is not reversible. Please be certain." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "This action is reversible, but please be careful as the account may be affected permanently (e.g. their settings and contents not being restored properly)." +msgstr "This action is reversible, but please be careful as the account may be affected permanently (e.g. their settings and contents not being restored properly)." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "This claim is locked and cannot be deleted." +msgstr "This claim is locked and cannot be deleted." + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." +msgstr "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "This document cannot be changed" +msgstr "This document cannot be changed" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "This document could not be deleted at this time. Please try again." +msgstr "This document could not be deleted at this time. Please try again." + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "This document could not be duplicated at this time. Please try again." +msgstr "This document could not be duplicated at this time. Please try again." + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "This document could not be re-sent at this time. Please try again." +msgstr "This document could not be re-sent at this time. Please try again." + +#: packages/ui/primitives/recipient-selector.tsx +msgid "This document has already been sent to this recipient. You can no longer edit this recipient." +msgstr "This document has already been sent to this recipient. You can no longer edit this recipient." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "This document has been cancelled by the owner and is no longer available for others to sign." +msgstr "This document has been cancelled by the owner and is no longer available for others to sign." + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "This document has been cancelled by the owner." +msgstr "This document has been cancelled by the owner." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document has been rejected by a recipient" +msgstr "This document has been rejected by a recipient" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document has been signed by all recipients" +msgstr "This document has been signed by all recipients" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "This document is available in your Documenso account. You can view more details, recipients, and audit logs there." +msgstr "This document is available in your Documenso account. You can view more details, recipients, and audit logs there." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document is currently a draft and has not been sent" +msgstr "This document is currently a draft and has not been sent" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "This document is using legacy field insertion, we recommend using the new field insertion method for more accurate results." +msgstr "This document is using legacy field insertion, we recommend using the new field insertion method for more accurate results." + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "This document was created by you or a team member using the template above." +msgstr "This document was created by you or a team member using the template above." + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "This document was created using a direct link." +msgstr "This document was created using a direct link." + +#: packages/email/template-components/template-footer.tsx +msgid "This document was sent using <0>Documenso." +msgstr "This document was sent using <0>Documenso." + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "This email confirms that you have rejected the document <0>\"{documentName}\" sent by {documentOwnerName}." +msgstr "This email confirms that you have rejected the document <0>\"{documentName}\" sent by {documentOwnerName}." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "This email is already being used by another team." +msgstr "This email is already being used by another team." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the document owner when a recipient has signed the document." +msgstr "This email is sent to the document owner when a recipient has signed the document." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the recipient if they are removed from a pending document." +msgstr "This email is sent to the recipient if they are removed from a pending document." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the recipient requesting them to sign the document." +msgstr "This email is sent to the recipient requesting them to sign the document." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email will be sent to the recipient who has just signed the document, if there are still other recipients who have not signed yet." +msgstr "This email will be sent to the recipient who has just signed the document, if there are still other recipients who have not signed yet." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." +msgstr "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "This folder contains multiple items. Deleting it will remove all subfolders and move all nested documents and templates to the root folder." +msgstr "This folder contains multiple items. Deleting it will remove all subfolders and move all nested documents and templates to the root folder." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "This is how the document will reach the recipients once the document is ready for signing." +msgstr "This is how the document will reach the recipients once the document is ready for signing." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation." +msgstr "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation." + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "This link is invalid or has expired. Please contact your team to resend a verification." +msgstr "This link is invalid or has expired. Please contact your team to resend a verification." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "This organisation, and any associated data will be permanently deleted." +msgstr "This organisation, and any associated data will be permanently deleted." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "This passkey has already been registered." +msgstr "This passkey has already been registered." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This passkey is not configured for this application. Please login and add one in the user settings." +msgstr "This passkey is not configured for this application. Please login and add one in the user settings." + +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "This recipient can no longer be modified as they have signed a field, or completed the document." +msgstr "This recipient can no longer be modified as they have signed a field, or completed the document." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This session has expired. Please try again." +msgstr "This session has expired. Please try again." + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "This signer has already signed the document." +msgstr "This signer has already signed the document." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "This team, and any associated data excluding billing invoices will be permanently deleted." +msgstr "This team, and any associated data excluding billing invoices will be permanently deleted." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "This template could not be deleted at this time. Please try again." +msgstr "This template could not be deleted at this time. Please try again." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "This template is using legacy field insertion, we recommend using the new field insertion method for more accurate results." +msgstr "This template is using legacy field insertion, we recommend using the new field insertion method for more accurate results." + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "This token is invalid or has expired. No action is needed." +msgstr "This token is invalid or has expired. No action is needed." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "This token is invalid or has expired. Please contact your team for a new invitation." +msgstr "This token is invalid or has expired. Please contact your team for a new invitation." + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "This URL is already in use." +msgstr "This URL is already in use." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to all recipients if a pending document has been deleted." +msgstr "This will be sent to all recipients if a pending document has been deleted." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to all recipients once the document has been fully completed." +msgstr "This will be sent to all recipients once the document has been fully completed." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to the document owner once the document has been fully completed." +msgstr "This will be sent to the document owner once the document has been fully completed." + +#: apps/remix/app/components/tables/organisation-email-domains-table.tsx +msgid "This will check and sync the status of all email domains for this organisation" +msgstr "This will check and sync the status of all email domains for this organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported" +msgstr "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "This will remove all emails associated with this email domain" +msgstr "This will remove all emails associated with this email domain" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account." +msgstr "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account." + +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +msgid "Time" +msgstr "Time" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Time zone" +msgstr "Time zone" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Time Zone" +msgstr "Time Zone" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Title" +msgstr "Title" + +#: packages/ui/primitives/document-flow/add-settings.types.ts +msgid "Title cannot be empty" +msgstr "Title cannot be empty" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "To accept this invitation you must create an account." +msgstr "To accept this invitation you must create an account." + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "To change the email you must remove and add a new email address." +msgstr "To change the email you must remove and add a new email address." + +#. placeholder {0}: userToEnable.email +#. placeholder {0}: userToDisable.email +#. placeholder {0}: user.email +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "To confirm, please enter the accounts email address <0/>({0})." +msgstr "To confirm, please enter the accounts email address <0/>({0})." + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "To confirm, please enter the reason" +msgstr "To confirm, please enter the reason" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "To enable two-factor authentication, scan the following QR code using your authenticator app." +msgstr "To enable two-factor authentication, scan the following QR code using your authenticator app." + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +msgid "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox." +msgstr "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox." + +#. placeholder {0}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +msgid "To mark this document as viewed, you need to be logged in as <0>{0}" +msgstr "To mark this document as viewed, you need to be logged in as <0>{0}" + +#. placeholder {0}: emptyCheckboxFields.length > 0 ? 'Checkbox' : emptyRadioFields.length > 0 ? 'Radio' : 'Select' +#. placeholder {0}: emptyCheckboxFields.length > 0 ? 'Checkbox' : emptyRadioFields.length > 0 ? 'Radio' : 'Select' +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "To proceed further, please set at least one value for the {0} field." +msgstr "To proceed further, please set at least one value for the {0} field." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "To use our electronic signature service, you must have access to:" +msgstr "To use our electronic signature service, you must have access to:" + +#: apps/remix/app/components/embed/embed-authentication-required.tsx +msgid "To view this document you need to be signed into your account, please sign in to continue." +msgstr "To view this document you need to be signed into your account, please sign in to continue." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Toggle the switch to hide your profile from the public." +msgstr "Toggle the switch to hide your profile from the public." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Toggle the switch to show your profile to the public." +msgstr "Toggle the switch to show your profile to the public." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Token" +msgstr "Token" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token copied to clipboard" +msgstr "Token copied to clipboard" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token created" +msgstr "Token created" + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Token deleted" +msgstr "Token deleted" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Token doesn't have an expiration date" +msgstr "Token doesn't have an expiration date" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token expiration date" +msgstr "Token expiration date" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Token has expired. Please try again." +msgstr "Token has expired. Please try again." + +#: apps/remix/app/components/forms/token.tsx +msgid "Token name" +msgstr "Token name" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Documents" +msgstr "Total Documents" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Recipients" +msgstr "Total Recipients" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Total rows processed: {totalProcessed}" +msgstr "Total rows processed: {totalProcessed}" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Signers that Signed Up" +msgstr "Total Signers that Signed Up" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Users" +msgstr "Total Users" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Triggers" +msgstr "Triggers" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Two factor authentication" +msgstr "Two factor authentication" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app." +msgstr "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app." + +#: apps/remix/app/components/forms/signin.tsx +msgid "Two-Factor Authentication" +msgstr "Two-Factor Authentication" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Two-factor authentication disabled" +msgstr "Two-factor authentication disabled" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Two-factor authentication enabled" +msgstr "Two-factor authentication enabled" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Two-factor authentication has been disabled for your account. You will no longer be required to enter a code from your authenticator app when signing in." +msgstr "Two-factor authentication has been disabled for your account. You will no longer be required to enter a code from your authenticator app when signing in." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Two-Factor Re-Authentication" +msgstr "Two-Factor Re-Authentication" + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: packages/lib/constants/document.ts +msgid "Type" +msgstr "Type" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Type a command or search..." +msgstr "Type a command or search..." + +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "Typed signatures are not allowed. Please draw your signature." +msgstr "Typed signatures are not allowed. Please draw your signature." + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +msgid "Uh oh! Looks like you're missing a token" +msgstr "Uh oh! Looks like you're missing a token" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Unable to change the language at this time. Please try again later." +msgstr "Unable to change the language at this time. Please try again later." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Unable to copy recovery code" +msgstr "Unable to copy recovery code" + +#: apps/remix/app/components/forms/token.tsx +msgid "Unable to copy token" +msgstr "Unable to copy token" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Unable to create direct template access. Please try again later." +msgstr "Unable to create direct template access. Please try again later." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Unable to decline this invitation at this time." +msgstr "Unable to decline this invitation at this time." + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Unable to delete invitation. Please try again." +msgstr "Unable to delete invitation. Please try again." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Unable to delete team" +msgstr "Unable to delete team" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Unable to disable two-factor authentication" +msgstr "Unable to disable two-factor authentication" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Unable to join this organisation at this time." +msgstr "Unable to join this organisation at this time." + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Unable to load document history" +msgstr "Unable to load document history" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Unable to load documents" +msgstr "Unable to load documents" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Unable to load your public profile templates at this time" +msgstr "Unable to load your public profile templates at this time" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Unable to remove email verification at this time. Please try again." +msgstr "Unable to remove email verification at this time. Please try again." + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Unable to remove team email at this time. Please try again." +msgstr "Unable to remove team email at this time. Please try again." + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Unable to resend invitation. Please try again." +msgstr "Unable to resend invitation. Please try again." + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Unable to resend verification at this time. Please try again." +msgstr "Unable to resend verification at this time. Please try again." + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +msgid "Unable to reset password" +msgstr "Unable to reset password" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Unable to setup two-factor authentication" +msgstr "Unable to setup two-factor authentication" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Unable to sign in" +msgstr "Unable to sign in" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "Unauthorized" +msgstr "Unauthorized" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Uncompleted" +msgstr "Uncompleted" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Unknown" +msgstr "Unknown" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "Unlimited" +msgstr "Unlimited" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Unlimited documents, API and more" +msgstr "Unlimited documents, API and more" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Unpin" +msgstr "Unpin" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Untitled Group" +msgstr "Untitled Group" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/email-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Update" +msgstr "Update" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Update Banner" +msgstr "Update Banner" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +msgid "Update Billing" +msgstr "Update Billing" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Update Claim" +msgstr "Update Claim" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Update current organisation" +msgstr "Update current organisation" + +#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx +msgid "Update email" +msgstr "Update email" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Update Fields" +msgstr "Update Fields" + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Update organisation" +msgstr "Update organisation" + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "Update organisation member" +msgstr "Update organisation member" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Update passkey" +msgstr "Update passkey" + +#: apps/remix/app/components/forms/password.tsx +msgid "Update password" +msgstr "Update password" + +#: apps/remix/app/components/forms/profile.tsx +msgid "Update profile" +msgstr "Update profile" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Update Recipient" +msgstr "Update Recipient" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Update role" +msgstr "Update role" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Update Subscription Claim" +msgstr "Update Subscription Claim" + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "Update team" +msgstr "Update team" + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "Update team email" +msgstr "Update team email" + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "Update team group" +msgstr "Update team group" + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "Update team member" +msgstr "Update team member" + +#: packages/lib/constants/template.ts +msgid "Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient." +msgstr "Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Update user" +msgstr "Update user" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Update webhook" +msgstr "Update webhook" + +#: apps/remix/app/components/forms/password.tsx +msgid "Updating password..." +msgstr "Updating password..." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Updating Your Information" +msgstr "Updating Your Information" + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "Upgrade" +msgstr "Upgrade" + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Upgrade <0>{0} to {planName}" +msgstr "Upgrade <0>{0} to {planName}" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Upgrade your plan to upload more documents" +msgstr "Upgrade your plan to upload more documents" + +#: packages/lib/constants/document.ts +msgid "Upload" +msgstr "Upload" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload a CSV file to create multiple documents from this template. Each row represents one document with its recipient details." +msgstr "Upload a CSV file to create multiple documents from this template. Each row represents one document with its recipient details." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Upload a custom document to use instead of the template's default document" +msgstr "Upload a custom document to use instead of the template's default document" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload and Process" +msgstr "Upload and Process" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Upload Avatar" +msgstr "Upload Avatar" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload CSV" +msgstr "Upload CSV" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Upload custom document" +msgstr "Upload custom document" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +#: packages/ui/primitives/document-upload.tsx +msgid "Upload Document" +msgstr "Upload Document" + +#: packages/ui/primitives/signature-pad/signature-pad-upload.tsx +msgid "Upload Signature" +msgstr "Upload Signature" + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "Upload Template Document" +msgstr "Upload Template Document" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Upload your brand logo (max 5MB, JPG, PNG, or WebP)" +msgstr "Upload your brand logo (max 5MB, JPG, PNG, or WebP)" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Uploaded by" +msgstr "Uploaded by" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file is too large" +msgstr "Uploaded file is too large" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file is too small" +msgstr "Uploaded file is too small" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file not an allowed file type" +msgstr "Uploaded file not an allowed file type" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Uploading document..." +msgstr "Uploading document..." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Use" +msgstr "Use" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Use Authenticator" +msgstr "Use Authenticator" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Use Backup Code" +msgstr "Use Backup Code" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Use Template" +msgstr "Use Template" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Use your passkey for authentication" +msgstr "Use your passkey for authentication" + +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +msgid "User" +msgstr "User" + +#: apps/remix/app/components/forms/password.tsx +msgid "User has no password." +msgstr "User has no password." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "User not found" +msgstr "User not found" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "User not found." +msgstr "User not found." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "User Organisations" +msgstr "User Organisations" + +#: apps/remix/app/components/forms/signup.tsx +msgid "User profiles are here!" +msgstr "User profiles are here!" + +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "User settings" +msgstr "User settings" + +#: apps/remix/app/components/forms/signup.tsx +msgid "User with this email already exists. Please use a different email address." +msgstr "User with this email already exists. Please use a different email address." + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Users" +msgstr "Users" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Validation" +msgstr "Validation" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Value" +msgstr "Value" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verification Email Sent" +msgstr "Verification Email Sent" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verification email sent successfully." +msgstr "Verification email sent successfully." + +#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx +msgid "Verify Domain" +msgstr "Verify Domain" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify Now" +msgstr "Verify Now" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify your email address" +msgstr "Verify your email address" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify your email address to unlock all features." +msgstr "Verify your email address to unlock all features." + +#: apps/remix/app/components/general/document/document-upload.tsx +msgid "Verify your email to upload documents." +msgstr "Verify your email to upload documents." + +#: packages/email/templates/confirm-team-email.tsx +msgid "Verify your team email address" +msgstr "Verify your team email address" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Version History" +msgstr "Version History" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Vertical" +msgstr "Vertical" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "View" +msgstr "View" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View activity" +msgstr "View activity" + +#: packages/email/templates/confirm-team-email.tsx +msgid "View all documents sent to and from this email address" +msgstr "View all documents sent to and from this email address" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "View all documents sent to your account" +msgstr "View all documents sent to your account" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View all recent security activity related to your account." +msgstr "View all recent security activity related to your account." + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "View all related documents" +msgstr "View all related documents" + +#: apps/remix/app/routes/_authenticated+/settings+/security.activity.tsx +msgid "View all security activity related to your account." +msgstr "View all security activity related to your account." + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View and manage all active sessions for your account." +msgstr "View and manage all active sessions for your account." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "View Codes" +msgstr "View Codes" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "View DNS Records" +msgstr "View DNS Records" + +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "View document" +msgstr "View document" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/email/template-components/template-document-rejected.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "View Document" +msgstr "View Document" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "View documents associated with this email" +msgstr "View documents associated with this email" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "View invites" +msgstr "View invites" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "View more" +msgstr "View more" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "View next document" +msgstr "View next document" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "View Original Document" +msgstr "View Original Document" + +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "View owner" +msgstr "View owner" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "View plans" +msgstr "View plans" + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "View Recovery Codes" +msgstr "View Recovery Codes" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "View teams" +msgstr "View teams" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx +msgid "View the DNS records for this email domain" +msgstr "View the DNS records for this email domain" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Viewed" +msgstr "Viewed" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewer" +msgstr "Viewer" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewers" +msgstr "Viewers" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewing" +msgstr "Viewing" + +#: apps/remix/app/components/dialogs/folder-update-dialog.tsx +msgid "Visibility" +msgstr "Visibility" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Waiting" +msgstr "Waiting" + +#: packages/email/template-components/template-document-pending.tsx +msgid "Waiting for others" +msgstr "Waiting for others" + +#: packages/lib/server-only/document/send-pending-email.ts +msgid "Waiting for others to complete signing." +msgstr "Waiting for others to complete signing." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Waiting for others to sign" +msgstr "Waiting for others to sign" + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "Waiting for Your Turn" +msgstr "Waiting for Your Turn" + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "Want to send slick signing links like this one? <0>Check out Documenso." +msgstr "Want to send slick signing links like this one? <0>Check out Documenso." + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Want your own public profile?" +msgstr "Want your own public profile?" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Warning: Assistant as last signer" +msgstr "Warning: Assistant as last signer" + +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "We are unable to proceed to the billing portal at this time. Please try again, or contact support." +msgstr "We are unable to proceed to the billing portal at this time. Please try again, or contact support." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "We are unable to remove this passkey at the moment. Please try again later." +msgstr "We are unable to remove this passkey at the moment. Please try again later." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "We are unable to update this passkey at the moment. Please try again later." +msgstr "We are unable to update this passkey at the moment. Please try again later." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "We couldn't create a Stripe customer. Please try again." +msgstr "We couldn't create a Stripe customer. Please try again." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "We couldn't update the group. Please try again." +msgstr "We couldn't update the group. Please try again." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "We couldn't update the organisation. Please try again." +msgstr "We couldn't update the organisation. Please try again." + +#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx +msgid "We encountered an error while creating the email. Please try again later." +msgstr "We encountered an error while creating the email. Please try again later." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "We encountered an error while removing the direct template link. Please try again later." +msgstr "We encountered an error while removing the direct template link. Please try again later." + +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +msgid "We encountered an error while sending the test webhook. Please check your endpoint and try again." +msgstr "We encountered an error while sending the test webhook. Please check your endpoint and try again." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "We encountered an error while updating the webhook. Please try again later." +msgstr "We encountered an error while updating the webhook. Please try again later." + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "We encountered an unknown error while attempting to add team members. Please try again later." +msgstr "We encountered an unknown error while attempting to add team members. Please try again later." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "We encountered an unknown error while attempting to add this email. Please try again later." +msgstr "We encountered an unknown error while attempting to add this email. Please try again later." + +#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx +msgid "We encountered an unknown error while attempting to add your domain. Please try again later." +msgstr "We encountered an unknown error while attempting to add your domain. Please try again later." + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a group. Please try again later." +msgstr "We encountered an unknown error while attempting to create a group. Please try again later." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a organisation. Please try again later." +msgstr "We encountered an unknown error while attempting to create a organisation. Please try again later." + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a team. Please try again later." +msgstr "We encountered an unknown error while attempting to create a team. Please try again later." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete it. Please try again later." +msgstr "We encountered an unknown error while attempting to delete it. Please try again later." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this organisation. Please try again later." +msgstr "We encountered an unknown error while attempting to delete this organisation. Please try again later." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this team. Please try again later." +msgstr "We encountered an unknown error while attempting to delete this team. Please try again later." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this token. Please try again later." +msgstr "We encountered an unknown error while attempting to delete this token. Please try again later." + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete your account. Please try again later." +msgstr "We encountered an unknown error while attempting to delete your account. Please try again later." + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "We encountered an unknown error while attempting to disable access." +msgstr "We encountered an unknown error while attempting to disable access." + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "We encountered an unknown error while attempting to enable access." +msgstr "We encountered an unknown error while attempting to enable access." + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "We encountered an unknown error while attempting to invite organisation members. Please try again later." +msgstr "We encountered an unknown error while attempting to invite organisation members. Please try again later." + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "We encountered an unknown error while attempting to leave this organisation. Please try again later." +msgstr "We encountered an unknown error while attempting to leave this organisation. Please try again later." + +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this email domain. Please try again later." +msgstr "We encountered an unknown error while attempting to remove this email domain. Please try again later." + +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this email. Please try again later." +msgstr "We encountered an unknown error while attempting to remove this email. Please try again later." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this group. Please try again later." +msgstr "We encountered an unknown error while attempting to remove this group. Please try again later." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this template from your profile. Please try again later." +msgstr "We encountered an unknown error while attempting to remove this template from your profile. Please try again later." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this user. Please try again later." +msgstr "We encountered an unknown error while attempting to remove this user. Please try again later." + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "We encountered an unknown error while attempting to reset your password. Please try again later." +msgstr "We encountered an unknown error while attempting to reset your password. Please try again later." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "We encountered an unknown error while attempting to revoke access. Please try again or contact support." +msgstr "We encountered an unknown error while attempting to revoke access. Please try again or contact support." + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "We encountered an unknown error while attempting to sign you In. Please try again later." +msgstr "We encountered an unknown error while attempting to sign you In. Please try again later." + +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "We encountered an unknown error while attempting to sign you Up. Please try again later." +msgstr "We encountered an unknown error while attempting to sign you Up. Please try again later." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "We encountered an unknown error while attempting to update the banner. Please try again later." +msgstr "We encountered an unknown error while attempting to update the banner. Please try again later." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "We encountered an unknown error while attempting to update the template. Please try again later." +msgstr "We encountered an unknown error while attempting to update the template. Please try again later." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "We encountered an unknown error while attempting to update this organisation member. Please try again later." +msgstr "We encountered an unknown error while attempting to update this organisation member. Please try again later." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "We encountered an unknown error while attempting to update this team member. Please try again later." +msgstr "We encountered an unknown error while attempting to update this team member. Please try again later." + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "We encountered an unknown error while attempting to update your organisation. Please try again later." +msgstr "We encountered an unknown error while attempting to update your organisation. Please try again later." + +#: apps/remix/app/components/forms/password.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "We encountered an unknown error while attempting to update your password. Please try again later." +msgstr "We encountered an unknown error while attempting to update your password. Please try again later." + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "We encountered an unknown error while attempting to update your public profile. Please try again later." +msgstr "We encountered an unknown error while attempting to update your public profile. Please try again later." + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "We encountered an unknown error while attempting to update your team. Please try again later." +msgstr "We encountered an unknown error while attempting to update your team. Please try again later." + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "We encountered an unknown error while attempting update the team email. Please try again later." +msgstr "We encountered an unknown error while attempting update the team email. Please try again later." + +#: apps/remix/app/components/forms/profile.tsx +msgid "We encountered an unknown error while attempting update your profile. Please try again later." +msgstr "We encountered an unknown error while attempting update your profile. Please try again later." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "We have sent a confirmation email for verification." +msgstr "We have sent a confirmation email for verification." + +#: apps/remix/app/components/forms/signup.tsx +msgid "We need your signature to sign documents" +msgstr "We need your signature to sign documents" + +#: apps/remix/app/components/forms/token.tsx +msgid "We were unable to copy the token to your clipboard. Please try again." +msgstr "We were unable to copy the token to your clipboard. Please try again." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "We were unable to copy your recovery code to your clipboard. Please try again." +msgstr "We were unable to copy your recovery code to your clipboard. Please try again." + +#: apps/remix/app/components/forms/signup.tsx +msgid "We were unable to create your account. Please review the information you provided and try again." +msgstr "We were unable to create your account. Please review the information you provided and try again." + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "We were unable to disable two-factor authentication for your account. Please ensure that you have entered your password and backup code correctly and try again." +msgstr "We were unable to disable two-factor authentication for your account. Please ensure that you have entered your password and backup code correctly and try again." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "We were unable to log you out at this time." +msgstr "We were unable to log you out at this time." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "We were unable to set your public profile to public. Please try again." +msgstr "We were unable to set your public profile to public. Please try again." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "We were unable to setup two-factor authentication for your account. Please ensure that you have entered your code correctly and try again." +msgstr "We were unable to setup two-factor authentication for your account. Please ensure that you have entered your code correctly and try again." + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +msgid "We were unable to submit this document at this time. Please try again later." +msgstr "We were unable to submit this document at this time. Please try again later." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx +msgid "We were unable to update your branding preferences at this time, please try again later" +msgstr "We were unable to update your branding preferences at this time, please try again later" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx +msgid "We were unable to update your document preferences at this time, please try again later" +msgstr "We were unable to update your document preferences at this time, please try again later" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx +msgid "We were unable to update your email preferences at this time, please try again later" +msgstr "We were unable to update your email preferences at this time, please try again later" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "We were unable to verify your details. Please try again or contact support" +msgstr "We were unable to verify your details. Please try again or contact support" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "We were unable to verify your email at this time." +msgstr "We were unable to verify your email at this time." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "We were unable to verify your email. If your email is not verified already, please try again." +msgstr "We were unable to verify your email. If your email is not verified already, please try again." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "We will generate signing links for you, which you can send to the recipients through your method of choice." +msgstr "We will generate signing links for you, which you can send to the recipients through your method of choice." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "We won't send anything to notify recipients." +msgstr "We won't send anything to notify recipients." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "We're all empty" +msgstr "We're all empty" + +#: packages/email/template-components/template-document-pending.tsx +msgid "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." +msgstr "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." + +#: packages/email/templates/reset-password.tsx +msgid "We've changed your password as you asked. You can now sign in with your new password." +msgstr "We've changed your password as you asked. You can now sign in with your new password." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "We've sent a confirmation email to <0>{email}. Please check your inbox and click the link in the email to verify your account." +msgstr "We've sent a confirmation email to <0>{email}. Please check your inbox and click the link in the email to verify your account." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Webhook created" +msgstr "Webhook created" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Webhook deleted" +msgstr "Webhook deleted" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Webhook not found" +msgstr "Webhook not found" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Webhook updated" +msgstr "Webhook updated" + +#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Webhook URL" +msgstr "Webhook URL" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Welcome" +msgstr "Welcome" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +msgid "Welcome back, we are lucky to have you." +msgstr "Welcome back, we are lucky to have you." + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Welcome back! Here's an overview of your account." +msgstr "Welcome back! Here's an overview of your account." + +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Welcome to Documenso!" +msgstr "Welcome to Documenso!" + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "Were you trying to edit this document instead?" +msgstr "Were you trying to edit this document instead?" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "What you can do with teams:" +msgstr "What you can do with teams:" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "When enabled, signers can choose who should sign next in the sequence instead of following the predefined order." +msgstr "When enabled, signers can choose who should sign next in the sequence instead of following the predefined order." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "When you click continue, you will be prompted to add the first available authenticator on your system." +msgstr "When you click continue, you will be prompted to add the first available authenticator on your system." + +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "When you sign a document, we can automatically fill in and sign the following fields using information that has already been provided. You can also manually sign or remove any automatically signed fields afterwards if you desire." +msgstr "When you sign a document, we can automatically fill in and sign the following fields using information that has already been provided. You can also manually sign or remove any automatically signed fields afterwards if you desire." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." +msgstr "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." + +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." +msgstr "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Whitelabeling, unlimited members and more" +msgstr "Whitelabeling, unlimited members and more" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Who do you want to remind?" +msgstr "Who do you want to remind?" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Withdrawing Consent" +msgstr "Withdrawing Consent" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Write a description to display on your public profile" +msgstr "Write a description to display on your public profile" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Yearly" +msgstr "Yearly" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Yes" +msgstr "Yes" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "You" +msgstr "You" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "You are about to delete <0>\"{documentTitle}\"" +msgstr "You are about to delete <0>\"{documentTitle}\"" + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "You are about to delete <0>{0}. All data related to this organisation such as teams, documents, and all other resources will be deleted. This action is irreversible." +msgstr "You are about to delete <0>{0}. All data related to this organisation such as teams, documents, and all other resources will be deleted. This action is irreversible." + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "You are about to delete the following team email from <0>{teamName}." +msgstr "You are about to delete the following team email from <0>{teamName}." + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "You are about to give all organisation members access to this team under their organisation role." +msgstr "You are about to give all organisation members access to this team under their organisation role." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "You are about to hide <0>\"{documentTitle}\"" +msgstr "You are about to hide <0>\"{documentTitle}\"" + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "You are about to leave the following organisation." +msgstr "You are about to leave the following organisation." + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "You are about to remove default access to this team for all organisation members. Any members not explicitly added to this team will no longer have access." +msgstr "You are about to remove default access to this team for all organisation members. Any members not explicitly added to this team will no longer have access." + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +msgid "You are about to remove the email domain <0>{emailDomain} from <1>{0}. All emails associated with this domain will be deleted." +msgstr "You are about to remove the email domain <0>{emailDomain} from <1>{0}. All emails associated with this domain will be deleted." + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +msgid "You are about to remove the following email from <0>{0}." +msgstr "You are about to remove the following email from <0>{0}." + +#. placeholder {0}: team.name +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "You are about to remove the following group from <0>{0}." +msgstr "You are about to remove the following group from <0>{0}." + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "You are about to remove the following user from <0>{0}." +msgstr "You are about to remove the following user from <0>{0}." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You are about to remove the following user from <0>{teamName}." +msgstr "You are about to remove the following user from <0>{teamName}." + +#. placeholder {0}: teamEmail.team.name +#. placeholder {1}: teamEmail.team.url +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "You are about to revoke access for team <0>{0} ({1}) to use your email." +msgstr "You are about to revoke access for team <0>{0} ({1}) to use your email." + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +msgid "You are about to send this document to the recipients. Are you sure you want to continue?" +msgstr "You are about to send this document to the recipients. Are you sure you want to continue?" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "You are about to subscribe to the {planName}" +msgstr "You are about to subscribe to the {planName}" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "You are currently on the <0>Free Plan." +msgstr "You are currently on the <0>Free Plan." + +#. placeholder {0}: organisationEmail.email +#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx +msgid "You are currently updating <0>{0}" +msgstr "You are currently updating <0>{0}" + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You are currently updating <0>{memberName}." +msgstr "You are currently updating <0>{memberName}." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You are currently updating <0>{organisationMemberName}." +msgstr "You are currently updating <0>{organisationMemberName}." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "You are currently updating the <0>{passkeyName} passkey." +msgstr "You are currently updating the <0>{passkeyName} passkey." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You are currently updating the <0>{teamGroupName} team group." +msgstr "You are currently updating the <0>{teamGroupName} team group." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "You are not allowed to move this document." +msgstr "You are not allowed to move this document." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "You are not authorized to access this page." +msgstr "You are not authorized to access this page." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "You are not authorized to delete this user." +msgstr "You are not authorized to delete this user." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "You are not authorized to disable this user." +msgstr "You are not authorized to disable this user." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "You are not authorized to enable this user." +msgstr "You are not authorized to enable this user." + +#: 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)" +msgstr "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "You can choose to enable or disable the profile for public view." +msgstr "You can choose to enable or disable the profile for public view." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "You can copy and share these links to recipients so they can action the document." +msgstr "You can copy and share these links to recipients so they can action the document." + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "You can enable access to allow all organisation members to access this team by default." +msgstr "You can enable access to allow all organisation members to access this team by default." + +#: 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 "You can manage your email preferences here" + +#: packages/email/templates/confirm-team-email.tsx +msgid "You can revoke access at any time in your team settings on Documenso <0>here." +msgstr "You can revoke access at any time in your team settings on Documenso <0>here." + +#: 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." +msgstr "You can update the profile URL by updating the team URL in the general settings page." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "You can use the following variables in your message:" +msgstr "You can use the following variables in your message:" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "You can view documents associated with this email and use this identity when sending documents." +msgstr "You can view documents associated with this email and use this identity when sending documents." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "You can view the created documents in your dashboard under the \"Documents created from template\" section." +msgstr "You can view the created documents in your dashboard under the \"Documents created from template\" section." + +#: packages/email/template-components/template-document-rejected.tsx +msgid "You can view the document and its status by clicking the button below." +msgstr "You can view the document and its status by clicking the button below." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "You cannot add assistants when signing order is disabled." +msgstr "You cannot add assistants when signing order is disabled." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "You cannot delete a group which has a higher role than you." +msgstr "You cannot delete a group which has a higher role than you." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "You cannot have more than {MAXIMUM_PASSKEYS} passkeys." +msgstr "You cannot have more than {MAXIMUM_PASSKEYS} passkeys." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You cannot modify a group which has a higher role than you." +msgstr "You cannot modify a group which has a higher role than you." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You cannot modify a organisation member who has a higher role than you." +msgstr "You cannot modify a organisation member who has a higher role than you." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You cannot modify a team member who has a higher role than you." +msgstr "You cannot modify a team member who has a higher role than you." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You cannot remove members from this team if the inherit member feature is enabled." +msgstr "You cannot remove members from this team if the inherit member feature is enabled." + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "You cannot upload documents at this time." +msgstr "You cannot upload documents at this time." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "You cannot upload encrypted PDFs" +msgstr "You cannot upload encrypted PDFs" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "You currently have an inactive <0>{currentProductName} subscription" +msgstr "You currently have an inactive <0>{currentProductName} subscription" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "You currently have no access to any teams within this organisation. Please contact your organisation to request access." +msgstr "You currently have no access to any teams within this organisation. Please contact your organisation to request access." + +#: apps/remix/app/components/forms/token.tsx +msgid "You do not have permission to create a token for this team" +msgstr "You do not have permission to create a token for this team" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "You don't need to sign it anymore." +msgstr "You don't need to sign it anymore." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "You have accepted an invitation from <0>{0} to join their organisation." +msgstr "You have accepted an invitation from <0>{0} to join their organisation." + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "You have already verified your email address for <0>{0}." +msgstr "You have already verified your email address for <0>{0}." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "You have been invited by <0>{0} to join their organisation." +msgstr "You have been invited by <0>{0} to join their organisation." + +#. placeholder {0}: organisation.name +#: packages/lib/server-only/organisation/create-organisation-member-invites.ts +msgid "You have been invited to join {0} on Documenso" +msgstr "You have been invited to join {0} on Documenso" + +#: packages/email/templates/organisation-invite.tsx +msgid "You have been invited to join the following organisation" +msgstr "You have been invited to join the following organisation" + +#: packages/lib/server-only/recipient/set-document-recipients.ts +#: packages/lib/server-only/recipient/delete-document-recipient.ts +msgid "You have been removed from a document" +msgstr "You have been removed from a document" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "You have been requested to sign the following documents. Review each document carefully and complete the signing process." +msgstr "You have been requested to sign the following documents. Review each document carefully and complete the signing process." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "You have declined the invitation from <0>{0} to join their organisation." +msgstr "You have declined the invitation from <0>{0} to join their organisation." + +#. placeholder {0}: `"${document.title}"` +#: packages/lib/server-only/document/resend-document.ts +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "You have initiated the document {0} that requires you to {recipientActionVerb} it." +msgstr "You have initiated the document {0} that requires you to {recipientActionVerb} it." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "You have no webhooks yet. Your webhooks will be shown here once you create them." +msgstr "You have no webhooks yet. Your webhooks will be shown here once you create them." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +msgid "You have not yet created any templates. To create a template please upload one." +msgstr "You have not yet created any templates. To create a template please upload one." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "You have not yet created or received any documents. To create a document please upload one." +msgstr "You have not yet created or received any documents. To create a document please upload one." + +#. placeholder {0}: quota.directTemplates +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" +msgstr "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "You have reached the maximum number of teams for your plan. Please contact sales at <0>{SUPPORT_EMAIL} if you would like to adjust your plan." +msgstr "You have reached the maximum number of teams for your plan. Please contact sales at <0>{SUPPORT_EMAIL} if you would like to adjust your plan." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "You have reached your document limit for this month. Please upgrade your plan." +msgstr "You have reached your document limit for this month. Please upgrade your plan." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "You have reached your document limit." +msgstr "You have reached your document limit." + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "You have reached your document limit. <0>Upgrade your account to continue!" +msgstr "You have reached your document limit. <0>Upgrade your account to continue!" + +#: packages/email/templates/document-rejection-confirmed.tsx +msgid "You have rejected the document '{documentName}'" +msgstr "You have rejected the document '{documentName}'" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "You have rejected this document" +msgstr "You have rejected this document" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "You have signed “{documentName}”" +msgstr "You have signed “{documentName}”" + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "You have successfully left this organisation." +msgstr "You have successfully left this organisation." + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "You have successfully registered. Please verify your account by clicking on the link you received in the email." +msgstr "You have successfully registered. Please verify your account by clicking on the link you received in the email." + +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +msgid "You have successfully removed this email domain from the organisation." +msgstr "You have successfully removed this email domain from the organisation." + +#: apps/remix/app/components/dialogs/organisation-email-delete-dialog.tsx +msgid "You have successfully removed this email from the organisation." +msgstr "You have successfully removed this email from the organisation." + +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "You have successfully removed this group from the organisation." +msgstr "You have successfully removed this group from the organisation." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "You have successfully removed this group from the team." +msgstr "You have successfully removed this group from the team." + +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "You have successfully removed this user from the organisation." +msgstr "You have successfully removed this user from the organisation." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You have successfully removed this user from the team." +msgstr "You have successfully removed this user from the team." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "You have successfully revoked access." +msgstr "You have successfully revoked access." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +msgstr "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You have updated {memberName}." +msgstr "You have updated {memberName}." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You have updated {organisationMemberName}." +msgstr "You have updated {organisationMemberName}." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You have updated the team group." +msgstr "You have updated the team group." + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "You have verified your email address for <0>{0}." +msgstr "You have verified your email address for <0>{0}." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "You must enter '{deleteMessage}' to proceed" +msgstr "You must enter '{deleteMessage}' to proceed" + +#: apps/remix/app/components/dialogs/organisation-email-domain-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "You must type '{deleteMessage}' to confirm" +msgstr "You must type '{deleteMessage}' to confirm" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "You need to be an admin to manage API tokens." +msgstr "You need to be an admin to manage API tokens." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +msgid "You need to be logged in as <0>{email} to view this page." +msgstr "You need to be logged in as <0>{email} to view this page." + +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "You need to be logged in to view this page." +msgstr "You need to be logged in to view this page." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "You need to setup 2FA to mark this document as viewed." +msgstr "You need to setup 2FA to mark this document as viewed." + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "You will need to configure any claims or subscription after creating this organisation" +msgstr "You will need to configure any claims or subscription after creating this organisation" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "You will now be required to enter a code from your authenticator app when signing in." +msgstr "You will now be required to enter a code from your authenticator app when signing in." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "You will receive an Email copy of the signed document once everyone has signed." +msgstr "You will receive an Email copy of the signed document once everyone has signed." + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Your account has been deleted successfully." +msgstr "Your account has been deleted successfully." + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Your avatar has been updated successfully." +msgstr "Your avatar has been updated successfully." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Your banner has been updated successfully." +msgstr "Your banner has been updated successfully." + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Your brand website URL" +msgstr "Your brand website URL" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.branding.tsx +msgid "Your branding preferences have been updated" +msgstr "Your branding preferences have been updated" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Your bulk send has been initiated. You will receive an email notification upon completion." +msgstr "Your bulk send has been initiated. You will receive an email notification upon completion." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Your bulk send operation for template \"{templateName}\" has completed." +msgstr "Your bulk send operation for template \"{templateName}\" has completed." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current {currentProductName} plan is past due. Please update your payment information." +msgstr "Your current {currentProductName} plan is past due. Please update your payment information." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current plan is inactive." +msgstr "Your current plan is inactive." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current plan is past due." +msgstr "Your current plan is past due." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Your direct signing templates" +msgstr "Your direct signing templates" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Your document failed to upload." +msgstr "Your document failed to upload." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Your document has been created from the template successfully." +msgstr "Your document has been created from the template successfully." + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Your document has been created successfully" +msgstr "Your document has been created successfully" + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "Your document has been deleted by an admin!" +msgstr "Your document has been deleted by an admin!" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Your document has been re-sent successfully." +msgstr "Your document has been re-sent successfully." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Your document has been sent successfully." +msgstr "Your document has been sent successfully." + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Your document has been successfully duplicated." +msgstr "Your document has been successfully duplicated." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Your document has been uploaded successfully." +msgstr "Your document has been uploaded successfully." + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Your document has been uploaded successfully. You will be redirected to the template page." +msgstr "Your document has been uploaded successfully. You will be redirected to the template page." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx +msgid "Your document preferences have been updated" +msgstr "Your document preferences have been updated" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Your documents" +msgstr "Your documents" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your email has already been confirmed. You can now use all features of Documenso." +msgstr "Your email has already been confirmed. You can now use all features of Documenso." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your email has been successfully confirmed! You can now use all features of Documenso." +msgstr "Your email has been successfully confirmed! You can now use all features of Documenso." + +#. placeholder {0}: teamEmail.team.name +#. placeholder {1}: teamEmail.team.url +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Your email is currently being used by team <0>{0} ({1})." +msgstr "Your email is currently being used by team <0>{0} ({1})." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx +msgid "Your email preferences have been updated" +msgstr "Your email preferences have been updated" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Your existing tokens" +msgstr "Your existing tokens" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Your new password cannot be the same as your old password." +msgstr "Your new password cannot be the same as your old password." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Your organisation has been created." +msgstr "Your organisation has been created." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Your organisation has been successfully deleted." +msgstr "Your organisation has been successfully deleted." + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Your organisation has been successfully updated." +msgstr "Your organisation has been successfully updated." + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Your password has been updated successfully." +msgstr "Your password has been updated successfully." + +#: packages/email/template-components/template-reset-password.tsx +msgid "Your password has been updated." +msgstr "Your password has been updated." + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Your payment is overdue. Please settle the payment to avoid any service disruptions." +msgstr "Your payment is overdue. Please settle the payment to avoid any service disruptions." + +#: apps/remix/app/components/tables/user-organisations-table.tsx +msgid "Your personal organisation" +msgstr "Your personal organisation" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Your plan does not support inviting members. Please upgrade or your plan or contact sales at <0>{SUPPORT_EMAIL} if you would like to discuss your options." +msgstr "Your plan does not support inviting members. Please upgrade or your plan or contact sales at <0>{SUPPORT_EMAIL} if you would like to discuss your options." + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Your plan is no longer valid. Please subscribe to a new plan to continue using Documenso." +msgstr "Your plan is no longer valid. Please subscribe to a new plan to continue using Documenso." + +#: apps/remix/app/components/forms/profile.tsx +msgid "Your profile has been updated successfully." +msgstr "Your profile has been updated successfully." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Your profile has been updated." +msgstr "Your profile has been updated." + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Your public profile has been updated." +msgstr "Your public profile has been updated." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Your recovery code has been copied to your clipboard." +msgstr "Your recovery code has been copied to your clipboard." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Your recovery codes are listed below. Please store them in a safe place." +msgstr "Your recovery codes are listed below. Please store them in a safe place." + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Your team has been created." +msgstr "Your team has been created." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Your team has been successfully deleted." +msgstr "Your team has been successfully deleted." + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "Your team has been successfully updated." +msgstr "Your team has been successfully updated." + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Your template has been created successfully" +msgstr "Your template has been created successfully" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Your template has been duplicated successfully." +msgstr "Your template has been duplicated successfully." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Your template has been successfully deleted." +msgstr "Your template has been successfully deleted." + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Your template will be duplicated." +msgstr "Your template will be duplicated." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Your templates has been saved successfully." +msgstr "Your templates has been saved successfully." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your token has expired!" +msgstr "Your token has expired!" + +#: apps/remix/app/components/forms/token.tsx +msgid "Your token was created successfully! Make sure to copy it because you won't be able to see it again!" +msgstr "Your token was created successfully! Make sure to copy it because you won't be able to see it again!" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Your tokens will be shown here once you create them." +msgstr "Your tokens will be shown here once you create them." diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po new file mode 100644 index 000000000..b2940060b --- /dev/null +++ b/packages/lib/translations/fr/web.po @@ -0,0 +1,8731 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2024-07-24 13:01+1000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: fr\n" +"Project-Id-Version: documenso-app\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-06-19 06:05\n" +"Last-Translator: \n" +"Language-Team: French\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Crowdin-Project: documenso-app\n" +"X-Crowdin-Project-ID: 694691\n" +"X-Crowdin-Language: fr\n" +"X-Crowdin-File: web.po\n" +"X-Crowdin-File-ID: 8\n" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid " Enable direct link signing" +msgstr " Activer la signature par lien direct" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid ".PDF documents accepted (max {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB)" +msgstr ".Des documents PDF acceptés (max {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}Mo)" + +#. placeholder {0}: field.customText +#. placeholder {1}: timezone || '' +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +msgid "\"{0}\" will appear on the document as it has a timezone of \"{1}\"." +msgstr "\"{0}\" apparaîtra sur le document car il a un fuseau horaire de \"{1}\"." + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "\"{documentName}\" has been deleted by an admin." +msgstr "\"{documentName}\" a été supprimé par un administrateur." + +#: packages/email/template-components/template-document-pending.tsx +msgid "“{documentName}” has been signed" +msgstr "« {documentName} » a été signé" + +#: packages/email/template-components/template-document-completed.tsx +msgid "“{documentName}” was signed by all signers" +msgstr "« {documentName} » a été signé par tous les signataires" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "\"{documentTitle}\" has been successfully deleted" +msgstr "\"{documentTitle}\" a été supprimé avec succès" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "\"{placeholderEmail}\" on behalf of \"Team Name\" has invited you to sign \"example document\"." +msgstr "\"{placeholderEmail}\" représentant \"Team Name\" vous a invité à signer \"example document\"." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "\"Team Name\" has invited you to sign \"example document\"." +msgstr "\"Team Name\" vous a invité à signer \"example document\"." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "(You)" +msgstr "(Vous)" + +#. placeholder {0}: Math.abs(charactersRemaining) +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "{0, plural, one {(1 character over)} other {(# characters over)}}" +msgstr "{0, plural, one {(1 caractère de trop)} other {(# caractères de trop)}}" + +#. placeholder {0}: Math.abs(remaningLength) +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{0, plural, one {# character over the limit} other {# characters over the limit}}" +msgstr "{0, plural, one {# caractère au-dessus de la limite} other {# caractères au-dessus de la limite}}" + +#. placeholder {0}: folder._count.documents +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# document} other {# documents}}" +msgstr "{0, plural, one {# document} other {# documents}}" + +#. placeholder {0}: folder._count.subfolders +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# folder} other {# folders}}" +msgstr "{0, plural, one {# dossier} other {# dossiers}}" + +#. placeholder {0}: template.recipients.length +#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx +msgid "{0, plural, one {# recipient} other {# recipients}}" +msgstr "{0, plural, one {# destinataire} other {# destinataires}}" + +#. placeholder {0}: org.teams.length +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "{0, plural, one {# team} other {# teams}}" +msgstr "{0, plural, one {# équipe} other {# équipes}}" + +#. placeholder {0}: folder._count.templates +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# template} other {# templates}}" +msgstr "{0, plural, one {# modèle} other {# modèles}}" + +#. placeholder {0}: data.length +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "{0, plural, one {<0>You have <1>1 pending invitation} other {<2>You have <3># pending invitations}}" +msgstr "{0, plural, one {<0>Vous avez <1>1 invitation en attente} other {<2>Vous avez <3># invitations en attente}}" + +#. placeholder {0}: autoSignableFields.filter((f) => f.type === fieldType).length +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "{0, plural, one {1 matching field} other {# matching fields}}" +msgstr "{0, plural, one {1 champ correspondant} other {# champs correspondants}}" + +#. placeholder {0}: recipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.edit.tsx +msgid "{0, plural, one {1 Recipient} other {# Recipients}}" +msgstr "{0, plural, one {1 Destinataire} other {# Destinataires}}" + +#. placeholder {0}: pendingRecipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "{0, plural, one {Waiting on 1 recipient} other {Waiting on # recipients}}" +msgstr "{0, plural, one {En attente d'1 destinataire} other {En attente de # destinataires}}" + +#. placeholder {0}: route.label +#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType]) +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "{0}" +msgstr "{0}" + +#. placeholder {0}: team.name +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{0} direct signing templates" +msgstr "{0} modèles de signature directe" + +#. placeholder {0}: team.name +#. placeholder {1}: document.title +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"." +msgstr "{0} vous a invité à {recipientActionVerb} le document \"{1}\"." + +#. placeholder {0}: team.name +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{0} invited you to {recipientActionVerb} a document" +msgstr "{0} vous a invité à {recipientActionVerb} un document" + +#. placeholder {0}: remaining.documents +#. placeholder {1}: quota.documents +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "{0} of {1} documents remaining this month." +msgstr "{0} des {1} documents restants ce mois-ci." + +#. placeholder {0}: table.getFilteredSelectedRowModel().rows.length +#. placeholder {1}: table.getFilteredRowModel().rows.length +#: packages/ui/primitives/data-table-pagination.tsx +msgid "{0} of {1} row(s) selected." +msgstr "{0} sur {1} ligne(s) sélectionnée(s)." + +#. placeholder {0}: user.name || user.email +#. placeholder {1}: document.team.name +#. placeholder {2}: document.title +#: packages/lib/server-only/document/resend-document.tsx +msgid "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"." +msgstr "{0} représentant \"{1}\" vous a invité à {recipientActionVerb} le document \"{2}\"." + +#. placeholder {0}: recipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "{0} Recipient(s)" +msgstr "{0} Destinataire(s)" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "{0} Teams" +msgstr "{0} Équipes" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "{charactersRemaining, plural, one {1 character remaining} other {{charactersRemaining} characters remaining}}" +msgstr "{charactersRemaining, plural, one {1 caractère restant} other {{charactersRemaining} caractères restants}}" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} <0>({inviterEmail})" +msgstr "{inviterName} <0>({inviterEmail})" + +#: packages/email/templates/document-cancel.tsx +msgid "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." +msgstr "{inviterName} a annulé le document {documentName}, vous n'avez plus besoin de le signer." + +#: packages/email/template-components/template-document-cancel.tsx +msgid "{inviterName} has cancelled the document<0/>\"{documentName}\"" +msgstr "{inviterName} a annulé le document<0/>\"{documentName}\"" + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{inviterName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "{inviterName} vous a invité à {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} has invited you to {action} {documentName}" +msgstr "{inviterName} vous a invité à {action} {documentName}" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} has invited you to {action} the document \"{documentName}\"." +msgstr "{inviterName} vous a invité à {action} le document \"{documentName}\"." + +#: packages/email/templates/recipient-removed-from-document.tsx +msgid "{inviterName} has removed you from the document {documentName}." +msgstr "{inviterName} vous a retiré du document {documentName}." + +#: packages/email/templates/recipient-removed-from-document.tsx +msgid "{inviterName} has removed you from the document<0/>\"{documentName}\"" +msgstr "{inviterName} vous a retiré du document<0/>\"{documentName}\"" + +#. placeholder {0}: team.name +#. placeholder {1}: document.title +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{inviterName} on behalf of \"{0}\" has invited you to {recipientActionVerb} the document \"{1}\"." +msgstr "{inviterName} représentant \"{0}\" vous a invité à {recipientActionVerb} le document \"{1}\"." + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {0}<0/>\"{documentName}\"" +msgstr "{inviterName} représentant \"{teamName}\" vous a invité à {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}" +msgstr "{inviterName} représentant \"{teamName}\" vous a invité à {action} {documentName}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} added a field" +msgstr "{prefix} a ajouté un champ" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} added a recipient" +msgstr "{prefix} a ajouté un destinataire" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} created the document" +msgstr "{prefix} a créé le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} deleted the document" +msgstr "{prefix} a supprimé le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} moved the document to team" +msgstr "{prefix} a déplacé le document vers l'équipe" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} opened the document" +msgstr "{prefix} a ouvert le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} prefilled a field" +msgstr "{prefix} a pré-rempli un champ" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} removed a field" +msgstr "{prefix} a supprimé un champ" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} removed a recipient" +msgstr "{prefix} a supprimé un destinataire" + +#. placeholder {0}: data.recipientEmail +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} resent an email to {0}" +msgstr "{prefix} a renvoyé un e-mail à {0}" + +#. placeholder {0}: data.recipientEmail +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} sent an email to {0}" +msgstr "{prefix} a envoyé un email à {0}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} sent the document" +msgstr "{prefix} a envoyé le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} signed a field" +msgstr "{prefix} a signé un champ" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} unsigned a field" +msgstr "{prefix} n'a pas signé un champ" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated a field" +msgstr "{prefix} a mis à jour un champ" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated a recipient" +msgstr "{prefix} a mis à jour un destinataire" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document" +msgstr "{prefix} a mis à jour le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document access auth requirements" +msgstr "{prefix} a mis à jour les exigences d'authentification d'accès au document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document external ID" +msgstr "{prefix} a mis à jour l'ID externe du document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document signing auth requirements" +msgstr "{prefix} a mis à jour les exigences d'authentification pour la signature des documents" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document title" +msgstr "{prefix} a mis à jour le titre du document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document visibility" +msgstr "{prefix} a mis à jour la visibilité du document" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "{recipientActionVerb} document" +msgstr "{recipientActionVerb} document" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "{recipientActionVerb} the document to complete the process." +msgstr "{recipientActionVerb} the document to complete the process." + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "{recipientCount} recipients" +msgstr "{recipientCount} destinataires" + +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "{recipientName} {action} a document by using one of your direct links" +msgstr "{recipientName} {action} un document en utilisant l'un de vos liens directs" + +#: packages/email/templates/document-rejected.tsx +msgid "{recipientName} has rejected the document '{documentName}'" +msgstr "{recipientName} a rejeté le document \"{documentName}\"" + +#: packages/email/template-components/template-document-recipient-signed.tsx +msgid "{recipientReference} has completed signing the document." +msgstr "{recipientReference} a terminé de signer le document." + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-recipient-signed-email.handler.ts +msgid "{recipientReference} has signed \"{0}\"" +msgstr "{recipientReference} a signé \"{0}\"" + +#: packages/email/template-components/template-document-recipient-signed.tsx +msgid "{recipientReference} has signed \"{documentName}\"" +msgstr "{recipientReference} a signé \"{documentName}\"" + +#: packages/email/templates/document-recipient-signed.tsx +msgid "{recipientReference} has signed {documentName}" +msgstr "{recipientReference} a signé {documentName}" + +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{remaningLength, plural, one {# character remaining} other {# characters remaining}}" +msgstr "{remaningLength, plural, one {# caractère restant} other {# caractères restants}}" + +#: packages/email/template-components/template-document-rejected.tsx +msgid "{signerName} has rejected the document \"{documentName}\"." +msgstr "{signerName} a rejeté le document \"{documentName}\"." + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{teamName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "{teamName} vous a invité à {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{teamName} has invited you to {action} {documentName}" +msgstr "{teamName} vous a invité à {action} {documentName}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} approved the document" +msgstr "{userName} a approuvé le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} CC'd the document" +msgstr "{userName} a mis en copie le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} completed their task" +msgstr "{userName} a terminé sa tâche" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} rejected the document" +msgstr "{userName} a rejeté le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} signed the document" +msgstr "{userName} a signé le document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} viewed the document" +msgstr "{userName} a consulté le document" + +#: packages/ui/primitives/data-table-pagination.tsx +msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" +msgstr "{visibleRows, plural, one {Affichage de # résultat.} other {Affichage de # résultats.}}" + +#. placeholder {0}: document.title +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "<0>\"{0}\"is no longer available to sign" +msgstr "<0>\"{0}\" n'est plus disponible pour signer" + +#: packages/email/templates/confirm-team-email.tsx +msgid "<0>{teamName} has requested to use your email address for their team on Documenso." +msgstr "<0>{teamName} a demandé à utiliser votre adresse e-mail pour leur équipe sur Documenso." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "<0>Click to upload or drag and drop" +msgstr "<0>Cliquez pour importer ou faites glisser et déposez" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Drawn - A signature that is drawn using a mouse or stylus." +msgstr "<0>Dessinée - Une signature dessinée en utilisant une souris ou un stylet." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>Email - The recipient will be emailed the document to sign, approve, etc." +msgstr "<0>Email - Le destinataire recevra le document par e-mail pour signer, approuver, etc." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" +msgstr "<0>Hériter de la méthode d'authentification - Utilisez la méthode globale d'authentification de signature d'action configurée dans l'étape \"Paramètres généraux\"" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>No restrictions - No authentication required" +msgstr "<0>Aucune restriction - Aucune authentification requise" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "<0>No restrictions - The document can be accessed directly by the URL sent to the recipient" +msgstr "<0>Aucune restriction - Le document peut être consulté directement via l'URL envoyée au destinataire" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "<0>None - No authentication required" +msgstr "<0>Aucun - Aucune authentification requise" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>None - We will generate links which you can send to the recipients manually." +msgstr "<0>Aucun - Nous générerons des liens que vous pourrez envoyer aux destinataires manuellement." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>Note - If you use Links in combination with direct templates, you will need to manually send the links to the remaining recipients." +msgstr "<0>Remarque - Si vous utilisez des liens en combinaison avec des modèles directs, vous devrez envoyer manuellement les liens aux destinataires restants." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require 2FA - The recipient must have an account and 2FA enabled via their settings" +msgstr "<0>Nécessite une authentification 2FA - Le destinataire doit avoir un compte avec 2FA activée via ses paramètres" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "<0>Require account - The recipient must be signed in to view the document" +msgstr "<0>Nécessite un compte - Le destinataire doit être connecté pour voir le document" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require passkey - The recipient must have an account and passkey configured via their settings" +msgstr "<0>Clé d'accès requise - Le destinataire doit avoir un compte et une clé d'accès configurés via ses paramètres" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require password - The recipient must have an account and password configured via their settings, the password will be verified during signing" +msgstr "<0>Exiger un mot de passe - Le destinataire doit avoir un compte et un mot de passe configurés via ses paramètres, le mot de passe sera vérifié lors de la signature" + +#: apps/remix/app/components/tables/documents-table-sender-filter.tsx +msgid "<0>Sender: All" +msgstr "<0>Expéditeur : Tous" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Typed - A signature that is typed using a keyboard." +msgstr "<0>Écrite - Une signature écrite à l'aide d'un clavier." + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Uploaded - A signature that is uploaded from a file." +msgstr "<0>Importée - Une signature importée à partir d'un fichier." + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete approving <1>\"{documentTitle}\".<2/> Are you sure?" +msgstr "<0>Vous êtes sur le point de terminer l'approbation de <1>\"{documentTitle}\".<2/> Êtes-vous sûr ?" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete signing \"<1>{documentTitle}\".<2/> Are you sure?" +msgstr "<0>Vous êtes sur le point de terminer la signature de \"<1>{documentTitle}\".<2/> Êtes-vous sûr ?" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete viewing \"<1>{documentTitle}\".<2/> Are you sure?" +msgstr "<0>Vous êtes sur le point de terminer la visualisation de \"<1>{documentTitle}\".<2/> Êtes-vous sûr ?" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "0 Free organisations left" +msgstr "0 organisations gratuites restantes" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "1 Free organisations left" +msgstr "1 organisme gratuit restant" + +#: apps/remix/app/components/forms/token.tsx +msgid "1 month" +msgstr "1 mois" + +#: apps/remix/app/components/forms/token.tsx +msgid "12 months" +msgstr "12 mois" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "2FA" +msgstr "2FA" + +#: apps/remix/app/components/forms/token.tsx +msgid "3 months" +msgstr "3 mois" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "401 Unauthorized" +msgstr "401 Non autorisé" + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "404 not found" +msgstr "404 non trouvé" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "404 Organisation group not found" +msgstr "404 Groupe d'organisation non trouvé" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "404 Organisation not found" +msgstr "404 Organisation introuvable" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "404 Profile not found" +msgstr "404 Profil non trouvé" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "404 Team not found" +msgstr "404 Équipe non trouvée" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "404 User not found" +msgstr "404 Utilisateur non trouvé" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "5 documents a month" +msgstr "5 documents par mois" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "5 Documents a month" +msgstr "5 Documents par mois" + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "500 Internal Server Error" +msgstr "500 Erreur Interne du Serveur" + +#: apps/remix/app/components/forms/token.tsx +msgid "6 months" +msgstr "6 mois" + +#: apps/remix/app/components/forms/token.tsx +msgid "7 days" +msgstr "7 jours" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." +msgstr "Un e-mail de confirmation a été envoyé et devrait arriver dans votre boîte de réception sous peu." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A device capable of accessing, opening, and reading documents" +msgstr "Un appareil capable d'accéder, d'ouvrir et de lire des documents" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "A document was created by your direct template that requires you to {recipientActionVerb} it." +msgstr "Un document a été créé par votre modèle direct qui vous oblige à {recipientActionVerb}." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "A draft document will be created" +msgstr "Un document brouillon sera créé" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was added" +msgstr "Un champ a été ajouté" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was removed" +msgstr "Un champ a été supprimé" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was updated" +msgstr "Un champ a été mis à jour" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A means to print or download documents for your records" +msgstr "Un moyen d'imprimer ou de télécharger des documents pour vos dossiers" + +#: packages/email/templates/organisation-join.tsx +msgid "A member has joined your organisation on Documenso" +msgstr "Un membre a rejoint votre organisation sur Documenso" + +#: packages/lib/jobs/definitions/emails/send-organisation-member-left-email.handler.ts +msgid "A member has left your organisation" +msgstr "Un membre a quitté votre organisation" + +#: packages/email/templates/organisation-leave.tsx +msgid "A member has left your organisation {organisationName}" +msgstr "Un membre a quitté votre organisation {organisationName}" + +#: packages/email/templates/organisation-leave.tsx +msgid "A member has left your organisation on Documenso" +msgstr "Un membre a quitté votre organisation sur Documenso" + +#: packages/lib/jobs/definitions/emails/send-organisation-member-joined-email.handler.ts +msgid "A new member has joined your organisation" +msgstr "Un nouveau membre a rejoint votre organisation" + +#: packages/email/templates/organisation-join.tsx +msgid "A new member has joined your organisation {organisationName}" +msgstr "Un nouveau membre a rejoint votre organisation {organisationName}" + +#: apps/remix/app/components/forms/token.tsx +msgid "A new token was created successfully." +msgstr "Un nouveau token a été créé avec succès." + +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "A password reset email has been sent, if you have an account you should see it in your inbox shortly." +msgstr "Un e-mail de réinitialisation de mot de passe a été envoyé, si vous avez un compte vous devriez le voir dans votre boîte de réception sous peu." + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was added" +msgstr "Un destinataire a été ajouté" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was removed" +msgstr "Un destinataire a été supprimé" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was updated" +msgstr "Un destinataire a été mis à jour" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/create-team-email-verification.ts +msgid "A request to use your email has been initiated by {0} on Documenso" +msgstr "Une demande pour l'utiliser votre e-mail a été initiée par {0} sur Documenso" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso" +msgstr "Un secret qui sera envoyé à votre URL afin que vous puissiez vérifier que la demande a été envoyée par Documenso" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." +msgstr "Un secret qui sera envoyé à votre URL afin que vous puissiez vérifier que la demande a été envoyée par Documenso." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A stable internet connection" +msgstr "Une connexion Internet stable" + +#: packages/email/templates/team-delete.tsx +#: packages/email/templates/team-delete.tsx +msgid "A team you were a part of has been deleted" +msgstr "Une équipe dont vous faisiez partie a été supprimée" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "A unique URL to access your profile" +msgstr "Une URL unique pour accéder à votre profil" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "A unique URL to identify the organisation" +msgstr "Une URL unique pour identifier l'organisation" + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "A unique URL to identify your organisation" +msgstr "Une URL unique pour identifier votre organisation" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "A unique URL to identify your team" +msgstr "Une URL unique pour identifier votre équipe" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "A verification email will be sent to the provided email." +msgstr "Un e-mail de vérification sera envoyé à l'adresse e-mail fournie." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: packages/email/templates/organisation-invite.tsx +#: packages/email/templates/confirm-team-email.tsx +msgid "Accept" +msgstr "Accepter" + +#: packages/email/templates/organisation-invite.tsx +msgid "Accept invitation to join an organisation on Documenso" +msgstr "Accepter l'invitation à rejoindre une organisation sur Documenso" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Accept team email request for {teamName} on Documenso" +msgstr "Accepter la demande d'e-mail de l'équipe pour {teamName} sur Documenso" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Acceptance and Consent" +msgstr "Acceptation et consentement" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "Access disabled" +msgstr "Accès désactivé" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Access enabled" +msgstr "Accès activé" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Account" +msgstr "Compte" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Account Authentication" +msgstr "Authentification de compte" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Account deleted" +msgstr "Compte supprimé" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Account disabled" +msgstr "Compte désactivé" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Account enabled" +msgstr "Compte activé" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Account Re-Authentication" +msgstr "Ré-authentification de compte" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Acknowledgment" +msgstr "Reconnaissance" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Action" +msgstr "Action" + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Actions" +msgstr "Actions" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Active" +msgstr "Actif" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Active sessions" +msgstr "Sessions actives" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Active Subscriptions" +msgstr "Abonnements actifs" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add" +msgstr "Ajouter" + +#: packages/ui/primitives/document-dropzone.tsx +msgid "Add a document" +msgstr "Ajouter un document" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Add a URL to redirect the user to once the document is signed" +msgstr "Ajouter une URL pour rediriger l'utilisateur une fois le document signé" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add all relevant fields for each recipient." +msgstr "Ajouter tous les champs pertinents pour chaque destinataire." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Add all relevant placeholders for each recipient." +msgstr "Ajouter tous les espaces réservés pertinents pour chaque destinataire." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Add an authenticator to serve as a secondary authentication method for signing documents." +msgstr "Ajouter un authentificateur pour servir de méthode d'authentification secondaire pour signer des documents." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Add an authenticator to serve as a secondary authentication method when signing in, or when signing documents." +msgstr "Ajouter un authentificateur pour servir de méthode d'authentification secondaire lors de la connexion ou lors de la signature de documents." + +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Add an external ID to the document. This can be used to identify the document in external systems." +msgstr "Ajouter un ID externe au document. Cela peut être utilisé pour identifier le document dans les systèmes externes." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Add an external ID to the template. This can be used to identify in external systems." +msgstr "Ajouter un ID externe au modèle. Cela peut être utilisé pour l'identifier dans les systèmes externes." + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Add another option" +msgstr "Ajouter une autre option" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Add another value" +msgstr "Ajouter une autre valeur" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add email" +msgstr "Ajouter un e-mail" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add Fields" +msgstr "Ajouter des champs" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Add group roles" +msgstr "Ajouter des rôles de groupe" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Add groups" +msgstr "Ajouter des groupes" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add members" +msgstr "Ajouter des membres" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add Members" +msgstr "Ajouter des Membres" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add members roles" +msgstr "Ajouter des rôles de membres" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Add more" +msgstr "Ajouter davantage" + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Add myself" +msgstr "M'ajouter" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Add Myself" +msgstr "M'ajouter" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Add passkey" +msgstr "Ajouter une clé de passe" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Add Placeholder Recipient" +msgstr "Ajouter un destinataire fictif" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Add Placeholders" +msgstr "Ajouter des espaces réservés" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Add Signer" +msgstr "Ajouter un signataire" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add Signers" +msgstr "Ajouter des signataires" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +msgid "Add signers and configure signing preferences" +msgstr "Ajouter des signataires et configurer les préférences de signature" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add team email" +msgstr "Ajouter un e-mail d'équipe" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Add text" +msgstr "Ajouter du texte" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Add text to the field" +msgstr "Ajouter du texte au champ" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add the people who will sign the document." +msgstr "Ajouter les personnes qui signeront le document." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Add the recipients to create the document with" +msgstr "Ajouter les destinataires pour créer le document avec" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Additional brand information to display at the bottom of emails" +msgstr "Informations supplémentaires sur la marque à afficher en bas des e-mails" + +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Admin" +msgstr "Administrateur" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Admin Actions" +msgstr "Actions administratives" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Admin panel" +msgstr "Panneau d'administration" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Admin Panel" +msgstr "Panneau d'administration" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Advanced Options" +msgstr "Options avancées" + +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Advanced settings" +msgstr "Paramètres avancés" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Advanced Settings" +msgstr "Paramètres avancés" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." +msgstr "Après avoir signé un document électroniquement, vous aurez l'occasion de visualiser, télécharger et imprimer le document pour vos dossiers. Il est fortement recommandé de conserver une copie de tous les documents signés électroniquement pour vos dossiers personnels. Nous conserverons également une copie du document signé pour nos dossiers, mais nous pourrions ne pas être en mesure de vous fournir une copie du document signé après une certaine période." + +#: packages/lib/constants/template.ts +msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." +msgstr "Après soumission, un document sera automatiquement généré et ajouté à votre page de documents. Vous recevrez également une notification par e-mail." + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "All" +msgstr "Tout" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "All documents" +msgstr "Tous les documents" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "All documents have been completed!" +msgstr "Tous les documents ont été complétés!" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "All documents have been processed. Any new documents that are sent or received will show here." +msgstr "Tous les documents ont été traités. Tous nouveaux documents envoyés ou reçus s'afficheront ici." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." +msgstr "Tous les documents relatifs au processus de signature électronique vous seront fournis électroniquement via notre plateforme ou par e-mail. Il est de votre responsabilité de vous assurer que votre adresse e-mail est à jour et que vous pouvez recevoir et ouvrir nos e-mails." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +msgid "All Folders" +msgstr "Tous les dossiers" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "All inserted signatures will be voided" +msgstr "Toutes les signatures insérées seront annulées" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "All recipients will be notified" +msgstr "Tous les destinataires seront notifiés" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "All signatures have been voided." +msgstr "Toutes les signatures ont été annulées." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "All signing links have been copied to your clipboard." +msgstr "Tous les liens de signature ont été copiés dans votre presse-papiers." + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "All templates" +msgstr "Tous les modèles" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "All Time" +msgstr "Depuis toujours" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Allow all organisation members to access this team" +msgstr "Permettre à tous les membres de l'organisation d'accéder à cette équipe" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Allow document recipients to reply directly to this email address" +msgstr "Autoriser les destinataires du document à répondre directement à cette adresse e-mail" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Allow signers to dictate next signer" +msgstr "Permettre aux signataires de désigner le prochain signataire" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Allowed Signature Types" +msgstr "Types de signatures autorisées" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "Allowed teams" +msgstr "Équipes autorisées" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Allows authenticating using biometrics, password managers, hardware keys, etc." +msgstr "Permet d'authentifier en utilisant des biométries, des gestionnaires de mots de passe, des clés matérielles, etc." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Already have an account? <0>Sign in instead" +msgstr "Vous avez déjà un compte ? <0>Connectez-vous plutôt" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +msgid "Amount" +msgstr "Montant" + +#: packages/email/templates/document-super-delete.tsx +msgid "An admin has deleted your document \"{documentName}\"." +msgstr "Un administrateur a supprimé votre document \"{documentName}\"." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." +msgstr "Une signature électronique fournie par vous sur notre plateforme, obtenue en cliquant sur un document et en saisissant votre nom, ou toute autre méthode de signature électronique que nous fournis, est juridiquement contraignante. Elle a le même poids et la même force exécutoire qu'une signature manuelle écrite à l'encre sur papier." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "An email account" +msgstr "Un compte e-mail" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "An email containing an invitation will be sent to each member." +msgstr "Un e-mail contenant une invitation sera envoyé à chaque membre." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/token.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "An error occurred" +msgstr "Une erreur est survenue" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "An error occurred while adding fields." +msgstr "Une erreur est survenue lors de l'ajout des champs." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while adding signers." +msgstr "Une erreur est survenue lors de l'ajout de signataires." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while adding the fields." +msgstr "Une erreur est survenue lors de l'ajout des champs." + +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "An error occurred while auto-signing the document, some fields may not be signed. Please review and manually sign any remaining fields." +msgstr "Une erreur est survenue lors de la signature automatique du document, certains champs peuvent ne pas être signés. Veuillez vérifier et signer manuellement tous les champs restants." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "An error occurred while creating document from template." +msgstr "Une erreur est survenue lors de la création du document à partir d'un modèle." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "An error occurred while creating the webhook. Please try again." +msgstr "Une erreur est survenue lors de la création du webhook. Veuillez réessayer." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "An error occurred while deleting the user." +msgstr "Une erreur s'est produite lors de la suppression de l'utilisateur." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "An error occurred while disabling direct link signing." +msgstr "Une erreur est survenue lors de la désactivation de la signature par lien direct." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "An error occurred while disabling the user." +msgstr "Une erreur est survenue lors de la désactivation de l'utilisateur." + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +msgid "An error occurred while downloading your document." +msgstr "Une erreur est survenue lors du téléchargement de votre document." + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "An error occurred while duplicating template." +msgstr "Une erreur est survenue lors de la duplication du modèle." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "An error occurred while enabling direct link signing." +msgstr "Une erreur est survenue lors de l'activation de la signature par lien direct." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "An error occurred while enabling the user." +msgstr "Une erreur est survenue lors de l'activation de l'utilisateur." + +#: packages/ui/primitives/pdf-viewer.tsx +msgid "An error occurred while loading the document." +msgstr "Une erreur est survenue lors du chargement du document." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "An error occurred while moving the document." +msgstr "Une erreur est survenue lors du déplacement du document." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "An error occurred while moving the template." +msgstr "Une erreur est survenue lors du déplacement du modèle." + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while removing the field." +msgstr "Une erreur est survenue lors de la suppression du champ." + +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +msgid "An error occurred while removing the selection." +msgstr "Une erreur s'est produite lors de la suppression de la sélection." + +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "An error occurred while removing the signature." +msgstr "Une erreur est survenue lors de la suppression de la signature." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while sending the document." +msgstr "Une erreur est survenue lors de l'envoi du document." + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "An error occurred while sending your confirmation email" +msgstr "Une erreur est survenue lors de l'envoi de votre e-mail de confirmation" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while signing as assistant." +msgstr "Une erreur s'est produite lors de la signature en tant qu'assistant." + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "An error occurred while signing the document." +msgstr "Une erreur est survenue lors de la signature du document." + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "An error occurred while trying to create a checkout session." +msgstr "Une erreur est survenue lors de la création d'une session de paiement." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while updating the document settings." +msgstr "Une erreur est survenue lors de la mise à jour des paramètres du document." + +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while updating the signature." +msgstr "Une erreur est survenue lors de la mise à jour de la signature." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "An error occurred while updating your profile." +msgstr "Une erreur est survenue lors de la mise à jour de votre profil." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "An error occurred while uploading your document." +msgstr "Une erreur est survenue lors de l'importation de votre document." + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "An unexpected error occurred." +msgstr "Une erreur inattendue est survenue." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "An unknown error occurred" +msgstr "Une erreur inconnue est survenue" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "An unknown error occurred while creating the folder." +msgstr "Une erreur inconnue s'est produite lors de la création du dossier." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "An unknown error occurred while deleting the folder." +msgstr "Une erreur inconnue s'est produite lors de la suppression du dossier." + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "An unknown error occurred while moving the folder." +msgstr "Une erreur inconnue s'est produite lors du déplacement du dossier." + +#: apps/remix/app/routes/_authenticated+/inbox.tsx +msgid "Any documents that you have been invited to will appear here" +msgstr "Tous les documents auxquels vous avez été invité apparaîtront ici" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Any Source" +msgstr "Toute source" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Any Status" +msgstr "Tout statut" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +msgid "API Tokens" +msgstr "Tokens API" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "App Version" +msgstr "Version de l'application" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Approve" +msgstr "Approuver" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Approve Document" +msgstr "Approuver le document" + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Approved" +msgstr "Approuvé" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approver" +msgstr "Approuveur" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approvers" +msgstr "Approuveurs" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approving" +msgstr "Approval en cours" + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Are you sure you want to complete the document? This action cannot be undone. Please ensure that you have completed prefilling all relevant fields before proceeding." +msgstr "Êtes-vous sûr de vouloir finaliser le document ? Cette action ne peut être annulée. Veuillez vous assurer d'avoir pré-rempli tous les champs pertinents avant de continuer." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Are you sure you want to delete the following claim?" +msgstr "Êtes-vous sûr de vouloir supprimer la réclamation suivante?" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Are you sure you want to delete this folder?" +msgstr "Êtes-vous sûr de vouloir supprimer ce dossier ?" + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Are you sure you want to delete this token?" +msgstr "Êtes-vous sûr de vouloir supprimer ce token ?" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +msgid "Are you sure you want to reject this document? This action cannot be undone." +msgstr "Êtes-vous sûr de vouloir rejeter ce document ? Cette action ne peut pas être annulée." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Are you sure you want to remove the <0>{passkeyName} passkey." +msgstr "Êtes-vous sûr de vouloir supprimer la clé de passe <0>{passkeyName}." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Are you sure you wish to delete this organisation?" +msgstr "Êtes-vous sûr de vouloir supprimer cette organisation?" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Are you sure you wish to delete this team?" +msgstr "Êtes-vous sûr de vouloir supprimer cette équipe ?" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Are you sure?" +msgstr "Êtes-vous sûr ?" + +#: apps/remix/app/components/tables/organisation-groups-table.tsx +msgid "Assigned Teams" +msgstr "Équipes assignées" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assist" +msgstr "Aider" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Assist Document" +msgstr "Assister le Document" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Assist with signing" +msgstr "Aider à la signature" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assistant" +msgstr "\"\"" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Assistant role is only available when the document is in sequential signing mode." +msgstr "Le rôle d'assistant est uniquement disponible lorsque le document est en mode de signature séquentielle." + +#: packages/lib/constants/recipient-roles.ts +msgid "Assistants" +msgstr "\"\"" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Assistants and Copy roles are currently not compatible with the multi-sign experience." +msgstr "Les rôles d'assistant et de copie ne sont actuellement pas compatibles avec l'expérience multi-sign." + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Assisted" +msgstr "Assisté" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assisting" +msgstr "En assistance" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: packages/ui/primitives/template-flow/add-template-settings.types.tsx +#: packages/ui/primitives/document-flow/add-settings.types.ts +#: packages/lib/types/document-meta.ts +msgid "At least one signature type must be enabled" +msgstr "Au moins un type de signature doit être activé" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Attempts sealing the document again, useful for after a code change has occurred to resolve an erroneous document." +msgstr "Essaye de sceller le document à nouveau, utile après qu'un changement de code ait eu lieu pour résoudre un document erroné." + +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Audit Log" +msgstr "Journal d'audit" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Authentication Level" +msgstr "Niveau d'authentification" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "Authentication required" +msgstr "Authentification requise" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Avatar" +msgstr "Avatar" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Avatar Updated" +msgstr "Avatar mis à jour" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Awaiting email confirmation" +msgstr "En attente de confirmation par e-mail" + +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Back" +msgstr "Retour" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Back home" +msgstr "Retour au tableau de bord" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Background Color" +msgstr "Couleur d'arrière-plan" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Backup Code" +msgstr "Code de sauvegarde" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Backup codes" +msgstr "Codes de sauvegarde" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Banner Updated" +msgstr "Bannière mise à jour" + +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Before you get started, please confirm your email address by clicking the button below:" +msgstr "Avant de commencer, veuillez confirmer votre adresse e-mail en cliquant sur le bouton ci-dessous :" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Billing" +msgstr "Facturation" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Black" +msgstr "Noir" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Blue" +msgstr "Bleu" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Brand Details" +msgstr "Détails de la marque" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Brand Website" +msgstr "Site web de la marque" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Branding Logo" +msgstr "Logo de la marque" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Branding Preferences" +msgstr "Préférences de branding" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Branding preferences updated" +msgstr "Préférences de branding mises à jour" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +msgid "Browser" +msgstr "Navigateur" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "Bulk Copy" +msgstr "Copie groupée" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Bulk Import" +msgstr "Importation en masse" + +#. placeholder {0}: template.title +#: packages/lib/jobs/definitions/internal/bulk-send-template.handler.ts +msgid "Bulk Send Complete: {0}" +msgstr "Envoi en masse terminé : {0}" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Bulk send operation complete for template \"{templateName}\"" +msgstr "Envoi groupé terminé pour le modèle \"{templateName}\"" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Bulk Send Template via CSV" +msgstr "Envoi de modèle groupé via CSV" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Bulk Send via CSV" +msgstr "Envoi en masse via CSV" + +#: packages/email/templates/organisation-invite.tsx +msgid "by <0>{senderName}" +msgstr "par <0>{senderName}" + +#: packages/email/templates/confirm-team-email.tsx +msgid "By accepting this request, you will be granting <0>{teamName} access to:" +msgstr "En acceptant cette demande, vous accorderez à <0>{teamName} l'accès à :" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "By deleting this document, the following will occur:" +msgstr "En supprimant ce document, les éléments suivants se produiront :" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in using email password." +msgstr "En activant l'authentification à deux facteurs, vous devrez entrer un code de votre application d'authentification à chaque fois que vous vous connectez avec votre mot de passe par email." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." +msgstr "En procédant à l'utilisation du service de signature électronique fourni par Documenso, vous affirmez avoir lu et compris cette divulgation. Vous acceptez tous les termes et conditions liés à l'utilisation des signatures électroniques et des transactions électroniques comme décrit ici." + +#: apps/remix/app/components/general/document-signing/document-signing-disclosure.tsx +msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." +msgstr "En procédant avec votre signature électronique, vous reconnaissez et consentez à ce qu'elle soit utilisée pour signer le document donné et a la même validité légale qu'une signature manuscrite. En complétant le processus de signature électronique, vous affirmez votre compréhension et votre acceptation de ces conditions." + +#: apps/remix/app/components/forms/signup.tsx +msgid "By proceeding, you agree to our <0>Terms of Service and <1>Privacy Policy." +msgstr "En poursuivant, vous acceptez nos <0>Conditions d'Utilisation et notre <1>Politique de Confidentialité." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." +msgstr "En utilisant la fonctionnalité de signature électronique, vous consentez à effectuer des transactions et à recevoir des divulgations électroniquement. Vous reconnaissez que votre signature électronique sur les documents est contraignante et que vous acceptez les termes énoncés dans les documents que vous signez." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Can prepare" +msgstr "Peut préparer" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: packages/ui/primitives/signature-pad/signature-pad-dialog.tsx +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Cancel" +msgstr "Annuler" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Cancelled by user" +msgstr "Annulé par l'utilisateur" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Cannot remove document" +msgstr "Impossible de retirer le document" + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Cannot remove signer" +msgstr "Impossible de supprimer le signataire" + +#: packages/lib/constants/recipient-roles.ts +msgid "Cc" +msgstr "Cc" + +#: packages/lib/constants/recipient-roles.ts +#: packages/lib/constants/recipient-roles.ts +msgid "CC" +msgstr "CC" + +#: packages/lib/constants/recipient-roles.ts +msgid "CC'd" +msgstr "CC'd" + +#: packages/lib/constants/recipient-roles.ts +msgid "Ccers" +msgstr "Copie Carboneurs" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Character Limit" +msgstr "Limite de caractères" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Charts" +msgstr "Graphiques" + +#: packages/ui/primitives/document-flow/types.ts +msgid "Checkbox" +msgstr "Case à cocher" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Checkbox values" +msgstr "Valeurs de la case à cocher" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Checkout" +msgstr "Passer à la caisse" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Choose an existing recipient from below to continue" +msgstr "Choisissez un destinataire existant ci-dessous pour continuer" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Choose Direct Link Recipient" +msgstr "Choisissez un destinataire pour le lien direct" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Choose how the document will reach recipients" +msgstr "Choisissez comment le document atteindra les destinataires" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Choose how to distribute your document to recipients. Email will send notifications, None will generate signing links for manual distribution." +msgstr "Choisissez comment distribuer votre document aux destinataires. L'email enverra des notifications, Aucun générera des liens de signature pour une distribution manuelle." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Choose your preferred authentication method:" +msgstr "Choisissez votre méthode d'authentification préférée:" + +#: apps/remix/app/components/forms/token.tsx +msgid "Choose..." +msgstr "Choisissez..." + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Claim account" +msgstr "Revendiquer le compte" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Claims" +msgstr "Réclamations" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Clear file" +msgstr "Effacer le fichier" + +#: packages/ui/primitives/data-table.tsx +msgid "Clear filters" +msgstr "Effacer les filtres" + +#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx +msgid "Clear Signature" +msgstr "Effacer la signature" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Click here to get started" +msgstr "Cliquez ici pour commencer" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Click here to retry" +msgstr "Cliquez ici pour réessayer" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Click here to upload" +msgstr "Cliquez ici pour importer" + +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/avatar-with-recipient.tsx +msgid "Click to copy signing link for sending to recipient" +msgstr "Cliquez pour copier le lien de signature à envoyer au destinataire" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Click to insert field" +msgstr "Cliquez pour insérer un champ" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx +msgid "Close" +msgstr "Fermer" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Communication" +msgstr "Communication" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Compare all plans and features in detail" +msgstr "Comparez tous les plans et fonctionnalités en détail" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Complete" +msgstr "Compléter" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Approval" +msgstr "Compléter l'approbation" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Assisting" +msgstr "Compléter l'Assistance" + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Complete Document" +msgstr "Compléter le Document" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Signing" +msgstr "Compléter la signature" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Complete the fields for the following signers. Once reviewed, they will inform you if any modifications are needed." +msgstr "Complétez les champs pour les signataires suivants. Une fois vérifiés, ils vous informeront si des modifications sont nécessaires." + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Viewing" +msgstr "Compléter la visualisation" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/document.ts +#: packages/email/template-components/template-document-self-signed.tsx +#: packages/email/template-components/template-document-recipient-signed.tsx +#: packages/email/template-components/template-document-completed.tsx +msgid "Completed" +msgstr "Terminé" + +#: packages/email/templates/document-self-signed.tsx +#: packages/email/templates/document-completed.tsx +msgid "Completed Document" +msgstr "Document complété" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Completed documents" +msgstr "Documents complétés" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Completed Documents" +msgstr "Documents Complétés" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Completed on {formattedDate}" +msgstr "Terminé le {formattedDate}" + +#. placeholder {0}: parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[currentField.type]) +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +msgid "Configure {0} Field" +msgstr "Configurer le champ {0}" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Configure additional options and preferences" +msgstr "Configurer les options supplémentaires et les préférences" + +#: packages/lib/constants/template.ts +msgid "Configure Direct Recipient" +msgstr "Configurer le destinataire direct" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Configure Document" +msgstr "Configurer le document" + +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +msgid "Configure Fields" +msgstr "Configurer les champs" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Configure general settings for the document." +msgstr "Configurer les paramètres généraux pour le document." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Configure general settings for the template." +msgstr "Configurer les paramètres généraux pour le modèle." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Configure template" +msgstr "Configurer le modèle" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Configure Template" +msgstr "Configurer le modèle" + +#. placeholder {0}: parseMessageDescriptor( _, FRIENDLY_FIELD_TYPE[currentField.type], ) +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Configure the {0} field" +msgstr "Configurer le champ {0}" + +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +msgid "Configure the fields you want to place on the document." +msgstr "Configurez les champs que vous souhaitez placer sur le document." + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Configure the team roles for each group" +msgstr "Configurez les rôles d'équipe pour chaque groupe" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Configure the team roles for each member" +msgstr "Configurez les rôles d'équipe pour chaque membre" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Confirm" +msgstr "Confirmer" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Confirm by typing <0>{deleteMessage}" +msgstr "Confirmer en tapant <0>{deleteMessage}" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Confirm by typing: <0>{deleteMessage}" +msgstr "Confirmer en tapant : <0>{deleteMessage}" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Confirm Deletion" +msgstr "Confirmer la suppression" + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Confirm email" +msgstr "Confirmer l'email" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Confirmation email sent" +msgstr "Email de confirmation envoyé" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Consent to Electronic Transactions" +msgstr "Consentement aux transactions électroniques" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Contact Information" +msgstr "Coordonnées" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Contact sales here" +msgstr "Contactez le service commercial ici" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Content" +msgstr "Contenu" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Continue" +msgstr "Continuer" + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by approving the document." +msgstr "Continuer en approuvant le document." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by assisting with the document." +msgstr "Continuez en aidant avec le document." + +#: packages/email/template-components/template-document-completed.tsx +msgid "Continue by downloading the document." +msgstr "Continuer en téléchargeant le document." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by signing the document." +msgstr "Continuer en signant le document." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by viewing the document." +msgstr "Continuer en consultant le document." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Continue to login" +msgstr "Continuer vers la connexion" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the default language of an uploaded document. This will be used as the language in email communications with the recipients." +msgstr "Contrôle la langue par défaut d'un document importé. Cela sera utilisé comme langue dans les communications par e-mail avec les destinataires." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the default visibility of an uploaded document." +msgstr "Contrôle la visibilité par défaut d'un document importé." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the formatting of the message that will be sent when inviting a recipient to sign a document. If a custom message has been provided while configuring the document, it will be used instead." +msgstr "Contrôle le formatage du message qui sera envoyé lors de l'invitation d'un destinataire à signer un document. Si un message personnalisé a été fourni lors de la configuration du document, il sera utilisé à la place." + +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Controls the language for the document, including the language to be used for email notifications, and the final certificate that is generated and attached to the document." +msgstr "Contrôle la langue du document, y compris la langue à utiliser pour les notifications par email et le certificat final qui est généré et attaché au document." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls whether the signing certificate will be included in the document when it is downloaded. The signing certificate can still be downloaded from the logs page separately." +msgstr "Contrôle si le certificat de signature sera inclus dans le document lorsqu'il sera téléchargé. Le certificat de signature peut toujours être téléchargé séparément à partir de la page d'historique'." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls which signatures are allowed to be used when signing a document." +msgstr "Contrôle quelles signatures sont autorisées lors de la signature d'un document." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Copied" +msgstr "Copié" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/components/document/document-share-button.tsx +msgid "Copied to clipboard" +msgstr "Copié dans le presse-papiers" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Copy" +msgstr "Copier" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Copy Link" +msgstr "Copier le lien" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Copy sharable link" +msgstr "Copier le lien partageable" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Copy Shareable Link" +msgstr "Copier le lien partageable" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "Copy Signing Links" +msgstr "Copier les liens de signature" + +#: apps/remix/app/components/forms/token.tsx +msgid "Copy token" +msgstr "Copier le token" + +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create" +msgstr "Créer" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "Create a <0>free account to access your signed documents at any time." +msgstr "Créez un <0>compte gratuit pour accéder à vos documents signés à tout moment." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Create a new account" +msgstr "Créer un nouveau compte" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Create a new organisation with {planName} plan. Keep your current organisation on it's current plan" +msgstr "Créez une nouvelle organisation avec le plan {planName}. Conservez votre organisation actuelle sur son plan en cours" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create a team to collaborate with your team members." +msgstr "Créer une équipe pour collaborer avec vos membres." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: packages/email/template-components/template-document-self-signed.tsx +msgid "Create account" +msgstr "Créer un compte" + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create an organisation for this user" +msgstr "Créer une organisation pour cet utilisateur" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Create an organisation to collaborate with teams" +msgstr "Créer une organisation pour collaborer avec des équipes" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Create an organisation to get started." +msgstr "Créer une organisation pour démarrer" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create and send" +msgstr "Créer et envoyer" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create as draft" +msgstr "Créer en tant que brouillon" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create as pending" +msgstr "Créer comme en attente" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create claim" +msgstr "Créer une réclamation" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create Claim" +msgstr "Créer une réclamation" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog-wrapper.tsx +msgid "Create Direct Link" +msgstr "Créer un lien direct" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Create Direct Signing Link" +msgstr "Créer un lien de signature directe" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create document from template" +msgstr "Créer un document à partir du modèle" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Create folder" +msgstr "Créer un dossier" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Create Folder" +msgstr "Créer un Dossier" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Create group" +msgstr "Créer un groupe" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Create Groups" +msgstr "Créer des groupes" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Create New Folder" +msgstr "Créer un Nouveau Dossier" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Create now" +msgstr "Créer maintenant" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Create one automatically" +msgstr "Créer un automatiquement" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create organisation" +msgstr "Créer une organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Create Organisation" +msgstr "Créer une Organisation" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Create separate organisation" +msgstr "Créer une organisation distincte" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create signing links" +msgstr "Créer des liens de signature" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Create Stripe customer" +msgstr "Créer un client Stripe" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Create subscription" +msgstr "Créer un abonnement" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create Subscription Claim" +msgstr "Créer une réclamation d'abonnement" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create team" +msgstr "Créer une équipe" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create Team" +msgstr "Créer une équipe" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create the document as pending and ready to sign." +msgstr "Créer le document comme en attente et prêt à signer." + +#: apps/remix/app/components/forms/token.tsx +#: apps/remix/app/components/forms/token.tsx +msgid "Create token" +msgstr "Créer un token" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Create webhook" +msgstr "Créer un webhook" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Create Webhook" +msgstr "Créer un Webhook" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Create your account and start using state-of-the-art document signing." +msgstr "Créez votre compte et commencez à utiliser la signature de documents à la pointe de la technologie." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp." +msgstr "Créez votre compte et commencez à utiliser la signature de documents à la pointe de la technologie. Une signature ouverte et magnifique est à votre portée." + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Created" +msgstr "Créé" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Created At" +msgstr "Créé le" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Created by" +msgstr "Créé par" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Created on" +msgstr "Créé le" + +#. placeholder {0}: i18n.date(webhook.createdAt, DateTime.DATETIME_FULL) +#. placeholder {0}: i18n.date(token.createdAt, DateTime.DATETIME_FULL) +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Created on {0}" +msgstr "Créé le {0}" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "CSV Structure" +msgstr "Structure CSV" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Cumulative MAU (signed in)" +msgstr "MAU cumulatif (connecté)" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Current" +msgstr "Actuel" + +#: apps/remix/app/components/forms/password.tsx +msgid "Current Password" +msgstr "Mot de passe actuel" + +#: apps/remix/app/components/forms/password.tsx +msgid "Current password is incorrect." +msgstr "Le mot de passe actuel est incorrect." + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Current recipients:" +msgstr "Destinataires actuels :" + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "Currently all organisation members can access this team" +msgstr "Actuellement, tous les membres de l'organisation peuvent accéder à cette équipe" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Currently branding can only be configured for Teams and above plans." +msgstr "Actuellement, la personnalisation de la marque ne peut être configurée que pour les plans Équipe et plus." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups._index.tsx +msgid "Custom Organisation Groups" +msgstr "Groupes d'organisation personnalisés" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Dark Mode" +msgstr "Mode sombre" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Dashboard" +msgstr "Tableau de bord" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Date" +msgstr "Date" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Date created" +msgstr "Date de création" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Date Format" +msgstr "Format de date" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: packages/email/templates/organisation-invite.tsx +msgid "Decline" +msgstr "Décliner" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Document Language" +msgstr "Langue par défaut du document" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Document Visibility" +msgstr "Visibilité par défaut du document" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Signature Settings" +msgstr "Paramètres de Signature par Défaut" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "delete" +msgstr "supprimer" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/folder/folder-card.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Delete" +msgstr "Supprimer" + +#. placeholder {0}: webhook.webhookUrl +#. placeholder {0}: token.name +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "delete {0}" +msgstr "supprimer {0}" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "delete {teamName}" +msgstr "supprimer {teamName}" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "Delete account" +msgstr "Supprimer le compte" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Delete Account" +msgstr "Supprimer le compte" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete document" +msgstr "Supprimer le document" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete Document" +msgstr "Supprimer le document" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Delete Folder" +msgstr "Supprimer le Dossier" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "Delete organisation" +msgstr "Supprimer l'organisation" + +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "Delete organisation group" +msgstr "Supprimer le groupe organisationnel" + +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "Delete organisation member" +msgstr "Supprimer le membre de l'organisation" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Delete passkey" +msgstr "Supprimer la clé d'accès" + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Delete Subscription Claim" +msgstr "Supprimer la réclamation d'abonnement" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Delete team" +msgstr "Supprimer l'équipe" + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "Delete team group" +msgstr "Supprimer le groupe d'équipe" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete the document. This action is irreversible so proceed with caution." +msgstr "Supprimez le document. Cette action est irréversible, soyez prudent." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." +msgstr "Supprimez le compte de l'utilisateur et tout son contenu. Cette action est irréversible et annulera son abonnement, soyez prudent." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Delete Webhook" +msgstr "Supprimer le Webhook" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Delete your account and all its contents, including completed documents. This action is irreversible and will cancel your subscription, so proceed with caution." +msgstr "Supprimez votre compte et tout son contenu, y compris les documents complétés. Cette action est irréversible et annulera votre abonnement, soyez prudent." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Deleted" +msgstr "Supprimé" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Deleting account..." +msgstr "Suppression du compte..." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Details" +msgstr "Détails" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +msgid "Device" +msgstr "Appareil" + +#: 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." +msgstr "Vous n'avez pas demandé de changement de mot de passe ? Nous sommes ici pour vous aider à sécuriser votre compte, il suffit de <0>nous contacter." + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +msgid "direct link" +msgstr "lien direct" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Direct link" +msgstr "Lien direct" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Direct Link" +msgstr "Lien direct" + +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +msgid "direct link disabled" +msgstr "lien direct désactivé" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Direct link receiver" +msgstr "Receveur de lien direct" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct Link Signing" +msgstr "Signature de lien direct" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct link signing has been disabled" +msgstr "La signature de lien direct a été désactivée" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct link signing has been enabled" +msgstr "La signature de lien direct a été activée" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Direct link templates contain one dynamic recipient placeholder. Anyone with access to this link can sign the document, and it will then appear on your documents page." +msgstr "Les modèles de lien direct contiennent un espace réservé de destinataire dynamique. Quiconque ayant accès à ce lien peut signer le document, et il apparaîtra ensuite sur votre page de documents." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct template link deleted" +msgstr "Modèle de lien direct supprimé" + +#. placeholder {0}: quota.directTemplates +#. placeholder {1}: quota.directTemplates +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct template link usage exceeded ({0}/{1})" +msgstr "L'utilisation du lien de modèle direct a été dépassée ({0}/{1})" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Disable" +msgstr "Désactiver" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Disable 2FA" +msgstr "Désactiver 2FA" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "Disable access" +msgstr "Désactiver l'accès" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disable account" +msgstr "Désactiver le compte" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disable Account" +msgstr "Désactiver le Compte" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Disable Two Factor Authentication before deleting your account." +msgstr "Désactiver l'authentification à deux facteurs avant de supprimer votre compte." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "Disabled" +msgstr "Désactivé" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Disabling direct link signing will prevent anyone from accessing the link." +msgstr "Désactiver la signature de lien direct empêchera quiconque d'accéder au lien." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disabling the user results in the user not being able to use the account. It also disables all the related contents such as subscription, webhooks, teams, and API keys." +msgstr "Désactiver l'utilisateur a pour résultat que l'utilisateur ne peut pas utiliser le compte. Cela désactive également tous les contenus associés tels que l'abonnement, les webhooks, les équipes et les clés API." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Display your name and email in documents" +msgstr "Afficher votre nom et votre email dans les documents" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Distribute Document" +msgstr "Distribuer le document" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Distribution Method" +msgstr "Méthode de distribution" + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Do you want to delete this template?" +msgstr "Voulez-vous supprimer ce modèle ?" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Do you want to duplicate this template?" +msgstr "Voulez-vous dupliquer ce modèle ?" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Documenso will delete <0>all of your documents, along with all of your completed documents, signatures, and all other resources belonging to your Account." +msgstr "Documenso supprimera <0>tous vos documents, ainsi que tous vos documents complétés, signatures, et toutes les autres ressources appartenant à votre compte." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Document" +msgstr "Document" + +#. placeholder {0}: document.title +#. placeholder {1}: recipient.name +#: packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts +msgid "Document \"{0}\" - Rejected by {1}" +msgstr "Document \"{0}\" - Rejeté par {1}" + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts +msgid "Document \"{0}\" - Rejection Confirmed" +msgstr "Document \"{0}\" - Rejet Confirmé" + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-document-cancelled-emails.handler.ts +msgid "Document \"{0}\" Cancelled" +msgstr "Document \"{0}\" Annulé" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Document access" +msgstr "Accès au document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document access auth updated" +msgstr "L'authentification d'accès au document a été mise à jour" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document All" +msgstr "Document Tout" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Approved" +msgstr "Document Approuvé" + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +#: packages/lib/server-only/document/super-delete-document.ts +#: packages/lib/server-only/document/delete-document.ts +msgid "Document Cancelled" +msgstr "Document Annulé" + +#: apps/remix/app/components/general/document/document-status.tsx +#: packages/lib/utils/document-audit-logs.ts +#: packages/lib/utils/document-audit-logs.ts +msgid "Document completed" +msgstr "Document terminé" + +#: packages/ui/components/document/document-email-checkboxes.tsx +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document completed email" +msgstr "E-mail de document complété" + +#: apps/remix/app/components/embed/embed-document-completed.tsx +msgid "Document Completed!" +msgstr "Document Complété !" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document created" +msgstr "Document créé" + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Document Created" +msgstr "Document créé" + +#. placeholder {0}: document.user.name +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Document created by <0>{0}" +msgstr "Document créé par <0>{0}" + +#: packages/lib/server-only/template/create-document-from-direct-template.ts +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "Document created from direct template" +msgstr "Document créé à partir d'un modèle direct" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Document created using a <0>direct link" +msgstr "Document créé en utilisant un <0>lien direct" + +#: packages/lib/constants/template.ts +msgid "Document Creation" +msgstr "Création de document" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document deleted" +msgstr "Document supprimé" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document deleted email" +msgstr "E-mail de document supprimé" + +#: packages/lib/server-only/document/send-delete-email.ts +msgid "Document Deleted!" +msgstr "Document Supprimé !" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Document Distribution Method" +msgstr "Méthode de distribution du document" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document draft" +msgstr "Brouillon de document" + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Document Duplicated" +msgstr "Document dupliqué" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document external ID updated" +msgstr "ID externe du document mis à jour" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Document found in your account" +msgstr "Document trouvé dans votre compte" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Document history" +msgstr "Historique du document" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document ID" +msgstr "ID du document" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document inbox" +msgstr "Boîte de réception des documents" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Document is already uploaded" +msgstr "Document déjà importé" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Document is using legacy field insertion" +msgstr "Le document utilise l'insertion de champ héritée" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Document Limit Exceeded!" +msgstr "Limite de documents dépassée !" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Document metrics" +msgstr "Métriques du document" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Document moved" +msgstr "Document déplacé" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document moved to team" +msgstr "Document déplacé vers l'équipe" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document no longer available to sign" +msgstr "Document non disponible pour signature" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document opened" +msgstr "Document ouvert" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document pending" +msgstr "Document en attente" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document pending email" +msgstr "E-mail de document en attente" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Document preferences updated" +msgstr "Préférences de document mises à jour" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Document re-sent" +msgstr "Document renvoyé" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document rejected" +msgstr "Document rejeté" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +#: packages/email/template-components/template-document-rejected.tsx +msgid "Document Rejected" +msgstr "Document Rejeté" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Document resealed" +msgstr "Document resealé" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document sent" +msgstr "Document envoyé" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Signed" +msgstr "Document signé" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document signing auth updated" +msgstr "Authentification de signature de document mise à jour" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Document signing process will be cancelled" +msgstr "Le processus de signature du document sera annulé" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document status" +msgstr "Statut du document" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document title" +msgstr "Titre du document" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document title updated" +msgstr "Titre du document mis à jour" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document updated" +msgstr "Document mis à jour" + +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Document updated successfully" +msgstr "Document mis à jour avec succès" + +#: apps/remix/app/components/general/document/document-upload.tsx +msgid "Document upload disabled due to unpaid invoices" +msgstr "Importation de documents désactivé en raison de factures impayées" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Document uploaded" +msgstr "Document importé" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Viewed" +msgstr "Document consulté" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document visibility updated" +msgstr "Visibilité du document mise à jour" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Document will be permanently deleted" +msgstr "Le document sera supprimé de manière permanente" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.edit.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/general/user-profile-timur.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +msgid "Documents" +msgstr "Documents" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Documents created from template" +msgstr "Documents créés à partir du modèle" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Documents Received" +msgstr "Documents reçus" + +#: apps/remix/app/components/tables/inbox-table.tsx +msgid "Documents that require your attention will appear here" +msgstr "Les documents qui nécessitent votre attention apparaîtront ici" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Documents Viewed" +msgstr "Documents consultés" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +msgid "Don't have an account? <0>Sign up" +msgstr "Vous n'avez pas de compte? <0>Inscrivez-vous" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: packages/ui/components/document/document-download-button.tsx +#: packages/email/template-components/template-document-completed.tsx +msgid "Download" +msgstr "Télécharger" + +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +msgid "Download Audit Logs" +msgstr "Télécharger les journaux d'audit" + +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +msgid "Download Certificate" +msgstr "Télécharger le certificat" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Download Original" +msgstr "Télécharger l'original" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Download Template CSV" +msgstr "Télécharger le modèle CSV" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: packages/lib/constants/document.ts +msgid "Draft" +msgstr "Brouillon" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Draft documents" +msgstr "Documents en brouillon" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Drafted Documents" +msgstr "Documents brouillon" + +#: packages/ui/primitives/document-dropzone.tsx +msgid "Drag & drop your PDF here." +msgstr "Faites glisser et déposez votre PDF ici." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Drag and drop or click to upload" +msgstr "Glissez-déposez ou cliquez pour importer" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Drag and drop your PDF file here" +msgstr "Faites glisser et déposez votre fichier PDF ici" + +#: packages/lib/constants/document.ts +msgid "Draw" +msgstr "Dessiner" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Drop your document here" +msgstr "Déposez votre document ici" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Dropdown" +msgstr "Liste déroulante" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Dropdown options" +msgstr "Options de liste déroulante" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Due to an unpaid invoice, your team has been restricted. Please settle the payment to restore full access to your team." +msgstr "En raison d'une facture impayée, votre équipe a été restreinte. Veuillez régler le paiement pour rétablir l'accès complet à votre équipe." + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +msgid "Duplicate" +msgstr "Dupliquer" + +#: packages/ui/primitives/document-flow/field-item.tsx +msgid "Duplicate on all pages" +msgstr "Dupliquer sur toutes les pages" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +msgid "Edit" +msgstr "Modifier" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Edit Template" +msgstr "Modifier le modèle" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Edit webhook" +msgstr "Modifier le webhook" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Electronic Delivery of Documents" +msgstr "Remise électronique de documents" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Electronic Signature Disclosure" +msgstr "Divulgation de signature électronique" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +#: packages/lib/constants/document.ts +msgid "Email" +msgstr "Email" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/send-confirmation-email.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Email address" +msgstr "Adresse email" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Email Address" +msgstr "Adresse e-mail" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Email already confirmed" +msgstr "E-mail déjà confirmé" + +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +msgid "Email cannot already exist in the template" +msgstr "L'e-mail ne peut déjà exister dans le modèle" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Email Confirmed!" +msgstr "Email confirmé !" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Email Options" +msgstr "Options d'email" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Email resent" +msgstr "Email renvoyé" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Email sent" +msgstr "Email envoyé" + +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +msgid "Email sent!" +msgstr "Email envoyé !" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Email verification has been removed" +msgstr "La vérification par email a été supprimée" + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Email verification has been resent" +msgstr "La vérification par email a été renvoyée" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Embedding, 5 members included and more" +msgstr "Intégration, 5 membres inclus et plus" + +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Empty field" +msgstr "Champ vide" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Enable" +msgstr "Activer" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Enable 2FA" +msgstr "Activer 2FA" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Enable access" +msgstr "Activer l'accès" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enable account" +msgstr "Activer le compte" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enable Account" +msgstr "Activer le Compte" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Enable Authenticator App" +msgstr "Activer l'application Authenticator" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable Custom Branding" +msgstr "Activer le Branding Personnalisé" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable custom branding for all documents in this organisation" +msgstr "Activez la personnalisation de la marque pour tous les documents de cette organisation" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable custom branding for all documents in this team" +msgstr "Activez la personnalisation de la marque pour tous les documents de cette équipe" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/lib/constants/template.ts +msgid "Enable Direct Link Signing" +msgstr "Activer la signature de lien direct" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Enable signing order" +msgstr "Activer l'ordre de signature" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Enabled" +msgstr "Activé" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enabling the account results in the user being able to use the account again, and all the related features such as webhooks, teams, and API keys for example." +msgstr "Activer le compte permet à l'utilisateur de pouvoir utiliser le compte à nouveau, ainsi que toutes les fonctionnalités associées telles que les webhooks, les équipes et les clés API par exemple." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Enclosed Document" +msgstr "Document joint" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Enter a name for your new folder. Folders help you organise your items." +msgstr "Entrez un nom pour votre nouveau dossier. Les dossiers vous aident à organiser vos éléments." + +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Enter claim name" +msgstr "Entrez le nom de la réclamation" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Enter your 2FA code" +msgstr "Entrez votre code 2FA" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enter your brand details" +msgstr "Entrez les informations de votre marque" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Enter your email" +msgstr "Entrez votre email" + +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +msgid "Enter your email address to receive the completed document." +msgstr "Entrez votre adresse e-mail pour recevoir le document complété." + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Enter your name" +msgstr "Entrez votre nom" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Enter your password" +msgstr "Entrez votre mot de passe" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "Enter your text here" +msgstr "Entrez votre texte ici" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Enterprise" +msgstr "Entreprise" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/general/verify-email-banner.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Error" +msgstr "Erreur" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Error uploading file" +msgstr "Erreur lors de l'importation du fichier" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Everyone can access and view the document" +msgstr "Tout le monde peut accéder et voir le document" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Everyone has signed" +msgstr "Tout le monde a signé" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Everyone has signed! You will receive an Email copy of the signed document." +msgstr "Tout le monde a signé ! Vous recevrez une copie par email du document signé." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Exceeded timeout" +msgstr "Délai dépassé" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Expired" +msgstr "Expiré" + +#. placeholder {0}: i18n.date(token.expires, DateTime.DATETIME_FULL) +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Expires on {0}" +msgstr "Expire le {0}" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "External ID" +msgstr "ID externe" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Failed to create folder" +msgstr "Échec de la création du dossier" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Failed to create subscription claim." +msgstr "Échec de la création de la réclamation d'abonnement." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Failed to delete folder" +msgstr "Échec de la suppression du dossier" + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Failed to delete subscription claim." +msgstr "Échec de la suppression de la réclamation d'abonnement." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Failed to load document" +msgstr "Échec du chargement du document" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Failed to move folder" +msgstr "Échec du déplacement du dossier" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Failed to reseal document" +msgstr "Échec du reseal du document" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Failed to revoke session" +msgstr "Échec de la révocation de la session" + +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Failed to save settings." +msgstr "Échec de l'enregistrement des paramètres." + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Failed to sign out all sessions" +msgstr "Impossible de se déconnecter de toutes les sessions" + +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Failed to update document" +msgstr "Échec de la mise à jour du document" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Failed to update recipient" +msgstr "Échec de la mise à jour du destinataire" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Failed to update subscription claim." +msgstr "Échec de la mise à jour de la réclamation d'abonnement." + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +msgid "Failed to update template" +msgstr "Échec de la mise à jour du modèle" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Failed to update webhook" +msgstr "Échec de la mise à jour du webhook" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Failed: {failedCount}" +msgstr "Échoués : {failedCount}" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Feature Flags" +msgstr "Drapeaux de fonctionnalités" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Field character limit" +msgstr "Limite de caractères du champ" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Field font size" +msgstr "Taille de police du champ" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Field format" +msgstr "Format du champ" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Field label" +msgstr "Étiquette du champ" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Field placeholder" +msgstr "Espace réservé du champ" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field prefilled by assistant" +msgstr "Champ pré-rempli par l'assistant" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field signed" +msgstr "Champ signé" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field unsigned" +msgstr "Champ non signé" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Fields" +msgstr "Champs" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Fields updated" +msgstr "Champs mis à jour" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" +msgstr "Le fichier ne peut pas dépasser {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} Mo" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "File size exceeds the limit of {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB" +msgstr "La taille du fichier dépasse la limite de {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Fill in the details to create a new subscription claim." +msgstr "Remplissez les détails pour créer une nouvelle réclamation d'abonnement." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Folder" +msgstr "Dossier" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Folder created successfully" +msgstr "Dossier créé avec succès" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Folder deleted successfully" +msgstr "Dossier supprimé avec succès" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Folder moved successfully" +msgstr "Dossier déplacé avec succès" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Folder Name" +msgstr "Nom du Dossier" + +#: apps/remix/app/components/dialogs/folder-settings-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Folder not found" +msgstr "Dossier introuvable" + +#: apps/remix/app/components/dialogs/folder-settings-dialog.tsx +msgid "Folder updated successfully" +msgstr "Dossier mis à jour avec succès" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Font Size" +msgstr "Taille de Police" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" +msgstr "Pour toute question concernant cette divulgation, les signatures électroniques ou tout processus y afférent, veuillez nous contacter à : <0>{SUPPORT_EMAIL}" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "For each recipient, provide their email (required) and name (optional) in separate columns. Download the template CSV below for the correct format." +msgstr "Pour chaque destinataire, fournissez son e-mail (obligatoire) et son nom (facultatif) dans des colonnes séparées. Téléchargez le modèle CSV ci-dessous pour obtenir le format requis." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "For example, if the claim has a new flag \"FLAG_1\" set to true, then this organisation will get that flag added." +msgstr "Par exemple, si la réclamation a un nouveau drapeau \"FLAG_1\" réglé sur vrai, alors cette organisation obtiendra ce drapeau ajouté." + +#: packages/lib/server-only/auth/send-forgot-password.ts +msgid "Forgot Password?" +msgstr "Mot de passe oublié ?" + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +#: apps/remix/app/components/forms/signin.tsx +#: packages/email/template-components/template-forgot-password.tsx +msgid "Forgot your password?" +msgstr "Vous avez oublié votre mot de passe ?" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Free" +msgstr "Gratuit" + +#: packages/ui/primitives/document-flow/types.ts +msgid "Free Signature" +msgstr "Signature gratuite" + +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Full Name" +msgstr "Nom complet" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "General" +msgstr "Général" + +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Generate Links" +msgstr "Générer des liens" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "Global recipient action authentication" +msgstr "Authentification d'action de destinataire globale" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Go back" +msgstr "Retour" + +#: apps/remix/app/routes/_recipient+/_layout.tsx +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Go Back" +msgstr "Retour" + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Go back home" +msgstr "Revenir au tableau de bord" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "Go Back Home" +msgstr "Revenir au tableau de bord" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "Go home" +msgstr "Retour à l'accueil" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Go to document" +msgstr "Aller au document" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Go to owner" +msgstr "Aller au propriétaire" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Go to team" +msgstr "Aller à l'équipe" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "Go to your <0>public profile settings to add documents." +msgstr "Allez à vos <0>paramètres de profil public pour ajouter des documents." + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Green" +msgstr "Vert" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Group" +msgstr "Groupe" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Group has been created." +msgstr "Le groupe a été créé." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Group has been updated successfully" +msgstr "Le groupe a été mis à jour avec succès" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Group Name" +msgstr "Nom du groupe" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Groups" +msgstr "Groupes" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to approve this document" +msgstr "t'a invité à approuver ce document" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to assist this document" +msgstr "vous a invité à aider ce document" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to sign this document" +msgstr "t'a invité à signer ce document" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to view this document" +msgstr "t'a invité à voir ce document" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Having an assistant as the last signer means they will be unable to take any action as there are no subsequent signers to assist." +msgstr "Avoir un assistant comme dernier signataire signifie qu'il ne pourra rien faire car il n'y a pas d'autres signataires à assister." + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Help complete the document for other signers." +msgstr "Aidez à compléter le document pour les autres signataires." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "Here you can edit your organisation details." +msgstr "Ici, vous pouvez modifier les détails de votre organisation." + +#: apps/remix/app/routes/_authenticated+/settings+/profile.tsx +msgid "Here you can edit your personal details." +msgstr "Ici, vous pouvez modifier vos informations personnelles." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Here you can manage your password and security settings." +msgstr "Ici, vous pouvez gérer votre mot de passe et vos paramètres de sécurité." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Here you can set preferences and defaults for branding." +msgstr "Ici, vous pouvez définir des préférences et des valeurs par défaut pour le branding." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Here you can set preferences and defaults for your organisation. Teams will inherit these settings by default." +msgstr "Ici, vous pouvez définir les préférences et les paramètres par défaut de votre organisation. Les équipes hériteront de ces paramètres par défaut." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Here you can set preferences and defaults for your team." +msgstr "Ici, vous pouvez définir des préférences et des valeurs par défaut pour votre équipe." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Here you can set your general preferences" +msgstr "Ici, vous pouvez définir vos préférences générales" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Here's how it works:" +msgstr "Voici comment cela fonctionne :" + +#: apps/remix/app/components/general/user-profile-timur.tsx +msgid "Hey I’m Timur" +msgstr "Salut, je suis Timur" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Hi {userName}," +msgstr "Bonjour {userName}," + +#: packages/email/templates/reset-password.tsx +msgid "Hi, {userName} <0>({userEmail})" +msgstr "Bonjour, {userName} <0>({userEmail})" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Hide" +msgstr "Cacher" + +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Hide additional information" +msgstr "Cacher des informations supplémentaires" + +#: apps/remix/app/components/general/generic-error-layout.tsx +#: apps/remix/app/components/general/folder/folder-grid.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Home" +msgstr "Accueil" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Home (No Folder)" +msgstr "Accueil (Pas de Dossier)" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am a signer of this document" +msgstr "Je suis un signataire de ce document" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am a viewer of this document" +msgstr "Je suis un lecteur de ce document" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am an approver of this document" +msgstr "Je suis un approuveur de ce document" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am an assistant of this document" +msgstr "Je suis un assistant de ce document" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am required to receive a copy of this document" +msgstr "Je dois recevoir une copie de ce document" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "I am the owner of this document" +msgstr "Je suis le propriétaire de ce document" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "I'm sure! Delete it" +msgstr "Je suis sûr ! Supprimez-le" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "ID" +msgstr "ID" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "ID copied to clipboard" +msgstr "ID copié dans le presse-papiers" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "If you do not want to use the authenticator prompted, you can close it, which will then display the next available authenticator." +msgstr "Si vous ne souhaitez pas utiliser l'authentificateur proposé, vous pouvez le fermer, ce qui affichera l'authentificateur suivant disponible." + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +msgid "If you don't find the confirmation link in your inbox, you can request a new one below." +msgstr "Si vous ne trouvez pas le lien de confirmation dans votre boîte de réception, vous pouvez demander un nouveau ci-dessous." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "If your authenticator app does not support QR codes, you can use the following code instead:" +msgstr "Si votre application d'authentification ne prend pas en charge les codes QR, vous pouvez utiliser le code suivant à la place :" + +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Inbox" +msgstr "Boîte de réception" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Inbox documents" +msgstr "Documents de la boîte de réception" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Include the Signing Certificate in the Document" +msgstr "Includez le certificat de signature dans le document" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Information" +msgstr "Information" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "Inherit authentication method" +msgstr "Hériter de la méthode d'authentification" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Inherit from organisation" +msgstr "Hériter de l'organisation" + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "Inherit organisation members" +msgstr "Hériter des membres de l'organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Inherited subscription claim" +msgstr "Réclamation d'abonnement héritée" + +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: packages/ui/primitives/document-flow/types.ts +msgid "Initials" +msgstr "Initiales" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Inserted" +msgstr "Inséré" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Instance Stats" +msgstr "Statistiques de l'instance" + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "Invalid code. Please try again." +msgstr "Code invalide. Veuillez réessayer." + +#: packages/ui/primitives/document-flow/add-signers.types.ts +msgid "Invalid email" +msgstr "Email invalide" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Invalid link" +msgstr "Lien invalide" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Invalid token" +msgstr "Token invalide" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Invalid token provided. Please try again." +msgstr "Le token fourni est invalide. Veuillez réessayer." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Invitation accepted" +msgstr "Invitation acceptée" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Invitation accepted!" +msgstr "Invitation acceptée !" + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Invitation declined" +msgstr "Invitation refusée" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invitation has been deleted" +msgstr "L'invitation a été supprimée" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invitation has been resent" +msgstr "L'invitation a été renvoyée" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite" +msgstr "Inviter" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite member" +msgstr "Inviter un membre" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite Members" +msgstr "Inviter des membres" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite organisation members" +msgstr "Inviter les membres de l'organisation" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Invite team members to collaborate" +msgstr "Inviter des membres de l'équipe à collaborer" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invited At" +msgstr "Invité à" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +msgid "Invoice" +msgstr "Facture" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +msgid "IP Address" +msgstr "Adresse IP" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "It is crucial to keep your contact information, especially your email address, up to date with us. Please notify us immediately of any changes to ensure that you continue to receive all necessary communications." +msgstr "Il est crucial de maintenir vos coordonnées, en particulier votre adresse e-mail, à jour avec nous. Veuillez nous informer immédiatement de tout changement pour vous assurer que vous continuez à recevoir toutes les communications nécessaires." + +#. placeholder {0}: publicProfile.name +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "It looks like {0} hasn't added any documents to their profile yet." +msgstr "Il semble que {0} n'ait pas encore ajouté de documents à son profil." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "It looks like we ran into an issue!" +msgstr "Il semble que nous ayons rencontré un problème!" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "It seems that the provided token has expired. We've just sent you another token, please check your email and try again." +msgstr "Il semble que le token fourni ait expiré. Nous venons de vous envoyer un autre token, veuillez vérifier votre email et réessayer." + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +msgid "It seems that there is no token provided, if you are trying to verify your email please follow the link in your email." +msgstr "Il semble qu'aucun token n'ait été fourni, si vous essayez de vérifier votre email, veuillez suivre le lien dans votre email." + +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "It's currently not your turn to sign. Please check back soon as this document should be available for you to sign shortly." +msgstr "Ce n'est actuellement pas votre tour de signer. Veuillez revenir bientôt car ce document devrait être disponible pour vous sous peu." + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document." +msgstr "Ce n'est actuellement pas votre tour de signer. Vous recevrez un e-mail avec des instructions une fois que ce sera votre tour de signer le document." + +#: packages/email/templates/organisation-invite.tsx +msgid "Join {organisationName} on Documenso" +msgstr "Rejoindre {organisationName} sur Documenso" + +#. placeholder {0}: DateTime.fromJSDate(team.createdAt).toRelative({ style: 'short' }) +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Joined {0}" +msgstr "A rejoint {0}" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Label" +msgstr "Étiquette" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Language" +msgstr "Langue" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 14 days" +msgstr "14 derniers jours" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 30 days" +msgstr "30 derniers jours" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 7 days" +msgstr "7 derniers jours" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Last Active" +msgstr "Dernière activité" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Last modified" +msgstr "Dernière modification" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Last updated" +msgstr "Dernière mise à jour" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Last Updated" +msgstr "Dernière mise à jour" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Last updated at" +msgstr "Dernière mise à jour à" + +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +msgid "Last used" +msgstr "Dernière utilisation" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Leaderboard" +msgstr "Classement" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "Leave" +msgstr "Quitter" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Leave blank to inherit from the organisation." +msgstr "Laisser vide pour hériter de l'organisation." + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "Leave organisation" +msgstr "Quitter l'organisation" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Legality of Electronic Signatures" +msgstr "Légalité des signatures électroniques" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Light Mode" +msgstr "Mode clair" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Like to have your own public profile with agreements?" +msgstr "Vous voulez avoir votre propre profil public avec des accords ?" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Link expires in 1 hour." +msgstr "Le lien expire dans 1 heure." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Link template" +msgstr "Modèle de lien" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Links Generated" +msgstr "Liens générés" + +#. placeholder {0}: webhook.eventTriggers .map((trigger) => toFriendlyWebhookEventName(trigger)) .join(', ') +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "Listening to {0}" +msgstr "Écoute {0}" + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Load older activity" +msgstr "Charger l'activité plus ancienne" + +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Loading document..." +msgstr "Chargement du document..." + +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Loading Document..." +msgstr "Chargement du Document..." + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Loading..." +msgstr "Chargement..." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "Login" +msgstr "Connexion" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Manage" +msgstr "Gérer" + +#. placeholder {0}: user?.name +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Manage {0}'s profile" +msgstr "Gérer le profil de {0}" + +#: apps/remix/app/routes/_authenticated+/settings+/organisations.tsx +msgid "Manage all organisations you are currently associated with." +msgstr "Gérez toutes les organisations avec lesquelles vous êtes actuellement associé." + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Manage all subscription claims" +msgstr "Gérer toutes les réclamations d'abonnement" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Manage and view template" +msgstr "Gérer et afficher le modèle" + +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +msgid "Manage billing" +msgstr "Gérer la facturation" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Manage details for this public template" +msgstr "Gérer les détails de ce modèle public" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog-wrapper.tsx +msgid "Manage Direct Link" +msgstr "Gérer le lien direct" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +msgid "Manage documents" +msgstr "Gérer les documents" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage organisation" +msgstr "Gérer l'organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Manage organisations" +msgstr "Gérer les organisations" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Manage passkeys" +msgstr "Gérer les clés d'accès" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Manage permissions and access controls" +msgstr "Gérez les autorisations et les contrôles d'accès" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Manage sessions" +msgstr "Gérer les sessions" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage subscription" +msgstr "Gérer l'abonnement" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage the {0} organisation" +msgstr "Gérer l'organisation {0}" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage the {0} organisation subscription" +msgstr "Gérer l'abonnement de l'organisation {0}" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups._index.tsx +msgid "Manage the custom groups of members for your organisation." +msgstr "Gérez les groupes personnalisés de membres pour votre organisation." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Manage the direct link signing for this template" +msgstr "Gérer la signature de lien direct pour ce modèle" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +msgid "Manage the groups assigned to this team." +msgstr "Gérez les groupes assignés à cette équipe." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +msgid "Manage the members of your team." +msgstr "Gérez les membres de votre équipe." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +msgid "Manage the members or invite new members." +msgstr "Gérer les membres ou inviter de nouveaux membres." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +msgid "Manage the teams in this organisation." +msgstr "Gérez les équipes de cette organisation." + +#: apps/remix/app/routes/_authenticated+/admin+/users._index.tsx +msgid "Manage users" +msgstr "Gérer les utilisateurs" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Manage your organisation group settings." +msgstr "Gérez les paramètres du groupe de votre organisation." + +#: apps/remix/app/routes/_authenticated+/settings+/security.passkeys.tsx +msgid "Manage your passkeys." +msgstr "Gérer vos clés d'accès." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Manage your site settings here" +msgstr "Gérer les paramètres de votre site ici" + +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Manager" +msgstr "Gestionnaire" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Mark as viewed" +msgstr "Marquer comme vu" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Mark as Viewed" +msgstr "Marquer comme vu" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (created document)" +msgstr "MAU (document créé)" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (had document completed)" +msgstr "MAU (document terminé)" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (signed in)" +msgstr "MAU (connecté)" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Max" +msgstr "Maximum" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults." +msgstr "Taille maximale du fichier : 4 Mo. Maximum de 100 lignes par importation. Les valeurs vides utiliseront les valeurs par défaut du modèle." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Member" +msgstr "Membre" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Member Count" +msgstr "Nombre de membres" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Member Since" +msgstr "Membre depuis" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Members" +msgstr "Membres" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Message <0>(Optional)" +msgstr "Message <0>(Optionnel)" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Min" +msgstr "Min" + +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Modify recipients" +msgstr "Modifier les destinataires" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Modify the details of the subscription claim." +msgstr "Modifier les détails de la réclamation d'abonnement." + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Monthly" +msgstr "Mensuel" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Monthly Active Users: Users that created at least one Document" +msgstr "Utilisateurs actifs mensuels : utilisateurs ayant créé au moins un document" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Monthly Active Users: Users that had at least one of their documents completed" +msgstr "Utilisateurs actifs mensuels : utilisateurs ayant terminé au moins un de leurs documents" + +#: apps/remix/app/components/general/folder/folder-card.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Move" +msgstr "Déplacer" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Move \"{templateTitle}\" to a folder" +msgstr "Déplacer «{templateTitle}» vers un dossier" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Move Document to Folder" +msgstr "Déplacer le document vers un dossier" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Move Folder" +msgstr "Déplacer le Dossier" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Move Template to Folder" +msgstr "Déplacer le modèle vers un dossier" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +msgid "Move to Folder" +msgstr "Déplacer vers le dossier" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Multiple access methods can be selected." +msgstr "Plusieurs méthodes d'accès peuvent être sélectionnées." + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "My Folder" +msgstr "Mon Dossier" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Name" +msgstr "Nom" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Name is required" +msgstr "Le nom est requis" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Need to sign documents?" +msgstr "Besoin de signer des documents ?" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to approve" +msgstr "Nécessite une approbation" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to sign" +msgstr "Nécessite une signature" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to view" +msgstr "Nécessite une visualisation" + +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +msgid "Never" +msgstr "Jamais" + +#: apps/remix/app/components/forms/token.tsx +msgid "Never expire" +msgstr "Ne jamais expirer" + +#: apps/remix/app/components/forms/password.tsx +msgid "New Password" +msgstr "Nouveau Mot de Passe" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "New Template" +msgstr "Nouveau modèle" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: packages/ui/primitives/signature-pad/signature-pad-dialog.tsx +msgid "Next" +msgstr "Suivant" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Next field" +msgstr "Champ suivant" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "No" +msgstr "Non" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "No active drafts" +msgstr "Pas de brouillons actifs" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "No folders found" +msgstr "Aucun dossier trouvé" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +msgid "No folders found matching \"{searchTerm}\"" +msgstr "Aucun dossier correspondant à \"{searchTerm}\" trouvé" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "No further action is required from you at this time." +msgstr "Aucune autre action n'est requise de votre part pour le moment." + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "No organisations found" +msgstr "Aucune organisation trouvée" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "No public profile templates found" +msgstr "Aucun modèle de profil public trouvé" + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "No recent activity" +msgstr "Aucune activité récente" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "No recent documents" +msgstr "Aucun document récent" + +#: packages/ui/primitives/recipient-selector.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "No recipient matching this description was found." +msgstr "Aucun destinataire correspondant à cette description n'a été trouvé." + +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "No recipients" +msgstr "Aucun destinataire" + +#: packages/ui/primitives/recipient-selector.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "No recipients with this role" +msgstr "Aucun destinataire avec ce rôle" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "No restrictions" +msgstr "Aucune restriction" + +#: packages/ui/primitives/data-table.tsx +msgid "No results found" +msgstr "Aucun résultat trouvé" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "No results found." +msgstr "Aucun résultat trouvé." + +#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx +msgid "No signature field found" +msgstr "Aucun champ de signature trouvé" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "No Stripe customer attached" +msgstr "Aucun client Stripe attaché" + +#: apps/remix/app/components/tables/team-groups-table.tsx +msgid "No team groups found" +msgstr "Aucun groupe d'équipes trouvé" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "No teams yet" +msgstr "Aucune équipe pour le moment" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "No valid direct templates found" +msgstr "Aucun modèle direct valide trouvé" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "No valid recipients found" +msgstr "Aucun destinataire valide trouvé" + +#: apps/remix/app/components/general/multiselect-role-combobox.tsx +#: packages/ui/primitives/multi-select-combobox.tsx +#: packages/ui/primitives/combobox.tsx +msgid "No value found." +msgstr "Aucune valeur trouvée." + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +msgid "No worries, it happens! Enter your email and we'll email you a special link to reset your password." +msgstr "Pas de soucis, ça arrive ! Entrez votre email et nous vous enverrons un lien spécial pour réinitialiser votre mot de passe." + +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/lib/constants/document.ts +msgid "None" +msgstr "Aucun" + +#: apps/remix/app/components/forms/signin.tsx +msgid "Not supported" +msgstr "Non pris en charge" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "Nothing to do" +msgstr "Rien à faire" + +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Number" +msgstr "Numéro" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Number format" +msgstr "Format de numéro" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Number of members allowed. 0 = Unlimited" +msgstr "Nombre de membres autorisés. 0 = Illimité" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Number of teams allowed. 0 = Unlimited" +msgstr "Nombre d'équipes autorisées. 0 = Illimité" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to approve this document" +msgstr "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.tsx +msgid "on behalf of \"{0}\" has invited you to assist this document" +msgstr "au nom de \"{0}\" vous a invité à aider ce document" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to sign this document" +msgstr "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.tsx +msgid "on behalf of \"{0}\" has invited you to view this document" +msgstr "au nom de \"{0}\" vous a invité à voir ce document" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "On this page, you can create a new webhook." +msgstr "Sur cette page, vous pouvez créer un nouveau webhook." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "On this page, you can create and manage API tokens. See our <0>Documentation for more information." +msgstr "Sur cette page, vous pouvez créer et gérer des tokens API. Consultez notre <0>Documentation pour plus d'informations." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "On this page, you can create new Webhooks and manage the existing ones." +msgstr "Sur cette page, vous pouvez créer de nouveaux webhooks et gérer ceux existants." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "On this page, you can edit the webhook and its settings." +msgstr "Sur cette page, vous pouvez modifier le webhook et ses paramètres." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Once confirmed, the following will occur:" +msgstr "Une fois confirmé, les éléments suivants se produiront :" + +#: packages/lib/constants/template.ts +msgid "Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted." +msgstr "Une fois activé, vous pouvez sélectionner n'importe quel destinataire actif pour être un destinataire de signature de lien direct ou en créer un nouveau. Ce type de destinataire ne peut pas être modifié ou supprimé." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Once you have scanned the QR code or entered the code manually, enter the code provided by your authenticator app below." +msgstr "Une fois que vous avez scanné le code QR ou saisi le code manuellement, entrez le code fourni par votre application d'authentification ci-dessous." + +#: 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." +msgstr "Une fois votre modèle configuré, partagez le lien où vous le souhaitez. La personne qui ouvre le lien pourra saisir ses informations dans le champ de destinataire de lien direct et remplir tout autre champ qui lui est attribué." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "One of the documents in the current bundle has a signing role that is not compatible with the current signing experience." +msgstr "L'un des documents du paquet actuel a un rôle de signature qui n'est pas compatible avec l'expérience de signature actuelle." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Only admins can access and view the document" +msgstr "Seules les administrateurs peuvent accéder et voir le document" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Only managers and above can access and view the document" +msgstr "Seuls les responsables et au-dessus peuvent accéder et voir le document" + +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "Oops! Something went wrong." +msgstr "Oups ! Quelque chose a mal tourné." + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Opened" +msgstr "Ouvert" + +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Or" +msgstr "Ou" + +#: apps/remix/app/components/forms/signin.tsx +msgid "Or continue with" +msgstr "Ou continuez avec" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Organisation" +msgstr "Organisation" + +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Admin" +msgstr "Administrateur de l'organisation" + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Organisation created" +msgstr "Organisation créée" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Organisation group not found" +msgstr "Groupe d'organisation introuvable" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Organisation Group Settings" +msgstr "Paramètres du groupe d'organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation has been updated successfully" +msgstr "L'organisation a été mise à jour avec succès" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Organisation invitation" +msgstr "Invitation à l'organisation" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Organisation invitations have been sent." +msgstr "Les invitations à l'organisation ont été envoyées." + +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Manager" +msgstr "Gestionnaire de l'organisation" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Member" +msgstr "Membre de l'organisation" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation Members" +msgstr "Membres de l'organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Organisation Name" +msgstr "Nom de l'organisation" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation not found" +msgstr "Organisation introuvable" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Organisation Preferences" +msgstr "Préférences de l'organisation" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Organisation role" +msgstr "Rôle de l'organisation" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Organisation Role" +msgstr "Rôle de l'organisation" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Organisation settings" +msgstr "Paramètres de l'organisation" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +msgid "Organisation Settings" +msgstr "Paramètres de l'organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation Teams" +msgstr "Équipes de l'organisation" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Organisation URL" +msgstr "URL de l'organisation" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/settings+/organisations.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Organisations" +msgstr "Organisations" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Organisations that the user is a member of." +msgstr "Organisations dont l'utilisateur est membre." + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Organise your documents" +msgstr "Organisez vos documents" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Organise your members into groups which can be assigned to teams" +msgstr "Organisez vos membres en groupes qui peuvent être assignés à des équipes" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Organise your templates" +msgstr "Organisez vos modèles" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Organize your documents and templates" +msgstr "Organisez vos documents et modèles" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Otherwise, the document will be created as a draft." +msgstr "Sinon, le document sera créé sous forme de brouillon." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Owner" +msgstr "Propriétaire" + +#. placeholder {0}: table.getState().pagination.pageIndex + 1 +#. placeholder {1}: table.getPageCount() || 1 +#: packages/ui/primitives/data-table-pagination.tsx +msgid "Page {0} of {1}" +msgstr "Page {0} sur {1}" + +#. placeholder {0}: i + 1 +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Page {0} of {numPages}" +msgstr "Page {0} sur {numPages}" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Passkey" +msgstr "Clé d'accès" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey already exists for the provided authenticator" +msgstr "La clé d'accès existe déjà pour l'authentificateur fourni" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey creation cancelled due to one of the following reasons:" +msgstr "La création de la clé d'accès a été annulée pour l'une des raisons suivantes :" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Passkey has been removed" +msgstr "La clé d'accès a été supprimée" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Passkey has been updated" +msgstr "La clé d'accès a été mise à jour" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey name" +msgstr "Nom de la clé d'accès" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Passkey Re-Authentication" +msgstr "Ré-authentification par clé d'accès" + +#: apps/remix/app/routes/_authenticated+/settings+/security.passkeys.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Passkeys" +msgstr "Clés d'accès" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkeys allow you to sign in and authenticate using biometrics, password managers, etc." +msgstr "Les clés d'accès vous permettent de vous connecter et de vous authentifier en utilisant des biométries, des gestionnaires de mots de passe, etc." + +#: apps/remix/app/components/forms/signin.tsx +msgid "Passkeys are not supported on this browser" +msgstr "Les clés d'accès ne sont pas prises en charge sur ce navigateur" + +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Password" +msgstr "Mot de passe" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Password Re-Authentication" +msgstr "Ré-authentification par mot de passe" + +#: packages/email/templates/forgot-password.tsx +msgid "Password Reset Requested" +msgstr "Réinitialisation du mot de passe demandée" + +#: packages/email/templates/reset-password.tsx +msgid "Password Reset Successful" +msgstr "Réinitialisation du mot de passe réussie" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "Password should not be common or based on personal information" +msgstr "Le mot de passe ne doit pas être commun ou basé sur des informations personnelles" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Password updated" +msgstr "Mot de passe mis à jour" + +#: packages/email/template-components/template-reset-password.tsx +msgid "Password updated!" +msgstr "Mot de passe mis à jour !" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Payment overdue" +msgstr "Paiement en retard" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/components/document/document-read-only-fields.tsx +#: packages/lib/constants/document.ts +msgid "Pending" +msgstr "En attente" + +#: packages/email/templates/document-pending.tsx +msgid "Pending Document" +msgstr "Document En Attente" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Pending documents" +msgstr "Documents en attente" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Pending Documents" +msgstr "Documents en attente" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Pending invitations" +msgstr "Invitations en attente" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "per month" +msgstr "par mois" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "per year" +msgstr "par an" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +msgid "Personal" +msgstr "Personnel" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Personal Account" +msgstr "Compte personnel" + +#: apps/remix/app/routes/_authenticated+/inbox.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Personal Inbox" +msgstr "Boîte de réception personnelle" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Pick a number" +msgstr "Choisissez un numéro" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Pick a password" +msgstr "Choisir un mot de passe" + +#: apps/remix/app/components/general/user-profile-timur.tsx +msgid "Pick any of the following agreements below and start signing to get started" +msgstr "Choisissez l'un des accords suivants ci-dessous et commencez à signer pour commencer" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Pin" +msgstr "Épingler" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Placeholder" +msgstr "Espace réservé" + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "Please {0} your document<0/>\"{documentName}\"" +msgstr "Veuillez {0} votre document<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "Please {action} your document {documentName}" +msgstr "Veuillez {action} votre document {documentName}" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} this document" +msgstr "Veuillez {recipientActionVerb} ce document" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} this document created by your direct template" +msgstr "Veuillez {recipientActionVerb} ce document créé par votre modèle direct" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} your document" +msgstr "Veuillez {recipientActionVerb} votre document" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Please check the CSV file and make sure it is according to our format" +msgstr "Veuillez vérifier le fichier CSV et vous assurer qu'il est conforme à notre format" + +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "Please check with the parent application for more information." +msgstr "Veuillez vérifier auprès de l'application parent pour plus d'informations." + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "Please check your email for updates." +msgstr "Veuillez vérifier votre e-mail pour des mises à jour." + +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +msgid "Please choose your new password" +msgstr "Veuillez choisir votre nouveau mot de passe" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Please configure the document first" +msgstr "Veuillez d'abord configurer le document" + +#: packages/lib/server-only/auth/send-confirmation-email.ts +msgid "Please confirm your email" +msgstr "Veuillez confirmer votre email" + +#: packages/email/templates/confirm-email.tsx +msgid "Please confirm your email address" +msgstr "Veuillez confirmer votre adresse email" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please contact support if you would like to revert this action." +msgstr "Veuillez contacter le support si vous souhaitez annuler cette action." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Please contact the site owner for further assistance." +msgstr "Veuillez contacter le propriétaire du site pour obtenir de l'aide supplémentaire." + +#: apps/remix/app/components/forms/token.tsx +msgid "Please enter a meaningful name for your token. This will help you identify it later." +msgstr "Veuillez entrer un nom significatif pour votre token. Cela vous aidera à l'identifier plus tard." + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/profile.tsx +msgid "Please enter a valid name." +msgstr "Veuiillez entrer un nom valide." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please mark as viewed to complete" +msgstr "Veuillez marquer comme vu pour terminer" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." +msgstr "Veuillez noter que la poursuite supprimera le destinataire de lien direct et le transformera en espace réservé." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please note that this action is <0>irreversible." +msgstr "Veuillez noter que cette action est <0>irréversible." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please note that this action is <0>irreversible. Once confirmed, this document will be permanently deleted." +msgstr "Veuillez noter que cette action est <0>irréversible. Une fois confirmée, ce document sera définitivement supprimé." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your template will be permanently deleted." +msgstr "Veuillez noter que cette action est irréversible. Une fois confirmée, votre modèle sera définitivement supprimé." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your token will be permanently deleted." +msgstr "Veuillez noter que cette action est irréversible. Une fois confirmée, votre token sera définitivement supprimé." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your webhook will be permanently deleted." +msgstr "Veuillez noter que cette action est irréversible. Une fois confirmée, votre webhook sera définitivement supprimé." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Please note that you will lose access to all documents associated with this team & all the members will be removed and notified" +msgstr "Veuillez noter que vous perdrez l'accès à tous les documents associés à cette équipe et que tous les membres seront supprimés et notifiés" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Please provide a token from the authenticator, or a backup code. If you do not have a backup code available, please contact support." +msgstr "Veuillez fournir un token de l'authentificateur, ou un code de secours. Si vous n'avez pas de code de secours disponible, veuillez contacter le support." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "Please provide a token from your authenticator, or a backup code." +msgstr "Veuillez fournir un token de votre authentificateur, ou un code de secours." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please review the document before approving." +msgstr "Veuillez examiner le document avant d'approuver." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please review the document before signing." +msgstr "Veuillez examiner le document avant de signer." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Please select a PDF file" +msgstr "Veuillez sélectionner un fichier PDF" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Please try again and make sure you enter the correct email address." +msgstr "Veuillez réessayer et assurez-vous d'entrer la bonne adresse email." + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Please try again later." +msgstr "Veuillez réessayer plus tard." + +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Please try again or contact our support." +msgstr "Veuillez réessayer ou contacter notre support." + +#. placeholder {0}: `'${_(deleteMessage)}'` +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please type {0} to confirm" +msgstr "Veuiillez taper {0} pour confirmer" + +#. placeholder {0}: user.email +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Please type <0>{0} to confirm." +msgstr "Veuillez taper <0>{0} pour confirmer." + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Please upload a logo" +msgstr "Veuillez télécharger un logo" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Pre-formatted CSV template with example data." +msgstr "Modèle CSV pré-formaté avec des données d'exemple." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +msgid "Preferences" +msgstr "Préférences" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Preview" +msgstr "Aperçu" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "Preview and configure template." +msgstr "Aperçu et configurer le modèle." + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-type.tsx +msgid "Private" +msgstr "Privé" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Private templates can only be modified and viewed by you." +msgstr "Les modèles privés ne peuvent être modifiés et consultés que par vous." + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Proceed" +msgstr "Procéder" + +#: apps/remix/app/routes/_authenticated+/settings+/profile.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Profile" +msgstr "Profil" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Profile is currently <0>hidden." +msgstr "Le profil est actuellement <0>caché." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Profile is currently <0>visible." +msgstr "Le profil est actuellement <0>visible." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/forms/profile.tsx +msgid "Profile updated" +msgstr "Profil mis à jour" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Progress" +msgstr "Progrès" + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-type.tsx +msgid "Public" +msgstr "Public" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +msgid "Public Profile" +msgstr "Profil public" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Public profile URL" +msgstr "URL du profil public" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile." +msgstr "Les modèles publics sont connectés à votre profil public. Toute modification apportée aux modèles publics apparaîtra également dans votre profil public." + +#: packages/ui/primitives/document-flow/types.ts +msgid "Radio" +msgstr "Radio" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +msgid "Radio values" +msgstr "Valeurs radio" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Read only" +msgstr "Lecture seule" + +#: apps/remix/app/components/general/document-signing/document-signing-field-container.tsx +msgid "Read only field" +msgstr "Champ en lecture seule" + +#: apps/remix/app/components/general/document-signing/document-signing-disclosure.tsx +msgid "Read the full <0>signature disclosure." +msgstr "Lisez l'intégralité de la <0>divulgation de signature." + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Ready" +msgstr "Prêt" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Reason" +msgstr "Raison" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "Reason for cancellation: {cancellationReason}" +msgstr "Raison de l'annulation: {cancellationReason}" + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Reason for rejection: " +msgstr "Raison du rejet : " + +#: packages/email/template-components/template-document-rejected.tsx +msgid "Reason for rejection: {rejectionReason}" +msgstr "Raison du rejet : {rejectionReason}" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +msgid "Reason must be less than 500 characters" +msgstr "La raison doit contenir moins de 500 caractères" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Reauthentication is required to sign this field" +msgstr "Une nouvelle authentification est requise pour signer ce champ" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Receives copy" +msgstr "Recevoir une copie" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Recent activity" +msgstr "Activité récente" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Recent documents" +msgstr "Documents récents" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +#: packages/lib/utils/document-audit-logs.ts +msgid "Recipient" +msgstr "Destinataire" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "Recipient action authentication" +msgstr "Authentification d'action de destinataire" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient removed email" +msgstr "E-mail de destinataire supprimé" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient signed email" +msgstr "E-mail signé par le destinataire" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient signing request email" +msgstr "E-mail de demande de signature de destinataire" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Recipient updated" +msgstr "Destinataire mis à jour" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +msgid "Recipients" +msgstr "Destinataires" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Recipients metrics" +msgstr "Métriques des destinataires" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Recipients will still retain their copy of the document" +msgstr "Les destinataires conservent toujours leur copie du document" + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Recovery code copied" +msgstr "Code de récupération copié" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Recovery codes" +msgstr "Codes de récupération" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Red" +msgstr "Rouge" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Redirect URL" +msgstr "URL de redirection" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "Registration Successful" +msgstr "Inscription réussie" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Reject Document" +msgstr "Rejeter le Document" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/document.ts +msgid "Rejected" +msgstr "Rejeté" + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "Rejection Confirmed" +msgstr "Rejet Confirmé" + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "Rejection reason: {reason}" +msgstr "Motif du rejet : {reason}" + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +msgid "Remembered your password? <0>Sign In" +msgstr "Vous vous souvenez de votre mot de passe ? <0>Connectez-vous" + +#. placeholder {0}: customEmail.subject +#: packages/lib/server-only/document/resend-document.tsx +msgid "Reminder: {0}" +msgstr "Rappel : {0}" + +#. placeholder {0}: document.team.name +#: packages/lib/server-only/document/resend-document.tsx +msgid "Reminder: {0} invited you to {recipientActionVerb} a document" +msgstr "Rappel : {0} vous a invité à {recipientActionVerb} un document" + +#: packages/lib/server-only/document/resend-document.tsx +msgid "Reminder: Please {recipientActionVerb} this document" +msgstr "Rappel : Veuillez {recipientActionVerb} ce document" + +#: packages/lib/server-only/document/resend-document.tsx +msgid "Reminder: Please {recipientActionVerb} your document" +msgstr "Rappel : Veuillez {recipientActionVerb} votre document" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/document-signing/document-signing-field-container.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Remove" +msgstr "Retirer" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +msgid "Remove organisation group" +msgstr "Supprimer le groupe d'organisation" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Remove organisation member" +msgstr "Supprimer le membre de l'organisation" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Remove team email" +msgstr "Supprimer l'adresse e-mail de l'équipe" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "Remove team member" +msgstr "Supprimer le membre de l'équipe" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Repeat Password" +msgstr "Répéter le mot de passe" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Required field" +msgstr "Champ requis" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Reseal document" +msgstr "Rescellage du document" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Resend" +msgstr "Renvoyer" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Resend Confirmation Email" +msgstr "Renvoyer l'e-mail de confirmation" + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Resend verification" +msgstr "Renvoyer la vérification" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Reset" +msgstr "Réinitialiser" + +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "Reset email sent" +msgstr "E-mail de réinitialisation envoyé" + +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +#: packages/email/template-components/template-forgot-password.tsx +msgid "Reset Password" +msgstr "Réinitialiser le mot de passe" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Resetting Password..." +msgstr "Réinitialisation du mot de passe..." + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Resolve" +msgstr "Résoudre" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Resolve payment" +msgstr "Résoudre le paiement" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" +msgstr "Soyez assuré, votre document eststrictement confidentiel et ne sera jamais partagé. Seule votre expérience de signature sera mise en avant. Partagez votre carte de signature personnalisée pour mettre en valeur votre signature !" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Restricted Access" +msgstr "Accès restreint" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Retention of Documents" +msgstr "Conservation des documents" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Retry" +msgstr "Réessayer" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Return" +msgstr "Retour" + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Return to Home" +msgstr "Retour à l'accueil" + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +msgid "Return to sign in" +msgstr "Retour à la connexion" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Revoke" +msgstr "Révoquer" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Revoke access" +msgstr "Révoquer l'accès" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Revoke all sessions" +msgstr "Révoquer toutes les sessions" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "Role" +msgstr "Rôle" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +msgid "Roles" +msgstr "Rôles" + +#: packages/ui/primitives/data-table-pagination.tsx +msgid "Rows per page" +msgstr "Lignes par page" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Save" +msgstr "Sauvegarder" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "Save Template" +msgstr "Sauvegarder le modèle" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +#: apps/remix/app/components/tables/documents-table-sender-filter.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +msgid "Search" +msgstr "Recherche" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Search and manage all organisations" +msgstr "Rechercher et gérer toutes les organisations" + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Search by claim ID or name" +msgstr "Recherche par ID de réclamation ou nom" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +msgid "Search by document title" +msgstr "Recherche par titre de document" + +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +msgid "Search by name or email" +msgstr "Recherche par nom ou e-mail" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Search by organisation ID, name, customer ID or owner email" +msgstr "Rechercher par ID d'organisation, nom, ID client ou e-mail du propriétaire" + +#: apps/remix/app/components/general/document/document-search.tsx +msgid "Search documents..." +msgstr "Rechercher des documents..." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Search folders..." +msgstr "Rechercher dans les dossiers..." + +#: packages/ui/components/common/language-switcher-dialog.tsx +msgid "Search languages..." +msgstr "Rechercher des langues..." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Secret" +msgstr "Secret" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Security" +msgstr "Sécurité" + +#: apps/remix/app/routes/_authenticated+/settings+/security.activity.tsx +msgid "Security activity" +msgstr "Activité de sécurité" + +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Select" +msgstr "Sélectionner" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Select a destination for this folder." +msgstr "Sélectionnez une destination pour ce dossier." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Select a folder to move this document to." +msgstr "Sélectionnez un dossier pour déplacer ce document." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Select a plan" +msgstr "Sélectionnez un plan" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Select a plan to continue" +msgstr "Sélectionnez un plan pour continuer" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Select a team to view its dashboard" +msgstr "Sélectionnez une équipe pour voir son tableau de bord" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Select a template you'd like to display on your public profile" +msgstr "Sélectionnez un modèle que vous souhaitez afficher sur votre profil public" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Select a template you'd like to display on your team's public profile" +msgstr "Sélectionnez un modèle que vous souhaitez afficher sur le profil public de votre équipe" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Select access methods" +msgstr "Sélectionnez les méthodes d'accès" + +#: packages/ui/primitives/combobox.tsx +msgid "Select an option" +msgstr "Sélectionner une option" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Select an organisation to view teams" +msgstr "Sélectionnez une organisation pour voir les équipes" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Select at least" +msgstr "Sélectionnez au moins" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "Select authentication methods" +msgstr "Sélectionnez les méthodes d'authentification" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Select default option" +msgstr "Sélectionner l'option par défaut" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups" +msgstr "Sélectionnez des groupes" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups of members to add to the team." +msgstr "Sélectionnez des groupes de membres à ajouter à l'équipe." + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups to add to this team" +msgstr "Sélectionnez des groupes à ajouter à cette équipe" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Select members" +msgstr "Sélectionnez des membres" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Select members or groups of members to add to the team." +msgstr "Sélectionnez des membres ou groupes de membres à ajouter à l'équipe." + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Select members to add to this team" +msgstr "Sélectionnez des membres à ajouter à cette équipe" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Select passkey" +msgstr "Sélectionner la clé d'authentification" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Select signature types" +msgstr "Sélectionnez les types de signature" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Select the members to add to this group" +msgstr "Sélectionnez les membres à ajouter à ce groupe" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Select the members to include in this group" +msgstr "Sélectionnez les membres à inclure dans ce groupe" + +#: apps/remix/app/components/general/webhook-multiselect-combobox.tsx +#: apps/remix/app/components/general/webhook-multiselect-combobox.tsx +msgid "Select triggers" +msgstr "Sélectionner les déclencheurs" + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Send" +msgstr "Envoyer" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Send confirmation email" +msgstr "Envoyer l'e-mail de confirmation" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Send document" +msgstr "Envoyer le document" + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +msgid "Send Document" +msgstr "Envoyer le document" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document completed email" +msgstr "Envoyer l'e-mail de document complété" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document completed email to the owner" +msgstr "Envoyer l'e-mail de document complété au propriétaire" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document deleted email" +msgstr "Envoyer l'e-mail de document supprimé" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document pending email" +msgstr "Envoyer l'e-mail de document en attente" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Send documents on behalf of the team using the email address" +msgstr "Envoyer des documents au nom de l'équipe en utilisant l'adresse e-mail" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Send documents to recipients immediately" +msgstr "Envoyer les documents aux destinataires immédiatement" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Send on Behalf of Team" +msgstr "Envoyer au nom de l'équipe" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient removed email" +msgstr "Envoyer l'e-mail de destinataire supprimé" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient signed email" +msgstr "Envoyer l'e-mail signé par le destinataire" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient signing request email" +msgstr "Envoyer l'e-mail de demande de signature de destinataire" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Send reminder" +msgstr "Envoyer un rappel" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +msgid "Sender" +msgstr "Expéditeur" + +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "Sending Reset Email..." +msgstr "Envoi de l'e-mail de réinitialisation..." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Sending..." +msgstr "Envoi..." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Sent" +msgstr "Envoyé" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Session revoked" +msgstr "Session révoquée" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Sessions have been revoked" +msgstr "Les sessions ont été révoquées" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Set a password" +msgstr "Définir un mot de passe" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Set up your document properties and recipient information" +msgstr "Configurez les propriétés de votre document et les informations du destinataire" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Set up your template properties and recipient information" +msgstr "Configurez les propriétés de votre modèle et les informations du destinataire" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/routes/_authenticated+/settings+/_layout.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Settings" +msgstr "Paramètres" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Setup" +msgstr "Configuration" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Share" +msgstr "Partager" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Share Signature Card" +msgstr "Partager la carte de signature" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Share Signing Card" +msgstr "Partager la carte de signature" + +#: packages/lib/constants/template.ts +msgid "Share the Link" +msgstr "Partager le lien" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Share your signing experience!" +msgstr "Partagez votre expérience de signature !" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Show" +msgstr "Afficher" + +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Show additional information" +msgstr "Afficher des informations supplémentaires" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Show advanced settings" +msgstr "Afficher les paramètres avancés" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Show templates in your public profile for your audience to sign and get started quickly" +msgstr "Afficher des modèles dans votre profil public pour que votre audience puisse signer et commencer rapidement" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/user-profile-timur.tsx +#: apps/remix/app/components/general/user-profile-skeleton.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Sign" +msgstr "Signer" + +#. placeholder {0}: recipient.name +#. placeholder {1}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "Sign as {0} <0>({1})" +msgstr "Signer comme {0} <0>({1})" + +#. placeholder {0}: recipient.name +#. placeholder {1}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +msgid "Sign as<0>{0} <1>({1})" +msgstr "Signer comme<0>{0} <1>({1})" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Sign document" +msgstr "Signer le document" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Sign Document" +msgstr "Signer le document" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Sign Documents" +msgstr "Signer des documents" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Sign field" +msgstr "Champ de signature" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Here" +msgstr "Signer ici" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: packages/email/template-components/template-reset-password.tsx +msgid "Sign In" +msgstr "Se connecter" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Sign in to your account" +msgstr "Connectez-vous à votre compte" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +msgid "Sign Out" +msgstr "Déconnexion" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Sign the document to complete the process." +msgstr "Signez le document pour terminer le processus." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +msgid "Sign up" +msgstr "S'inscrire" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Up with Google" +msgstr "S'inscrire avec Google" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Up with OIDC" +msgstr "S'inscrire avec OIDC" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Signature" +msgstr "Signature" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signature ID" +msgstr "ID de signature" + +#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx +msgid "Signature is too small" +msgstr "La signature est trop petite" + +#: apps/remix/app/components/forms/profile.tsx +msgid "Signature Pad cannot be empty." +msgstr "Le champ de signature ne peut pas être vide." + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "Signature types" +msgstr "Types de signature" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Signatures Collected" +msgstr "Signatures collectées" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Signatures will appear once the document has been completed" +msgstr "Les signatures apparaîtront une fois le document complété" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/components/document/document-read-only-fields.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Signed" +msgstr "Signé" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signer" +msgstr "Signataire" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signer Events" +msgstr "Événements de signataire" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signers" +msgstr "Signataires" + +#: packages/ui/primitives/document-flow/add-signers.types.ts +msgid "Signers must have unique emails" +msgstr "Les signataires doivent avoir des e-mails uniques" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signing" +msgstr "Signature en cours" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signing Certificate" +msgstr "Certificat de signature" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signing certificate provided by" +msgstr "Certificat de signature fourni par" + +#: packages/lib/server-only/document/send-completed-email.ts +#: packages/lib/server-only/document/send-completed-email.ts +msgid "Signing Complete!" +msgstr "Signature Complète !" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Signing for" +msgstr "Signé pour" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Signing in..." +msgstr "Connexion en cours..." + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Signing Links" +msgstr "Liens de signature" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Signing links have been generated for this document." +msgstr "Des liens de signature ont été générés pour ce document." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Signing order is enabled." +msgstr "L'ordre de signature est activé." + +#: apps/remix/app/routes/_authenticated+/admin+/leaderboard.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +msgid "Signing Volume" +msgstr "Volume de signatures" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Signups are disabled." +msgstr "Les inscriptions sont désactivées." + +#. placeholder {0}: DateTime.fromJSDate(publicProfile.badge.since).toFormat('LLL ‘yy') +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "Since {0}" +msgstr "Depuis {0}" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Site Banner" +msgstr "Bannière du site" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Site Settings" +msgstr "Paramètres du site" + +#: 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." +msgstr "Certains signataires n'ont pas été assignés à un champ de signature. Veuillez assigner au moins 1 champ de signature à chaque signataire avant de continuer." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: packages/ui/components/document/document-share-button.tsx +msgid "Something went wrong" +msgstr "Quelque chose a mal tourné" + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Something went wrong while attempting to verify your email address for <0>{0}. Please try again later." +msgstr "Quelque chose a mal tourné lors de la tentative de vérification de votre adresse e-mail pour <0>{0}. Veuillez réessayer plus tard." + +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Something went wrong while loading the document." +msgstr "Une erreur s'est produite lors du chargement du document." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Something went wrong while loading your passkeys." +msgstr "Quelque chose a mal tourné lors du chargement de vos clés d'authentification." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Something went wrong while sending the confirmation email." +msgstr "Quelque chose a mal tourné lors de l'envoi de l'e-mail de confirmation." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Something went wrong while updating the team billing subscription, please contact support." +msgstr "Quelque chose a mal tourné lors de la mise à jour de l'abonnement de l'équipe, veuillez contacter le support." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Something went wrong!" +msgstr "Quelque chose a mal tourné !" + +#: packages/ui/primitives/data-table.tsx +msgid "Something went wrong." +msgstr "Quelque chose a mal tourné." + +#: apps/remix/app/components/forms/token.tsx +msgid "Something went wrong. Please try again later." +msgstr "Quelque chose a mal tourné. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Something went wrong. Please try again or contact support." +msgstr "Quelque chose a mal tourné. Veuillez réessayer ou contacter le support." + +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +msgid "Sorry, we were unable to download the audit logs. Please try again later." +msgstr "Désolé, nous n'avons pas pu télécharger les journaux d'audit. Veuillez réessayer plus tard." + +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +msgid "Sorry, we were unable to download the certificate. Please try again later." +msgstr "Désolé, nous n'avons pas pu télécharger le certificat. Veuillez réessayer plus tard." + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Source" +msgstr "Source" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Stats" +msgstr "Statistiques" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Status" +msgstr "Statut" + +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Step <0>{step} of {maxStep}" +msgstr "Étape <0>{step} sur {maxStep}" + +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Stripe" +msgstr "Stripe" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Stripe customer created successfully" +msgstr "Le client Stripe a été créé avec succès" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Stripe Customer ID" +msgstr "ID client Stripe" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Subject <0>(Optional)" +msgstr "Objet <0>(Optionnel)" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Subscribe" +msgstr "S'abonner" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Subscription" +msgstr "Abonnement" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Subscription claim created successfully." +msgstr "La réclamation d'abonnement a été créée avec succès." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Subscription claim deleted successfully." +msgstr "La réclamation d'abonnement a été supprimée avec succès." + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Subscription claim updated successfully." +msgstr "La réclamation d'abonnement a été mise à jour avec succès." + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Subscription Claims" +msgstr "Réclamations d'abonnement" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/general/verify-email-banner.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Success" +msgstr "Succès" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Successfully created passkey" +msgstr "Clé d'authentification créée avec succès" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Successfully created: {successCount}" +msgstr "Créés avec succès : {successCount}" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Summary:" +msgstr "Résumé :" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "System Requirements" +msgstr "Exigences du système" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "System Theme" +msgstr "Thème système" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +msgid "Team" +msgstr "Équipe" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/delete-team.ts +msgid "Team \"{0}\" has been deleted on Documenso" +msgstr "L'équipe \"{0}\" a été supprimée sur Documenso" + +#: packages/lib/constants/teams-translations.ts +msgid "Team Admin" +msgstr "Admin de l'équipe" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Team Assignments" +msgstr "Affectations de l'équipe" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Team Count" +msgstr "Nombre d'équipes" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Team email" +msgstr "Adresse e-mail de l'équipe" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Team Email" +msgstr "E-mail d'équipe" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email already verified!" +msgstr "E-mail d'équipe déjà vérifié !" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Team email has been removed" +msgstr "L'adresse e-mail de l'équipe a été supprimée" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/delete-team-email.ts +msgid "Team email has been revoked for {0}" +msgstr "L'email d'équipe a été révoqué pour {0}" + +#: packages/email/templates/team-email-removed.tsx +msgid "Team email removed" +msgstr "Email d'équipe supprimé" + +#: packages/email/templates/team-email-removed.tsx +msgid "Team email removed for {teamName} on Documenso" +msgstr "Email d'équipe supprimé pour {teamName} sur Documenso" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email verification" +msgstr "Vérification de l'e-mail de l'équipe" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email verified!" +msgstr "E-mail de l'équipe vérifié !" + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "Team email was updated." +msgstr "L'e-mail de l'équipe a été mis à jour." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +msgid "Team Groups" +msgstr "Groupes de l'équipe" + +#: packages/lib/constants/teams-translations.ts +msgid "Team Manager" +msgstr "Gestionnaire d'équipe" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: packages/lib/constants/teams-translations.ts +msgid "Team Member" +msgstr "Membre de l'équipe" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +msgid "Team Members" +msgstr "Membres de l'équipe" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Team members have been added." +msgstr "Les membres de l'équipe ont été ajoutés." + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Team Name" +msgstr "Nom de l'équipe" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "Team not found" +msgstr "Équipe introuvable" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Team Only" +msgstr "Équipe uniquement" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Team only templates are not linked anywhere and are visible only to your team." +msgstr "Les modèles uniquement pour l'équipe ne sont liés nulle part et ne sont visibles que pour votre équipe." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Team Preferences" +msgstr "Préférences de l'équipe" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Team Role" +msgstr "Rôle de l'équipe" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Team settings" +msgstr "Paramètres de l'équipe" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "Team Settings" +msgstr "Paramètres de l'équipe" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Team url" +msgstr "URL de l'équipe" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Team URL" +msgstr "URL de l'équipe" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Teams" +msgstr "Équipes" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Teams help you organise your work and collaborate with others. Create your first team to get started." +msgstr "Les équipes vous aident à organiser votre travail et à collaborer avec d'autres. Créez votre première équipe pour commencer." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Teams that this organisation group is currently assigned to" +msgstr "Équipes auxquelles ce groupe d'organisation est actuellement attribué" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id.edit.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Template" +msgstr "Modèle" + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Template Created" +msgstr "Modèle créé" + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Template deleted" +msgstr "Modèle supprimé" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Template document uploaded" +msgstr "Document modèle importé" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Template duplicated" +msgstr "Modèle dupliqué" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Template has been removed from your public profile." +msgstr "Le modèle a été retiré de votre profil public." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Template has been updated." +msgstr "Le modèle a été mis à jour." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Template is using legacy field insertion" +msgstr "Le modèle utilise l'insertion de champ héritée" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Template moved" +msgstr "Modèle déplacé" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Template saved" +msgstr "Modèle enregistré" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Template title" +msgstr "Titre du modèle" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +msgid "Template updated successfully" +msgstr "Modèle mis à jour avec succès" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Templates" +msgstr "Modèles" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Templates allow you to quickly generate documents with pre-filled recipients and fields." +msgstr "Les modèles vous permettent de générer rapidement des documents avec des destinataires et des champs pré-remplis." + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Text" +msgstr "Texte" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Text Align" +msgstr "Alignement du texte" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Text Color" +msgstr "Couleur du texte" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Thank you for completing the signing process." +msgstr "Merci d'avoir complété le processus de signature." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." +msgstr "Merci d'utiliser Documenso pour signer vos documents électroniquement. L'objectif de cette clause est de vous informer sur le processus, la légalité et vos droits concernant l'utilisation de la signature électronique sur notre plateforme. En choisissant d'utiliser un sytème de signature électronique, vous acceptez les termes et conditions exposés ci-dessous." + +#: packages/email/template-components/template-forgot-password.tsx +msgid "That's okay, it happens! Click the button below to reset your password." +msgstr "Ce n'est pas grave, cela arrive ! Cliquez sur le bouton ci-dessous pour réinitialiser votre mot de passe." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "The account has been deleted successfully." +msgstr "Le compte a été supprimé avec succès." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "The account has been disabled successfully." +msgstr "Le compte a été désactivé avec succès." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "The account has been enabled successfully." +msgstr "Le compte a été activé avec succès." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "The authentication methods required for recipients to sign fields" +msgstr "Les méthodes d'authentification requises pour que les destinataires signent les champs" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "The authentication methods required for recipients to sign the signature field." +msgstr "Les méthodes d'authentification requises pour que les destinataires signent le champ de signature." + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "The authentication methods required for recipients to view the document." +msgstr "Les méthodes d'authentification requises pour que les destinataires consultent le document." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "The content to show in the banner, HTML is allowed" +msgstr "Le contenu à afficher dans la bannière, le HTML est autorisé" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "The direct link has been copied to your clipboard" +msgstr "Le lien direct a été copié dans votre presse-papiers" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "The document has been moved successfully." +msgstr "Le document a été déplacé avec succès." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "The document is already saved and cannot be changed." +msgstr "Le document est déjà enregistré et ne peut pas être modifié." + +#: apps/remix/app/components/embed/embed-document-completed.tsx +msgid "The document is now completed, please follow any instructions provided within the parent application." +msgstr "Le document est maintenant complet, veuillez suivre toutes les instructions fournies dans l'application parente." + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "The document owner has been notified of this rejection. No further action is required from you at this time. The document owner may contact you with any questions regarding this rejection." +msgstr "Le propriétaire du document a été informé de ce rejet. Aucune action supplémentaire n'est requise de votre part pour le moment. Le propriétaire du document peut vous contacter pour toute question concernant ce rejet." + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary." +msgstr "Le propriétaire du document a été informé de votre décision. Il peut vous contacter pour des instructions supplémentaires si nécessaire." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "The document was created but could not be sent to recipients." +msgstr "Le document a été créé mais n'a pas pu être envoyé aux destinataires." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "The document will be hidden from your account" +msgstr "Le document sera caché de votre compte" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "The document will be immediately sent to recipients if this is checked." +msgstr "Le document sera immédiatement envoyé aux destinataires si cela est coché." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The document's name" +msgstr "Le nom du document" + +#: apps/remix/app/components/forms/signin.tsx +msgid "The email or password provided is incorrect" +msgstr "L'email ou le mot de passe fourni est incorrect" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The events that will trigger a webhook to be sent to your URL." +msgstr "Les événements qui déclencheront un webhook à envoyer à votre URL." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "The fields have been updated to the new field insertion method successfully" +msgstr "Les champs ont été mis à jour avec la nouvelle méthode d'insertion de champ avec succès" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "The folder you are trying to delete does not exist." +msgstr "Le dossier que vous essayez de supprimer n'existe pas." + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "The folder you are trying to move does not exist." +msgstr "Le dossier que vous essayez de déplacer n'existe pas." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "The folder you are trying to move the document to does not exist." +msgstr "Le dossier vers lequel vous essayez de déplacer le document n'existe pas." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "The folder you are trying to move the template to does not exist." +msgstr "Le dossier vers lequel vous essayez de déplacer le modèle n'existe pas." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "The following errors occurred:" +msgstr "Les erreurs suivantes se sont produites :" + +#: packages/email/templates/team-delete.tsx +msgid "The following team has been deleted. You will no longer be able to access this team and its documents" +msgstr "L'équipe suivante a été supprimée. Vous ne pourrez plus accéder à cette équipe et à ses documents" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "The organisation group you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "Le groupe d'organisation que vous cherchez peut avoir été supprimé, renommé ou n'a peut-être jamais existé." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "The organisation role that will be applied to all members in this group." +msgstr "Le rôle d'organisation qui sera appliqué à tous les membres de ce groupe." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "The organisation you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "L'organisation que vous cherchez peut avoir été supprimée, renommée ou n'a peut-être jamais existé." + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "The organisation you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "L'organisation que vous cherchez peut avoir été supprimée, renommée ou n'a peut-être jamais existé." + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "The page you are looking for was moved, removed, renamed or might never have existed." +msgstr "La page que vous recherchez a été déplacée, supprimée, renommée ou n'a peut-être jamais existé." + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "The profile link has been copied to your clipboard" +msgstr "Le lien de profil a été copié dans votre presse-papiers" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "The profile you are looking for could not be found." +msgstr "Le profil que vous recherchez n'a pas pu être trouvé." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The public description that will be displayed with this template" +msgstr "La description publique qui sera affichée avec ce modèle" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The public name for your template" +msgstr "Le nom public pour votre modèle" + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "The reason provided for deletion is the following:" +msgstr "La raison fournie pour la suppression est la suivante :" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient can prepare the document for later signers by pre-filling suggest values." +msgstr "Le destinataire peut préparer le document pour les signataires ultérieurs en remplissant à l'avance les valeurs suggérées." + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "The recipient has been updated successfully" +msgstr "Le destinataire a été mis à jour avec succès" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is not required to take any action and receives a copy of the document after it is completed." +msgstr "Le destinataire n'est pas tenu de prendre des mesures et reçoit une copie du document après son achèvement." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to approve the document for it to be completed." +msgstr "Le destinataire doit approuver le document pour qu'il soit complété." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to sign the document for it to be completed." +msgstr "Le destinataire doit signer le document pour qu'il soit complété." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to view the document for it to be completed." +msgstr "Le destinataire doit visualiser le document pour qu'il soit complété." + +#: packages/ui/components/document/document-share-button.tsx +msgid "The sharing link could not be created at this time. Please try again." +msgstr "Le lien de partage n'a pas pu être créé pour le moment. Veuillez réessayer." + +#: packages/ui/components/document/document-share-button.tsx +msgid "The sharing link has been copied to your clipboard." +msgstr "Le lien de partage a été copié dans votre presse-papiers." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The signer's email" +msgstr "L'email du signataire" + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The signer's name" +msgstr "Le nom du signataire" + +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "The signing link has been copied to your clipboard." +msgstr "Le lien de signature a été copié dans votre presse-papiers." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." +msgstr "La bannière du site est un message affiché en haut du site. Elle peut être utilisée pour afficher des informations importantes à vos utilisateurs." + +#: packages/email/templates/team-email-removed.tsx +msgid "The team email <0>{teamEmail} has been removed from the following team" +msgstr "L'email d'équipe <0>{teamEmail} a été supprimé de l'équipe suivante" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "The team you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "L'équipe que vous cherchez peut avoir été supprimée, renommée ou n'a peut-être jamais existé." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "The team you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "L'équipe que vous cherchez a peut-être été supprimée, renommée ou n'a peut-être jamais existé." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "The template has been moved successfully." +msgstr "Le modèle a été déplacé avec succès." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The template will be removed from your profile" +msgstr "Le modèle sera retiré de votre profil" + +#: apps/remix/app/components/forms/token.tsx +msgid "The token was copied to your clipboard." +msgstr "Le token a été copié dans votre presse-papiers." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "The token was deleted successfully." +msgstr "Le token a été supprimé avec succès." + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +msgid "The token you have used to reset your password is either expired or it never existed. If you have still forgotten your password, please request a new reset link." +msgstr "Le token que vous avez utilisé pour réinitialiser votre mot de passe a expiré ou n'a jamais existé. Si vous avez toujours oublié votre mot de passe, veuillez demander un nouveau lien de réinitialisation." + +#: apps/remix/app/components/forms/signin.tsx +msgid "The two-factor authentication code provided is incorrect" +msgstr "Le code d'authentification à deux facteurs fourni est incorrect" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "The types of signatures that recipients are allowed to use when signing the document." +msgstr "Les types de signatures que les destinataires peuvent utiliser lors de la signature du document." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The URL for Documenso to send webhook events to." +msgstr "L'URL pour Documenso pour envoyer des événements webhook." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "The user you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "L'utilisateur que vous cherchez peut avoir été supprimé, renommé ou n'a peut-être jamais existé." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "The webhook has been successfully deleted." +msgstr "Le webhook a été supprimé avec succès." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "The webhook has been updated successfully." +msgstr "Le webhook a été mis à jour avec succès." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The webhook was successfully created." +msgstr "Le webhook a été créé avec succès." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "There are no active drafts at the current moment. You can upload a document to start drafting." +msgstr "Il n'y a pas de brouillons actifs pour le moment. Vous pouvez importer un document pour commencer un brouillon." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "There are no completed documents yet. Documents that you have created or received will appear here once completed." +msgstr "Il n'y a pas encore de documents complétés. Les documents que vous avez créés ou reçus apparaîtront ici une fois complétés." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "There was an error uploading your file. Please try again." +msgstr "Il y a eu une erreur lors de l'importation de votre fichier. Veuillez réessayer." + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "These can be overriden by setting the authentication requirements directly on each recipient in the next step. Multiple methods can be selected." +msgstr "Cela peut être remplacé par le paramétrage direct des exigences d'authentification pour chaque destinataire à l'étape suivante. Plusieurs méthodes peuvent être sélectionnées." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "These will override any global settings. Multiple methods can be selected." +msgstr "Celles-ci remplaceront tous les paramètres globaux. Plusieurs méthodes peuvent être sélectionnées." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "They have permission on your behalf to:" +msgstr "Ils ont la permission en votre nom de:" + +#: apps/remix/app/components/forms/signin.tsx +msgid "This account has been disabled. Please contact support." +msgstr "Ce compte a été désactivé. Veuillez contacter le support." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This account has not been verified. Please verify your account before signing in." +msgstr "Ce compte n'a pas été vérifié. Veuillez vérifier votre compte avant de vous connecter." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "This action is not reversible. Please be certain." +msgstr "Cette action n'est pas réversible. Veuillez être sûr." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "This action is reversible, but please be careful as the account may be affected permanently (e.g. their settings and contents not being restored properly)." +msgstr "Cette action est réversible, mais veuillez faire attention car le compte peut être affecté de façon permanente (par exemple, leurs paramètres et contenus ne pourraient pas être restaurés correctement)." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "This claim is locked and cannot be deleted." +msgstr "Cette réclamation est verrouillée et ne peut pas être supprimée." + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." +msgstr "Ce document ne peut pas être récupéré, si vous souhaitez contester la raison des documents futurs, veuillez contacter le support." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "This document cannot be changed" +msgstr "Ce document ne peut pas être modifié" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "This document could not be deleted at this time. Please try again." +msgstr "Ce document n'a pas pu être supprimé pour le moment. Veuillez réessayer." + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "This document could not be duplicated at this time. Please try again." +msgstr "Ce document n'a pas pu être dupliqué pour le moment. Veuillez réessayer." + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "This document could not be re-sent at this time. Please try again." +msgstr "Ce document n'a pas pu être renvoyé pour le moment. Veuillez réessayer." + +#: packages/ui/primitives/recipient-selector.tsx +msgid "This document has already been sent to this recipient. You can no longer edit this recipient." +msgstr "Ce document a déjà été envoyé à ce destinataire. Vous ne pouvez plus modifier ce destinataire." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "This document has been cancelled by the owner and is no longer available for others to sign." +msgstr "Ce document a été annulé par le propriétaire et n'est plus disponible pour d'autres à signer." + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "This document has been cancelled by the owner." +msgstr "Ce document a été annulé par le propriétaire." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document has been rejected by a recipient" +msgstr "Ce document a été rejeté par un destinataire" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document has been signed by all recipients" +msgstr "Ce document a été signé par tous les destinataires" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "This document is available in your Documenso account. You can view more details, recipients, and audit logs there." +msgstr "Ce document est disponible dans votre compte Documenso. Vous pouvez y voir plus de détails, destinataires, et journaux d'audit." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document is currently a draft and has not been sent" +msgstr "Ce document est actuellement un brouillon et n'a pas été envoyé" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "This document is using legacy field insertion, we recommend using the new field insertion method for more accurate results." +msgstr "Ce document utilise l'insertion de champ héritée, il est recommandé d'utiliser la nouvelle méthode d'insertion pour des résultats plus précis." + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "This document was created by you or a team member using the template above." +msgstr "Ce document a été créé par vous ou un membre de l'équipe en utilisant le modèle ci-dessus." + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "This document was created using a direct link." +msgstr "Ce document a été créé en utilisant un lien direct." + +#: packages/email/template-components/template-footer.tsx +msgid "This document was sent using <0>Documenso." +msgstr "Ce document a été envoyé via <0>Documenso." + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "This email confirms that you have rejected the document <0>\"{documentName}\" sent by {documentOwnerName}." +msgstr "Cet e-mail confirme que vous avez rejeté le document <0>\"{documentName}\" envoyé par {documentOwnerName}." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "This email is already being used by another team." +msgstr "Cet e-mail est déjà utilisé par une autre équipe." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the document owner when a recipient has signed the document." +msgstr "Cet e-mail est envoyé au propriétaire du document lorsqu'un destinataire a signé le document." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the recipient if they are removed from a pending document." +msgstr "Cet e-mail est envoyé au destinataire s'il est retiré d'un document en attente." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the recipient requesting them to sign the document." +msgstr "Cet e-mail est envoyé au destinataire lui demandant de signer le document." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email will be sent to the recipient who has just signed the document, if there are still other recipients who have not signed yet." +msgstr "Cet e-mail sera envoyé au destinataire qui vient de signer le document, s'il y a encore d'autres destinataires qui n'ont pas signé." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." +msgstr "Ce champ ne peut pas être modifié ou supprimé. Lorsque vous partagez le lien direct de ce modèle ou l'ajoutez à votre profil public, toute personne qui y accède peut saisir son nom et son email, et remplir les champs qui lui sont attribués." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "This folder contains multiple items. Deleting it will also delete all items in the folder, including nested folders and their contents." +msgstr "Ce dossier contient plusieurs éléments. Le supprimer supprimera également tous les éléments du dossier, y compris les dossiers imbriqués et leur contenu." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "This is how the document will reach the recipients once the document is ready for signing." +msgstr "Voici comment le document atteindra les destinataires une fois qu'il sera prêt à être signé." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation." +msgstr "Il s'agit de la réclamation avec laquelle cette organisation a initialement été créée. Tout changement de drapeau de fonctionnalité à cette revendication sera rétroporté dans cette organisation." + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "This link is invalid or has expired. Please contact your team to resend a verification." +msgstr "Ce lien est invalide ou a expiré. Veuillez contacter votre équipe pour renvoyer une vérification." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "This organisation, and any associated data will be permanently deleted." +msgstr "Cette organisation, ainsi que toutes les données associées, seront définitivement supprimées." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "This passkey has already been registered." +msgstr "Cette clé d'accès a déjà été enregistrée." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This passkey is not configured for this application. Please login and add one in the user settings." +msgstr "Cette clé d'accès n'est pas configurée pour cette application. Veuillez vous connecter et en ajouter une dans les paramètres de l'utilisateur." + +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "This recipient can no longer be modified as they have signed a field, or completed the document." +msgstr "Ce destinataire ne peut plus être modifié car il a signé un champ ou complété le document." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This session has expired. Please try again." +msgstr "Cette session a expiré. Veuillez réessayer." + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "This signer has already signed the document." +msgstr "Ce signataire a déjà signé le document." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "This team, and any associated data excluding billing invoices will be permanently deleted." +msgstr "Cette équipe, et toutes les données associées à l'exception des factures de facturation, seront définitivement supprimées." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "This template could not be deleted at this time. Please try again." +msgstr "Ce modèle n'a pas pu être supprimé pour le moment. Veuillez réessayer." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "This template is using legacy field insertion, we recommend using the new field insertion method for more accurate results." +msgstr "Ce modèle utilise l'insertion de champ héritée, il est recommandé d'utiliser la nouvelle méthode d'insertion pour des résultats plus précis." + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "This token is invalid or has expired. No action is needed." +msgstr "Ce token est invalide ou a expiré. Aucune action n'est nécessaire." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "This token is invalid or has expired. Please contact your team for a new invitation." +msgstr "Ce token est invalide ou a expiré. Veuillez contacter votre équipe pour une nouvelle invitation." + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "This URL is already in use." +msgstr "Cette URL est déjà utilisée." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to all recipients if a pending document has been deleted." +msgstr "Cela sera envoyé à tous les destinataires si un document en attente a été supprimé." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to all recipients once the document has been fully completed." +msgstr "Cela sera envoyé à tous les destinataires une fois que le document aura été entièrement complété." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to the document owner once the document has been fully completed." +msgstr "Cela sera envoyé au propriétaire du document une fois que le document aura été entièrement complété." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported" +msgstr "Cela ne fera que rétroporter les drapeaux de fonctionnalité qui sont activés, tout ce qui est désactivé dans la réclamation initiale ne sera pas rétroporté" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account." +msgstr "Cela entraînera votre déconnexion de tous les autres appareils. Vous devrez vous reconnecter sur ces appareils pour continuer à utiliser votre compte." + +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +msgid "Time" +msgstr "Temps" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Time zone" +msgstr "Fuseau horaire" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Time Zone" +msgstr "Fuseau horaire" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Title" +msgstr "Titre" + +#: packages/ui/primitives/document-flow/add-settings.types.ts +msgid "Title cannot be empty" +msgstr "Le titre ne peut pas être vide" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "To accept this invitation you must create an account." +msgstr "Pour accepter cette invitation, vous devez créer un compte." + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "To change the email you must remove and add a new email address." +msgstr "Pour changer l'e-mail, vous devez supprimer et ajouter une nouvelle adresse e-mail." + +#. placeholder {0}: userToEnable.email +#. placeholder {0}: userToDisable.email +#. placeholder {0}: user.email +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "To confirm, please enter the accounts email address <0/>({0})." +msgstr "Pour confirmer, veuillez entrer l'adresse e-mail du compte <0/>({0})." + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "To confirm, please enter the reason" +msgstr "Pour confirmer, veuillez entrer la raison" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "To enable two-factor authentication, scan the following QR code using your authenticator app." +msgstr "Pour activer l'authentification à deux facteurs, scannez le code QR suivant à l'aide de votre application d'authentification." + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +msgid "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox." +msgstr "Pour accéder à votre compte, veuillez confirmer votre adresse e-mail en cliquant sur le lien de confirmation dans votre boîte de réception." + +#. placeholder {0}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +msgid "To mark this document as viewed, you need to be logged in as <0>{0}" +msgstr "Pour marquer ce document comme consulté, vous devez être connecté en tant que <0>{0}" + +#. placeholder {0}: emptyCheckboxFields.length > 0 ? 'Checkbox' : emptyRadioFields.length > 0 ? 'Radio' : 'Select' +#. placeholder {0}: emptyCheckboxFields.length > 0 ? 'Checkbox' : emptyRadioFields.length > 0 ? 'Radio' : 'Select' +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "To proceed further, please set at least one value for the {0} field." +msgstr "Pour continuer, veuillez définir au moins une valeur pour le champ {0}." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "To use our electronic signature service, you must have access to:" +msgstr "Pour utiliser notre service de signature électronique, vous devez avoir accès à :" + +#: apps/remix/app/components/embed/embed-authentication-required.tsx +msgid "To view this document you need to be signed into your account, please sign in to continue." +msgstr "Pour afficher ce document, vous devez être connecté à votre compte, veuillez vous connecter pour continuer." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Toggle the switch to hide your profile from the public." +msgstr "Basculer l'interrupteur pour cacher votre profil du public." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Toggle the switch to show your profile to the public." +msgstr "Basculer l'interrupteur pour afficher votre profil au public." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Token" +msgstr "Jeton" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token copied to clipboard" +msgstr "Token copié dans le presse-papiers" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token created" +msgstr "Token créé" + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Token deleted" +msgstr "Token supprimé" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Token doesn't have an expiration date" +msgstr "Le token n'a pas de date d'expiration" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token expiration date" +msgstr "Date d'expiration du token" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Token has expired. Please try again." +msgstr "Le token a expiré. Veuillez réessayer." + +#: apps/remix/app/components/forms/token.tsx +msgid "Token name" +msgstr "Nom du token" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Documents" +msgstr "Total des documents" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Recipients" +msgstr "Total des destinataires" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Total rows processed: {totalProcessed}" +msgstr "Lignes totales traitées : {totalProcessed}" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Signers that Signed Up" +msgstr "Total des signataires qui se sont inscrits" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Users" +msgstr "Total des utilisateurs" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Triggers" +msgstr "Déclencheurs" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Two factor authentication" +msgstr "Authentification à deux facteurs" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app." +msgstr "Les codes de récupération de l'authentification à deux facteurs sont utilisés pour accéder à votre compte dans le cas où vous perdez l'accès à votre application d'authentification." + +#: apps/remix/app/components/forms/signin.tsx +msgid "Two-Factor Authentication" +msgstr "Authentification à deux facteurs" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Two-factor authentication disabled" +msgstr "Authentification à deux facteurs désactivée" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Two-factor authentication enabled" +msgstr "Authentification à deux facteurs activée" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Two-factor authentication has been disabled for your account. You will no longer be required to enter a code from your authenticator app when signing in." +msgstr "L'authentification à deux facteurs a été désactivée pour votre compte. Vous ne serez plus tenu d'entrer un code de votre application d'authentification lors de la connexion." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Two-Factor Re-Authentication" +msgstr "Ré-authentification à deux facteurs" + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: packages/lib/constants/document.ts +msgid "Type" +msgstr "Type" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Type a command or search..." +msgstr "Tapez une commande ou recherchez..." + +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "Typed signatures are not allowed. Please draw your signature." +msgstr "Les signatures dactylographiées ne sont pas autorisées. Veuillez dessiner votre signature." + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +msgid "Uh oh! Looks like you're missing a token" +msgstr "Oh oh ! On dirait qu'il vous manque un token" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Unable to change the language at this time. Please try again later." +msgstr "Impossible de changer la langue pour le moment. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Unable to copy recovery code" +msgstr "Impossible de copier le code de récupération" + +#: apps/remix/app/components/forms/token.tsx +msgid "Unable to copy token" +msgstr "Impossible de copier le token" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Unable to create direct template access. Please try again later." +msgstr "Impossible de créer un accès direct au modèle. Veuillez réessayer plus tard." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Unable to decline this invitation at this time." +msgstr "Impossible de refuser cette invitation pour le moment." + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Unable to delete invitation. Please try again." +msgstr "Impossible de supprimer l'invitation. Veuillez réessayer." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Unable to delete team" +msgstr "Impossible de supprimer l'équipe" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Unable to disable two-factor authentication" +msgstr "Impossible de désactiver l'authentification à deux facteurs" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Unable to join this organisation at this time." +msgstr "Impossible de rejoindre cette organisation pour le moment." + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Unable to load document history" +msgstr "Impossible de charger l'historique des documents" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Unable to load documents" +msgstr "Impossible de charger les documents" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Unable to load your public profile templates at this time" +msgstr "Impossible de charger vos modèles de profil public pour le moment" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Unable to remove email verification at this time. Please try again." +msgstr "Impossible de retirer la vérification par e-mail pour le moment. Veuillez réessayer." + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Unable to remove team email at this time. Please try again." +msgstr "Impossible de retirer l'e-mail de l'équipe pour le moment. Veuillez réessayer." + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Unable to resend invitation. Please try again." +msgstr "Impossible de renvoyer l'invitation. Veuillez réessayer." + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Unable to resend verification at this time. Please try again." +msgstr "Impossible de renvoyer la vérification pour le moment. Veuillez réessayer." + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +msgid "Unable to reset password" +msgstr "Impossible de réinitialiser le mot de passe" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Unable to setup two-factor authentication" +msgstr "Impossible de configurer l'authentification à deux facteurs" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Unable to sign in" +msgstr "Impossible de se connecter" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "Unauthorized" +msgstr "Non autorisé" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Uncompleted" +msgstr "Non complet" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Unknown" +msgstr "Inconnu" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "Unlimited" +msgstr "Illimité" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Unlimited documents, API and more" +msgstr "Documents illimités, API et plus" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Unpin" +msgstr "Détacher" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Untitled Group" +msgstr "Groupe sans titre" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Update" +msgstr "Mettre à jour" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Update Banner" +msgstr "Mettre à jour la bannière" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Update Billing" +msgstr "Mettre à jour la facturation" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Update Claim" +msgstr "Mettre à jour la réclamation" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Update current organisation" +msgstr "Mettre à jour l'organisation actuelle" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Update Fields" +msgstr "Mettre à jour les champs" + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Update organisation" +msgstr "Mettre à jour l'organisation" + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "Update organisation member" +msgstr "Mettre à jour le membre de l'organisation" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Update passkey" +msgstr "Mettre à jour la clé d'accès" + +#: apps/remix/app/components/forms/password.tsx +msgid "Update password" +msgstr "Mettre à jour le mot de passe" + +#: apps/remix/app/components/forms/profile.tsx +msgid "Update profile" +msgstr "Mettre à jour le profil" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Update Recipient" +msgstr "Mettre à jour le destinataire" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Update role" +msgstr "Mettre à jour le rôle" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Update Subscription Claim" +msgstr "Mettre à jour la réclamation d'abonnement" + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "Update team" +msgstr "Mettre à jour l'équipe" + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "Update team email" +msgstr "Mettre à jour l'e-mail de l'équipe" + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "Update team group" +msgstr "Mettre à jour le groupe d'équipe" + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "Update team member" +msgstr "Mettre à jour le membre de l'équipe" + +#: packages/lib/constants/template.ts +msgid "Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient." +msgstr "Mettez à jour le rôle et ajoutez des champs selon les besoins pour le destinataire direct. L'individu qui utilise le lien direct signera le document en tant que destinataire direct." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Update user" +msgstr "Mettre à jour l'utilisateur" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Update webhook" +msgstr "Mettre à jour le webhook" + +#: apps/remix/app/components/forms/password.tsx +msgid "Updating password..." +msgstr "Mise à jour du mot de passe..." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Updating Your Information" +msgstr "Mise à jour de vos informations" + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "Upgrade" +msgstr "Améliorer" + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Upgrade <0>{0} to {planName}" +msgstr "Mettre à niveau <0>{0} vers {planName}" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Upgrade your plan to upload more documents" +msgstr "Mettez à niveau votre plan pour importer plus de documents" + +#: packages/lib/constants/document.ts +msgid "Upload" +msgstr "Importer" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload a CSV file to create multiple documents from this template. Each row represents one document with its recipient details." +msgstr "Importer un fichier CSV pour créer plusieurs documents à partir de ce modèle. Chaque ligne représente un document avec les coordonnées de son destinataire." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Upload a custom document to use instead of the template's default document" +msgstr "Importer un document personnalisé à utiliser à la place du modèle par défaut" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload and Process" +msgstr "Importer et traiter" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Upload Avatar" +msgstr "Importer un avatar" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload CSV" +msgstr "Importer le CSV" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Upload custom document" +msgstr "Importer un document personnalisé" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +#: packages/ui/primitives/document-upload.tsx +msgid "Upload Document" +msgstr "Importer le document" + +#: packages/ui/primitives/signature-pad/signature-pad-upload.tsx +msgid "Upload Signature" +msgstr "Importer une signature" + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "Upload Template Document" +msgstr "Importer le document modèle" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Upload your brand logo (max 5MB, JPG, PNG, or WebP)" +msgstr "Téléchargez votre logo de marque (max 5 Mo, JPG, PNG ou WebP)" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Uploaded by" +msgstr "Téléversé par" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file is too large" +msgstr "Le fichier importé est trop volumineux" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file is too small" +msgstr "Le fichier importé est trop petit" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file not an allowed file type" +msgstr "Le fichier importé n'est pas un type de fichier autorisé" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Uploading document..." +msgstr "Importation du document..." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Use" +msgstr "Utiliser" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Use Authenticator" +msgstr "Utiliser l'authentificateur" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Use Backup Code" +msgstr "Utiliser le code de secours" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Use Template" +msgstr "Utiliser le modèle" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Use your passkey for authentication" +msgstr "Utilisez votre clé d'accès pour l'authentification" + +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +msgid "User" +msgstr "Utilisateur" + +#: apps/remix/app/components/forms/password.tsx +msgid "User has no password." +msgstr "L'utilisateur n'a pas de mot de passe." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "User not found" +msgstr "Utilisateur non trouvé" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "User not found." +msgstr "Utilisateur non trouvé." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "User Organisations" +msgstr "Organisations utilisateur" + +#: apps/remix/app/components/forms/signup.tsx +msgid "User profiles are here!" +msgstr "Les profils des utilisateurs sont ici !" + +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "User settings" +msgstr "Paramètres de l'utilisateur" + +#: apps/remix/app/components/forms/signup.tsx +msgid "User with this email already exists. Please use a different email address." +msgstr "Un utilisateur avec cet e-mail existe déjà. Veuillez utiliser une adresse e-mail différente." + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Users" +msgstr "Utilisateurs" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Validation" +msgstr "Validation" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Value" +msgstr "Valeur" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verification Email Sent" +msgstr "Email de vérification envoyé" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verification email sent successfully." +msgstr "Email de vérification envoyé avec succès." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify Now" +msgstr "Vérifier maintenant" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify your email address" +msgstr "Vérifiez votre adresse e-mail" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify your email address to unlock all features." +msgstr "Vérifiez votre adresse e-mail pour débloquer toutes les fonctionnalités." + +#: apps/remix/app/components/general/document/document-upload.tsx +msgid "Verify your email to upload documents." +msgstr "Vérifiez votre e-mail pour importer des documents." + +#: packages/email/templates/confirm-team-email.tsx +msgid "Verify your team email address" +msgstr "Vérifiez votre adresse e-mail d'équipe" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Version History" +msgstr "Historique des versions" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "View" +msgstr "Voir" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View activity" +msgstr "Voir l'activité" + +#: packages/email/templates/confirm-team-email.tsx +msgid "View all documents sent to and from this email address" +msgstr "Voir tous les documents envoyés à et depuis cette adresse e-mail" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "View all documents sent to your account" +msgstr "Voir tous les documents envoyés à votre compte" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View all recent security activity related to your account." +msgstr "Voir toute l'activité de sécurité récente liée à votre compte." + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "View all related documents" +msgstr "Voir tous les documents associés" + +#: apps/remix/app/routes/_authenticated+/settings+/security.activity.tsx +msgid "View all security activity related to your account." +msgstr "Voir toute l'activité de sécurité liée à votre compte." + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View and manage all active sessions for your account." +msgstr "Afficher et gérer toutes les sessions actives de votre compte." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "View Codes" +msgstr "Voir les codes" + +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "View document" +msgstr "Voir le document" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/email/template-components/template-document-rejected.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "View Document" +msgstr "Voir le document" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "View documents associated with this email" +msgstr "Voir les documents associés à cet e-mail" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "View invites" +msgstr "Voir les invitations" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "View more" +msgstr "Voir plus" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "View next document" +msgstr "Voir le document suivant" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "View Original Document" +msgstr "Voir le document original" + +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "View owner" +msgstr "Afficher le propriétaire" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "View plans" +msgstr "Voir les forfaits" + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "View Recovery Codes" +msgstr "Voir les codes de récupération" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "View teams" +msgstr "Voir les équipes" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Viewed" +msgstr "Vu" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewer" +msgstr "Lecteur" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewers" +msgstr "Lecteurs" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewing" +msgstr "Consultation" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Waiting" +msgstr "En attente" + +#: packages/email/template-components/template-document-pending.tsx +msgid "Waiting for others" +msgstr "En attente des autres" + +#: packages/lib/server-only/document/send-pending-email.ts +msgid "Waiting for others to complete signing." +msgstr "En attente que d'autres terminent la signature." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Waiting for others to sign" +msgstr "En attente que d'autres signent" + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "Waiting for Your Turn" +msgstr "En attente de votre tour" + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "Want to send slick signing links like this one? <0>Check out Documenso." +msgstr "Vous voulez envoyer des liens de signature élégants comme celui-ci ? <0>Découvrez Documenso." + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Want your own public profile?" +msgstr "Vous voulez votre propre profil public ?" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Warning: Assistant as last signer" +msgstr "Avertissement : Assistant comme dernier signataire" + +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "We are unable to proceed to the billing portal at this time. Please try again, or contact support." +msgstr "Nous ne pouvons pas accéder au portail de facturation pour le moment. Veuillez réessayer ou contacter le support." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "We are unable to remove this passkey at the moment. Please try again later." +msgstr "Nous ne pouvons pas supprimer cette clé de passkey pour le moment. Veuillez réessayer plus tard." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "We are unable to update this passkey at the moment. Please try again later." +msgstr "Nous ne pouvons pas mettre à jour cette clé de passkey pour le moment. Veuillez réessayer plus tard." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "We couldn't create a Stripe customer. Please try again." +msgstr "Nous n'avons pas pu créer un client Stripe. Veuillez réessayer." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "We couldn't update the group. Please try again." +msgstr "Nous n'avons pas pu mettre à jour le groupe. Veuillez réessayer." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "We couldn't update the organisation. Please try again." +msgstr "Nous n'avons pas pu mettre à jour l'organisation. Veuillez réessayer." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "We encountered an error while removing the direct template link. Please try again later." +msgstr "Une erreur s'est produite lors de la suppression du lien direct vers le modèle. Veuillez réessayer plus tard." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "We encountered an error while updating the webhook. Please try again later." +msgstr "Une erreur s'est produite lors de la mise à jour du webhook. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "We encountered an unknown error while attempting to add team members. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative d'ajout de membres à l'équipe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "We encountered an unknown error while attempting to add this email. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de l'ajout de cet e-mail. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a group. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de création d'un groupe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a organisation. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de création d'une organisation. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a team. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la création d'une équipe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete it. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la suppression. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this organisation. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de suppression de cette organisation. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this team. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la suppression de cette équipe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this token. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la suppression de ce token. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete your account. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la suppression de votre compte. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "We encountered an unknown error while attempting to disable access." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de désactivation de l'accès." + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "We encountered an unknown error while attempting to enable access." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative d'activation de l'accès." + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "We encountered an unknown error while attempting to invite organisation members. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative d'inviter des membres de l'organisation. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "We encountered an unknown error while attempting to leave this organisation. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de quitter cette organisation. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this group. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de supprimer ce groupe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this template from your profile. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la suppression de ce modèle de votre profil. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this user. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la suppression de cet utilisateur. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "We encountered an unknown error while attempting to reset your password. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la réinitialisation de votre mot de passe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "We encountered an unknown error while attempting to revoke access. Please try again or contact support." +msgstr "Une erreur inconnue s'est produite lors de la révocation de l'accès. Veuillez réessayer ou contacter le support." + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "We encountered an unknown error while attempting to sign you In. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la connexion. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "We encountered an unknown error while attempting to sign you Up. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de l'inscription. Veuillez réessayer plus tard." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "We encountered an unknown error while attempting to update the banner. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la mise à jour de la bannière. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "We encountered an unknown error while attempting to update the template. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la mise à jour du modèle. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "We encountered an unknown error while attempting to update this organisation member. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de mise à jour de ce membre de l'organisation. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "We encountered an unknown error while attempting to update this team member. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la mise à jour de ce membre de l'équipe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "We encountered an unknown error while attempting to update your organisation. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de mise à jour de votre organisation. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/password.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "We encountered an unknown error while attempting to update your password. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la mise à jour de votre mot de passe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "We encountered an unknown error while attempting to update your public profile. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la mise à jour de votre profil public. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "We encountered an unknown error while attempting to update your team. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la mise à jour de votre équipe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "We encountered an unknown error while attempting update the team email. Please try again later." +msgstr "Une erreur inconnue s'est produite lors de la mise à jour de l'e-mail de l'équipe. Veuillez réessayer plus tard." + +#: apps/remix/app/components/forms/profile.tsx +msgid "We encountered an unknown error while attempting update your profile. Please try again later." +msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de mise à jour de votre profil. Veuillez réessayer plus tard." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "We have sent a confirmation email for verification." +msgstr "Nous avons envoyé un e-mail de confirmation pour vérification." + +#: apps/remix/app/components/forms/signup.tsx +msgid "We need your signature to sign documents" +msgstr "Nous avons besoin de votre signature pour signer des documents" + +#: apps/remix/app/components/forms/token.tsx +msgid "We were unable to copy the token to your clipboard. Please try again." +msgstr "Nous n'avons pas pu copier le token dans votre presse-papiers. Veuillez réessayer." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "We were unable to copy your recovery code to your clipboard. Please try again." +msgstr "Nous n'avons pas pu copier votre code de récupération dans votre presse-papiers. Veuillez réessayer." + +#: apps/remix/app/components/forms/signup.tsx +msgid "We were unable to create your account. Please review the information you provided and try again." +msgstr "Nous n'avons pas pu créer votre compte. Veuillez vérifier les informations que vous avez fournies et réessayer." + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "We were unable to disable two-factor authentication for your account. Please ensure that you have entered your password and backup code correctly and try again." +msgstr "Nous n'avons pas pu désactiver l'authentification à deux facteurs pour votre compte. Veuillez vous assurer que vous avez correctement entré votre mot de passe et votre code de secours, puis réessayez." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "We were unable to log you out at this time." +msgstr "Nous n'avons pas pu vous déconnecter pour le moment." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "We were unable to set your public profile to public. Please try again." +msgstr "Nous n'avons pas pu définir votre profil public comme public. Veuillez réessayer." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "We were unable to setup two-factor authentication for your account. Please ensure that you have entered your code correctly and try again." +msgstr "Nous n'avons pas pu configurer l'authentification à deux facteurs pour votre compte. Veuillez vous assurer que vous avez correctement entré votre code et réessayez." + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +msgid "We were unable to submit this document at this time. Please try again later." +msgstr "Nous n'avons pas pu soumettre ce document pour le moment. Veuillez réessayer plus tard." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "We were unable to update your branding preferences at this time, please try again later" +msgstr "Nous n'avons pas pu mettre à jour vos préférences de branding pour le moment, veuillez réessayer plus tard" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "We were unable to update your document preferences at this time, please try again later" +msgstr "Nous n'avons pas pu mettre à jour vos préférences de document pour le moment, veuillez réessayer plus tard" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "We were unable to verify your details. Please try again or contact support" +msgstr "Nous n'avons pas pu vérifier vos détails. Veuillez réessayer ou contacter le support" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "We were unable to verify your email at this time." +msgstr "Nous n'avons pas pu vérifier votre email pour le moment." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "We were unable to verify your email. If your email is not verified already, please try again." +msgstr "Nous n'avons pas pu vérifier votre e-mail. Si votre e-mail n'est pas déjà vérifié, veuillez réessayer." + +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "We will generate signing links for with you, which you can send to the recipients through your method of choice." +msgstr "Nous générerons des liens de signature pour vous, que vous pourrez envoyer aux destinataires par votre méthode de choix." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "We will generate signing links for you, which you can send to the recipients through your method of choice." +msgstr "Nous allons générer des liens de signature pour vous, que vous pouvez envoyer aux destinataires par votre méthode de choix." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "We won't send anything to notify recipients." +msgstr "Nous n'enverrons rien pour notifier les destinataires." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "We're all empty" +msgstr "Nous sommes tous vides" + +#: packages/email/template-components/template-document-pending.tsx +msgid "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." +msgstr "Nous attendons encore que d'autres signataires signent ce document.<0/>Nous vous préviendrons dès qu'il sera prêt." + +#: packages/email/templates/reset-password.tsx +msgid "We've changed your password as you asked. You can now sign in with your new password." +msgstr "Nous avons changé votre mot de passe comme demandé. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "We've sent a confirmation email to <0>{email}. Please check your inbox and click the link in the email to verify your account." +msgstr "Nous avons envoyé un e-mail de confirmation à <0>{email}. Veuillez vérifier votre boîte de réception et cliquer sur le lien de l'e-mail pour vérifier votre compte." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Webhook created" +msgstr "Webhook créé" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Webhook deleted" +msgstr "Webhook supprimé" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Webhook updated" +msgstr "Webhook mis à jour" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Webhook URL" +msgstr "URL du webhook" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Welcome" +msgstr "Bienvenue" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +msgid "Welcome back, we are lucky to have you." +msgstr "Contentieux, nous avons de la chance de vous avoir." + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Welcome back! Here's an overview of your account." +msgstr "Bon retour ! Voici un aperçu de votre compte." + +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Welcome to Documenso!" +msgstr "Bienvenue sur Documenso !" + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "Were you trying to edit this document instead?" +msgstr "Essayiez-vous d'éditer ce document à la place ?" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "What you can do with teams:" +msgstr "Ce que vous pouvez faire avec les équipes :" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "When enabled, signers can choose who should sign next in the sequence instead of following the predefined order." +msgstr "Lorsqu'il est activé, les signataires peuvent choisir qui doit signer ensuite au lieu de suivre l'ordre prédéfini." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "When you click continue, you will be prompted to add the first available authenticator on your system." +msgstr "Lorsque vous cliquez sur continuer, vous serez invité à ajouter le premier authentificateur disponible sur votre système." + +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "When you sign a document, we can automatically fill in and sign the following fields using information that has already been provided. You can also manually sign or remove any automatically signed fields afterwards if you desire." +msgstr "Lorsque vous signez un document, nous pouvons automatiquement remplir et signer les champs suivants à l'aide des informations déjà fournies. Vous pouvez également signer manuellement ou supprimer les champs signés automatiquement par la suite si vous le souhaitez." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." +msgstr "Lorsque vous utilisez notre plateforme pour apposer votre signature électronique sur des documents, vous consentez à le faire conformément à la loi sur les signatures électroniques dans le commerce mondial et national (E-Sign Act) et aux autres lois applicables. Cette action indique votre accord à utiliser des moyens électroniques pour signer des documents et recevoir des notifications." + +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." +msgstr "En attendant qu'ils le fassent, vous pouvez créer votre propre compte Documenso et commencer à signer des documents dès maintenant." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Whitelabeling, unlimited members and more" +msgstr "Marque blanche, membres illimités et plus" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Who do you want to remind?" +msgstr "Qui voulez-vous rappeler ?" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Withdrawing Consent" +msgstr "Retrait du consentement" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Write a description to display on your public profile" +msgstr "Écrivez une description à afficher sur votre profil public" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Yearly" +msgstr "Annuel" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Yes" +msgstr "Oui" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "You" +msgstr "Vous" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "You are about to delete <0>\"{documentTitle}\"" +msgstr "Vous êtes sur le point de supprimer <0>\"{documentTitle}\"" + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "You are about to delete <0>{0}. All data related to this organisation such as teams, documents, and all other resources will be deleted. This action is irreversible." +msgstr "Vous êtes sur le point de supprimer <0>{0}. Toutes les données relatives à cette organisation, telles que les équipes, les documents et toutes les autres ressources, seront supprimées. Cette action est irréversible." + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "You are about to delete the following team email from <0>{teamName}." +msgstr "Vous êtes sur le point de supprimer l'e-mail d'équipe suivant de <0>{teamName}." + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "You are about to give all organisation members access to this team under their organisation role." +msgstr "Vous êtes sur le point de donner accès à cette équipe à tous les membres de l'organisation sous leur rôle organisationnel." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "You are about to hide <0>\"{documentTitle}\"" +msgstr "Vous êtes sur le point de cacher <0>\"{documentTitle}\"" + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "You are about to leave the following organisation." +msgstr "Vous êtes sur le point de quitter l'organisation suivante." + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "You are about to remove default access to this team for all organisation members. Any members not explicitly added to this team will no longer have access." +msgstr "Vous êtes sur le point de supprimer l'accès par défaut à cette équipe pour tous les membres de l'organisation. Tous les membres non ajoutés explicitement à cette équipe ne pourront plus y accéder." + +#. placeholder {0}: team.name +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "You are about to remove the following group from <0>{0}." +msgstr "Vous êtes sur le point de supprimer le groupe suivant de <0>{0}." + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "You are about to remove the following user from <0>{0}." +msgstr "Vous êtes sur le point de supprimer l'utilisateur suivant de <0>{0}." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You are about to remove the following user from <0>{teamName}." +msgstr "Vous êtes sur le point de supprimer l'utilisateur suivant de <0>{teamName}." + +#. placeholder {0}: teamEmail.team.name +#. placeholder {1}: teamEmail.team.url +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "You are about to revoke access for team <0>{0} ({1}) to use your email." +msgstr "Vous êtes sur le point de révoquer l'accès de l'équipe <0>{0} ({1}) à votre e-mail." + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +msgid "You are about to send this document to the recipients. Are you sure you want to continue?" +msgstr "Vous êtes sur le point d'envoyer ce document aux destinataires. Êtes-vous sûr de vouloir continuer ?" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "You are about to subscribe to the {planName}" +msgstr "Vous êtes sur le point de vous abonner au {planName}" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "You are currently on the <0>Free Plan." +msgstr "Vous êtes actuellement sur l'<0>Abonnement Gratuit." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You are currently updating <0>{memberName}." +msgstr "Vous mettez actuellement à jour <0>{memberName}." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You are currently updating <0>{organisationMemberName}." +msgstr "Vous mettez actuellement à jour <0>{organisationMemberName}." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "You are currently updating the <0>{passkeyName} passkey." +msgstr "Vous mettez à jour actuellement la clé de passkey <0>{passkeyName}." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You are currently updating the <0>{teamGroupName} team group." +msgstr "Vous mettez actuellement à jour le groupe d'équipe <0>{teamGroupName}." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "You are not authorized to access this page." +msgstr "Vous n'êtes pas autorisé à accéder à cette page." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "You are not authorized to delete this user." +msgstr "Vous n'êtes pas autorisé à supprimer cet utilisateur." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "You are not authorized to disable this user." +msgstr "Vous n'êtes pas autorisé à désactiver cet utilisateur." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "You are not authorized to enable this user." +msgstr "Vous n'êtes pas autorisé à activer cet utilisateur." + +#: 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)" +msgstr "Vous pouvez également copier et coller ce lien dans votre navigateur : {confirmationLink} (le lien expire dans 1 heure)" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "You can choose to enable or disable the profile for public view." +msgstr "Vous pouvez choisir d'activer ou de désactiver le profil pour l'affichage public." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "You can copy and share these links to recipients so they can action the document." +msgstr "Vous pouvez copier et partager ces liens avec les destinataires afin qu'ils puissent agir sur le document." + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "You can enable access to allow all organisation members to access this team by default." +msgstr "Vous pouvez autoriser l'accès par défaut, permettant à tous les membres de l'organisation d'accéder à cette équipe." + +#: packages/email/templates/confirm-team-email.tsx +msgid "You can revoke access at any time in your team settings on Documenso <0>here." +msgstr "Vous pouvez révoquer l'accès à tout moment dans les paramètres de votre équipe sur Documenso <0>ici." + +#: 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." +msgstr "Vous pouvez mettre à jour l'URL de profil en mettant à jour l'URL de l'équipe dans la page des paramètres généraux." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "You can use the following variables in your message:" +msgstr "Vous pouvez utiliser les variables suivantes dans votre message :" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "You can view documents associated with this email and use this identity when sending documents." +msgstr "Vous pouvez voir les documents associés à cet e-mail et utiliser cette identité lors de l'envoi de documents." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "You can view the created documents in your dashboard under the \"Documents created from template\" section." +msgstr "Vous pouvez voir les documents créés dans votre tableau de bord sous la section \"Documents créés à partir du modèle\"." + +#: packages/email/template-components/template-document-rejected.tsx +msgid "You can view the document and its status by clicking the button below." +msgstr "Vous pouvez voir le document et son statut en cliquant sur le bouton ci-dessous." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "You cannot add assistants when signing order is disabled." +msgstr "Vous ne pouvez pas ajouter d'assistants lorsque l'ordre de signature est désactivé." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "You cannot delete a group which has a higher role than you." +msgstr "Vous ne pouvez pas supprimer un groupe qui a un rôle supérieur au vôtre." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "You cannot have more than {MAXIMUM_PASSKEYS} passkeys." +msgstr "Vous ne pouvez pas avoir plus de {MAXIMUM_PASSKEYS} clés de passkey." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You cannot modify a group which has a higher role than you." +msgstr "Vous ne pouvez pas modifier un groupe qui a un rôle supérieur au vôtre." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You cannot modify a organisation member who has a higher role than you." +msgstr "Vous ne pouvez pas modifier un membre de l'organisation qui a un rôle supérieur au vôtre." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You cannot modify a team member who has a higher role than you." +msgstr "Vous ne pouvez pas modifier un membre de l'équipe qui a un rôle plus élevé que vous." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You cannot remove members from this team if the inherit member feature is enabled." +msgstr "Vous ne pouvez pas retirer des membres de cette équipe si la fonctionnalité d'héritage de membre est activée." + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "You cannot upload documents at this time." +msgstr "Vous ne pouvez pas importer de documents pour le moment." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "You cannot upload encrypted PDFs" +msgstr "Vous ne pouvez pas importer de PDF cryptés" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "You currently have an inactive <0>{currentProductName} subscription" +msgstr "Vous avez actuellement un abonnement inactif à <0>{currentProductName}" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "You currently have no access to any teams within this organisation. Please contact your organisation to request access." +msgstr "Vous n'avez actuellement accès à aucune équipe au sein de cette organisation. Veuillez contacter votre organisation pour demander l'accès." + +#: apps/remix/app/components/forms/token.tsx +msgid "You do not have permission to create a token for this team" +msgstr "Vous n'avez pas la permission de créer un jeton pour cette équipe" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "You don't need to sign it anymore." +msgstr "Vous n'avez plus besoin de le signer." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "You have accepted an invitation from <0>{0} to join their organisation." +msgstr "Vous avez accepté une invitation de <0>{0} pour rejoindre leur organisation." + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "You have already verified your email address for <0>{0}." +msgstr "Vous avez déjà vérifié votre adresse e-mail pour <0>{0}." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "You have been invited by <0>{0} to join their organisation." +msgstr "Vous avez été invité par <0>{0} à rejoindre leur organisation." + +#. placeholder {0}: organisation.name +#: packages/lib/server-only/organisation/create-organisation-member-invites.ts +msgid "You have been invited to join {0} on Documenso" +msgstr "Vous avez été invité à rejoindre {0} sur Documenso" + +#: packages/email/templates/organisation-invite.tsx +msgid "You have been invited to join the following organisation" +msgstr "Vous avez été invité à rejoindre l'organisation suivante" + +#: packages/lib/server-only/recipient/set-document-recipients.ts +#: packages/lib/server-only/recipient/delete-document-recipient.ts +msgid "You have been removed from a document" +msgstr "Vous avez été supprimé d'un document" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "You have been requested to sign the following documents. Review each document carefully and complete the signing process." +msgstr "Vous avez été invité à signer les documents suivants. Consultez chaque document attentivement et complétez le processus de signature." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "You have declined the invitation from <0>{0} to join their organisation." +msgstr "Vous avez refusé l'invitation de <0>{0} à rejoindre leur organisation." + +#. placeholder {0}: `"${document.title}"` +#: packages/lib/server-only/document/resend-document.tsx +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "You have initiated the document {0} that requires you to {recipientActionVerb} it." +msgstr "Vous avez initié le document {0} qui nécessite que vous {recipientActionVerb} celui-ci." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "You have no webhooks yet. Your webhooks will be shown here once you create them." +msgstr "Vous n'avez pas encore de webhooks. Vos webhooks seront affichés ici une fois que vous les aurez créés." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +msgid "You have not yet created any templates. To create a template please upload one." +msgstr "Vous n'avez pas encore créé de modèles. Pour créer un modèle, veuillez en importer un." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "You have not yet created or received any documents. To create a document please upload one." +msgstr "Vous n'avez pas encore créé ou reçu de documents. Pour créer un document, veuillez en importer un." + +#. placeholder {0}: quota.directTemplates +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" +msgstr "Vous avez atteint la limite maximale de {0} modèles directs. <0>Mettez à niveau votre compte pour continuer !" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "You have reached the maximum number of teams for your plan. Please contact sales at <0>support@documenso.com if you would like to adjust your plan." +msgstr "Vous avez atteint le nombre maximum d'équipes pour votre plan. Veuillez contacter les ventes à <0>support@documenso.com si vous souhaitez ajuster votre plan." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "You have reached your document limit for this month. Please upgrade your plan." +msgstr "Vous avez atteint votre limite de documents pour ce mois. Veuillez passer à l'abonnement supérieur." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "You have reached your document limit." +msgstr "Vous avez atteint votre limite de documents." + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "You have reached your document limit. <0>Upgrade your account to continue!" +msgstr "Vous avez atteint votre limite de documents. <0>Mettez à niveau votre compte pour continuer !" + +#: packages/email/templates/document-rejection-confirmed.tsx +msgid "You have rejected the document '{documentName}'" +msgstr "Vous avez rejeté le document '{documentName}'" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "You have rejected this document" +msgstr "Vous avez rejeté ce document" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "You have signed “{documentName}”" +msgstr "Vous avez signé “{documentName}”" + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "You have successfully left this organisation." +msgstr "Vous avez quitté cette organisation avec succès." + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "You have successfully registered. Please verify your account by clicking on the link you received in the email." +msgstr "Vous vous êtes inscrit avec succès. Veuillez vérifier votre compte en cliquant sur le lien que vous avez reçu dans l'e-mail." + +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "You have successfully removed this group from the organisation." +msgstr "Vous avez enlevé ce groupe de l'organisation avec succès." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "You have successfully removed this group from the team." +msgstr "Vous avez enlevé ce groupe de l'équipe avec succès." + +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "You have successfully removed this user from the organisation." +msgstr "Vous avez enlevé cet utilisateur de l'organisation avec succès." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You have successfully removed this user from the team." +msgstr "Vous avez retiré cet utilisateur de l'équipe avec succès." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "You have successfully revoked access." +msgstr "Vous avez révoqué l'accès avec succès." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +msgstr "Vous avez le droit de retirer votre consentement à l'utilisation des signatures électroniques à tout moment avant de terminer le processus de signature. Pour retirer votre consentement, veuillez contacter l'expéditeur du document. Si vous ne contactez pas l'expéditeur, vous pouvez contacter <0>{SUPPORT_EMAIL} pour obtenir de l'aide. Sachez que le retrait de consentement peut retarder ou arrêter l'achèvement de la transaction ou du service associé." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You have updated {memberName}." +msgstr "Vous avez mis à jour {memberName}." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You have updated {organisationMemberName}." +msgstr "Vous avez mis à jour {organisationMemberName}." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You have updated the team group." +msgstr "Vous avez mis à jour le groupe d'équipe." + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "You have verified your email address for <0>{0}." +msgstr "Vous avez vérifié votre adresse e-mail pour <0>{0}." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "You must enter '{deleteMessage}' to proceed" +msgstr "Vous devez entrer '{deleteMessage}' pour continuer" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "You must type '{deleteMessage}' to confirm" +msgstr "Vous devez taper '{deleteMessage}' pour confirmer" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "You need to be an admin to manage API tokens." +msgstr "Vous devez être administrateur pour gérer les tokens API." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +msgid "You need to be logged in as <0>{email} to view this page." +msgstr "Vous devez être connecté en tant que <0>{email} pour voir cette page." + +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "You need to be logged in to view this page." +msgstr "Vous devez être connecté pour voir cette page." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "You need to setup 2FA to mark this document as viewed." +msgstr "Vous devez configurer 2FA pour marquer ce document comme vu." + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "You will need to configure any claims or subscription after creating this organisation" +msgstr "Vous devrez configurer toutes les réclamations ou abonnements après avoir créé cette organisation" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "You will now be required to enter a code from your authenticator app when signing in." +msgstr "Vous devrez maintenant entrer un code de votre application d'authentification lors de la connexion." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "You will receive an Email copy of the signed document once everyone has signed." +msgstr "Vous recevrez une copie par e-mail du document signé une fois que tout le monde aura signé." + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Your account has been deleted successfully." +msgstr "Votre compte a été supprimé avec succès." + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Your avatar has been updated successfully." +msgstr "Votre avatar a été mis à jour avec succès." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Your banner has been updated successfully." +msgstr "Votre bannière a été mise à jour avec succès." + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Your brand website URL" +msgstr "L'URL de votre site web de marque" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Your branding preferences have been updated" +msgstr "Vos préférences de branding ont été mises à jour" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Your bulk send has been initiated. You will receive an email notification upon completion." +msgstr "Votre envoi groupé a été initié. Vous recevrez une notification par email une fois terminé." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Your bulk send operation for template \"{templateName}\" has completed." +msgstr "Votre envoi groupé pour le modèle \"{templateName}\" est terminé." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current {currentProductName} plan is past due. Please update your payment information." +msgstr "Votre plan actuel {currentProductName} est arrivé à échéance. Veuillez mettre à jour vos informations de paiement." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current plan is inactive." +msgstr "Votre plan actuel est inactif." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current plan is past due." +msgstr "Votre plan actuel est arrivé à échéance." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Your direct signing templates" +msgstr "Vos modèles de signature directe" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Your document failed to upload." +msgstr "L'importation de votre document a échoué." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Your document has been created from the template successfully." +msgstr "Votre document a été créé à partir du modèle avec succès." + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Your document has been created successfully" +msgstr "Votre document a été créé avec succès" + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "Your document has been deleted by an admin!" +msgstr "Votre document a été supprimé par un administrateur !" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Your document has been re-sent successfully." +msgstr "Votre document a été renvoyé avec succès." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Your document has been sent successfully." +msgstr "Votre document a été envoyé avec succès." + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Your document has been successfully duplicated." +msgstr "Votre document a été dupliqué avec succès." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Your document has been uploaded successfully." +msgstr "Votre document a été importé avec succès." + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Your document has been uploaded successfully. You will be redirected to the template page." +msgstr "Votre document a été importé avec succès. Vous serez redirigé vers la page de modèle." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Your document preferences have been updated" +msgstr "Vos préférences de document ont été mises à jour" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Your documents" +msgstr "Vos documents" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your email has already been confirmed. You can now use all features of Documenso." +msgstr "Votre email a déjà été confirmé. Vous pouvez maintenant utiliser toutes les fonctionnalités de Documenso." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your email has been successfully confirmed! You can now use all features of Documenso." +msgstr "Votre e-mail a été confirmé avec succès ! Vous pouvez maintenant utiliser toutes les fonctionnalités de Documenso." + +#. placeholder {0}: teamEmail.team.name +#. placeholder {1}: teamEmail.team.url +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Your email is currently being used by team <0>{0} ({1})." +msgstr "Votre e-mail est actuellement utilisé par l'équipe <0>{0} ({1})." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Your existing tokens" +msgstr "Vos tokens existants" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Your new password cannot be the same as your old password." +msgstr "Ton nouveau mot de passe ne peut pas être le même que l'ancien." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Your organisation has been created." +msgstr "Votre organisation a été créée." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Your organisation has been successfully deleted." +msgstr "Votre organisation a été supprimée avec succès." + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Your organisation has been successfully updated." +msgstr "Votre organisation a été mise à jour avec succès." + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Your password has been updated successfully." +msgstr "Votre mot de passe a été mis à jour avec succès." + +#: packages/email/template-components/template-reset-password.tsx +msgid "Your password has been updated." +msgstr "Votre mot de passe a été mis à jour." + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Your payment for teams is overdue. Please settle the payment to avoid any service disruptions." +msgstr "Votre paiement pour les équipes est en retard. Veuillez régler le paiement pour éviter toute interruption de service." + +#: apps/remix/app/components/tables/user-organisations-table.tsx +msgid "Your personal organisation" +msgstr "Votre organisation personnelle" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Your plan does not support inviting members. Please upgrade or your plan or contact sales at <0>support@documenso.com if you would like to discuss your options." +msgstr "Votre plan ne prend pas en charge l'invitation de membres. Veuillez mettre à niveau ou contacter les ventes à <0>support@documenso.com si vous souhaitez discuter de vos options." + +#: apps/remix/app/components/forms/profile.tsx +msgid "Your profile has been updated successfully." +msgstr "Votre profil a été mis à jour avec succès." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Your profile has been updated." +msgstr "Votre profil a été mis à jour." + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Your public profile has been updated." +msgstr "Votre profil public a été mis à jour." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Your recovery code has been copied to your clipboard." +msgstr "Votre code de récupération a été copié dans votre presse-papiers." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Your recovery codes are listed below. Please store them in a safe place." +msgstr "Vos codes de récupération sont listés ci-dessous. Veuillez les conserver dans un endroit sûr." + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Your team has been created." +msgstr "Votre équipe a été créée." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Your team has been successfully deleted." +msgstr "Votre équipe a été supprimée avec succès." + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "Your team has been successfully updated." +msgstr "Votre équipe a été mise à jour avec succès." + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Your template has been created successfully" +msgstr "Votre modèle a été créé avec succès" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Your template has been duplicated successfully." +msgstr "Votre modèle a été dupliqué avec succès." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Your template has been successfully deleted." +msgstr "Votre modèle a été supprimé avec succès." + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Your template will be duplicated." +msgstr "Votre modèle sera dupliqué." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Your templates has been saved successfully." +msgstr "Vos modèles ont été enregistrés avec succès." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your token has expired!" +msgstr "Votre token a expiré !" + +#: apps/remix/app/components/forms/token.tsx +msgid "Your token was created successfully! Make sure to copy it because you won't be able to see it again!" +msgstr "Votre token a été créé avec succès ! Assurez-vous de le copier car vous ne pourrez plus le voir !" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Your tokens will be shown here once you create them." +msgstr "Vos tokens seront affichés ici une fois que vous les aurez créés." + diff --git a/packages/lib/translations/pl/web.po b/packages/lib/translations/pl/web.po new file mode 100644 index 000000000..6784fbae1 --- /dev/null +++ b/packages/lib/translations/pl/web.po @@ -0,0 +1,8731 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2024-07-24 13:01+1000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: pl\n" +"Project-Id-Version: documenso-app\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-07-18 02:41\n" +"Last-Translator: \n" +"Language-Team: Polish\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +"X-Crowdin-Project: documenso-app\n" +"X-Crowdin-Project-ID: 694691\n" +"X-Crowdin-Language: pl\n" +"X-Crowdin-File: web.po\n" +"X-Crowdin-File-ID: 8\n" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid " Enable direct link signing" +msgstr " Włącz podpisywanie linku bezpośredniego" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid ".PDF documents accepted (max {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB)" +msgstr "Akceptowane dokumenty .PDF (maks. {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB)" + +#. placeholder {0}: field.customText +#. placeholder {1}: timezone || '' +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +msgid "\"{0}\" will appear on the document as it has a timezone of \"{1}\"." +msgstr "\"{0}\" pojawi się w dokumencie, ponieważ ma strefę czasową \"{1}\"." + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "\"{documentName}\" has been deleted by an admin." +msgstr "Dokument \"{documentName}\" został usunięty przez administratora." + +#: packages/email/template-components/template-document-pending.tsx +msgid "“{documentName}” has been signed" +msgstr "Dokument „{documentName}” został podpisany" + +#: packages/email/template-components/template-document-completed.tsx +msgid "“{documentName}” was signed by all signers" +msgstr "Dokument „{documentName}” został podpisany przez wszystkich podpisujących" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "\"{documentTitle}\" has been successfully deleted" +msgstr "Dokument „{documentTitle}” został usunięty" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "\"{placeholderEmail}\" on behalf of \"Team Name\" has invited you to sign \"example document\"." +msgstr "Użytkownik \"{placeholderEmail}\" w imieniu \"Team Name\" zaprosił Cię do podpisania \"przykładowego dokumentu\"." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "\"Team Name\" has invited you to sign \"example document\"." +msgstr "\"Team Name\" zaprosił Cię do podpisania \"przykładowego dokumentu\"." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "(You)" +msgstr "(Ty)" + +#. placeholder {0}: Math.abs(charactersRemaining) +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "{0, plural, one {(1 character over)} other {(# characters over)}}" +msgstr "{0, plural, one {(1 znak przekroczony)} few {(# znaki przekroczone)} many {(# znaków przekroczonych)} other {(# znaków przekroczonych)}}" + +#. placeholder {0}: Math.abs(remaningLength) +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{0, plural, one {# character over the limit} other {# characters over the limit}}" +msgstr "{0, plural, one {# znak przekroczony} few {# znaki przekroczone} many {# znaków przekroczonych} other {# znaków przekroczonych}}" + +#. placeholder {0}: folder._count.documents +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# document} other {# documents}}" +msgstr "{0, plural, one {# dokument} few {# dokumenty} many {# dokumentów} other {# dokumentów}}" + +#. placeholder {0}: folder._count.subfolders +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# folder} other {# folders}}" +msgstr "{0, plural, one {# folder} few {# foldery} many {# folderów} other {# folderów}}" + +#. placeholder {0}: template.recipients.length +#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx +msgid "{0, plural, one {# recipient} other {# recipients}}" +msgstr "{0, plural, one {# odbiorca} few {# odbiorców} many {# odbiorców} other {# odbiorców}}" + +#. placeholder {0}: org.teams.length +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "{0, plural, one {# team} other {# teams}}" +msgstr "{0, plural, one {# zespół} few {# zespoły} many {# zespołów} other {# zespołów}}" + +#. placeholder {0}: folder._count.templates +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "{0, plural, one {# template} other {# templates}}" +msgstr "{0, plural, one {# szablon} few {# szablony} many {# szablonów} other {# szablonów}}" + +#. placeholder {0}: data.length +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "{0, plural, one {<0>You have <1>1 pending invitation} other {<2>You have <3># pending invitations}}" +msgstr "{0, plural, one {<0>Masz <1>1 oczekujące zaproszenie} few {<2>Masz <3># oczekujące zaproszenia} many {<2>Masz <3># oczekujących zaproszeń} other {<2>Masz <3># oczekujących zaproszeń}}" + +#. placeholder {0}: autoSignableFields.filter((f) => f.type === fieldType).length +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "{0, plural, one {1 matching field} other {# matching fields}}" +msgstr "{0, plural, one {1 pasujące pole} few {# pasujące pola} many {# pasujących pól} other {# pasujących pól}}" + +#. placeholder {0}: recipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.edit.tsx +msgid "{0, plural, one {1 Recipient} other {# Recipients}}" +msgstr "{0, plural, one {1 odbiorca} few {# odbiorców} many {# odbiorców} other {# odbiorców}}" + +#. placeholder {0}: pendingRecipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "{0, plural, one {Waiting on 1 recipient} other {Waiting on # recipients}}" +msgstr "{0, plural, one {Czekam na 1 odbiorcę} few {Czekam na # odbiorców} many {Czekam na # odbiorców} other {Czekam na # odbiorców}}" + +#. placeholder {0}: route.label +#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType]) +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "{0}" +msgstr "{0}" + +#. placeholder {0}: team.name +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{0} direct signing templates" +msgstr "{0} bezpośrednich szablonów podpisu" + +#. placeholder {0}: team.name +#. placeholder {1}: document.title +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"." +msgstr "{0} zaprosił cię do {recipientActionVerb} dokument „{1}”." + +#. placeholder {0}: team.name +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{0} invited you to {recipientActionVerb} a document" +msgstr "{0} zaprosił Cię do {recipientActionVerb} dokument" + +#. placeholder {0}: remaining.documents +#. placeholder {1}: quota.documents +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "{0} of {1} documents remaining this month." +msgstr "{0} z {1} dokumentów pozostałych w tym miesiącu." + +#. placeholder {0}: table.getFilteredSelectedRowModel().rows.length +#. placeholder {1}: table.getFilteredRowModel().rows.length +#: packages/ui/primitives/data-table-pagination.tsx +msgid "{0} of {1} row(s) selected." +msgstr "{0} z {1} wybranych wierszy." + +#. placeholder {0}: user.name || user.email +#. placeholder {1}: document.team.name +#. placeholder {2}: document.title +#: packages/lib/server-only/document/resend-document.tsx +msgid "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"." +msgstr "{0} w imieniu \"{1}\" zaprosił Cię do {recipientActionVerb} dokument „{2}”." + +#. placeholder {0}: recipients.length +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "{0} Recipient(s)" +msgstr "{0} Odbiorca(ów)" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "{0} Teams" +msgstr "{0} Zespoły" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "{charactersRemaining, plural, one {1 character remaining} other {{charactersRemaining} characters remaining}}" +msgstr "{charactersRemaining, plural, one {Pozostał # znak} few {Pozostały {charactersRemaining} znaki} many {Pozostało {charactersRemaining} znaków} other {Pozostało {charactersRemaining} znaków}}" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} <0>({inviterEmail})" +msgstr "{inviterName} <0>({inviterEmail})" + +#: packages/email/templates/document-cancel.tsx +msgid "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." +msgstr "{inviterName} anulował dokument {documentName}, nie musisz go już podpisywać." + +#: packages/email/template-components/template-document-cancel.tsx +msgid "{inviterName} has cancelled the document<0/>\"{documentName}\"" +msgstr "{inviterName} anulował dokument<0/>\"{documentName}\"" + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{inviterName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "{inviterName} zaprosił Cię do {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} has invited you to {action} {documentName}" +msgstr "{inviterName} zaprosił Cię do {action} {documentName}" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} has invited you to {action} the document \"{documentName}\"." +msgstr "{inviterName} zaprosił cię do {action} dokument „{documentName}”." + +#: packages/email/templates/recipient-removed-from-document.tsx +msgid "{inviterName} has removed you from the document {documentName}." +msgstr "{inviterName} usunął Cię z dokumentu {documentName}." + +#: packages/email/templates/recipient-removed-from-document.tsx +msgid "{inviterName} has removed you from the document<0/>\"{documentName}\"" +msgstr "{inviterName} usunął cię z dokumentu<0/>„{documentName}”" + +#. placeholder {0}: team.name +#. placeholder {1}: document.title +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "{inviterName} on behalf of \"{0}\" has invited you to {recipientActionVerb} the document \"{1}\"." +msgstr "{inviterName} w imieniu \"{0}\" zaprosił Cię do {recipientActionVerb} dokumentu \"{1}\"." + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {0}<0/>\"{documentName}\"" +msgstr "{inviterName} w imieniu \"{teamName}\" zaprosił Cię do {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}" +msgstr "{inviterName} w imieniu \"{teamName}\" zaprosił Cię do {action} {documentName}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} added a field" +msgstr "Użytkownik {prefix} dodał pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} added a recipient" +msgstr "Użytkownik {prefix} dodał odbiorcę" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} created the document" +msgstr "Użytkownik {prefix} utworzył dokument" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} deleted the document" +msgstr "Użytkownik {prefix} usunął dokument" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} moved the document to team" +msgstr "Użytkownik {prefix} przeniósł dokument do zespołu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} opened the document" +msgstr "Użytkownik {prefix} otworzył dokument" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} prefilled a field" +msgstr "Użytkownik {prefix} wstępnie wypełnił pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} removed a field" +msgstr "Użytkownik {prefix} usunął pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} removed a recipient" +msgstr "Użytkownik {prefix} usunął odbiorcę" + +#. placeholder {0}: data.recipientEmail +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} resent an email to {0}" +msgstr "Użytkownik {prefix} wysłał ponownie wiadomość do {0}" + +#. placeholder {0}: data.recipientEmail +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} sent an email to {0}" +msgstr "Użytkownik {prefix} wysłał wiadomość do {0}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} sent the document" +msgstr "Użytkownik {prefix} wysłał dokument" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} signed a field" +msgstr "Użytkownik {prefix} podpisał pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} unsigned a field" +msgstr "{prefix} niepodpisane pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated a field" +msgstr "Użytkownik {prefix} zaktualizował pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated a recipient" +msgstr "Użytkownik {prefix} zaktualizował odbiorcę" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document" +msgstr "Użytkownik {prefix} zaktualizował dokument" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document access auth requirements" +msgstr "{prefix} zaktualizowane wymagania dotyczące autoryzacji dostępu do dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document external ID" +msgstr "Użytkownik {prefix} zaktualizował identyfikator zewnętrzny dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document signing auth requirements" +msgstr "{prefix} zaktualizowane wymagania dotyczące autoryzacji podpisu dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document title" +msgstr "Użytkownik {prefix} zaktualizował tytuł dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{prefix} updated the document visibility" +msgstr "Użytkownik {prefix} zaktualizował widoczność dokumentu" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "{recipientActionVerb} document" +msgstr "{recipientActionVerb} dokument" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "{recipientActionVerb} the document to complete the process." +msgstr "{recipientActionVerb} dokument, aby zakończyć proces." + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "{recipientCount} recipients" +msgstr "{recipientCount} odbiorców" + +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "{recipientName} {action} a document by using one of your direct links" +msgstr "{recipientName} {action} dokument, korzystając z jednego z Twoich bezpośrednich linków" + +#: packages/email/templates/document-rejected.tsx +msgid "{recipientName} has rejected the document '{documentName}'" +msgstr "{recipientName} odrzucił dokument '{documentName}'" + +#: packages/email/template-components/template-document-recipient-signed.tsx +msgid "{recipientReference} has completed signing the document." +msgstr "{recipientReference} zakończył podpisywanie dokumentu." + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-recipient-signed-email.handler.ts +msgid "{recipientReference} has signed \"{0}\"" +msgstr "{recipientReference} podpisał „{0}”" + +#: packages/email/template-components/template-document-recipient-signed.tsx +msgid "{recipientReference} has signed \"{documentName}\"" +msgstr "{recipientReference} podpisał „{documentName}”" + +#: packages/email/templates/document-recipient-signed.tsx +msgid "{recipientReference} has signed {documentName}" +msgstr "{recipientReference} podpisał {documentName}" + +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "{remaningLength, plural, one {# character remaining} other {# characters remaining}}" +msgstr "{remaningLength, plural, one {Pozostał # znak} few {Pozostały # znaki} many {Pozostało # znaków} other {Pozostało # znaków}}" + +#: packages/email/template-components/template-document-rejected.tsx +msgid "{signerName} has rejected the document \"{documentName}\"." +msgstr "{signerName} odrzucił dokument \"{documentName}\"." + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "{teamName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "{teamName} zaprosił Cię do {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "{teamName} has invited you to {action} {documentName}" +msgstr "{teamName} zaprosił cię do {action} {documentName}" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} approved the document" +msgstr "Użytkownik {userName} zatwierdził dokument" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} CC'd the document" +msgstr "{userName} dodał CC do dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} completed their task" +msgstr "Użytkownik {userName} zakończył swoje zadanie" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} rejected the document" +msgstr "Użytkownik {userName} odrzucił dokument" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} signed the document" +msgstr "Użytkownik {userName} podpisał dokument" + +#: packages/lib/utils/document-audit-logs.ts +msgid "{userName} viewed the document" +msgstr "Użytkownik {userName} wyświetlił dokument" + +#: packages/ui/primitives/data-table-pagination.tsx +msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" +msgstr "{visibleRows, plural, one {Wyświetlanie # wyniku.} other {Wyświetlanie # wyników.}}" + +#. placeholder {0}: document.title +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "<0>\"{0}\"is no longer available to sign" +msgstr "<0>\"{0}\"nie jest już dostępny do podpisu" + +#: packages/email/templates/confirm-team-email.tsx +msgid "<0>{teamName} has requested to use your email address for their team on Documenso." +msgstr "<0>{teamName} poprosił o używanie twojego adresu e-mail dla swojego zespołu w Documenso." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "<0>Click to upload or drag and drop" +msgstr "<0>Kliknij, aby przesłać lub przeciągnij i upuść" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Drawn - A signature that is drawn using a mouse or stylus." +msgstr "<0>Rysowany - Podpis narysowany za pomocą myszy lub pióra." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>Email - The recipient will be emailed the document to sign, approve, etc." +msgstr "<0>E-mail - Odbiorca otrzyma e-mail z dokumentem do podpisania, zatwierdzenia itp." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" +msgstr "<0>Przechwyć metodę uwierzytelniania - Użyj globalnej metody uwierzytelniania podpisywania akcji skonfigurowanej w kroku \"Ustawienia ogólne\"" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>No restrictions - No authentication required" +msgstr "<0>Brak ograniczeń - Uwierzytelnianie nie jest wymagane" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "<0>No restrictions - The document can be accessed directly by the URL sent to the recipient" +msgstr "<0>Brak ograniczeń - Dokument można bezpośrednio otworzyć za pomocą URL przesłanego do odbiorcy" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "<0>None - No authentication required" +msgstr "<0>Brak - Uwierzytelnianie nie jest wymagane" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>None - We will generate links which you can send to the recipients manually." +msgstr "<0>Brak - Wygenerujemy linki, które możesz wysłać do odbiorców ręcznie." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "<0>Note - If you use Links in combination with direct templates, you will need to manually send the links to the remaining recipients." +msgstr "<0>Uwaga - Jeśli używasz linków w połączeniu z bezpośrednimi szablonami, musisz ręcznie wysłać linki do pozostałych odbiorców." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require 2FA - The recipient must have an account and 2FA enabled via their settings" +msgstr "<0>Wymagana 2FA - Odbiorca musi mieć konto i włączoną 2FA w swoich ustawieniach" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "<0>Require account - The recipient must be signed in to view the document" +msgstr "<0>Wymagana konto - Odbiorca musi być zalogowany, aby wyświetlić dokument" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require passkey - The recipient must have an account and passkey configured via their settings" +msgstr "<0>Wymagana passkey - Odbiorca musi mieć konto i skonfigurowaną passkey w swoich ustawieniach" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "<0>Require password - The recipient must have an account and password configured via their settings, the password will be verified during signing" +msgstr "<0>Wymagane hasło - Odbiorca musi mieć konto i hasło skonfigurowane w swoim ustawieniach, hasło będzie weryfikowane podczas podpisywania" + +#: apps/remix/app/components/tables/documents-table-sender-filter.tsx +msgid "<0>Sender: All" +msgstr "<0>Rządzący: Wszyscy" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Typed - A signature that is typed using a keyboard." +msgstr "<0>Wpisany - Podpis wpisany za pomocą klawiatury." + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "<0>Uploaded - A signature that is uploaded from a file." +msgstr "<0>Załadowany - Podpis załadowany z pliku." + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete approving <1>\"{documentTitle}\".<2/> Are you sure?" +msgstr "<0>Jesteś na drodze do zatwierdzenia <1>\"{documentTitle}\".<2/> Czy jesteś pewien?" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete signing \"<1>{documentTitle}\".<2/> Are you sure?" +msgstr "<0>Jesteś na drodze do ukończenia podpisywania \"<1>{documentTitle}\".<2/> Czy jesteś pewien?" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "<0>You are about to complete viewing \"<1>{documentTitle}\".<2/> Are you sure?" +msgstr "<0>Jesteś na drodze do zakończenia przeglądania \"<1>{documentTitle}\".<2/> Czy jesteś pewien?" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "0 Free organisations left" +msgstr "Pozostało 0 darmowych organizacji" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "1 Free organisations left" +msgstr "Pozostała 1 darmowa organizacja" + +#: apps/remix/app/components/forms/token.tsx +msgid "1 month" +msgstr "1 miesiąc" + +#: apps/remix/app/components/forms/token.tsx +msgid "12 months" +msgstr "12 miesięcy" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "2FA" +msgstr "2FA" + +#: apps/remix/app/components/forms/token.tsx +msgid "3 months" +msgstr "3 miesiące" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "401 Unauthorized" +msgstr "401 Nieautoryzowany" + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "404 not found" +msgstr "404 nie znaleziono" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "404 Organisation group not found" +msgstr "404 Grupa organizacji nie znaleziona" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "404 Organisation not found" +msgstr "404 Organizacja nie znaleziona" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "404 Profile not found" +msgstr "404 Profil nie znaleziony" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "404 Team not found" +msgstr "404 Zespół nie znaleziony" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "404 User not found" +msgstr "404 Użytkownik nie znaleziony" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "5 documents a month" +msgstr "5 dokumentów miesięcznie" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "5 Documents a month" +msgstr "5 dokumentów miesięcznie" + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "500 Internal Server Error" +msgstr "500 Wewnętrzny błąd serwera" + +#: apps/remix/app/components/forms/token.tsx +msgid "6 months" +msgstr "6 miesięcy" + +#: apps/remix/app/components/forms/token.tsx +msgid "7 days" +msgstr "7 dni" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." +msgstr "E-mail potwierdzający został wysłany i powinien niedługo dotrzeć do Twojej skrzynki odbiorczej." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A device capable of accessing, opening, and reading documents" +msgstr "Urządzenie zdolne do uzyskiwania dostępu, otwierania i czytania dokumentów" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "A document was created by your direct template that requires you to {recipientActionVerb} it." +msgstr "Dokument został utworzony przez Twój bezpośredni szablon, który wymaga, abyś go {recipientActionVerb}." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "A draft document will be created" +msgstr "Zostanie utworzony szkic dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was added" +msgstr "Dodano pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was removed" +msgstr "Usunięto pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A field was updated" +msgstr "Zaktualizowano pole" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A means to print or download documents for your records" +msgstr "Środek do drukowania lub pobierania dokumentów do swoich zapisów" + +#: packages/email/templates/organisation-join.tsx +msgid "A member has joined your organisation on Documenso" +msgstr "Członek dołączył do Twojej organizacji na Documenso" + +#: packages/lib/jobs/definitions/emails/send-organisation-member-left-email.handler.ts +msgid "A member has left your organisation" +msgstr "Członek opuścił twoją organizację" + +#: packages/email/templates/organisation-leave.tsx +msgid "A member has left your organisation {organisationName}" +msgstr "Członek opuścił Twoją organizację {organisationName}" + +#: packages/email/templates/organisation-leave.tsx +msgid "A member has left your organisation on Documenso" +msgstr "Członek opuścił Twoją organizację na Documenso" + +#: packages/lib/jobs/definitions/emails/send-organisation-member-joined-email.handler.ts +msgid "A new member has joined your organisation" +msgstr "Nowy członek dołączył do Twojej organizacji" + +#: packages/email/templates/organisation-join.tsx +msgid "A new member has joined your organisation {organisationName}" +msgstr "Nowy członek dołączył do twojej organizacji {organisationName}" + +#: apps/remix/app/components/forms/token.tsx +msgid "A new token was created successfully." +msgstr "Nowy token został utworzony." + +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "A password reset email has been sent, if you have an account you should see it in your inbox shortly." +msgstr "E-mail z linkiem do resetowania hasła został wysłany. Jeśli masz konto, powinieneś go niedługo zobaczyć w skrzynce odbiorczej." + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was added" +msgstr "Dodano odbiorcę" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was removed" +msgstr "Usunięto odbiorcę" + +#: packages/lib/utils/document-audit-logs.ts +msgid "A recipient was updated" +msgstr "Zaktualizowano odbiorcę" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/create-team-email-verification.ts +msgid "A request to use your email has been initiated by {0} on Documenso" +msgstr "Zgłoszenie potrzeby użycia twojego e-maila zostało inicjowane przez {0} na Documenso" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso" +msgstr "Sekret, który zostanie wysłany na Twój adres URL, abyś mógł zweryfikować, że prośba została wysłana przez Documenso" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." +msgstr "Sekret, który zostanie wysłany na Twój adres URL, abyś mógł zweryfikować, że prośba została wysłana przez Documenso." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "A stable internet connection" +msgstr "Stabilne połączenie internetowe" + +#: packages/email/templates/team-delete.tsx +#: packages/email/templates/team-delete.tsx +msgid "A team you were a part of has been deleted" +msgstr "Zespół, którego częścią byłeś, został usunięty" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "A unique URL to access your profile" +msgstr "Unikalny URL do dostępu do Twojego profilu" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "A unique URL to identify the organisation" +msgstr "Unikalny URL do identyfikacji organizacji" + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "A unique URL to identify your organisation" +msgstr "Unikalny URL dla identyfikacji twojej organizacji" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "A unique URL to identify your team" +msgstr "Unikalny URL do identyfikacji Twojego zespołu" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "A verification email will be sent to the provided email." +msgstr "E-mail weryfikacyjny zostanie wysłany na podany adres e-mail." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: packages/email/templates/organisation-invite.tsx +#: packages/email/templates/confirm-team-email.tsx +msgid "Accept" +msgstr "Akceptuj" + +#: packages/email/templates/organisation-invite.tsx +msgid "Accept invitation to join an organisation on Documenso" +msgstr "Akceptuj zaproszenie do przyłączenia się do organizacji na Documenso" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Accept team email request for {teamName} on Documenso" +msgstr "Akceptuj prośbę o email zespołowy dla {teamName} na Documenso" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Acceptance and Consent" +msgstr "Akceptacja i Zgoda" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "Access disabled" +msgstr "Dostęp zablokowany" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Access enabled" +msgstr "Dostęp włączony" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Account" +msgstr "Konto" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Account Authentication" +msgstr "Uwierzytelnianie konta" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Account deleted" +msgstr "Konto zostało usunięte" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Account disabled" +msgstr "Konto zostało wyłączone" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Account enabled" +msgstr "Konto zostało włączone" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Account Re-Authentication" +msgstr "Ponowna Autoryzacja Konta" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Acknowledgment" +msgstr "Potwierdzenie" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Action" +msgstr "Akcja" + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Actions" +msgstr "Akcje" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Active" +msgstr "Aktywne" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Active sessions" +msgstr "Aktywne sesje" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Active Subscriptions" +msgstr "Aktywne subskrypcje" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add" +msgstr "Dodaj" + +#: packages/ui/primitives/document-dropzone.tsx +msgid "Add a document" +msgstr "Dodaj dokument" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Add a URL to redirect the user to once the document is signed" +msgstr "Dodaj URL, aby przekierować użytkownika po podpisaniu dokumentu" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add all relevant fields for each recipient." +msgstr "Dodaj wszystkie istotne pola dla każdego odbiorcy." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Add all relevant placeholders for each recipient." +msgstr "Dodaj wszystkie odpowiednie teksty zastępcze dla każdego odbiorcy." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Add an authenticator to serve as a secondary authentication method for signing documents." +msgstr "Dodaj autoryzator, aby służył jako dodatkowa metoda uwierzytelniania do podpisywania dokumentów." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Add an authenticator to serve as a secondary authentication method when signing in, or when signing documents." +msgstr "Dodaj autoryzator, aby służył jako dodatkowa metoda uwierzytelniania podczas logowania lub podpisywania dokumentów." + +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Add an external ID to the document. This can be used to identify the document in external systems." +msgstr "Dodaj identyfikator zewnętrzny dokumentu. Może być używany do identyfikacji dokumentu w zewnętrznych systemach." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Add an external ID to the template. This can be used to identify in external systems." +msgstr "Dodaj identyfikator zewnętrzny szablonu. Może być używany do identyfikacji w zewnętrznych systemach." + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Add another option" +msgstr "Dodaj kolejną opcję" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Add another value" +msgstr "Dodaj kolejną wartość" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add email" +msgstr "Dodaj adres e-mail" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add Fields" +msgstr "Dodaj pola" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Add group roles" +msgstr "Dodaj role grupowe" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Add groups" +msgstr "Dodaj grupy" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add members" +msgstr "Dodaj członków" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add Members" +msgstr "Dodaj członków" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Add members roles" +msgstr "Dodaj role członków" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Add more" +msgstr "Dodaj więcej" + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Add myself" +msgstr "Dodaj siebie" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Add Myself" +msgstr "Dodaj siebie" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Add passkey" +msgstr "Dodaj klucz dostępu" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Add Placeholder Recipient" +msgstr "Dodaj odbiorcę zastępczego" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Add Placeholders" +msgstr "Dodaj znaczniki" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Add Signer" +msgstr "Dodaj podpisującego" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add Signers" +msgstr "Dodaj podpisujących" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +msgid "Add signers and configure signing preferences" +msgstr "Dodaj podpisujących i skonfiguruj ustawienia podpisywania" + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "Add team email" +msgstr "Dodaj e-mail zespołowy" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Add text" +msgstr "Dodaj tekst" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Add text to the field" +msgstr "Dodaj tekst do pola" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Add the people who will sign the document." +msgstr "Dodaj osoby, które podpiszą dokument." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Add the recipients to create the document with" +msgstr "Dodaj odbiorców, aby utworzyć dokument" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Additional brand information to display at the bottom of emails" +msgstr "Dodatkowe informacje o marce do wyświetlenia na dole wiadomości e-mail" + +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Admin" +msgstr "Administrator" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Admin Actions" +msgstr "Akcje administratora" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Admin panel" +msgstr "Panel administratora" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Admin Panel" +msgstr "Panel administratora" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Advanced Options" +msgstr "Opcje zaawansowane" + +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Advanced settings" +msgstr "Ustawienia zaawansowane" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Advanced Settings" +msgstr "Ustawienia zaawansowane" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." +msgstr "Po podpisaniu dokumentu elektronicznie, otrzymasz możliwość obejrzenia, pobrania i wydrukowania dokumentu dla swoich zapisów. Zaleca się, abyś zachował kopię wszystkich podpisanych elektronicznie dokumentów dla swoich osobistych zapisów. My również zachowamy kopię podpisanego dokumentu w naszych zapisach, jednak możemy nie być w stanie dostarczyć ci kopii podpisanego dokumentu po pewnym czasie." + +#: packages/lib/constants/template.ts +msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." +msgstr "Po przesłaniu dokumentu zostanie automatycznie wygenerowany i dodany do Twojej strony dokumentów. Otrzymasz również powiadomienie pocztą elektroniczną." + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "All" +msgstr "Wszystko" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "All documents" +msgstr "Wszystkie dokumenty" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "All documents have been completed!" +msgstr "Wszystkie dokumenty zostały zrealizowane!" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "All documents have been processed. Any new documents that are sent or received will show here." +msgstr "Wszystkie dokumenty zostały przetworzone. Nowe dokumenty, które zostaną wysłane lub odebrane, pojawią się tutaj." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." +msgstr "Wszystkie dokumenty związane z procesem podpisywania elektronicznego będą dostarczane do Ciebie elektronicznie za pośrednictwem naszej platformy lub za pośrednictwem e-maila. To Twoja odpowiedzialność, aby upewnić się, że twój adres e-mail jest aktualny i że możesz odbierać i otwierać nasze e-maile." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +msgid "All Folders" +msgstr "Wszystkie foldery" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "All inserted signatures will be voided" +msgstr "Wszystkie wstawione podpisy zostaną unieważnione" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "All recipients will be notified" +msgstr "Wszyscy odbiorcy zostaną powiadomieni" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "All signatures have been voided." +msgstr "Wszystkie podpisy zostały unieważnione." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "All signing links have been copied to your clipboard." +msgstr "Wszystkie linki do podpisania zostały skopiowane do schowka." + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "All templates" +msgstr "Wszystkie szablony" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "All Time" +msgstr "Cały czas" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Allow all organisation members to access this team" +msgstr "Zezwól wszystkim członkom organizacji na dostęp do tego zespołu" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Allow document recipients to reply directly to this email address" +msgstr "Zezwól odbiorcom dokumentów na bezpośrednią odpowiedź na ten adres e-mail" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Allow signers to dictate next signer" +msgstr "Zezwalaj podpisującym wskazać następnego podpisującego" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Allowed Signature Types" +msgstr "Dozwolone typy podpisów" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "Allowed teams" +msgstr "Dozwolone zespoły" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Allows authenticating using biometrics, password managers, hardware keys, etc." +msgstr "Pozwala na uwierzytelnianie za pomocą biometrii, menedżerów haseł, kluczy sprzętowych itp." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Already have an account? <0>Sign in instead" +msgstr "Masz już konto? <0>Zaloguj się" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +msgid "Amount" +msgstr "Kwota" + +#: packages/email/templates/document-super-delete.tsx +msgid "An admin has deleted your document \"{documentName}\"." +msgstr "Administrator usunął Twój dokument \"{documentName}\"." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." +msgstr "Podpis elektroniczny dostarczony przez Ciebie na naszej platformie, zrealizowany poprzez kliknięcie na dokument i wpisanie swojego imienia, lub dowolną inną metodą podpisu elektronicznego, którą udostępniamy, jest prawnie wiążący. Nosi tę samą wagę i wykonalność jak ręczny podpis wykonany tuszem na papierze." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "An email account" +msgstr "Konto e-mail" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "An email containing an invitation will be sent to each member." +msgstr "E-mail zawierający zaproszenie zostanie wysłany do każdego członka." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/token.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "An error occurred" +msgstr "Wystąpił błąd" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "An error occurred while adding fields." +msgstr "Wystąpił błąd podczas dodawania pól." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while adding signers." +msgstr "Wystąpił błąd podczas dodawania podpisujących." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while adding the fields." +msgstr "Wystąpił błąd podczas dodawania pól." + +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "An error occurred while auto-signing the document, some fields may not be signed. Please review and manually sign any remaining fields." +msgstr "Wystąpił błąd podczas automatycznego podpisywania dokumentu, niektóre pola mogą nie być podpisane. Proszę sprawdzić i ręcznie podpisać wszystkie pozostałe pola." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "An error occurred while creating document from template." +msgstr "Wystąpił błąd podczas tworzenia dokumentu z szablonu." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "An error occurred while creating the webhook. Please try again." +msgstr "Wystąpił błąd podczas tworzenia webhooka. Proszę spróbować ponownie." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "An error occurred while deleting the user." +msgstr "Wystąpił błąd podczas usuwania użytkownika." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "An error occurred while disabling direct link signing." +msgstr "Wystąpił błąd podczas dezaktywacji podpisywania za pomocą linku bezpośredniego." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "An error occurred while disabling the user." +msgstr "Wystąpił błąd podczas wyłączania użytkownika." + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +msgid "An error occurred while downloading your document." +msgstr "Wystąpił błąd podczas pobierania dokumentu." + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "An error occurred while duplicating template." +msgstr "Wystąpił błąd podczas duplikowania szablonu." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "An error occurred while enabling direct link signing." +msgstr "Wystąpił błąd podczas aktywacji podpisywania za pomocą linku bezpośredniego." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "An error occurred while enabling the user." +msgstr "Wystąpił błąd podczas włączania użytkownika." + +#: packages/ui/primitives/pdf-viewer.tsx +msgid "An error occurred while loading the document." +msgstr "Wystąpił błąd podczas ładowania dokumentu." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "An error occurred while moving the document." +msgstr "Wystąpił błąd podczas przenoszenia dokumentu." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "An error occurred while moving the template." +msgstr "Wystąpił błąd podczas przenoszenia szablonu." + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while removing the field." +msgstr "Wystąpił błąd podczas usuwania pola." + +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +msgid "An error occurred while removing the selection." +msgstr "Wystąpił błąd podczas usuwania wyboru." + +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "An error occurred while removing the signature." +msgstr "Wystąpił błąd podczas usuwania podpisu." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while sending the document." +msgstr "Wystąpił błąd podczas wysyłania dokumentu." + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "An error occurred while sending your confirmation email" +msgstr "Wystąpił błąd podczas wysyłania e-maila potwierdzającego" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while signing as assistant." +msgstr "Wystąpił błąd podczas podpisywania jako asystent." + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "An error occurred while signing the document." +msgstr "Wystąpił błąd podczas podpisywania dokumentu." + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "An error occurred while trying to create a checkout session." +msgstr "Wystąpił błąd podczas próby utworzenia sesji zamówienia." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "An error occurred while updating the document settings." +msgstr "Wystąpił błąd podczas aktualizowania ustawień dokumentu." + +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +msgid "An error occurred while updating the signature." +msgstr "Wystąpił błąd podczas aktualizowania podpisu." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "An error occurred while updating your profile." +msgstr "Wystąpił błąd podczas aktualizowania profilu." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "An error occurred while uploading your document." +msgstr "Wystąpił błąd podczas przesyłania dokumentu." + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "An unexpected error occurred." +msgstr "Wystąpił nieoczekiwany błąd." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "An unknown error occurred" +msgstr "Wystąpił nieznany błąd" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "An unknown error occurred while creating the folder." +msgstr "Wystąpił nieznany błąd podczas tworzenia folderu." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "An unknown error occurred while deleting the folder." +msgstr "Wystąpił nieznany błąd podczas usuwania folderu." + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "An unknown error occurred while moving the folder." +msgstr "Wystąpił nieznany błąd podczas przenoszenia folderu." + +#: apps/remix/app/routes/_authenticated+/inbox.tsx +msgid "Any documents that you have been invited to will appear here" +msgstr "Wszystkie dokumenty, do których zostałeś zaproszony, pojawią się tutaj" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Any Source" +msgstr "Jakiekolwiek źródło" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Any Status" +msgstr "Jakikolwiek status" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +msgid "API Tokens" +msgstr "Tokeny API" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "App Version" +msgstr "Wersja aplikacji" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Approve" +msgstr "Zatwierdź" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Approve Document" +msgstr "Zatwierdź dokument" + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Approved" +msgstr "Zatwierdzono" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approver" +msgstr "Zatwierdzający" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approvers" +msgstr "Zatwierdzający" + +#: packages/lib/constants/recipient-roles.ts +msgid "Approving" +msgstr "Zatwierdzanie" + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Are you sure you want to complete the document? This action cannot be undone. Please ensure that you have completed prefilling all relevant fields before proceeding." +msgstr "Czy na pewno chcesz zakończyć dokument? Tego działania nie można cofnąć. Upewnij się, że wypełniłeś wszystkie odpowiednie pola przed kontynuacją." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Are you sure you want to delete the following claim?" +msgstr "Czy na pewno chcesz usunąć następujący wniosek?" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Are you sure you want to delete this folder?" +msgstr "Czy na pewno chcesz usunąć ten folder?" + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Are you sure you want to delete this token?" +msgstr "Czy na pewno chcesz usunąć ten token?" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +msgid "Are you sure you want to reject this document? This action cannot be undone." +msgstr "Czy na pewno chcesz odrzucić ten dokument? Ta akcja nie może być cofnięta." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Are you sure you want to remove the <0>{passkeyName} passkey." +msgstr "Czy na pewno chcesz usunąć klucz hasła <0>{passkeyName}." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Are you sure you wish to delete this organisation?" +msgstr "Czy na pewno chcesz usunąć tę organizację?" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Are you sure you wish to delete this team?" +msgstr "Czy na pewno chcesz usunąć ten zespół?" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Are you sure?" +msgstr "Czy na pewno?" + +#: apps/remix/app/components/tables/organisation-groups-table.tsx +msgid "Assigned Teams" +msgstr "Przydzielone zespoły" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assist" +msgstr "Asysta" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Assist Document" +msgstr "Asysta dokumentu" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Assist with signing" +msgstr "Pomoc w podpisywaniu" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assistant" +msgstr "Asystent" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Assistant role is only available when the document is in sequential signing mode." +msgstr "Rola asystenta jest dostępna tylko w trybie sekwencyjnego podpisywania dokumentów." + +#: packages/lib/constants/recipient-roles.ts +msgid "Assistants" +msgstr "Asystenci" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Assistants and Copy roles are currently not compatible with the multi-sign experience." +msgstr "Asystenci i role Kopii są obecnie niekompatybilne z doświadczeniem multi-sign." + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Assisted" +msgstr "Asystowany" + +#: packages/lib/constants/recipient-roles.ts +msgid "Assisting" +msgstr "Asystowanie" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: packages/ui/primitives/template-flow/add-template-settings.types.tsx +#: packages/ui/primitives/document-flow/add-settings.types.ts +#: packages/lib/types/document-meta.ts +msgid "At least one signature type must be enabled" +msgstr "Przynajmniej jeden typ podpisu musi być włączony" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Attempts sealing the document again, useful for after a code change has occurred to resolve an erroneous document." +msgstr "Ponowne próby zapieczętowania dokumentu, przydatne po zmianie kodu w celu rozwiązania błędnego dokumentu." + +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Audit Log" +msgstr "Dziennik logów" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Authentication Level" +msgstr "Poziom autoryzacji" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "Authentication required" +msgstr "Wymagana autoryzacja" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Avatar" +msgstr "Awatar" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Avatar Updated" +msgstr "Awatar został zaktualizowany" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Awaiting email confirmation" +msgstr "Czekam na potwierdzenie e-maila" + +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Back" +msgstr "Powrót" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Back home" +msgstr "Powrót do domu" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Background Color" +msgstr "Kolor tła" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Backup Code" +msgstr "Kod zapasowy" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Backup codes" +msgstr "Kody zapasowe" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Banner Updated" +msgstr "Baner został zaktualizowany" + +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Before you get started, please confirm your email address by clicking the button below:" +msgstr "Zanim zaczniesz, proszę potwierdź swój adres e-mail, klikając przycisk poniżej:" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Billing" +msgstr "Fakturowanie" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Black" +msgstr "Czarny" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Blue" +msgstr "Niebieski" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Brand Details" +msgstr "Szczegóły marki" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Brand Website" +msgstr "Strona internetowa marki" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Branding Logo" +msgstr "Logo markowe" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Branding Preferences" +msgstr "Preferencje dotyczące marki" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Branding preferences updated" +msgstr "Preferencje dotyczące marki zaktualizowane" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +msgid "Browser" +msgstr "Przeglądarka" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "Bulk Copy" +msgstr "Masowa kopia" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Bulk Import" +msgstr "Import zbiorczy" + +#. placeholder {0}: template.title +#: packages/lib/jobs/definitions/internal/bulk-send-template.handler.ts +msgid "Bulk Send Complete: {0}" +msgstr "Zakończono wysyłkę zbiorczą: {0}" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Bulk send operation complete for template \"{templateName}\"" +msgstr "Zakończono operację masowej wysyłki dla szablonu \"{templateName}\"" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Bulk Send Template via CSV" +msgstr "Szablon masowej wysyłki przez CSV" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Bulk Send via CSV" +msgstr "Zbiorcza wysyłka przez CSV" + +#: packages/email/templates/organisation-invite.tsx +msgid "by <0>{senderName}" +msgstr "przez <0>{senderName}" + +#: packages/email/templates/confirm-team-email.tsx +msgid "By accepting this request, you will be granting <0>{teamName} access to:" +msgstr "Akceptując tę prośbę, przyznasz <0>{teamName} dostęp do:" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "By deleting this document, the following will occur:" +msgstr "Usunięcie tego dokumentu spowoduje następujące:" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in using email password." +msgstr "Włączając 2FA, będziesz musiał wprowadzić kod z swojej aplikacji autoryzującej za każdym razem, gdy logujesz się za pomocą hasła e-mail." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." +msgstr "Kontynuując korzystanie z usługi podpisu elektronicznego oferowanej przez Documenso, potwierdzasz, że przeczytałeś i zrozumiałeś to ujawnienie. Zgadzasz się na wszystkie warunki i zasady związane z korzystaniem z podpisów elektronicznych i transakcji elektronicznych, jak opisano w tym dokumencie." + +#: apps/remix/app/components/general/document-signing/document-signing-disclosure.tsx +msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." +msgstr "Kontynuując z Twoim podpisem elektronicznym, przyjmujesz i zgadzasz się, że będzie on użyty do podpisania danego dokumentu i ma tę samą ważność prawną jak odręczny podpis. Dokonując procesu podpisu elektronicznego, potwierdzasz swoje zrozumienie i akceptację tych warunków." + +#: apps/remix/app/components/forms/signup.tsx +msgid "By proceeding, you agree to our <0>Terms of Service and <1>Privacy Policy." +msgstr "Kontynuując, akceptujesz nasz <0>Regulamin i <1>Politykę prywatności." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." +msgstr "Korzystając z funkcji podpisu elektronicznego, wyrażasz zgodę na przeprowadzanie transakcji i otrzymywanie ujawnień elektronicznie. Przyjmujesz do wiadomości, że Twój podpis elektroniczny na dokumentach jest wiążący i akceptujesz warunki przedstawione w dokumentach, które podpisujesz." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Can prepare" +msgstr "Może przygotować" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: packages/ui/primitives/signature-pad/signature-pad-dialog.tsx +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Cancel" +msgstr "Anuluj" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Cancelled by user" +msgstr "Anulowano przez użytkownika" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Cannot remove document" +msgstr "Nie można usunąć dokumentu" + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Cannot remove signer" +msgstr "Nie można usunąć podpisującego" + +#: packages/lib/constants/recipient-roles.ts +msgid "Cc" +msgstr "Cc" + +#: packages/lib/constants/recipient-roles.ts +#: packages/lib/constants/recipient-roles.ts +msgid "CC" +msgstr "CC" + +#: packages/lib/constants/recipient-roles.ts +msgid "CC'd" +msgstr "CC'd" + +#: packages/lib/constants/recipient-roles.ts +msgid "Ccers" +msgstr "Kserokopie" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Character Limit" +msgstr "Limit znaków" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Charts" +msgstr "Wykresy" + +#: packages/ui/primitives/document-flow/types.ts +msgid "Checkbox" +msgstr "Pole wyboru" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Checkbox values" +msgstr "Wartości checkboxa" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Checkout" +msgstr "Kasa" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Choose an existing recipient from below to continue" +msgstr "Wybierz istniejącego odbiorcę, aby kontynuować" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Choose Direct Link Recipient" +msgstr "Wybierz odbiorcę bezpośredniego linku" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Choose how the document will reach recipients" +msgstr "Wybierz, jak dokument dotrze do odbiorców" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Choose how to distribute your document to recipients. Email will send notifications, None will generate signing links for manual distribution." +msgstr "Wybierz sposób dystrybucji dokumentu do odbiorców. E-mail wyśle powiadomienia, Brak wygeneruje linki do podpisu do ręcznej dystrybucji." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Choose your preferred authentication method:" +msgstr "Wybierz preferowaną metodę uwierzytelniania:" + +#: apps/remix/app/components/forms/token.tsx +msgid "Choose..." +msgstr "Wybierz..." + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Claim account" +msgstr "Zgłoś konto" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Claims" +msgstr "Zgłoszenia" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Clear file" +msgstr "Wyczyść plik" + +#: packages/ui/primitives/data-table.tsx +msgid "Clear filters" +msgstr "Wyczyść filtry" + +#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx +msgid "Clear Signature" +msgstr "Wyczyść podpis" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Click here to get started" +msgstr "Kliknij, aby rozpocząć" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Click here to retry" +msgstr "Kliknij tutaj, aby spróbować ponownie" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Click here to upload" +msgstr "Kliknij tutaj, aby przesłać" + +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/avatar-with-recipient.tsx +msgid "Click to copy signing link for sending to recipient" +msgstr "Kliknij, aby skopiować link podpisu do wysłania do odbiorcy" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Click to insert field" +msgstr "Kliknij, aby wstawić pole" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx +msgid "Close" +msgstr "Zamknij" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Communication" +msgstr "Komunikacja" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Compare all plans and features in detail" +msgstr "Porównaj szczegóły wszystkich planów i funkcji" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Complete" +msgstr "Zakończ" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Approval" +msgstr "Zakończ zatwierdzanie" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Assisting" +msgstr "Zakończ asystowanie" + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Complete Document" +msgstr "Zakończ dokument" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Signing" +msgstr "Zakończ podpisywanie" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Complete the fields for the following signers. Once reviewed, they will inform you if any modifications are needed." +msgstr "Wypełnij pola dla następujących sygnatariuszy. Po przeglądzie poinformują Cię, czy są potrzebne jakiekolwiek modyfikacje." + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Complete Viewing" +msgstr "Zakończ wyświetlanie" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/document.ts +#: packages/email/template-components/template-document-self-signed.tsx +#: packages/email/template-components/template-document-recipient-signed.tsx +#: packages/email/template-components/template-document-completed.tsx +msgid "Completed" +msgstr "Zakończone" + +#: packages/email/templates/document-self-signed.tsx +#: packages/email/templates/document-completed.tsx +msgid "Completed Document" +msgstr "Dokument zakończony" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Completed documents" +msgstr "Dokumenty zakończone" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Completed Documents" +msgstr "Zakończone dokumenty" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Completed on {formattedDate}" +msgstr "Zakończono {formattedDate}" + +#. placeholder {0}: parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[currentField.type]) +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +msgid "Configure {0} Field" +msgstr "Skonfiguruj pole {0}" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Configure additional options and preferences" +msgstr "Skonfiguruj dodatkowe opcje i preferencje" + +#: packages/lib/constants/template.ts +msgid "Configure Direct Recipient" +msgstr "Skonfiguruj bezpośredniego odbiorcę" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Configure Document" +msgstr "Skonfiguruj dokument" + +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +msgid "Configure Fields" +msgstr "Skonfiguruj pola" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Configure general settings for the document." +msgstr "Skonfiguruj ogólne ustawienia dokumentu." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Configure general settings for the template." +msgstr "Skonfiguruj ogólne ustawienia szablonu." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Configure template" +msgstr "Skonfiguruj szablon" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Configure Template" +msgstr "Skonfiguruj szablon" + +#. placeholder {0}: parseMessageDescriptor( _, FRIENDLY_FIELD_TYPE[currentField.type], ) +#: apps/remix/app/components/embed/authoring/field-advanced-settings-drawer.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Configure the {0} field" +msgstr "Skonfiguruj pole {0}" + +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +msgid "Configure the fields you want to place on the document." +msgstr "Skonfiguruj pola, które chcesz umieścić na dokumencie." + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Configure the team roles for each group" +msgstr "Skonfiguruj role zespołowe dla każdej grupy" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Configure the team roles for each member" +msgstr "Skonfiguruj role zespołowe dla każdego członka" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Confirm" +msgstr "Potwierdź" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Confirm by typing <0>{deleteMessage}" +msgstr "Potwierdź, wpisując <0>{deleteMessage}" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Confirm by typing: <0>{deleteMessage}" +msgstr "Potwierdź, wpisując: <0>{deleteMessage}" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Confirm Deletion" +msgstr "Potwierdź usunięcie" + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Confirm email" +msgstr "Potwierdź adres e-mail" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Confirmation email sent" +msgstr "E-mail potwierdzający został wysłany" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Consent to Electronic Transactions" +msgstr "Zgoda na transakcje elektroniczne" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Contact Information" +msgstr "Informacje kontaktowe" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Contact sales here" +msgstr "Skontaktuj się z działem sprzedaży tutaj" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Content" +msgstr "Treść" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Continue" +msgstr "Kontynuuj" + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by approving the document." +msgstr "Kontynuuj, zatwierdzając dokument." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by assisting with the document." +msgstr "Kontynuuj, pomagając w obsłudze dokumentu." + +#: packages/email/template-components/template-document-completed.tsx +msgid "Continue by downloading the document." +msgstr "Kontynuuj, pobierając dokument." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by signing the document." +msgstr "Kontynuuj, podpisując dokument." + +#: packages/email/template-components/template-document-invite.tsx +msgid "Continue by viewing the document." +msgstr "Kontynuuj, wyświetlając dokument." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Continue to login" +msgstr "Kontynuuj do logowania" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the default language of an uploaded document. This will be used as the language in email communications with the recipients." +msgstr "Kontroluje domyślny język przesłanego dokumentu. Będzie używany jako język w komunikacji e-mailowej z odbiorcami." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the default visibility of an uploaded document." +msgstr "Kontroluje domyślną widoczność przesłanego dokumentu." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls the formatting of the message that will be sent when inviting a recipient to sign a document. If a custom message has been provided while configuring the document, it will be used instead." +msgstr "Kontroluje formatowanie wiadomości, która zostanie wysłana podczas zapraszania odbiorcy do podpisania dokumentu. Jeśli w konfiguracji dokumentu podano niestandardową wiadomość, zostanie użyta zamiast tego." + +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Controls the language for the document, including the language to be used for email notifications, and the final certificate that is generated and attached to the document." +msgstr "Kontroluje język dokumentu, w tym język powiadomień e-mail i ostateczny certyfikat, który jest generowany i dołączony do dokumentu." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls whether the signing certificate will be included in the document when it is downloaded. The signing certificate can still be downloaded from the logs page separately." +msgstr "Kontroluje, czy certyfikat podpisu zostanie dołączony do dokumentu podczas jego pobierania. Certyfikat podpisu można również pobrać osobno ze strony logów." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Controls which signatures are allowed to be used when signing a document." +msgstr "Kontroluje, które podpisy są dozwolone do użycia podczas podpisywania dokumentu." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Copied" +msgstr "Skopiowano" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/components/document/document-share-button.tsx +msgid "Copied to clipboard" +msgstr "Skopiowano do schowka" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Copy" +msgstr "Kopiuj" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Copy Link" +msgstr "Skopiuj link" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Copy sharable link" +msgstr "Kopiuj udostępnianą link" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Copy Shareable Link" +msgstr "Kopiuj udostępniany link" + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "Copy Signing Links" +msgstr "Kopiuj linki do podpisania" + +#: apps/remix/app/components/forms/token.tsx +msgid "Copy token" +msgstr "Kopiuj token" + +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create" +msgstr "Utwórz" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "Create a <0>free account to access your signed documents at any time." +msgstr "Utwórz <0>darmowe konto, aby uzyskać dostęp do podpisanych dokumentów w dowolnym momencie." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Create a new account" +msgstr "Utwórz nowe konto" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Create a new organisation with {planName} plan. Keep your current organisation on it's current plan" +msgstr "Utwórz nową organizację z planem {planName}. Pozostaw swoją obecną organizację na jej obecnym planie" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create a team to collaborate with your team members." +msgstr "Utwórz zespół, aby współpracować z członkami zespołu." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: packages/email/template-components/template-document-self-signed.tsx +msgid "Create account" +msgstr "Utwórz konto" + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create an organisation for this user" +msgstr "Utwórz organizację dla tego użytkownika" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Create an organisation to collaborate with teams" +msgstr "Utwórz organizację do współpracy z zespołami" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Create an organisation to get started." +msgstr "Utwórz organizację, aby rozpocząć." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create and send" +msgstr "Utwórz i wyślij" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create as draft" +msgstr "Utwórz jako szkic" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create as pending" +msgstr "Utwórz jako oczekujące" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create claim" +msgstr "Utwórz roszczenie" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create Claim" +msgstr "Utwórz roszczenie" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog-wrapper.tsx +msgid "Create Direct Link" +msgstr "Utwórz bezpośredni link" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Create Direct Signing Link" +msgstr "Utwórz bezpośredni link do podpisu" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create document from template" +msgstr "Utwórz dokument z szablonu" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Create folder" +msgstr "Utwórz folder" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Create Folder" +msgstr "Utwórz folder" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Create group" +msgstr "Utwórz grupę" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Create Groups" +msgstr "Utwórz grupy" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Create New Folder" +msgstr "Utwórz nowy folder" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Create now" +msgstr "Utwórz teraz" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Create one automatically" +msgstr "Utwórz jeden automatycznie" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Create organisation" +msgstr "Utwórz organizację" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Create Organisation" +msgstr "Utwórz organizację" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Create separate organisation" +msgstr "Utwórz osobną organizację" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create signing links" +msgstr "Utwórz linki do podpisania" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Create Stripe customer" +msgstr "Utwórz klienta Stripe" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Create subscription" +msgstr "Utwórz subskrypcję" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Create Subscription Claim" +msgstr "Utwórz roszczenie subskrypcji" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create team" +msgstr "Utwórz zespół" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Create Team" +msgstr "Utwórz zespół" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Create the document as pending and ready to sign." +msgstr "Utwórz dokument jako oczekujący i gotowy do podpisania." + +#: apps/remix/app/components/forms/token.tsx +#: apps/remix/app/components/forms/token.tsx +msgid "Create token" +msgstr "Utwórz token" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Create webhook" +msgstr "Utwórz webhook" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Create Webhook" +msgstr "Utwórz webhook" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Create your account and start using state-of-the-art document signing." +msgstr "Utwórz swoje konto i zacznij korzystać z nowoczesnego podpisywania dokumentów." + +#: apps/remix/app/components/forms/signup.tsx +msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp." +msgstr "Utwórz konto i zacznij korzystać z nowoczesnego podpisywania dokumentów. Otwarty i piękny podpis jest w zasięgu ręki." + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Created" +msgstr "Utworzono" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Created At" +msgstr "Utworzono w" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Created by" +msgstr "Utworzono przez" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Created on" +msgstr "Utworzone w" + +#. placeholder {0}: i18n.date(webhook.createdAt, DateTime.DATETIME_FULL) +#. placeholder {0}: i18n.date(token.createdAt, DateTime.DATETIME_FULL) +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Created on {0}" +msgstr "Utworzono {0}" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "CSV Structure" +msgstr "Struktura CSV" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Cumulative MAU (signed in)" +msgstr "Łączne MAU (zalogowani)" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Current" +msgstr "Bieżący" + +#: apps/remix/app/components/forms/password.tsx +msgid "Current Password" +msgstr "Obecne hasło" + +#: apps/remix/app/components/forms/password.tsx +msgid "Current password is incorrect." +msgstr "Aktualne hasło jest niepoprawne." + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Current recipients:" +msgstr "Aktualni odbiorcy:" + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "Currently all organisation members can access this team" +msgstr "Obecnie wszyscy członkowie organizacji mogą uzyskać dostęp do tego zespołu" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Currently branding can only be configured for Teams and above plans." +msgstr "Obecnie można skonfigurować branding tylko dla zespołów i wyższych planów." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups._index.tsx +msgid "Custom Organisation Groups" +msgstr "Niestandardowe grupy organizacyjne" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Dark Mode" +msgstr "Tryb ciemny" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Dashboard" +msgstr "Panel sterowania" + +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Date" +msgstr "Data" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Date created" +msgstr "Data utworzenia" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Date Format" +msgstr "Format daty" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: packages/email/templates/organisation-invite.tsx +msgid "Decline" +msgstr "Odmów" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Document Language" +msgstr "Domyślny język dokumentu" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Document Visibility" +msgstr "Domyślna widoczność dokumentu" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Default Signature Settings" +msgstr "Domyślne ustawienia podpisu" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "delete" +msgstr "usuń" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/folder/folder-card.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Delete" +msgstr "Usuń" + +#. placeholder {0}: webhook.webhookUrl +#. placeholder {0}: token.name +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "delete {0}" +msgstr "usuń {0}" + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "delete {teamName}" +msgstr "usuń {teamName}" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "Delete account" +msgstr "Usuń konto" + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Delete Account" +msgstr "Usuń konto" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete document" +msgstr "Usuń dokument" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete Document" +msgstr "Usuń dokument" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Delete Folder" +msgstr "Usuń folder" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "Delete organisation" +msgstr "Usuń organizację" + +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "Delete organisation group" +msgstr "Usuń grupę organizacyjną" + +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "Delete organisation member" +msgstr "Usuń członka organizacji" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Delete passkey" +msgstr "Usuń klucz dostępu" + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Delete Subscription Claim" +msgstr "Usuń roszczenie subskrypcyjne" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Delete team" +msgstr "Usuń zespół" + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "Delete team group" +msgstr "Usuń grupę zespołu" + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "Delete the document. This action is irreversible so proceed with caution." +msgstr "Usuń dokument. Działanie to jest nieodwracalne, więc działaj ostrożnie." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." +msgstr "Usuń konto użytkownika i wszystkie jego treści. Działanie to jest nieodwracalne i anuluję subskrypcję, więc działaj ostrożnie." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Delete Webhook" +msgstr "Usuń webhook" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Delete your account and all its contents, including completed documents. This action is irreversible and will cancel your subscription, so proceed with caution." +msgstr "Usuń swoje konto i wszystkie jego treści, w tym zakończone dokumenty. Działanie to jest nieodwracalne i anuluję twoją subskrypcję, więc działaj ostrożnie." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Deleted" +msgstr "Usunięto" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Deleting account..." +msgstr "Usuwanie konta..." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Details" +msgstr "Szczegóły" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/tables/settings-security-activity-table.tsx +msgid "Device" +msgstr "Urządzenie" + +#: 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." +msgstr "Nie prosiłeś o zmianę hasła? Jesteśmy tutaj, aby pomóc Ci zabezpieczyć swoje konto, po prostu <0>skontaktuj się z nami." + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +msgid "direct link" +msgstr "link bezpośredni" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Direct link" +msgstr "Link bezpośredni" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Direct Link" +msgstr "Bezpośredni link" + +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +msgid "direct link disabled" +msgstr "link bezpośredni wyłączony" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "Direct link receiver" +msgstr "Odbiorca linku bezpośredniego" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct Link Signing" +msgstr "Podpisywanie bezpośrednim linkiem" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct link signing has been disabled" +msgstr "Podpisywanie bezpośrednim linkiem zostało wyłączone" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct link signing has been enabled" +msgstr "Podpisywanie za pomocą linku bezpośredniego zostało włączone" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Direct link templates contain one dynamic recipient placeholder. Anyone with access to this link can sign the document, and it will then appear on your documents page." +msgstr "Szablony linków bezpośrednich zawierają jedno dynamiczne miejsce odbiorcy. Każdy, kto ma dostęp do tego linku, może podpisać dokument, a następnie pojawi się on na stronie twoich dokumentów." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct template link deleted" +msgstr "Link szablonu bezpośredniego usunięty" + +#. placeholder {0}: quota.directTemplates +#. placeholder {1}: quota.directTemplates +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Direct template link usage exceeded ({0}/{1})" +msgstr "Przekroczono użycie linku szablonu bezpośredniego ({0}/{1})" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Disable" +msgstr "Wyłącz" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Disable 2FA" +msgstr "Wyłącz 2FA" + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "Disable access" +msgstr "Wyłącz dostęp" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disable account" +msgstr "Wyłącz konto" + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disable Account" +msgstr "Wyłącz konto" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Disable Two Factor Authentication before deleting your account." +msgstr "Wyłącz dwuskładnikowe uwierzytelnianie przed usunięciem konta." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "Disabled" +msgstr "Wyłączone" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Disabling direct link signing will prevent anyone from accessing the link." +msgstr "Wyłączenie podpisywania za pomocą linku bezpośredniego uniemożliwi dostęp do linku." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "Disabling the user results in the user not being able to use the account. It also disables all the related contents such as subscription, webhooks, teams, and API keys." +msgstr "Wyłączenie użytkownika uniemożliwia korzystanie z konta oraz dezaktywuje powiązane elementy takie jak subskrypcje, webhooki, zespoły i klucze API." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Display your name and email in documents" +msgstr "Wyświetl swoją nazwę i adres e-mail w dokumentach" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Distribute Document" +msgstr "Rozprowadź dokument" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "Distribution Method" +msgstr "Metoda dystrybucji" + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Do you want to delete this template?" +msgstr "Czy chcesz usunąć ten szablon?" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Do you want to duplicate this template?" +msgstr "Czy chcesz zduplikować ten szablon?" + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Documenso will delete <0>all of your documents, along with all of your completed documents, signatures, and all other resources belonging to your Account." +msgstr "Documenso usunie <0>wszystkie twoje dokumenty, wraz ze wszystkimi zakończonymi dokumentami, podpisami i wszystkimi innymi zasobami należącymi do twojego konta." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Document" +msgstr "Dokument" + +#. placeholder {0}: document.title +#. placeholder {1}: recipient.name +#: packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts +msgid "Document \"{0}\" - Rejected by {1}" +msgstr "Dokument \"{0}\" - Odrzucony przez {1}" + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-rejection-emails.handler.ts +msgid "Document \"{0}\" - Rejection Confirmed" +msgstr "Dokument \"{0}\" - Odrzucenie potwierdzone" + +#. placeholder {0}: document.title +#: packages/lib/jobs/definitions/emails/send-document-cancelled-emails.handler.ts +msgid "Document \"{0}\" Cancelled" +msgstr "Dokument \"{0}\" anulowany" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Document access" +msgstr "Dostęp do dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document access auth updated" +msgstr "Zaktualizowano autoryzację dostępu do dokumentu" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document All" +msgstr "Wszystkie dokumenty" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Approved" +msgstr "Dokument zatwierdzony" + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +#: packages/lib/server-only/document/super-delete-document.ts +#: packages/lib/server-only/document/delete-document.ts +msgid "Document Cancelled" +msgstr "Dokument anulowany" + +#: apps/remix/app/components/general/document/document-status.tsx +#: packages/lib/utils/document-audit-logs.ts +#: packages/lib/utils/document-audit-logs.ts +msgid "Document completed" +msgstr "Zakończono dokument" + +#: packages/ui/components/document/document-email-checkboxes.tsx +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document completed email" +msgstr "E-mail ukończonego dokumentu" + +#: apps/remix/app/components/embed/embed-document-completed.tsx +msgid "Document Completed!" +msgstr "Dokument Zakończony!" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document created" +msgstr "Utworzono dokument" + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Document Created" +msgstr "Dokument utworzony" + +#. placeholder {0}: document.user.name +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Document created by <0>{0}" +msgstr "Dokument utworzony przez <0>{0}" + +#: packages/lib/server-only/template/create-document-from-direct-template.ts +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "Document created from direct template" +msgstr "Dokument utworzony z bezpośredniego szablonu" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Document created using a <0>direct link" +msgstr "Dokument utworzony za pomocą <0>bezpośredniego linku" + +#: packages/lib/constants/template.ts +msgid "Document Creation" +msgstr "Tworzenie dokumentu" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document deleted" +msgstr "Usunięto dokument" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document deleted email" +msgstr "E-mail usuniętego dokumentu" + +#: packages/lib/server-only/document/send-delete-email.ts +msgid "Document Deleted!" +msgstr "Dokument usunięty!" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Document Distribution Method" +msgstr "Metoda dystrybucji dokumentu" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document draft" +msgstr "Szkic dokumentu" + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Document Duplicated" +msgstr "Dokument zduplikowany" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document external ID updated" +msgstr "Zaktualizowano identyfikator zewnętrzny dokumentu" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Document found in your account" +msgstr "Dokument znaleziony na Twoim koncie" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Document history" +msgstr "Historia dokumentu" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document ID" +msgstr "Identyfikator dokumentu" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document inbox" +msgstr "Skrzynka odbiorcza dokumentu" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Document is already uploaded" +msgstr "Dokument już został przesłany" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Document is using legacy field insertion" +msgstr "Dokument używa starej metody wstawiania pól" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Document Limit Exceeded!" +msgstr "Przekroczono limit dokumentów!" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Document metrics" +msgstr "Metryki dokumentów" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Document moved" +msgstr "Dokument przeniesiony" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document moved to team" +msgstr "Przeniesiono dokument do zespołu" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document no longer available to sign" +msgstr "Dokument nie jest już dostępny do podpisania" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document opened" +msgstr "Otwarto dokument" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document pending" +msgstr "Dokument w toku" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Document pending email" +msgstr "E-mail oczekującego dokumentu" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Document preferences updated" +msgstr "Preferencje dokumentu zaktualizowane" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Document re-sent" +msgstr "Dokument ponownie wysłany" + +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Document rejected" +msgstr "Dokument odrzucony" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +#: packages/email/template-components/template-document-rejected.tsx +msgid "Document Rejected" +msgstr "Dokument odrzucone" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Document resealed" +msgstr "Dokument ponownie zaplombowany" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "Document sent" +msgstr "Wysłano dokument" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Signed" +msgstr "Dokument podpisany" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document signing auth updated" +msgstr "Zaktualizowano autoryzację podpisu dokumentu" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Document signing process will be cancelled" +msgstr "Proces podpisywania dokumentu zostanie anulowany" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document status" +msgstr "Status dokumentu" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Document title" +msgstr "Tytuł dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document title updated" +msgstr "Zaktualizowano tytuł dokumentu" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document updated" +msgstr "Zaktualizowano dokument" + +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Document updated successfully" +msgstr "Dokument został pomyślnie zaktualizowany" + +#: apps/remix/app/components/general/document/document-upload.tsx +msgid "Document upload disabled due to unpaid invoices" +msgstr "Przesyłanie dokumentu wyłączone z powodu nieopłaconych faktur" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Document uploaded" +msgstr "Przesłano dokument" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Document Viewed" +msgstr "Dokument został wyświetlony" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Document visibility updated" +msgstr "Zaktualizowano widoczność dokumentu" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Document will be permanently deleted" +msgstr "Dokument zostanie trwale usunięty" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.edit.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/general/user-profile-timur.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +msgid "Documents" +msgstr "Dokumenty" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Documents created from template" +msgstr "Dokumenty utworzone z szablonu" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Documents Received" +msgstr "Odebrane dokumenty" + +#: apps/remix/app/components/tables/inbox-table.tsx +msgid "Documents that require your attention will appear here" +msgstr "Dokumenty wymagające Twojej uwagi pojawią się tutaj" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Documents Viewed" +msgstr "Wyświetlone dokumenty" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +msgid "Don't have an account? <0>Sign up" +msgstr "Nie masz konta? <0>Zarejestruj się" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: packages/ui/components/document/document-download-button.tsx +#: packages/email/template-components/template-document-completed.tsx +msgid "Download" +msgstr "Pobierz" + +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +msgid "Download Audit Logs" +msgstr "Pobierz dziennik logów" + +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +msgid "Download Certificate" +msgstr "Pobierz certyfikat" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Download Original" +msgstr "Pobierz oryginał" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Download Template CSV" +msgstr "Pobierz szablon CSV" + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: packages/lib/constants/document.ts +msgid "Draft" +msgstr "Szkic" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Draft documents" +msgstr "Szkice dokumentów" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Drafted Documents" +msgstr "Szkice dokumentów" + +#: packages/ui/primitives/document-dropzone.tsx +msgid "Drag & drop your PDF here." +msgstr "Przeciągnij i upuść swój PDF tutaj." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Drag and drop or click to upload" +msgstr "Przeciągnij i upuść lub kliknij, aby przesłać" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Drag and drop your PDF file here" +msgstr "Przeciągnij i upuść swój plik PDF tutaj" + +#: packages/lib/constants/document.ts +msgid "Draw" +msgstr "Rysować" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Drop your document here" +msgstr "Upuść swój dokument tutaj" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Dropdown" +msgstr "Lista rozwijana" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Dropdown options" +msgstr "Opcje rozwijane" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Due to an unpaid invoice, your team has been restricted. Please settle the payment to restore full access to your team." +msgstr "Z powodu nieopłaconej faktury Twój zespół został ograniczony. Proszę uregulować płatność, aby przywrócić pełny dostęp do zespołu." + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +msgid "Duplicate" +msgstr "Zduplikuj" + +#: packages/ui/primitives/document-flow/field-item.tsx +msgid "Duplicate on all pages" +msgstr "Powiel na wszystkich stronach" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +msgid "Edit" +msgstr "Edytuj" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Edit Template" +msgstr "Edytuj szablon" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Edit webhook" +msgstr "Edytuj webhook" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Electronic Delivery of Documents" +msgstr "Elektroniczna dostawa dokumentów" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Electronic Signature Disclosure" +msgstr "Ujawnienie podpisu elektronicznego" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +#: packages/lib/constants/document.ts +msgid "Email" +msgstr "Adres e-mail" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/send-confirmation-email.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Email address" +msgstr "Adres e-mail" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Email Address" +msgstr "Adres e-mail" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Email already confirmed" +msgstr "Adres e-mail został już potwierdzony" + +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +msgid "Email cannot already exist in the template" +msgstr "E-mail nie może już istnieć w szablonie" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Email Confirmed!" +msgstr "Adres e-mail został potwierdzony!" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Email Options" +msgstr "Opcje adresu e-mail" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Email resent" +msgstr "Wysłano ponownie wiadomość" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Email sent" +msgstr "Wysłano wiadomość" + +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +msgid "Email sent!" +msgstr "Wiadomość została wysłana!" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Email verification has been removed" +msgstr "Weryfikacja e-mailu została usunięta" + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Email verification has been resent" +msgstr "Weryfikacja e-mailu została ponownie wysłana" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Embedding, 5 members included and more" +msgstr "Osadzanie, 5 członków wliczonych i więcej" + +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Empty field" +msgstr "Puste pole" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Enable" +msgstr "Włącz" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Enable 2FA" +msgstr "Włącz 2FA" + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "Enable access" +msgstr "Włącz dostęp" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enable account" +msgstr "Włącz konto" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enable Account" +msgstr "Włącz konto" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Enable Authenticator App" +msgstr "Włącz aplikację uwierzytelniającą" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable Custom Branding" +msgstr "Włącz niestandardowe brandowanie" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable custom branding for all documents in this organisation" +msgstr "Włącz niestandardowe brandowanie dla wszystkich dokumentów w tej organizacji" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enable custom branding for all documents in this team" +msgstr "Włącz niestandardowe brandowanie dla wszystkich dokumentów w tym zespole" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/lib/constants/template.ts +msgid "Enable Direct Link Signing" +msgstr "Włącz podpisywanie linku bezpośredniego" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Enable signing order" +msgstr "Włącz kolejność podpisów" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Enabled" +msgstr "Włączone" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "Enabling the account results in the user being able to use the account again, and all the related features such as webhooks, teams, and API keys for example." +msgstr "Włączenie konta pozwala użytkownikowi na ponowne korzystanie z niego oraz przywraca wszystkie powiązane funkcje, takie jak webhooki, zespoły i klucze API." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Enclosed Document" +msgstr "Załączony dokument" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Enter a name for your new folder. Folders help you organise your items." +msgstr "Wprowadź nazwę dla nowego folderu. Foldery pomogą ci zorganizować przedmioty." + +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Enter claim name" +msgstr "Wprowadź nazwę roszczenia" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Enter your 2FA code" +msgstr "Wprowadź swój kod 2FA" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Enter your brand details" +msgstr "Wprowadź szczegóły swojej marki" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Enter your email" +msgstr "Wpisz adres e-mail" + +#: apps/remix/app/components/general/direct-template/direct-template-configure-form.tsx +msgid "Enter your email address to receive the completed document." +msgstr "Wprowadź swój adres e-mail, aby otrzymać ukończony dokument." + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Enter your name" +msgstr "Wpisz nazwę" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Enter your password" +msgstr "Wprowadź swoje hasło" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +msgid "Enter your text here" +msgstr "Wprowadź swój tekst tutaj" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Enterprise" +msgstr "Enterprise" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/general/verify-email-banner.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-radio-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Error" +msgstr "Błąd" + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Error uploading file" +msgstr "Błąd przesyłania pliku" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Everyone can access and view the document" +msgstr "Każdy może uzyskać dostęp do dokumentu i go wyświetlić" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Everyone has signed" +msgstr "Wszyscy podpisali" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Everyone has signed! You will receive an Email copy of the signed document." +msgstr "Wszyscy podpisali! Otrzymasz wiadomość e-mail z podpisanym dokumentem." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Exceeded timeout" +msgstr "Przekroczono limit czasu" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Expired" +msgstr "Wygasło" + +#. placeholder {0}: i18n.date(token.expires, DateTime.DATETIME_FULL) +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Expires on {0}" +msgstr "Wygasa {0}" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "External ID" +msgstr "Identyfikator zewnętrzny" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Failed to create folder" +msgstr "Nie udało się utworzyć folderu" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Failed to create subscription claim." +msgstr "Nie udało się utworzyć roszczenia subskrypcyjnego." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Failed to delete folder" +msgstr "Nie udało się usunąć folderu" + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Failed to delete subscription claim." +msgstr "Nie udało się usunąć roszczenia subskrypcyjnego." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Failed to load document" +msgstr "Nie udało się załadować dokumentu" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Failed to move folder" +msgstr "Nie udało się przenieść folderu" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Failed to reseal document" +msgstr "Nie udało się ponownie zaplombować dokumentu" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Failed to revoke session" +msgstr "Nie udało się unieważnić sesji" + +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Failed to save settings." +msgstr "Nie udało się zapisać ustawień." + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Failed to sign out all sessions" +msgstr "Nie udało się wylogować ze wszystkich sesji" + +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Failed to update document" +msgstr "Nie udało się zaktualizować dokumentu" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Failed to update recipient" +msgstr "Nie udało się zaktualizować odbiorcy" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Failed to update subscription claim." +msgstr "Nie udało się zaktualizować roszczenia subskrypcyjnego." + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +msgid "Failed to update template" +msgstr "Nie udało się zaktualizować szablonu" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Failed to update webhook" +msgstr "Nie udało się zaktualizować webhooku" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Failed: {failedCount}" +msgstr "Niepowodzenie: {failedCount}" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Feature Flags" +msgstr "Flagi funkcji" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Field character limit" +msgstr "Limit znaków pola" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Field font size" +msgstr "Rozmiar czcionki pola" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Field format" +msgstr "Format pola" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Field label" +msgstr "Etykieta pola" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +msgid "Field placeholder" +msgstr "Tekst zastępczy pola" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field prefilled by assistant" +msgstr "Wstępnie wypełniono pole przez asystenta" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field signed" +msgstr "Podpisano pole" + +#: packages/lib/utils/document-audit-logs.ts +msgid "Field unsigned" +msgstr "Niepodpisano pole" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Fields" +msgstr "Pola" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Fields updated" +msgstr "Pola zaktualizowane" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" +msgstr "Plik nie może mieć większej wielkości niż {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "File size exceeds the limit of {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB" +msgstr "Rozmiar pliku przekracza limit {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Fill in the details to create a new subscription claim." +msgstr "Wypełnij szczegóły, aby utworzyć nowe roszczenie subskrypcyjne." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Folder" +msgstr "Folder" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Folder created successfully" +msgstr "Folder został utworzony" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Folder deleted successfully" +msgstr "Folder został usunięty" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Folder moved successfully" +msgstr "Folder został przeniesiony" + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "Folder Name" +msgstr "Nazwa folderu" + +#: apps/remix/app/components/dialogs/folder-settings-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "Folder not found" +msgstr "Folder nie znaleziony" + +#: apps/remix/app/components/dialogs/folder-settings-dialog.tsx +msgid "Folder updated successfully" +msgstr "Folder zaktualizowany pomyślnie" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Font Size" +msgstr "Rozmiar czcionki" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" +msgstr "W przypadku jakichkolwiek pytań dotyczących tego ujawnienia, podpisów elektronicznych lub jakiegokolwiek powiązanego procesu, prosimy o kontakt z nami pod adresem: <0>{SUPPORT_EMAIL}" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "For each recipient, provide their email (required) and name (optional) in separate columns. Download the template CSV below for the correct format." +msgstr "Dla każdego odbiorcy podaj jego email (wymagany) i nazwę (opcjonalnie) w oddzielnych kolumnach. Pobierz poniżej szablon CSV dla właściwego formatu." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "For example, if the claim has a new flag \"FLAG_1\" set to true, then this organisation will get that flag added." +msgstr "Na przykład, jeśli roszczenie ma nową flagę \"FLAG_1\" ustawioną na prawdę, to ta organizacja otrzyma tę flagę." + +#: packages/lib/server-only/auth/send-forgot-password.ts +msgid "Forgot Password?" +msgstr "Zapomniałeś hasła?" + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +#: apps/remix/app/components/forms/signin.tsx +#: packages/email/template-components/template-forgot-password.tsx +msgid "Forgot your password?" +msgstr "Zapomniałeś swoje hasło?" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Free" +msgstr "Darmowy" + +#: packages/ui/primitives/document-flow/types.ts +msgid "Free Signature" +msgstr "Swobodny podpis" + +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Full Name" +msgstr "Imię i nazwisko" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/template/template-edit-form.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +#: apps/remix/app/components/general/document/document-edit-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +msgid "General" +msgstr "Ogólne" + +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Generate Links" +msgstr "Generuj linki" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "Global recipient action authentication" +msgstr "Globalne uwierzytelnianie akcji odbiorcy" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Go back" +msgstr "Wróć" + +#: apps/remix/app/routes/_recipient+/_layout.tsx +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Go Back" +msgstr "Wróć" + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Go back home" +msgstr "Wróć do domu" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "Go Back Home" +msgstr "Wróć do domu" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "Go home" +msgstr "Powrót do domu" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "Go to document" +msgstr "Przejdź do dokumentu" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Go to owner" +msgstr "Przejdź do właściciela" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Go to team" +msgstr "Przejdź do zespołu" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "Go to your <0>public profile settings to add documents." +msgstr "Przejdź do swojego <0>ustawienia profilu publicznego, aby dodać dokumenty." + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Green" +msgstr "Zielony" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Group" +msgstr "Grupa" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Group has been created." +msgstr "Grupa została utworzona." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Group has been updated successfully" +msgstr "Grupa została pomyślnie zaktualizowana" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Group Name" +msgstr "Nazwa grupy" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Groups" +msgstr "Grupy" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to approve this document" +msgstr "Zaproszono Cię do zatwierdzenia tego dokumentu" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to assist this document" +msgstr "zaprosił Cię do pomocy przy tym dokumencie" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to sign this document" +msgstr "Zaproszono Cię do podpisania tego dokumentu" + +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "has invited you to view this document" +msgstr "Zaproszono Cię do wyświetlenia tego dokumentu" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Having an assistant as the last signer means they will be unable to take any action as there are no subsequent signers to assist." +msgstr "Asystent jako ostatni sygnatariusz oznacza, że nie będą oni mogli podjąć żadnych działań, ponieważ nie ma kolejnych sygnatariuszy do asysty." + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Help complete the document for other signers." +msgstr "Pomóż zakończyć dokument dla innych podpisujących." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "Here you can edit your organisation details." +msgstr "Tutaj możesz edytować szczegóły swojej organizacji." + +#: apps/remix/app/routes/_authenticated+/settings+/profile.tsx +msgid "Here you can edit your personal details." +msgstr "Tutaj możesz edytować szczegóły konta." + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Here you can manage your password and security settings." +msgstr "Tutaj możesz zarządzać swoim hasłem i ustawieniami zabezpieczeń." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Here you can set preferences and defaults for branding." +msgstr "Tutaj możesz ustawić preferencje i domyślne ustawienia dla brandowania." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Here you can set preferences and defaults for your organisation. Teams will inherit these settings by default." +msgstr "Tutaj możesz ustawić preferencje i domyślne ustawienia dla swojej organizacji. Zespoły przejmą te ustawienia domyślnie." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Here you can set preferences and defaults for your team." +msgstr "Tutaj możesz ustawić preferencje i domyślne ustawienia dla swojego zespołu." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Here you can set your general preferences" +msgstr "Tutaj możesz ustawić swoje ogólne preferencje" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Here's how it works:" +msgstr "Oto jak to działa:" + +#: apps/remix/app/components/general/user-profile-timur.tsx +msgid "Hey I’m Timur" +msgstr "Cześć, jestem Timur" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Hi {userName}," +msgstr "Cześć, {userName}," + +#: packages/email/templates/reset-password.tsx +msgid "Hi, {userName} <0>({userEmail})" +msgstr "Cześć, {userName} <0>({userEmail})" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Hide" +msgstr "Ukryj" + +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Hide additional information" +msgstr "Ukryj dodatkowe informacje" + +#: apps/remix/app/components/general/generic-error-layout.tsx +#: apps/remix/app/components/general/folder/folder-grid.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Home" +msgstr "Dom" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Home (No Folder)" +msgstr "Strona główna (brak folderu)" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am a signer of this document" +msgstr "Jestem podpisującym tego dokumentu" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am a viewer of this document" +msgstr "Jestem widzem tego dokumentu" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am an approver of this document" +msgstr "Jestem zatwierdzającym tego dokumentu" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am an assistant of this document" +msgstr "Jestem asystentem tego dokumentu" + +#: packages/lib/constants/recipient-roles.ts +msgid "I am required to receive a copy of this document" +msgstr "Muszę otrzymać kopię tego dokumentu" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "I am the owner of this document" +msgstr "Jestem właścicielem tego dokumentu" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "I'm sure! Delete it" +msgstr "Jestem pewny! Usuń to" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "ID" +msgstr "Identyfikator" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "ID copied to clipboard" +msgstr "Identyfikator został skopiowany do schowka" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "If you do not want to use the authenticator prompted, you can close it, which will then display the next available authenticator." +msgstr "Jeśli nie chcesz korzystać z proponowanego uwierzytelnienia, możesz je zamknąć, a następnie wyświetlić następne dostępne uwierzytelnienie." + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +msgid "If you don't find the confirmation link in your inbox, you can request a new one below." +msgstr "Jeśli nie znajdziesz linku potwierdzającego w swojej skrzynce odbiorczej, możesz poprosić o nowy poniżej." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "If your authenticator app does not support QR codes, you can use the following code instead:" +msgstr "Jeśli Twoja aplikacja uwierzytelniająca nie obsługuje kodów QR, możesz użyć poniższego kodu:" + +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/document/document-status.tsx +msgid "Inbox" +msgstr "Skrzynka odbiorcza" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Inbox documents" +msgstr "Skrzynka odbiorcza dokumentów" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Include the Signing Certificate in the Document" +msgstr "Dołącz certyfikat podpisu do dokumentu" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Information" +msgstr "Informacje" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "Inherit authentication method" +msgstr "Przechwyć metodę uwierzytelniania" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Inherit from organisation" +msgstr "Odziedzicz z organizacji" + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "Inherit organisation members" +msgstr "Odziedzicz członków organizacji" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Inherited subscription claim" +msgstr "Odziedziczone roszczenie subskrypcji" + +#: apps/remix/app/components/general/document-signing/document-signing-initials-field.tsx +#: packages/ui/primitives/document-flow/types.ts +msgid "Initials" +msgstr "Inicjały" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Inserted" +msgstr "Wstawione" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Instance Stats" +msgstr "Statystyki instancji" + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "Invalid code. Please try again." +msgstr "Kod jest nieprawidłowy. Spróbuj ponownie." + +#: packages/ui/primitives/document-flow/add-signers.types.ts +msgid "Invalid email" +msgstr "Adres e-mail jest nieprawidłowy" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Invalid link" +msgstr "Link jest nieprawidłowy" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Invalid token" +msgstr "Token jest nieprawidłowy" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Invalid token provided. Please try again." +msgstr "Podano nieprawidłowy token. Spróbuj ponownie." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Invitation accepted" +msgstr "Zaproszenie został zaakceptowane" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Invitation accepted!" +msgstr "Zaproszenie zostało zaakceptowane!" + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Invitation declined" +msgstr "Zaproszenie zzostało odrzucone" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invitation has been deleted" +msgstr "Zaproszenie zostało usunięte" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invitation has been resent" +msgstr "Zaproszenie zostało ponownie wysłane" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite" +msgstr "Zaproszenie" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite member" +msgstr "Zaproś członka" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite Members" +msgstr "Zaproś członków" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Invite organisation members" +msgstr "Zaproś członków organizacji" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Invite team members to collaborate" +msgstr "Zaproś członków zespołu do współpracy" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Invited At" +msgstr "Zaproś o" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +msgid "Invoice" +msgstr "Faktura" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +msgid "IP Address" +msgstr "Adres IP" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "It is crucial to keep your contact information, especially your email address, up to date with us. Please notify us immediately of any changes to ensure that you continue to receive all necessary communications." +msgstr "Konieczne jest, aby mieć aktualne informacje kontaktowe, szczególnie swój adres e-mail. Proszę niezwłocznie powiadomić nas o wszelkich zmianach, aby zapewnić ciągłość wszystkich niezbędnych komunikacji." + +#. placeholder {0}: publicProfile.name +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "It looks like {0} hasn't added any documents to their profile yet." +msgstr "Wygląda na to, że {0} jeszcze nie dodał żadnych dokumentów do swojego profilu." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "It looks like we ran into an issue!" +msgstr "Wygląda na to, że napotkaliśmy problem!" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "It seems that the provided token has expired. We've just sent you another token, please check your email and try again." +msgstr "Wydaje się, że podany token wygasł. Właśnie wysłaliśmy Ci nowy token, proszę sprawdź swoją pocztę i spróbuj ponownie." + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +msgid "It seems that there is no token provided, if you are trying to verify your email please follow the link in your email." +msgstr "Wydaje się, że nie podano tokena, jeśli próbujesz zweryfikować swój e-mail, proszę postępuj zgodnie z linkiem w swoim e-mailu." + +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "It's currently not your turn to sign. Please check back soon as this document should be available for you to sign shortly." +msgstr "Aktualnie nie jest Twoja kolej na podpisanie. Wróć wkrótce, ponieważ ten dokument powinien być dostępny do podpisania wkrótce." + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document." +msgstr "Obecnie nie jest Twój czas na podpisanie dokumentu. Otrzymasz e-mail z instrukcjami, gdy przyjdzie Twój czas na podpisanie dokumentu." + +#: packages/email/templates/organisation-invite.tsx +msgid "Join {organisationName} on Documenso" +msgstr "Dołącz do {organisationName} na Documenso" + +#. placeholder {0}: DateTime.fromJSDate(team.createdAt).toRelative({ style: 'short' }) +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Joined {0}" +msgstr "Dołączył {0}" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Label" +msgstr "Etykieta" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Language" +msgstr "Język" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 14 days" +msgstr "Ostatnie 14 dni" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 30 days" +msgstr "Ostatnie 30 dni" + +#: apps/remix/app/components/general/period-selector.tsx +msgid "Last 7 days" +msgstr "Ostatnie 7 dni" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Last Active" +msgstr "Ostatnia aktywność" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Last modified" +msgstr "Ostatnia modyfikacja" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Last updated" +msgstr "Zaktualizowano" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Last Updated" +msgstr "Zaktualizowano" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Last updated at" +msgstr "Ostatnia aktualizacja o" + +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +msgid "Last used" +msgstr "Ostatnie użycie" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Leaderboard" +msgstr "Ranking" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "Leave" +msgstr "Wyjdź" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Leave blank to inherit from the organisation." +msgstr "Pozostaw puste, aby odziedziczyć z organizacji." + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "Leave organisation" +msgstr "Opuść organizację" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Legality of Electronic Signatures" +msgstr "Legalność podpisów elektronicznych" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Light Mode" +msgstr "Jasny tryb" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Like to have your own public profile with agreements?" +msgstr "Czy chcesz mieć własny publiczny profil z umowami?" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Link expires in 1 hour." +msgstr "Link wygasa za 1 godzinę." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Link template" +msgstr "Szablon linku" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Links Generated" +msgstr "Wygenerowane linki" + +#. placeholder {0}: webhook.eventTriggers .map((trigger) => toFriendlyWebhookEventName(trigger)) .join(', ') +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "Listening to {0}" +msgstr "Słuchając {0}" + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Load older activity" +msgstr "Załaduj starszą aktywność" + +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Loading document..." +msgstr "Ładowanie dokumentu..." + +#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Loading Document..." +msgstr "Ładowanie dokumentu..." + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Loading..." +msgstr "Ładowanie..." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "Login" +msgstr "Zaloguj się" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Manage" +msgstr "Zarządzaj" + +#. placeholder {0}: user?.name +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Manage {0}'s profile" +msgstr "Zarządzaj profilem {0}" + +#: apps/remix/app/routes/_authenticated+/settings+/organisations.tsx +msgid "Manage all organisations you are currently associated with." +msgstr "Zarządzaj wszystkimi organizacjami, z którymi jesteś obecnie związany." + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Manage all subscription claims" +msgstr "Zarządzaj wszystkimi roszczeniami subskrypcyjnymi" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Manage and view template" +msgstr "Zarządzaj i przeglądaj szablon" + +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +msgid "Manage billing" +msgstr "Zarządzaj fakturowaniem" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Manage details for this public template" +msgstr "Zarządzaj szczegółami tego publicznego szablonu" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog-wrapper.tsx +msgid "Manage Direct Link" +msgstr "Zarządzaj Bezpośrednim Linkiem" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +msgid "Manage documents" +msgstr "Zarządzaj dokumentami" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage organisation" +msgstr "Zarządzaj organizacją" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Manage organisations" +msgstr "Zarządzaj organizacjami" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Manage passkeys" +msgstr "Zarządzaj kluczami dostępu" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Manage permissions and access controls" +msgstr "Zarządzaj uprawnieniami i kontrolą dostępu" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Manage sessions" +msgstr "Zarządzaj sesjami" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage subscription" +msgstr "Zarządzaj subskrypcją" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage the {0} organisation" +msgstr "Zarządzaj organizacją {0}" + +#. placeholder {0}: organisation.name +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Manage the {0} organisation subscription" +msgstr "Zarządzaj subskrypcjami organizacji {0}" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups._index.tsx +msgid "Manage the custom groups of members for your organisation." +msgstr "Zarządzaj niestandardowymi grupami członków swojej organizacji." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Manage the direct link signing for this template" +msgstr "Zarządzaj podpisywaniem bezpośredniego linku dla tego szablonu" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +msgid "Manage the groups assigned to this team." +msgstr "Zarządzaj grupami przydzielonymi do tego zespołu." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +msgid "Manage the members of your team." +msgstr "Zarządzaj członkami swojego zespołu." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +msgid "Manage the members or invite new members." +msgstr "Zarządzaj członkami lub zaproś nowych członków." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +msgid "Manage the teams in this organisation." +msgstr "Zarządzaj zespołami w tej organizacji." + +#: apps/remix/app/routes/_authenticated+/admin+/users._index.tsx +msgid "Manage users" +msgstr "Zarządzaj użytkownikami" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Manage your organisation group settings." +msgstr "Zarządzaj ustawieniami grup organizacyjnych." + +#: apps/remix/app/routes/_authenticated+/settings+/security.passkeys.tsx +msgid "Manage your passkeys." +msgstr "Zarządzaj kluczami dostępu." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Manage your site settings here" +msgstr "Zarządzaj ustawieniami swojej witryny tutaj" + +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Manager" +msgstr "Menedżer" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Mark as viewed" +msgstr "Oznaczono jako obejrzane" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Mark as Viewed" +msgstr "Oznacz jako wyświetlone" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (created document)" +msgstr "MAU (utworzony dokument)" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (had document completed)" +msgstr "MAU (zakończony dokument)" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "MAU (signed in)" +msgstr "MAU (zalogowani)" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Max" +msgstr "Max" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults." +msgstr "Maksymalny rozmiar pliku: 4MB. Maksymalnie 100 wierszy na przesyłkę. Puste wartości zostaną zastąpione domyślnymi z szablonu." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: packages/lib/constants/teams-translations.ts +#: packages/lib/constants/organisations-translations.ts +msgid "Member" +msgstr "Członek" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Member Count" +msgstr "Ilość członków" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Member Since" +msgstr "Data dołączenia" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Members" +msgstr "Członkowie" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Message <0>(Optional)" +msgstr "Wiadomość <0>(Opcjonalnie)" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Min" +msgstr "Min" + +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Modify recipients" +msgstr "Modyfikuj odbiorców" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Modify the details of the subscription claim." +msgstr "Zmodyfikuj szczegóły roszczenia subskrypcji." + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Monthly" +msgstr "Miesięczny" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Monthly Active Users: Users that created at least one Document" +msgstr "Miesięczni aktywni użytkownicy: Użytkownicy, którzy utworzyli przynajmniej jeden dokument" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Monthly Active Users: Users that had at least one of their documents completed" +msgstr "Miesięczni aktywni użytkownicy: Użytkownicy, którzy mieli przynajmniej jeden z ukończonych dokumentów" + +#: apps/remix/app/components/general/folder/folder-card.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Move" +msgstr "Przenieś" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Move \"{templateTitle}\" to a folder" +msgstr "Przenieś \"{templateTitle}\" do folderu" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Move Document to Folder" +msgstr "Przenieś dokument do folderu" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Move Folder" +msgstr "Przenieś folder" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Move Template to Folder" +msgstr "Przenieś szablon do folderu" + +#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +msgid "Move to Folder" +msgstr "Przenieś do folderu" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Multiple access methods can be selected." +msgstr "Można wybrać wiele metod dostępu." + +#: apps/remix/app/components/dialogs/folder-create-dialog.tsx +msgid "My Folder" +msgstr "Mój folder" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Name" +msgstr "Nazwa" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Name is required" +msgstr "Imię jest wymagane" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Need to sign documents?" +msgstr "Potrzebujesz podpisać dokumenty?" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to approve" +msgstr "Wymaga zatwierdzenia" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to sign" +msgstr "Wymaga podpisania" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Needs to view" +msgstr "Wymaga obejrzenia" + +#: apps/remix/app/components/tables/settings-security-passkey-table.tsx +msgid "Never" +msgstr "Nigdy" + +#: apps/remix/app/components/forms/token.tsx +msgid "Never expire" +msgstr "Nigdy nie wygasa" + +#: apps/remix/app/components/forms/password.tsx +msgid "New Password" +msgstr "Nowe hasło" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "New Template" +msgstr "Nowy szablon" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: packages/ui/primitives/signature-pad/signature-pad-dialog.tsx +msgid "Next" +msgstr "Dalej" + +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +msgid "Next field" +msgstr "Następne pole" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "No" +msgstr "Nie" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "No active drafts" +msgstr "Brak aktywnych szkiców" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "No folders found" +msgstr "Nie znaleziono folderów" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +msgid "No folders found matching \"{searchTerm}\"" +msgstr "Nie znaleziono folderów zgodnych z \"{searchTerm}\"" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "No further action is required from you at this time." +msgstr "Nie są wymagane żadne dalsze działania z Twojej strony w tym momencie." + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "No organisations found" +msgstr "Nie znaleziono organizacji" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "No public profile templates found" +msgstr "Nie znaleziono szablonów profilu publicznego" + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "No recent activity" +msgstr "Brak ostatnich aktywności" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "No recent documents" +msgstr "Brak ostatnich dokumentów" + +#: packages/ui/primitives/recipient-selector.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "No recipient matching this description was found." +msgstr "Nie znaleziono odbiorcy pasującego do tego opisu." + +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "No recipients" +msgstr "Brak odbiorców" + +#: packages/ui/primitives/recipient-selector.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "No recipients with this role" +msgstr "Brak odbiorców z tą rolą" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "No restrictions" +msgstr "Brak ograniczeń" + +#: packages/ui/primitives/data-table.tsx +msgid "No results found" +msgstr "Nie znaleziono wyników" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "No results found." +msgstr "Brak wyników." + +#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx +msgid "No signature field found" +msgstr "Nie znaleziono pola podpisu" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "No Stripe customer attached" +msgstr "Brak powiązanego klienta Stripe" + +#: apps/remix/app/components/tables/team-groups-table.tsx +msgid "No team groups found" +msgstr "Nie znaleziono grupy zespołu" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "No teams yet" +msgstr "Jeszcze nie ma zespołów" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "No valid direct templates found" +msgstr "Nie znaleziono ważnych szablonów bezpośrednich" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "No valid recipients found" +msgstr "Nie znaleziono ważnych odbiorców" + +#: apps/remix/app/components/general/multiselect-role-combobox.tsx +#: packages/ui/primitives/multi-select-combobox.tsx +#: packages/ui/primitives/combobox.tsx +msgid "No value found." +msgstr "Nie znaleziono wartości." + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +msgid "No worries, it happens! Enter your email and we'll email you a special link to reset your password." +msgstr "Nie martw się, to się zdarza! Wprowadź swój e-mail, a my wyślemy Ci specjalny link do zresetowania hasła." + +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/lib/constants/document.ts +msgid "None" +msgstr "Brak" + +#: apps/remix/app/components/forms/signin.tsx +msgid "Not supported" +msgstr "Nieobsługiwane" + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "Nothing to do" +msgstr "Nic do zrobienia" + +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Number" +msgstr "Numer" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Number format" +msgstr "Format liczby" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Number of members allowed. 0 = Unlimited" +msgstr "Ilość dozwolonych członków. 0 = Bez ograniczeń" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Number of teams allowed. 0 = Unlimited" +msgstr "Ilość dozwolonych zespołów. 0 = Bez ograniczeń" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to approve this document" +msgstr "W imieniu \"{0}\" zaproszono Cię do zatwierdzenia tego dokumentu" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to assist this document" +msgstr "w imieniu \"{0}\" zaprosił Cię do pomocy przy tym dokumencie" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to sign this document" +msgstr "W imieniu \"{0}\" zaproszono Cię do podpisania tego dokumentu" + +#. placeholder {0}: document.team?.name +#: apps/remix/app/components/general/document-signing/document-signing-page-view.tsx +msgid "on behalf of \"{0}\" has invited you to view this document" +msgstr "W imieniu \"{0}\" zaproszono Cię do wyświetlenia tego dokumentu" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "On this page, you can create a new webhook." +msgstr "Na tej stronie możesz utworzyć nowy webhook." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "On this page, you can create and manage API tokens. See our <0>Documentation for more information." +msgstr "Na tej stronie możesz tworzyć i zarządzać tokenami API. Zapoznaj się z naszą <0>Dokumentacją po więcej informacji." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "On this page, you can create new Webhooks and manage the existing ones." +msgstr "Na tej stronie możesz utworzyć nowe webhooki i zarządzać istniejącymi." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "On this page, you can edit the webhook and its settings." +msgstr "Na tej stronie możesz edytować webhook i jego ustawienia." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Once confirmed, the following will occur:" +msgstr "Po potwierdzeniu, nastąpi:" + +#: packages/lib/constants/template.ts +msgid "Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted." +msgstr "Po włączeniu możesz wybrać dowolnego aktywnego odbiorcę na sygnatariusza bezpośredniego lub utworzyć nowego. Tego typu odbiorca nie może być edytowany ani usunięty." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Once you have scanned the QR code or entered the code manually, enter the code provided by your authenticator app below." +msgstr "Po zeskanowaniu kodu QR lub ręcznym wpisaniu kodu, wprowadź poniżej kod dostarczony przez swoją aplikację uwierzytelniającą." + +#: 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." +msgstr "Po skonfigurowaniu szablonu udostępnij link wszędzie, gdzie chcesz. Osoba, która otworzy link, będzie mogła wprowadzić swoje dane w polu odbiorcy linku bezpośredniego i wypełnić wszelkie inne przypisane jej pola." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "One of the documents in the current bundle has a signing role that is not compatible with the current signing experience." +msgstr "Jeden z dokumentów w obecnym pakiecie ma rolę podpisującą, która jest niezgodna z bieżącym doświadczeniem podpisywania." + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Only admins can access and view the document" +msgstr "Tylko administratorzy mogą uzyskać dostęp do dokumentu i go wyświetlić" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Only managers and above can access and view the document" +msgstr "Tylko menedżerowie i wyżej mogą uzyskać dostęp do dokumentu i go wyświetlić" + +#: apps/remix/app/routes/_profile+/_layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "Oops! Something went wrong." +msgstr "Ups! Coś poszło nie tak." + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Opened" +msgstr "Otwarto" + +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Or" +msgstr "Lub" + +#: apps/remix/app/components/forms/signin.tsx +msgid "Or continue with" +msgstr "Lub kontynuuj z" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Organisation" +msgstr "Organizacja" + +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Admin" +msgstr "Administrator organizacji" + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Organisation created" +msgstr "Organizacja została utworzona" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Organisation group not found" +msgstr "Grupa organizacji nie została znaleziona" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Organisation Group Settings" +msgstr "Ustawienia grupy organizacji" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation has been updated successfully" +msgstr "Organizacja została zaktualizowana" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "Organisation invitation" +msgstr "Zaproszenie do organizacji" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Organisation invitations have been sent." +msgstr "Zaproszenia do organizacji zostały wysłane." + +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Manager" +msgstr "Menadżer organizacji" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: packages/lib/constants/organisations-translations.ts +msgid "Organisation Member" +msgstr "Członek organizacji" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation Members" +msgstr "Członkowie organizacji" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Organisation Name" +msgstr "Nazwa organizacji" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation not found" +msgstr "Organizacja nie znaleziona" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Organisation Preferences" +msgstr "Ustawienia organizacji" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Organisation role" +msgstr "Rola w organizacji" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Organisation Role" +msgstr "Rola w organizacji" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Organisation settings" +msgstr "Ustawienia organizacji" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +msgid "Organisation Settings" +msgstr "Ustawienia organizacji" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Organisation Teams" +msgstr "Zespoły w organizacji" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Organisation URL" +msgstr "Adres URL organizacji" + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/settings+/organisations.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Organisations" +msgstr "Organizacje" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Organisations that the user is a member of." +msgstr "Organizacje, których użytkownik jest członkiem." + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Organise your documents" +msgstr "Zorganizuj swoje dokumenty" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Organise your members into groups which can be assigned to teams" +msgstr "Zorganizuj swoich członków w grupy, które można przypisać do zespołów" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Organise your templates" +msgstr "Zorganizuj swoje szablony" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Organize your documents and templates" +msgstr "Organizuj swoje dokumenty i szablony" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Otherwise, the document will be created as a draft." +msgstr "W przeciwnym razie dokument zostanie utworzony jako wersja robocza." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Owner" +msgstr "Właściciel" + +#. placeholder {0}: table.getState().pagination.pageIndex + 1 +#. placeholder {1}: table.getPageCount() || 1 +#: packages/ui/primitives/data-table-pagination.tsx +msgid "Page {0} of {1}" +msgstr "Strona {0} z {1}" + +#. placeholder {0}: i + 1 +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Page {0} of {numPages}" +msgstr "Strona {0} z {numPages}" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Passkey" +msgstr "Klucz dostępu" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey already exists for the provided authenticator" +msgstr "Klucz dostępu już istnieje dla podanego uwierzytelniającego" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey creation cancelled due to one of the following reasons:" +msgstr "Tworzenie klucza dostępu anulowane z jednego z następujących powodów:" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Passkey has been removed" +msgstr "Klucz dostępu został usunięty" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Passkey has been updated" +msgstr "Klucz dostępu został zaktualizowany" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkey name" +msgstr "Nazwa klucza dostępu" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Passkey Re-Authentication" +msgstr "Ponowna Autoryzacja Klucza Dostępu" + +#: apps/remix/app/routes/_authenticated+/settings+/security.passkeys.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Passkeys" +msgstr "Klucze dostępu" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Passkeys allow you to sign in and authenticate using biometrics, password managers, etc." +msgstr "Klucze dostępu pozwalają na logowanie i uwierzytelnianie przy użyciu danych biometrycznych, menedżerów haseł itp." + +#: apps/remix/app/components/forms/signin.tsx +msgid "Passkeys are not supported on this browser" +msgstr "Klucze dostępu nie są obsługiwane w tej przeglądarce" + +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Password" +msgstr "Hasło" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Password Re-Authentication" +msgstr "Ponowna Autoryzacja Hasła" + +#: packages/email/templates/forgot-password.tsx +msgid "Password Reset Requested" +msgstr "Żądanie resetowania hasła" + +#: packages/email/templates/reset-password.tsx +msgid "Password Reset Successful" +msgstr "Resetowanie hasła zakończone sukcesem" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "Password should not be common or based on personal information" +msgstr "Hasło nie powinno być powszechne ani oparte na informacjach osobistych" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Password updated" +msgstr "Hasło zostało zaktualizowane" + +#: packages/email/template-components/template-reset-password.tsx +msgid "Password updated!" +msgstr "Hasło zostało zaktualizowane!" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Payment overdue" +msgstr "Płatność zaległa" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/components/document/document-read-only-fields.tsx +#: packages/lib/constants/document.ts +msgid "Pending" +msgstr "Oczekujące" + +#: packages/email/templates/document-pending.tsx +msgid "Pending Document" +msgstr "Dokument oczekujący" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Pending documents" +msgstr "Oczekujące Dokumenty" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Pending Documents" +msgstr "Oczekujące dokumenty" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Pending invitations" +msgstr "Oczekujące zaproszenia" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "per month" +msgstr "miesięcznie" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "per year" +msgstr "rocznie" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +msgid "Personal" +msgstr "Osobiste" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Personal Account" +msgstr "Konto osobiste" + +#: apps/remix/app/routes/_authenticated+/inbox.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "Personal Inbox" +msgstr "Skrzynka odbiorcza osobista" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Pick a number" +msgstr "Wybierz numer" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Pick a password" +msgstr "Wybierz hasło" + +#: apps/remix/app/components/general/user-profile-timur.tsx +msgid "Pick any of the following agreements below and start signing to get started" +msgstr "Wybierz umowę i zacznij podpisywanie" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Pin" +msgstr "Przypnij" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Placeholder" +msgstr "Tekst zastępczy" + +#. placeholder {0}: _(actionVerb).toLowerCase() +#: packages/email/template-components/template-document-invite.tsx +msgid "Please {0} your document<0/>\"{documentName}\"" +msgstr "Proszę {0} Twój dokument<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx +msgid "Please {action} your document {documentName}" +msgstr "Proszę {action} Twój dokument {documentName}" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} this document" +msgstr "Proszę {recipientActionVerb} ten dokument" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} this document created by your direct template" +msgstr "Proszę {recipientActionVerb} ten dokument utworzony przez Twój bezpośredni szablon" + +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "Please {recipientActionVerb} your document" +msgstr "Proszę {recipientActionVerb} Twój dokument" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Please check the CSV file and make sure it is according to our format" +msgstr "Proszę sprawdzić plik CSV i upewnić się, że jest zgodny z naszym formatem" + +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "Please check with the parent application for more information." +msgstr "Sprawdź aplikację nadrzędną, aby uzyskać więcej informacji." + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "Please check your email for updates." +msgstr "Proszę sprawdzić swój email w celu aktualizacji." + +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +msgid "Please choose your new password" +msgstr "Wybierz nowe hasło" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +msgid "Please configure the document first" +msgstr "Najpierw skonfiguruj dokument" + +#: packages/lib/server-only/auth/send-confirmation-email.ts +msgid "Please confirm your email" +msgstr "Potwierdź adres e-mail" + +#: packages/email/templates/confirm-email.tsx +msgid "Please confirm your email address" +msgstr "Potwierdź adres e-mail" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please contact support if you would like to revert this action." +msgstr "Proszę skontaktować się z pomocą techniczną, jeśli chcesz cofnąć tę akcję." + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Please contact the site owner for further assistance." +msgstr "Proszę skontaktować się z właścicielem strony w celu uzyskania dalszej pomocy." + +#: apps/remix/app/components/forms/token.tsx +msgid "Please enter a meaningful name for your token. This will help you identify it later." +msgstr "Wpisz nazwę tokena. Pomoże to później w jego identyfikacji." + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/profile.tsx +msgid "Please enter a valid name." +msgstr "Wpisz prawdłową nazwę." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please mark as viewed to complete" +msgstr "Proszę zaznaczyć jako obejrzane, aby zakończyć" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." +msgstr "Proszę zauważyć, że kontynuowanie usunie bezpośrednio łączącego odbiorcę i zamieni go w symbol zastępczy." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please note that this action is <0>irreversible." +msgstr "Proszę zauważyć, że ta czynność jest <0>nieodwracalna." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please note that this action is <0>irreversible. Once confirmed, this document will be permanently deleted." +msgstr "Proszę pamiętać, że ta czynność jest <0>nieodwracalna. Po potwierdzeniu, ten dokument zostanie trwale usunięty." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your template will be permanently deleted." +msgstr "Proszę pamiętać, że ta czynność jest nieodwracalna. Po potwierdzeniu, Twój szablon zostanie trwale usunięty." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your token will be permanently deleted." +msgstr "Proszę zauważyć, że ta czynność jest nieodwracalna. Po potwierdzeniu, twój token zostanie trwale usunięty." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Please note that this action is irreversible. Once confirmed, your webhook will be permanently deleted." +msgstr "Proszę pamiętać, że ta czynność jest nieodwracalna. Po potwierdzeniu, Twój webhook zostanie trwale usunięty." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Please note that you will lose access to all documents associated with this team & all the members will be removed and notified" +msgstr "Proszę pamiętać, że stracisz dostęp do wszystkich dokumentów powiązanych z tym zespołem i wszyscy członkowie zostaną usunięci oraz powiadomieni" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Please provide a token from the authenticator, or a backup code. If you do not have a backup code available, please contact support." +msgstr "Proszę podać token z aplikacji uwierzytelniającej lub kod zapasowy. Jeśli nie masz dostępnego kodu zapasowego, skontaktuj się z pomocą techniczną." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "Please provide a token from your authenticator, or a backup code." +msgstr "Proszę podać token z Twojego uwierzytelniacza lub kod zapasowy." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please review the document before approving." +msgstr "Przejrzyj dokument przed zatwierdzeniem." + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +msgid "Please review the document before signing." +msgstr "Proszę przejrzeć dokument przed podpisaniem." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Please select a PDF file" +msgstr "Wybierz plik PDF" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Please try again and make sure you enter the correct email address." +msgstr "Spróbuj ponownie i upewnij się, że wprowadzasz poprawny adres email." + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Please try again later." +msgstr "Spróbuj ponownie później." + +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Please try again or contact our support." +msgstr "Spróbuj ponownie lub skontaktuj się z naszym wsparciem." + +#. placeholder {0}: `'${_(deleteMessage)}'` +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Please type {0} to confirm" +msgstr "Wpisz {0}, aby potwierdzić" + +#. placeholder {0}: user.email +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Please type <0>{0} to confirm." +msgstr "Wpisz <0>{0}, aby potwierdzić." + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Please upload a logo" +msgstr "Prześlij logo" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Pre-formatted CSV template with example data." +msgstr "Wstępnie sformatowany szablon CSV z przykładowymi danymi." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +msgid "Preferences" +msgstr "Ustawienia" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Preview" +msgstr "Podgląd" + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +msgid "Preview and configure template." +msgstr "Podgląd i konfiguracja szablonu." + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-type.tsx +msgid "Private" +msgstr "Prywatne" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Private templates can only be modified and viewed by you." +msgstr "Prywatne szablony mogą być modyfikowane i przeglądane tylko przez Ciebie." + +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Proceed" +msgstr "Kontynuuj" + +#: apps/remix/app/routes/_authenticated+/settings+/profile.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Profile" +msgstr "Profil" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Profile is currently <0>hidden." +msgstr "Profil jest obecnie <0>ukryty." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Profile is currently <0>visible." +msgstr "Profil jest obecnie <0>widoczny." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/forms/profile.tsx +msgid "Profile updated" +msgstr "Profil zaktualizowano" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Progress" +msgstr "Postęp" + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/general/template/template-type.tsx +msgid "Public" +msgstr "Publiczny" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +msgid "Public Profile" +msgstr "Profil publiczny" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Public profile URL" +msgstr "Adres URL profilu publicznego" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile." +msgstr "Szablony publiczne są powiązane z Twoim publicznym profilem. Wszelkie modyfikacje szablonów publicznych również pojawią się w Twoim publicznym profilu." + +#: packages/ui/primitives/document-flow/types.ts +msgid "Radio" +msgstr "Radio" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +msgid "Radio values" +msgstr "Wartości radiowe" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Read only" +msgstr "Tylko do odczytu" + +#: apps/remix/app/components/general/document-signing/document-signing-field-container.tsx +msgid "Read only field" +msgstr "Pole tylko do odczytu" + +#: apps/remix/app/components/general/document-signing/document-signing-disclosure.tsx +msgid "Read the full <0>signature disclosure." +msgstr "Przeczytaj pełne <0>ujawnienie podpisu." + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Ready" +msgstr "Gotowy" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Reason" +msgstr "Powód" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "Reason for cancellation: {cancellationReason}" +msgstr "Powód anulowania: {cancellationReason}" + +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Reason for rejection: " +msgstr "Powód odrzucenia: " + +#: packages/email/template-components/template-document-rejected.tsx +msgid "Reason for rejection: {rejectionReason}" +msgstr "Powód odrzucenia: {rejectionReason}" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +msgid "Reason must be less than 500 characters" +msgstr "Powód musi mieć mniej niż 500 znaków" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Reauthentication is required to sign this field" +msgstr "Wymagana jest ponowna autoryzacja, aby podpisać to pole" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "Receives copy" +msgstr "Otrzymuje kopię" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +msgid "Recent activity" +msgstr "Ostatnia aktywność" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Recent documents" +msgstr "Ostatnie dokumenty" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/lib/utils/document-audit-logs.ts +#: packages/lib/utils/document-audit-logs.ts +msgid "Recipient" +msgstr "Odbiorca" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "Recipient action authentication" +msgstr "Uwierzytelnianie akcji odbiorcy" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient removed email" +msgstr "E-mail usuniętego odbiorcy" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient signed email" +msgstr "Podpisany e-mail odbiorcy" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Recipient signing request email" +msgstr "E-mail z prośbą o podpisanie przez odbiorcę" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "Recipient updated" +msgstr "Odbiorca został zaktualizowany" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/general/template/template-page-view-recipients.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +msgid "Recipients" +msgstr "Odbiorcy" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Recipients metrics" +msgstr "Metryki odbiorców" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "Recipients will still retain their copy of the document" +msgstr "Odbiorcy nadal zachowają swoją kopię dokumentu" + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Recovery code copied" +msgstr "Kod odzyskiwania został skopiowany" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Recovery codes" +msgstr "Kody odzyskiwania" + +#: packages/ui/primitives/signature-pad/signature-pad-color-picker.tsx +msgid "Red" +msgstr "Czerwony" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Redirect URL" +msgstr "Adres URL przekierowania" + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "Registration Successful" +msgstr "Rejestracja zakończona sukcesem" + +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Reject Document" +msgstr "Odrzuć dokument" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +#: apps/remix/app/components/general/document/document-status.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/document.ts +msgid "Rejected" +msgstr "Odrzucono" + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "Rejection Confirmed" +msgstr "Odmowa potwierdzona" + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "Rejection reason: {reason}" +msgstr "Powód odrzucenia: {reason}" + +#: apps/remix/app/routes/_unauthenticated+/forgot-password.tsx +msgid "Remembered your password? <0>Sign In" +msgstr "Zapamiętałeś hasło? <0>Zaloguj się" + +#. placeholder {0}: customEmail.subject +#: packages/lib/server-only/document/resend-document.tsx +msgid "Reminder: {0}" +msgstr "Przypomnienie: {0}" + +#. placeholder {0}: document.team.name +#: packages/lib/server-only/document/resend-document.tsx +msgid "Reminder: {0} invited you to {recipientActionVerb} a document" +msgstr "Przypomnienie: {0} zaprosił Cię do {recipientActionVerb} dokument" + +#: packages/lib/server-only/document/resend-document.tsx +msgid "Reminder: Please {recipientActionVerb} this document" +msgstr "Przypomnienie: Proszę {recipientActionVerb} ten dokument" + +#: packages/lib/server-only/document/resend-document.tsx +msgid "Reminder: Please {recipientActionVerb} your document" +msgstr "Przypomnienie: Proszę {recipientActionVerb} Twój dokument" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/document-signing/document-signing-field-container.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: packages/ui/primitives/document-flow/field-item.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Remove" +msgstr "Usuń" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +msgid "Remove organisation group" +msgstr "Usuń grupę organizacji" + +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Remove organisation member" +msgstr "Usuń członka organizacji" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Remove team email" +msgstr "Usuń e-mail zespołu" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "Remove team member" +msgstr "Usuń użytkownika" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Repeat Password" +msgstr "Potwierdź hasło" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Required field" +msgstr "Wymagane pole" + +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +msgid "Reseal document" +msgstr "Zapieczętuj ponownie dokument" + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Resend" +msgstr "Wyślij ponownie" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Resend Confirmation Email" +msgstr "Wyślij ponownie e-mail potwierdzający" + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Resend verification" +msgstr "Wyślij ponownie weryfikację" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Reset" +msgstr "Resetuj" + +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "Reset email sent" +msgstr "Wysłano e-mail z resetowaniem" + +#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/forgot-password.tsx +#: packages/email/template-components/template-forgot-password.tsx +msgid "Reset Password" +msgstr "Zresetuj hasło" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Resetting Password..." +msgstr "Resetowanie hasła..." + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Resolve" +msgstr "Rozwiąż" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Resolve payment" +msgstr "Rozwiąż płatność" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" +msgstr "Możesz być spokojny, Twój dokument jest ściśle poufny i nigdy nie zostanie udostępniony. Tylko Twoje doświadczenie podpisywania będzie wyróżnione. Podziel się swoją spersonalizowaną kartą podpisu, aby zaprezentować swój podpis!" + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Restricted Access" +msgstr "Ograniczony dostęp" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Retention of Documents" +msgstr "Przechowywanie dokumentów" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Retry" +msgstr "Spróbuj ponownie" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Return" +msgstr "Zwróć" + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "Return to Home" +msgstr "Powrót do strony głównej" + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +#: apps/remix/app/routes/_unauthenticated+/check-email.tsx +msgid "Return to sign in" +msgstr "Powrót do logowania" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Revoke" +msgstr "Cofnij" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Revoke access" +msgstr "Cofnij dostęp" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Revoke all sessions" +msgstr "Cofnij wszystkie sesje" + +#: apps/remix/app/components/tables/user-organisations-table.tsx +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-groups-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "Role" +msgstr "Rola" + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +msgid "Roles" +msgstr "Role" + +#: packages/ui/primitives/data-table-pagination.tsx +msgid "Rows per page" +msgstr "Wiersze na stronę" + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-number-field.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx +msgid "Save" +msgstr "Zapisz" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx +msgid "Save Template" +msgstr "Zapisz szablon" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +#: apps/remix/app/components/tables/documents-table-sender-filter.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +msgid "Search" +msgstr "Szukaj" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Search and manage all organisations" +msgstr "Wyszukaj i zarządzaj wszystkimi organizacjami" + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Search by claim ID or name" +msgstr "Wyszukaj według ID roszczenia lub nazwy" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +msgid "Search by document title" +msgstr "Szukaj tytułu dokumentu" + +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx +msgid "Search by name or email" +msgstr "Szukaj nazwy lub adresu e-mail" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx +msgid "Search by organisation ID, name, customer ID or owner email" +msgstr "Wyszukaj według ID organizacji, nazwy, ID klienta lub adresu e-mail właściciela" + +#: apps/remix/app/components/general/document/document-search.tsx +msgid "Search documents..." +msgstr "Szukaj dokumentów..." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.folders._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.folders._index.tsx +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Search folders..." +msgstr "Szukaj folderów..." + +#: packages/ui/components/common/language-switcher-dialog.tsx +msgid "Search languages..." +msgstr "Szukaj języków..." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Secret" +msgstr "Sekret" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +msgid "Security" +msgstr "Bezpieczeństwo" + +#: apps/remix/app/routes/_authenticated+/settings+/security.activity.tsx +msgid "Security activity" +msgstr "Aktywność bezpieczeństwa" + +#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Select" +msgstr "Wybierz" + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "Select a destination for this folder." +msgstr "Wybierz miejsce docelowe dla tego folderu." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "Select a folder to move this document to." +msgstr "Wybierz folder, do którego chcesz przenieść ten dokument." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Select a plan" +msgstr "Wybierz plan" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Select a plan to continue" +msgstr "Wybierz plan, aby kontynuować" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Select a team to view its dashboard" +msgstr "Wybierz zespół, aby zobaczyć jego pulpit" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Select a template you'd like to display on your public profile" +msgstr "Wybierz szablon, który chcesz wyświetlić w profilu publicznym" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Select a template you'd like to display on your team's public profile" +msgstr "Wybierz szablon, który chcesz wyświetlić w profilu publicznym zespołu" + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "Select access methods" +msgstr "Wybierz metody dostępu" + +#: packages/ui/primitives/combobox.tsx +msgid "Select an option" +msgstr "Wybierz opcję" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Select an organisation to view teams" +msgstr "Wybierz organizację, aby zobaczyć zespoły" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Select at least" +msgstr "Wybierz co najmniej" + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "Select authentication methods" +msgstr "Wybierz metody uwierzytelniania" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx +msgid "Select default option" +msgstr "Wybierz domyślną opcję" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups" +msgstr "Wybierz grupy" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups of members to add to the team." +msgstr "Wybierz grupy członków do dodania do zespołu." + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Select groups to add to this team" +msgstr "Wybierz grupy, które chcesz dodać do tego zespołu" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Select members" +msgstr "Wybierz członków" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Select members or groups of members to add to the team." +msgstr "Wybierz członków lub grupy członków, aby dodać do zespołu." + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +msgid "Select members to add to this team" +msgstr "Wybierz członków, aby dodać do tego zespołu" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Select passkey" +msgstr "Wybierz klucz uwierzytelniający" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Select signature types" +msgstr "Wybierz typy podpisów" + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "Select the members to add to this group" +msgstr "Wybierz członków, aby dodać do tej grupy" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Select the members to include in this group" +msgstr "Wybierz członków do włączenia do tej grupy" + +#: apps/remix/app/components/general/webhook-multiselect-combobox.tsx +#: apps/remix/app/components/general/webhook-multiselect-combobox.tsx +msgid "Select triggers" +msgstr "Wybierz wyzwalacze" + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Send" +msgstr "Wyślij" + +#: apps/remix/app/components/forms/send-confirmation-email.tsx +msgid "Send confirmation email" +msgstr "Wyślij e-mail potwierdzający" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Send document" +msgstr "Wyślij dokument" + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +msgid "Send Document" +msgstr "Wyślij dokument" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document completed email" +msgstr "Wyślij e-mail ukończonego dokumentu" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document completed email to the owner" +msgstr "Wyślij e-mail ukończonego dokumentu do właściciela" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document deleted email" +msgstr "Wyślij e-mail usuniętego dokumentu" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send document pending email" +msgstr "Wyślij e-mail oczekującego dokumentu" + +#: packages/email/templates/confirm-team-email.tsx +msgid "Send documents on behalf of the team using the email address" +msgstr "Wyślij dokumenty w imieniu zespołu, używając adresu e-mail" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Send documents to recipients immediately" +msgstr "Wyślij dokumenty do odbiorców natychmiast" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +msgid "Send on Behalf of Team" +msgstr "Wyślij w imieniu zespołu" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient removed email" +msgstr "Wyślij e-mail usuniętego odbiorcy" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient signed email" +msgstr "Wyślij podpisany e-mail odbiorcy" + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "Send recipient signing request email" +msgstr "Wyślij e-mail z prośbą o podpisanie przez odbiorcę" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Send reminder" +msgstr "Wyślij przypomnienie" + +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +msgid "Sender" +msgstr "Nadawca" + +#: apps/remix/app/components/forms/forgot-password.tsx +msgid "Sending Reset Email..." +msgstr "Wysyłanie e-maila resetującego..." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Sending..." +msgstr "Wysyłanie..." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +msgid "Sent" +msgstr "Wysłano" + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Session revoked" +msgstr "Sesja odwołana" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "Sessions have been revoked" +msgstr "Sesje zostały odwołane" + +#: apps/remix/app/components/general/claim-account.tsx +msgid "Set a password" +msgstr "Ustaw hasło" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Set up your document properties and recipient information" +msgstr "Skonfiguruj właściwości dokumentu i informacje o odbiorcach" + +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +msgid "Set up your template properties and recipient information" +msgstr "Skonfiguruj właściwości szablonu i informacje o odbiorcach" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +#: apps/remix/app/routes/_authenticated+/settings+/_layout.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Settings" +msgstr "Ustawienia" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Setup" +msgstr "Konfiguracja" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Share" +msgstr "Udostępnij" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Share Signature Card" +msgstr "Udostępnij kartę podpisu" + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Share Signing Card" +msgstr "Udostępnij kartę podpisu" + +#: packages/lib/constants/template.ts +msgid "Share the Link" +msgstr "Udostępnij link" + +#: packages/ui/components/document/document-share-button.tsx +msgid "Share your signing experience!" +msgstr "Podziel się swoim doświadczeniem podpisywania!" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Show" +msgstr "Pokaż" + +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Show additional information" +msgstr "Pokaż dodatkowe informacje" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Show advanced settings" +msgstr "Pokaż ustawienia zaawansowane" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Show templates in your public profile for your audience to sign and get started quickly" +msgstr "Pokaż szablony w profilu publicznym, aby szybko podpisać dokument" + +#: apps/remix/app/routes/_profile+/p.$url.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/user-profile-timur.tsx +#: apps/remix/app/components/general/user-profile-skeleton.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Sign" +msgstr "Podpisz" + +#. placeholder {0}: recipient.name +#. placeholder {1}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "Sign as {0} <0>({1})" +msgstr "Podpisz jako {0} <0>({1})" + +#. placeholder {0}: recipient.name +#. placeholder {1}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx +msgid "Sign as<0>{0} <1>({1})" +msgstr "Podpisz jako<0>{0} <1>({1})" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Sign document" +msgstr "Podpisz dokument" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "Sign Document" +msgstr "Podpisz dokument" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Sign Documents" +msgstr "Podpisz dokumenty" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Sign field" +msgstr "Pole podpisu" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Here" +msgstr "Podpisz tutaj" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +#: packages/email/template-components/template-reset-password.tsx +msgid "Sign In" +msgstr "Zaloguj się" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Sign in to your account" +msgstr "Zaloguj się na swoje konto" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +#: apps/remix/app/components/general/menu-switcher.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +msgid "Sign Out" +msgstr "Wyloguj" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +msgid "Sign the document to complete the process." +msgstr "Podpisz dokument, aby zakończyć proces." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +msgid "Sign up" +msgstr "Zarejestruj się" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Up with Google" +msgstr "Zarejestruj się za pomocą Google" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Sign Up with OIDC" +msgstr "Zarejestruj się za pomocą OIDC" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-form.tsx +#: apps/remix/app/components/forms/profile.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Signature" +msgstr "Podpis" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signature ID" +msgstr "Identyfikator podpisu" + +#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx +msgid "Signature is too small" +msgstr "Podpis jest zbyt mały" + +#: apps/remix/app/components/forms/profile.tsx +msgid "Signature Pad cannot be empty." +msgstr "Partner podpisu nie może być pusty." + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "Signature types" +msgstr "Typy podpisów" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Signatures Collected" +msgstr "Zebrane podpisy" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Signatures will appear once the document has been completed" +msgstr "Podpisy pojawią się po ukończeniu dokumentu" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/components/document/document-read-only-fields.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Signed" +msgstr "Podpisał" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signer" +msgstr "Podpisujący" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signer Events" +msgstr "Zdarzenia podpisujących" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signers" +msgstr "Podpisujący" + +#: packages/ui/primitives/document-flow/add-signers.types.ts +msgid "Signers must have unique emails" +msgstr "Podpisujący muszą mieć unikalne emaile" + +#: packages/lib/constants/recipient-roles.ts +msgid "Signing" +msgstr "Podpisywanie" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signing Certificate" +msgstr "Certyfikat podpisu" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Signing certificate provided by" +msgstr "Certyfikat podpisu dostarczony przez" + +#: packages/lib/server-only/document/send-completed-email.ts +#: packages/lib/server-only/document/send-completed-email.ts +msgid "Signing Complete!" +msgstr "Podpisywanie zakończone!" + +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +msgid "Signing for" +msgstr "Podpis w imieniu" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Signing in..." +msgstr "Logowanie..." + +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +msgid "Signing Links" +msgstr "Linki do podpisania" + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Signing links have been generated for this document." +msgstr "Linki do podpisania zostały wygenerowane dla tego dokumentu." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Signing order is enabled." +msgstr "Kolejność podpisywania jest włączona." + +#: apps/remix/app/routes/_authenticated+/admin+/leaderboard.tsx +#: apps/remix/app/components/tables/admin-leaderboard-table.tsx +msgid "Signing Volume" +msgstr "Liczba podpisów" + +#: apps/remix/app/components/forms/signup.tsx +msgid "Signups are disabled." +msgstr "Rejestracje są wyłączone." + +#. placeholder {0}: DateTime.fromJSDate(publicProfile.badge.since).toFormat('LLL ‘yy') +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "Since {0}" +msgstr "Od {0}" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Site Banner" +msgstr "Baner strony" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Site Settings" +msgstr "Ustawienia strony" + +#: 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." +msgstr "Niektórzy sygnatariusze nie zostali przypisani do pola podpisu. Przypisz co najmniej 1 pole podpisu do każdego sygnatariusza przed kontynuowaniem." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/share-document-download-button.tsx +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +#: packages/ui/components/document/document-share-button.tsx +msgid "Something went wrong" +msgstr "Coś poszło nie tak" + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Something went wrong while attempting to verify your email address for <0>{0}. Please try again later." +msgstr "Coś poszło nie tak podczas próby weryfikacji adresu e-mail dla <0>{0}. Proszę spróbować ponownie później." + +#: packages/ui/primitives/pdf-viewer.tsx +#: packages/ui/primitives/pdf-viewer.tsx +msgid "Something went wrong while loading the document." +msgstr "Coś poszło nie tak podczas ładowania dokumentu." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-passkey.tsx +msgid "Something went wrong while loading your passkeys." +msgstr "Coś poszło nie tak podczas ładowania Twoich kluczy uwierzytelniających." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Something went wrong while sending the confirmation email." +msgstr "Coś poszło nie tak podczas wysyłania e-maila potwierdzającego." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Something went wrong while updating the team billing subscription, please contact support." +msgstr "Coś poszło nie tak podczas aktualizacji subskrypcji płatniczej zespołu, prosimy o kontakt z pomocą techniczną." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Something went wrong!" +msgstr "Coś poszło nie tak!" + +#: packages/ui/primitives/data-table.tsx +msgid "Something went wrong." +msgstr "Coś poszło nie tak." + +#: apps/remix/app/components/forms/token.tsx +msgid "Something went wrong. Please try again later." +msgstr "Coś poszło nie tak. Proszę spróbować ponownie później." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Something went wrong. Please try again or contact support." +msgstr "Coś poszło nie tak. Proszę spróbować ponownie lub skontaktować się z pomocą techniczną." + +#: apps/remix/app/components/general/document/document-audit-log-download-button.tsx +msgid "Sorry, we were unable to download the audit logs. Please try again later." +msgstr "Nie mogliśmy pobrać dzienniku logów. Spróbuj ponownie później." + +#: apps/remix/app/components/general/document/document-certificate-download-button.tsx +msgid "Sorry, we were unable to download the certificate. Please try again later." +msgstr "Przepraszamy, nie mogliśmy pobrać certyfikatu. Proszę spróbować ponownie później." + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Source" +msgstr "Źródło" + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Stats" +msgstr "Statystyki" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "Status" +msgstr "Stan" + +#: packages/ui/primitives/document-flow/document-flow-root.tsx +msgid "Step <0>{step} of {maxStep}" +msgstr "Krok <0>{step} z {maxStep}" + +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Stripe" +msgstr "Stripe" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Stripe customer created successfully" +msgstr "Klient Stripe został utworzony" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Stripe Customer ID" +msgstr "Identyfikator klienta Stripe" + +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Subject <0>(Optional)" +msgstr "Temat <0>(opcjonalnie)" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Subscribe" +msgstr "Subskrybuj" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "Subscription" +msgstr "Subskrypcja" + +#: apps/remix/app/components/dialogs/claim-create-dialog.tsx +msgid "Subscription claim created successfully." +msgstr "Roszczenie subskrypcji utworzone pomyślnie." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "Subscription claim deleted successfully." +msgstr "Roszczenie subskrypcji usunięte pomyślnie." + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Subscription claim updated successfully." +msgstr "Roszczenie subskrypcji zaktualizowane pomyślnie." + +#: apps/remix/app/routes/_authenticated+/admin+/claims.tsx +msgid "Subscription Claims" +msgstr "Roszczenia subskrypcji" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +#: apps/remix/app/routes/embed+/v1+/authoring+/document.edit.$id.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +#: apps/remix/app/components/general/verify-email-banner.tsx +#: apps/remix/app/components/general/teams/team-email-usage.tsx +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "Success" +msgstr "Sukces" + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "Successfully created passkey" +msgstr "Pomyślnie utworzono klucz uwierzytelniający" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Successfully created: {successCount}" +msgstr "Pomyślnie utworzono: {successCount}" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Summary:" +msgstr "Podsumowanie:" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "System Requirements" +msgstr "Wymagania systemowe" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "System Theme" +msgstr "Motyw systemowy" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/organisation-teams-table.tsx +msgid "Team" +msgstr "Zespół" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/delete-team.ts +msgid "Team \"{0}\" has been deleted on Documenso" +msgstr "Zespół \"{0}\" został usunięty z Documenso" + +#: packages/lib/constants/teams-translations.ts +msgid "Team Admin" +msgstr "Administrator zespołu" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Team Assignments" +msgstr "Przydziały zespołu" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/forms/subscription-claim-form.tsx +msgid "Team Count" +msgstr "Liczba zespołów" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "Team email" +msgstr "Adres e-mail zespołu" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Team Email" +msgstr "Adres e-mail zespołu" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email already verified!" +msgstr "Adres e-mail zespołu został już zweryfikowany!" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Team email has been removed" +msgstr "Adres e-mail zespołu został usunięty" + +#. placeholder {0}: team.name +#: packages/lib/server-only/team/delete-team-email.ts +msgid "Team email has been revoked for {0}" +msgstr "Email zespołowy został anulowany dla {0}" + +#: packages/email/templates/team-email-removed.tsx +msgid "Team email removed" +msgstr "Adres e-mail zespołu usunięty" + +#: packages/email/templates/team-email-removed.tsx +msgid "Team email removed for {teamName} on Documenso" +msgstr "Email zespołowy usunięty dla {teamName} na Documenso" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email verification" +msgstr "Weryfikacja adresu e-mail zespołu" + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "Team email verified!" +msgstr "Adres e-mail zespołu został zweryfikowany!" + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "Team email was updated." +msgstr "Adres e-mail zespołu został zaktualizowany." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.groups.tsx +msgid "Team Groups" +msgstr "Grupy zespołu" + +#: packages/lib/constants/teams-translations.ts +msgid "Team Manager" +msgstr "Kierownik zespołu" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: packages/lib/constants/teams-translations.ts +msgid "Team Member" +msgstr "Użytkownik zespołu" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.members.tsx +msgid "Team Members" +msgstr "Członkowie zespołu" + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Team members have been added." +msgstr "Członkowie zespołu zostali dodani." + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Team Name" +msgstr "Nazwa zespołu" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "Team not found" +msgstr "Nie znaleziono zespołu" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Team Only" +msgstr "Tylko dla zespołu" + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "Team only templates are not linked anywhere and are visible only to your team." +msgstr "Szablony tylko dla zespołu nie są nigdzie linkowane i są widoczne tylko dla Twojego zespołu." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Team Preferences" +msgstr "Ustawienia zespołu" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Team Role" +msgstr "Rola w zespole" + +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Team settings" +msgstr "Ustawienia zespołu" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "Team Settings" +msgstr "Ustawienia zespołu" + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "Team url" +msgstr "Adres URL zespołu" + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Team URL" +msgstr "Adres URL zespołu" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +#: apps/remix/app/components/general/org-menu-switcher.tsx +msgid "Teams" +msgstr "Zespoły" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "Teams help you organise your work and collaborate with others. Create your first team to get started." +msgstr "Zespoły pomagają Ci organizować pracę i współpracować z innymi. Stwórz swój pierwszy zespół, aby rozpocząć." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "Teams that this organisation group is currently assigned to" +msgstr "Zespoły, do których obecnie przypisana jest ta grupa organizacji" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id.edit.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Template" +msgstr "Szablon" + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Template Created" +msgstr "Szablon został utworzony" + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Template deleted" +msgstr "Szablon został usunięty" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Template document uploaded" +msgstr "Szablon dokumentu został przesłany" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Template duplicated" +msgstr "Szablon został zduplikowany" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Template has been removed from your public profile." +msgstr "Szablon został usunięty z profilu publicznego." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Template has been updated." +msgstr "Szablon został zaktualizowany." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Template is using legacy field insertion" +msgstr "Szablon używa starej metody wstawiania pól" + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "Template moved" +msgstr "Szablon został przeniesiony" + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Template saved" +msgstr "Szablon został zapisany" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "Template title" +msgstr "Tytuł szablonu" + +#: apps/remix/app/routes/embed+/v1+/authoring+/template.edit.$id.tsx +msgid "Template updated successfully" +msgstr "Szablon został zaktualizowany" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +#: apps/remix/app/components/general/app-nav-mobile.tsx +#: apps/remix/app/components/general/app-nav-desktop.tsx +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Templates" +msgstr "Szablony" + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Templates allow you to quickly generate documents with pre-filled recipients and fields." +msgstr "Szablony pozwalają na szybkie generowanie dokumentów z wypełnionymi odbiorcami i polami." + +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: apps/remix/app/components/general/document-signing/document-signing-text-field.tsx +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/types.ts +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "Text" +msgstr "Tekst" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx +msgid "Text Align" +msgstr "Wyrównanie tekstu" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Text Color" +msgstr "Kolor tekstu" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "Thank you for completing the signing process." +msgstr "Dziękujemy za pomyślne ukończenie procesu podpisu." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." +msgstr "Dziękujemy za korzystanie z Documenso do wykonywania podpisu elektronicznego dokumentu. Celem tego ujawnienia jest poinformowanie Cię o procesie, legalności oraz Twoich prawach dotyczących korzystania z podpisów elektronicznych na naszej platformie. Decydując się na korzystanie z podpisu elektronicznego, zgadzasz się na warunki opisane poniżej." + +#: packages/email/template-components/template-forgot-password.tsx +msgid "That's okay, it happens! Click the button below to reset your password." +msgstr "To w porządku, zdarza się! Kliknij przycisk poniżej, aby zresetować hasło." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "The account has been deleted successfully." +msgstr "Konto zostało usunięte." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "The account has been disabled successfully." +msgstr "Konto zostało wyłączone." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "The account has been enabled successfully." +msgstr "Konto zostało włączone." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "The authentication methods required for recipients to sign fields" +msgstr "Wymagane metody uwierzytelniania dla odbiorców do podpisania pól" + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "The authentication methods required for recipients to sign the signature field." +msgstr "Wymagane metody uwierzytelniania dla odbiorców do podpisania pola podpisu." + +#: packages/ui/components/document/document-global-auth-access-select.tsx +msgid "The authentication methods required for recipients to view the document." +msgstr "Wymagane metody uwierzytelniania dla odbiorców do wyświetlenia dokumentu." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "The content to show in the banner, HTML is allowed" +msgstr "Treść do wyświetlenia w banerze, dozwolone HTML" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/general/template/template-direct-link-badge.tsx +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "The direct link has been copied to your clipboard" +msgstr "Bezpośredni link został skopiowany do schowka" + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "The document has been moved successfully." +msgstr "Dokument został pomyślnie przeniesiony." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "The document is already saved and cannot be changed." +msgstr "Dokument jest już zapisany i nie można go zmienić." + +#: apps/remix/app/components/embed/embed-document-completed.tsx +msgid "The document is now completed, please follow any instructions provided within the parent application." +msgstr "Dokument jest teraz zakończony, proszę postępować zgodnie z wszelkimi instrukcjami podanymi w aplikacji nadrzędnej." + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "The document owner has been notified of this rejection. No further action is required from you at this time. The document owner may contact you with any questions regarding this rejection." +msgstr "Właściciel dokumentu został poinformowany o tym odrzuceniu. W tej chwili nie są wymagane żadne dalsze działania z Twojej strony. Właściciel dokumentu może się z Tobą skontaktować z pytaniami dotyczącymi tego odrzucenia." + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary." +msgstr "Właściciel dokumentu został poinformowany o Twojej decyzji. Mogą się z Tobą skontaktować w celu podania dalszych instrukcji, jeśli to konieczne." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "The document was created but could not be sent to recipients." +msgstr "Dokument został utworzony, ale nie mógł zostać wysłany do odbiorców." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "The document will be hidden from your account" +msgstr "Dokument zostanie ukryty w Twoim koncie" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "The document will be immediately sent to recipients if this is checked." +msgstr "Dokument zostanie natychmiast wysłany do odbiorców, jeśli to zostanie zaznaczone." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The document's name" +msgstr "Nazwa dokumentu" + +#: apps/remix/app/components/forms/signin.tsx +msgid "The email or password provided is incorrect" +msgstr "Podany e-mail lub hasło jest nieprawidłowe" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The events that will trigger a webhook to be sent to your URL." +msgstr "Wydarzenia, które wyzwolą webhook do wysłania do Twojego URL." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "The fields have been updated to the new field insertion method successfully" +msgstr "Pola zostały zaktualizowane do nowej metody wstawiania." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "The folder you are trying to delete does not exist." +msgstr "Folder, który próbujesz usunąć, nie istnieje." + +#: apps/remix/app/components/dialogs/folder-move-dialog.tsx +msgid "The folder you are trying to move does not exist." +msgstr "Folder, który próbujesz przenieść, nie istnieje." + +#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx +msgid "The folder you are trying to move the document to does not exist." +msgstr "Folder, do którego próbujesz przenieść dokument, nie istnieje." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "The folder you are trying to move the template to does not exist." +msgstr "Folder, do którego próbujesz przenieść szablon, nie istnieje." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "The following errors occurred:" +msgstr "Wystąpiły następujące błędy:" + +#: packages/email/templates/team-delete.tsx +msgid "The following team has been deleted. You will no longer be able to access this team and its documents" +msgstr "Poniższy zespół został usunięty. Nie będziesz mógł już uzyskać dostępu do tego zespołu i jego dokumentów." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "The organisation group you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "Grupa organizacji, której szukasz, mogła zostać usunięta, zmieniona nazwa lub mogła nigdy nie istnieć." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "The organisation role that will be applied to all members in this group." +msgstr "Rola organizacji, która zostanie zastosowana do wszystkich członków tej grupy." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "The organisation you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "Organizacja, której szukasz, mogła zostać usunięta, zmieniona nazwa lub mogła nigdy nie istnieć." + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "The organisation you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "Organizacja, której szukasz, mogła zostać usunięta, zmieniona nazwa lub mogła nigdy nie istnieć." + +#: apps/remix/app/components/general/generic-error-layout.tsx +msgid "The page you are looking for was moved, removed, renamed or might never have existed." +msgstr "Strona została przeniesiona, usunięta, zmieniona lub mogła nie istnieć." + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "The profile link has been copied to your clipboard" +msgstr "Link do profilu został skopiowany do schowka" + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "The profile you are looking for could not be found." +msgstr "Profil, którego szukasz, nie mógł zostać znaleziony." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The public description that will be displayed with this template" +msgstr "Publiczny opis, który zostanie wyświetlony z tym szablonem" + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The public name for your template" +msgstr "Publiczna nazwa Twojego szablonu" + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "The reason provided for deletion is the following:" +msgstr "Podana przyczyna usunięcia jest następująca:" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient can prepare the document for later signers by pre-filling suggest values." +msgstr "Odbiorca może przygotować dokument dla kolejnych sygnatariuszy, wstępnie wypełniając proponowane wartości." + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +msgid "The recipient has been updated successfully" +msgstr "Odbiorca został pomyślnie zaktualizowany" + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is not required to take any action and receives a copy of the document after it is completed." +msgstr "Odbiorca nie jest zobowiązany do podjęcia żadnych działań i otrzymuje kopię dokumentu po jego zakończeniu." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to approve the document for it to be completed." +msgstr "Odbiorca musi zatwierdzić dokument, aby mógł być zakończony." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to sign the document for it to be completed." +msgstr "Odbiorca musi podpisać dokument, aby mógł być zakończony." + +#: packages/ui/components/recipient/recipient-role-select.tsx +msgid "The recipient is required to view the document for it to be completed." +msgstr "Odbiorca musi wyświetlić dokument, aby mógł być zakończony." + +#: packages/ui/components/document/document-share-button.tsx +msgid "The sharing link could not be created at this time. Please try again." +msgstr "Nie udało się utworzyć linku udostępnienia w tym czasie. Proszę spróbować ponownie." + +#: packages/ui/components/document/document-share-button.tsx +msgid "The sharing link has been copied to your clipboard." +msgstr "Link do udostępniania został skopiowany do schowka." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The signer's email" +msgstr "Adres e-mail podpisującego" + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "The signer's name" +msgstr "Nazwa podpisującego" + +#: apps/remix/app/components/general/avatar-with-recipient.tsx +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "The signing link has been copied to your clipboard." +msgstr "Link do podpisu został skopiowany do schowka." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." +msgstr "Baner strony to wiadomość, która jest wyświetlana u góry strony. Może być używany do wyświetlania ważnych informacji użytkownikom." + +#: packages/email/templates/team-email-removed.tsx +msgid "The team email <0>{teamEmail} has been removed from the following team" +msgstr "Email zespołowy <0>{teamEmail} został usunięty z następującego zespołu" + +#: apps/remix/app/routes/_authenticated+/_layout.tsx +msgid "The team you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "Zespół, którego szukasz, mógł zostać usunięty, zmienić nazwę lub mógł nigdy nie istnieć." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "The team you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "Zespół, którego szukasz, mógł zostać usunięty, zmieniony na, albo nigdy nie istniał." + +#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx +msgid "The template has been moved successfully." +msgstr "Szablon został pomyślnie przeniesiony." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "The template will be removed from your profile" +msgstr "Szablon zostanie usunięty z Twojego profilu" + +#: apps/remix/app/components/forms/token.tsx +msgid "The token was copied to your clipboard." +msgstr "Token został skopiowany do schowka." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "The token was deleted successfully." +msgstr "Token został pomyślnie usunięty." + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +msgid "The token you have used to reset your password is either expired or it never existed. If you have still forgotten your password, please request a new reset link." +msgstr "Token, którego użyłeś do zresetowania hasła, jest albo wygasły, albo nigdy nie istniał. Jeśli nadal zapomniałeś hasła, poproś o nowy link resetujący." + +#: apps/remix/app/components/forms/signin.tsx +msgid "The two-factor authentication code provided is incorrect" +msgstr "Podany kod dwuskładnikowy jest nieprawidłowy" + +#: packages/ui/components/document/document-signature-settings-tooltip.tsx +msgid "The types of signatures that recipients are allowed to use when signing the document." +msgstr "Rodzaje podpisów, jakie odbiorcy mogą używać przy podpisywaniu dokumentu." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The URL for Documenso to send webhook events to." +msgstr "URL dla Documenso do wysyłania zdarzeń webhook." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "The user you are looking for may have been removed, renamed or may have never\n" +" existed." +msgstr "Użytkownik, którego szukasz, mógł zostać usunięty, zmieniony nazwę lub mógł nigdy nie istnieć." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "The webhook has been successfully deleted." +msgstr "Webhook został pomyślnie usunięty." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "The webhook has been updated successfully." +msgstr "Webhook został pomyślnie zaktualizowany." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "The webhook was successfully created." +msgstr "Webhook został pomyślnie utworzony." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "There are no active drafts at the current moment. You can upload a document to start drafting." +msgstr "Brak aktywnych szkiców. Prześlij, aby utworzyć." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "There are no completed documents yet. Documents that you have created or received will appear here once completed." +msgstr "Brak zakończonych dokumentów. Utworzone lub odebrane dokumentu pojawią się tutaj, gdy zostaną zakończone." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "There was an error uploading your file. Please try again." +msgstr "Wystąpił błąd podczas przesyłania pliku. Proszę spróbować ponownie." + +#: packages/ui/components/document/document-global-auth-action-select.tsx +msgid "These can be overriden by setting the authentication requirements directly on each recipient in the next step. Multiple methods can be selected." +msgstr "To można nadpisać, ustawiając wymagania dotyczące uwierzytelniania bezpośrednio na każdym odbiorcy w następnym kroku. Można wybrać wiele metod." + +#: packages/ui/components/recipient/recipient-action-auth-select.tsx +msgid "These will override any global settings. Multiple methods can be selected." +msgstr "Te nadpiszą wszelkie globalne ustawienia. Można wybrać wiele metod." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "They have permission on your behalf to:" +msgstr "Mają pozwolenie w Twoim imieniu na:" + +#: apps/remix/app/components/forms/signin.tsx +msgid "This account has been disabled. Please contact support." +msgstr "To konto zostało zablokowane. Skontaktuj się z pomocą techniczną." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This account has not been verified. Please verify your account before signing in." +msgstr "To konto nie zostało zweryfikowane. Proszę zweryfikuj konto przed zalogowaniem." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "This action is not reversible. Please be certain." +msgstr "Ta akcja nie jest odwracalna. Proszę być pewnym." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "This action is reversible, but please be careful as the account may be affected permanently (e.g. their settings and contents not being restored properly)." +msgstr "Ta akcja jest odwracalna, ale proszę być ostrożnym, ponieważ konto może zostać trwałe uszkodzone (np. ich ustawienia i zawartość mogą nie zostać prawidłowo przywrócone)." + +#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx +msgid "This claim is locked and cannot be deleted." +msgstr "To roszczenie jest zablokowane i nie można go usunąć." + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." +msgstr "Dokument ten nie może być odzyskany. Jeśli chcesz zakwestionować przyczynę przyszłych dokumentów, skontaktuj się z administracją." + +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "This document cannot be changed" +msgstr "Tego dokumentu nie można zmienić" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "This document could not be deleted at this time. Please try again." +msgstr "Nie można usunąć tego dokumentu w tej chwili. Proszę spróbować ponownie." + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "This document could not be duplicated at this time. Please try again." +msgstr "Nie można skopiować tego dokumentu w tej chwili. Proszę spróbować ponownie." + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "This document could not be re-sent at this time. Please try again." +msgstr "Nie można ponownie wysłać tego dokumentu w tej chwili. Proszę spróbować ponownie." + +#: packages/ui/primitives/recipient-selector.tsx +msgid "This document has already been sent to this recipient. You can no longer edit this recipient." +msgstr "Ten dokument został już wysłany do tego odbiorcy. Nie można już edytować tego odbiorcy." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "This document has been cancelled by the owner and is no longer available for others to sign." +msgstr "Ten dokument został anulowany przez właściciela i nie jest już dostępny do podpisania przez innych." + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "This document has been cancelled by the owner." +msgstr "Ten dokument został anulowany przez właściciela." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document has been rejected by a recipient" +msgstr "Dokument został odrzucony przez odbiorcę" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document has been signed by all recipients" +msgstr "Ten dokument został podpisany przez wszystkich odbiorców" + +#: apps/remix/app/components/general/document/document-certificate-qr-view.tsx +msgid "This document is available in your Documenso account. You can view more details, recipients, and audit logs there." +msgstr "Ten dokument jest dostępny na Twoim koncie w Documenso. Możesz tam zobaczyć więcej szczegółów, odbiorców i dzienniki audytów." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx +msgid "This document is currently a draft and has not been sent" +msgstr "Ten dokument jest obecnie szkicowany i nie został wysłany" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "This document is using legacy field insertion, we recommend using the new field insertion method for more accurate results." +msgstr "Ten dokument używa starej metody wstawiania pól, zalecamy przyjęcie nowej metody wstawiania pól." + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "This document was created by you or a team member using the template above." +msgstr "Ten dokument został stworzony przez Ciebie lub członka zespołu przy użyciu powyższego szablonu." + +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +msgid "This document was created using a direct link." +msgstr "Ten dokument został stworzony przy użyciu bezpośredniego linku." + +#: packages/email/template-components/template-footer.tsx +msgid "This document was sent using <0>Documenso." +msgstr "Ten dokument został wysłany za pomocą <0>Documenso." + +#: packages/email/template-components/template-document-rejection-confirmed.tsx +msgid "This email confirms that you have rejected the document <0>\"{documentName}\" sent by {documentOwnerName}." +msgstr "Ten email potwierdza, że odrzuciłeś dokument <0>\"{documentName}\" wysłany przez {documentOwnerName}." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "This email is already being used by another team." +msgstr "Ten e-mail jest już używany przez inny zespół." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the document owner when a recipient has signed the document." +msgstr "Ten e-mail jest wysyłany do właściciela dokumentu, gdy odbiorca podpisze dokument." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the recipient if they are removed from a pending document." +msgstr "Ten e-mail jest wysyłany do odbiorcy, jeśli zostanie usunięty z oczekującego dokumentu." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email is sent to the recipient requesting them to sign the document." +msgstr "Ten e-mail jest wysyłany do odbiorcy, prosząc go o podpisanie dokumentu." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This email will be sent to the recipient who has just signed the document, if there are still other recipients who have not signed yet." +msgstr "Ten e-mail zostanie wysłany do odbiorcy, który właśnie podpisał dokument, jeśli są jeszcze inni odbiorcy, którzy nie podpisali." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." +msgstr "To pole nie może być modyfikowane ani usuwane. Po udostępnieniu bezpośredniego linku do tego szablonu lub dodaniu go do swojego publicznego profilu, każdy, kto się w nim dostanie, może wpisać swoje imię i email oraz wypełnić przypisane mu pola." + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "This folder contains multiple items. Deleting it will also delete all items in the folder, including nested folders and their contents." +msgstr "Ten folder zawiera wiele elementów. Usunięcie go również usunie wszystkie elementy w folderze, w tym zagnieżdżone foldery i ich zawartość." + +#: packages/ui/primitives/template-flow/add-template-settings.tsx +msgid "This is how the document will reach the recipients once the document is ready for signing." +msgstr "W ten sposób dokument dotrze do odbiorców, gdy tylko dokument będzie gotowy do podpisania." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "This is the claim that this organisation was initially created with. Any feature flag changes to this claim will be backported into this organisation." +msgstr "To jest roszczenie, z którym pierwotnie została utworzona ta organizacja. Wszelkie zmiany flag funkcji w tym roszczeniu zostaną przeniesione do tej organizacji." + +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "This link is invalid or has expired. Please contact your team to resend a verification." +msgstr "Ten link jest nieprawidłowy lub wygasł. Proszę skontaktować się ze swoim zespołem, aby ponownie wysłać weryfikację." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.general.tsx +msgid "This organisation, and any associated data will be permanently deleted." +msgstr "Ta organizacja oraz wszelkie powiązane dane zostaną trwale usunięte." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "This passkey has already been registered." +msgstr "Ten klucz dostępu został już zarejestrowany." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This passkey is not configured for this application. Please login and add one in the user settings." +msgstr "Ten klucz dostępu nie jest skonfigurowany dla tej aplikacji. Proszę zalogować się i dodać jeden w ustawieniach użytkownika." + +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "This recipient can no longer be modified as they have signed a field, or completed the document." +msgstr "Ten odbiorca nie może być już modyfikowany, ponieważ podpisał pole lub ukończył dokument." + +#: apps/remix/app/components/forms/signin.tsx +msgid "This session has expired. Please try again." +msgstr "Ta sesja wygasła. Proszę spróbować ponownie." + +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "This signer has already signed the document." +msgstr "Ten sygnatariusz już podpisał dokument." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "This team, and any associated data excluding billing invoices will be permanently deleted." +msgstr "Ten zespół oraz wszelkie powiązane dane, z wyjątkiem faktur, zostaną trwale usunięte." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "This template could not be deleted at this time. Please try again." +msgstr "Ten szablon nie mógł zostać usunięty w tej chwili. Proszę spróbować ponownie." + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "This template is using legacy field insertion, we recommend using the new field insertion method for more accurate results." +msgstr "Ten szablon używa starej metody wstawiania pola, zalecamy nową metodę dla lepszych rezultatów." + +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "This token is invalid or has expired. No action is needed." +msgstr "Ten token jest nieprawidłowy lub wygasł. Nie wymaga żadnej akcji." + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "This token is invalid or has expired. Please contact your team for a new invitation." +msgstr "Ten token jest nieprawidłowy lub wygasł. Proszę skontaktować się ze swoim zespołem o nowe zaproszenie." + +#: apps/remix/app/components/forms/team-update-form.tsx +#: apps/remix/app/components/forms/organisation-update-form.tsx +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "This URL is already in use." +msgstr "Ten URL jest już używany." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to all recipients if a pending document has been deleted." +msgstr "To zostanie wysłane do wszystkich odbiorców, jeśli oczekujący dokument został usunięty." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to all recipients once the document has been fully completed." +msgstr "To zostanie wysłane do wszystkich odbiorców, gdy dokument będzie całkowicie ukończony." + +#: packages/ui/components/document/document-email-checkboxes.tsx +msgid "This will be sent to the document owner once the document has been fully completed." +msgstr "To zostanie wysłane do właściciela dokumentu, gdy dokument zostanie w pełni ukończony." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported" +msgstr "To będzie TYLKO przenoś funkcje flag, które są ustawione na true, wszystko, co wyłączone w początkowym roszczeniu, nie zostanie przeniesione" + +#: apps/remix/app/components/dialogs/session-logout-all-dialog.tsx +msgid "This will sign you out of all other devices. You will need to sign in again on those devices to continue using your account." +msgstr "Zostaniesz wylogowany z wszystkich innych urządzeń. Aby dalej korzystać z konta, musisz ponownie się zalogować na tych urządzeniach." + +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +msgid "Time" +msgstr "Czas" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx +msgid "Time zone" +msgstr "Strefa czasowa" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +#: apps/remix/app/components/embed/authoring/configure-document-advanced-settings.tsx +#: packages/ui/primitives/template-flow/add-template-settings.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Time Zone" +msgstr "Strefa czasowa" + +#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table.tsx +#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx +#: apps/remix/app/components/embed/authoring/configure-document-view.tsx +#: packages/ui/primitives/document-flow/add-settings.tsx +msgid "Title" +msgstr "Tytuł" + +#: packages/ui/primitives/document-flow/add-settings.types.ts +msgid "Title cannot be empty" +msgstr "Tytuł nie może być pusty" + +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "To accept this invitation you must create an account." +msgstr "Aby zaakceptować to zaproszenie, musisz założyć konto." + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "To change the email you must remove and add a new email address." +msgstr "Aby zmienić e-mail, musisz usunąć i dodać nowy adres e-mail." + +#. placeholder {0}: userToEnable.email +#. placeholder {0}: userToDisable.email +#. placeholder {0}: user.email +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "To confirm, please enter the accounts email address <0/>({0})." +msgstr "Aby potwierdzić, proszę wpisać adres e-mail konta <0/>({0})." + +#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx +msgid "To confirm, please enter the reason" +msgstr "Aby potwierdzić, proszę wpisać powód" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "To enable two-factor authentication, scan the following QR code using your authenticator app." +msgstr "Aby włączyć uwierzytelnianie dwuetapowe, zeskanuj poniższy kod QR za pomocą swojej aplikacji uwierzytelniającej." + +#: apps/remix/app/routes/_unauthenticated+/unverified-account.tsx +msgid "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox." +msgstr "Aby uzyskać dostęp do swojego konta, proszę potwierdzić swój adres e-mail, klikając na link potwierdzający w swojej skrzynce odbiorczej." + +#. placeholder {0}: recipient.email +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +msgid "To mark this document as viewed, you need to be logged in as <0>{0}" +msgstr "Aby oznaczyć ten dokument jako wyświetlony, musisz być zalogowany jako <0>{0}" + +#. placeholder {0}: emptyCheckboxFields.length > 0 ? 'Checkbox' : emptyRadioFields.length > 0 ? 'Radio' : 'Select' +#. placeholder {0}: emptyCheckboxFields.length > 0 ? 'Checkbox' : emptyRadioFields.length > 0 ? 'Radio' : 'Select' +#: packages/ui/primitives/template-flow/add-template-fields.tsx +#: packages/ui/primitives/document-flow/add-fields.tsx +msgid "To proceed further, please set at least one value for the {0} field." +msgstr "Aby kontynuować, ustaw przynajmniej jedną wartość dla pola {0}." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "To use our electronic signature service, you must have access to:" +msgstr "Aby skorzystać z naszej usługi podpisu elektronicznego, musisz mieć dostęp do:" + +#: apps/remix/app/components/embed/embed-authentication-required.tsx +msgid "To view this document you need to be signed into your account, please sign in to continue." +msgstr "Aby zobaczyć ten dokument, musisz być zalogowany na swoje konto, proszę zaloguj się, aby kontynuować." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Toggle the switch to hide your profile from the public." +msgstr "Przełącz przełącznik, aby ukryć swój profil przed publicznością." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "Toggle the switch to show your profile to the public." +msgstr "Przełącz przełącznik, aby pokazać swój profil publicznie." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Token" +msgstr "Token" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token copied to clipboard" +msgstr "Token został skopiowany do schowka" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token created" +msgstr "Token został utworzony" + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "Token deleted" +msgstr "Token został usunięty" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Token doesn't have an expiration date" +msgstr "Token nie ma daty wygaśnięcia" + +#: apps/remix/app/components/forms/token.tsx +msgid "Token expiration date" +msgstr "Data wygaśnięcia tokena" + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "Token has expired. Please try again." +msgstr "Token wygasł. Spróbuj ponownie." + +#: apps/remix/app/components/forms/token.tsx +msgid "Token name" +msgstr "Nazwa tokena" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Documents" +msgstr "Łączna liczba dokumentów" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Recipients" +msgstr "Łączna liczba odbiorców" + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Total rows processed: {totalProcessed}" +msgstr "Łączna liczba przetworzonych wierszy: {totalProcessed}" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Signers that Signed Up" +msgstr "Łączna liczba podpisujących, którzy się zarejestrowali" + +#: apps/remix/app/routes/_authenticated+/admin+/stats.tsx +msgid "Total Users" +msgstr "Łączna liczba użytkowników" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Triggers" +msgstr "Wyzwalacze" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Two factor authentication" +msgstr "Uwierzytelnianie dwuetapowe" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app." +msgstr "Kody odzyskiwania uwierzytelniania dwuetapowego są używane do uzyskania dostępu do Twojego konta w przypadku, gdy stracisz dostęp do aplikacji uwierzytelniającej." + +#: apps/remix/app/components/forms/signin.tsx +msgid "Two-Factor Authentication" +msgstr "Uwierzytelnianie dwuetapowe" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Two-factor authentication disabled" +msgstr "Uwierzytelnianie dwuetapowe wyłączone" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Two-factor authentication enabled" +msgstr "Uwierzytelnianie dwuetapowe włączone" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Two-factor authentication has been disabled for your account. You will no longer be required to enter a code from your authenticator app when signing in." +msgstr "Uwierzytelnianie dwuetapowe zostało wyłączone dla Twojego konta. Nie będziesz już musiał wprowadzać kodu z aplikacji uwierzytelniającej podczas logowania." + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +msgid "Two-Factor Re-Authentication" +msgstr "Ponowna autoryzacja za pomocą dwuetapowej weryfikacji" + +#: apps/remix/app/components/tables/templates-table.tsx +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: packages/lib/constants/document.ts +msgid "Type" +msgstr "Typ" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Type a command or search..." +msgstr "Wpisz polecenie lub wyszukaj..." + +#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx +msgid "Typed signatures are not allowed. Please draw your signature." +msgstr "Podpisy pisane nie są dozwolone. Proszę narysować swój podpis." + +#: apps/remix/app/routes/_unauthenticated+/verify-email._index.tsx +msgid "Uh oh! Looks like you're missing a token" +msgstr "Ups! Wygląda na to, że brakuje Ci tokenu" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Unable to change the language at this time. Please try again later." +msgstr "Nie można zmienić języka w tej chwili. Spróbuj ponownie później." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Unable to copy recovery code" +msgstr "Nie można skopiować kodu odzyskiwania" + +#: apps/remix/app/components/forms/token.tsx +msgid "Unable to copy token" +msgstr "Nie można skopiować tokena" + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "Unable to create direct template access. Please try again later." +msgstr "Nie można utworzyć bezpośredniego dostępu do szablonu. Proszę spróbować ponownie później." + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Unable to decline this invitation at this time." +msgstr "Nie można w tej chwili odrzucić tego zaproszenia." + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Unable to delete invitation. Please try again." +msgstr "Nie można usunąć zaproszenia. Proszę spróbować ponownie." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Unable to delete team" +msgstr "Nie można usunąć zespołu" + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Unable to disable two-factor authentication" +msgstr "Nie można wyłączyć uwierzytelniania dwuetapowego" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "Unable to join this organisation at this time." +msgstr "Nie można w tej chwili dołączyć do tej organizacji." + +#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx +#: apps/remix/app/components/general/document/document-history-sheet.tsx +msgid "Unable to load document history" +msgstr "Nie można załadować historii dokumentu" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "Unable to load documents" +msgstr "Nie można załadować dokumentów" + +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +msgid "Unable to load your public profile templates at this time" +msgstr "Nie można załadować szablonów publicznego profilu w tej chwili" + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Unable to remove email verification at this time. Please try again." +msgstr "Nie można usunąć weryfikacji e-maila w tej chwili. Proszę spróbować ponownie." + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "Unable to remove team email at this time. Please try again." +msgstr "Nie można usunąć e-maila zespołu w tej chwili. Proszę spróbować ponownie." + +#: apps/remix/app/components/tables/organisation-member-invites-table.tsx +msgid "Unable to resend invitation. Please try again." +msgstr "Nie można ponownie wysłać zaproszenia. Proszę spróbować ponownie." + +#: apps/remix/app/components/general/teams/team-email-dropdown.tsx +msgid "Unable to resend verification at this time. Please try again." +msgstr "Nie można ponownie wysłać weryfikacji w tej chwili. Proszę spróbować ponownie." + +#: apps/remix/app/routes/_unauthenticated+/reset-password._index.tsx +msgid "Unable to reset password" +msgstr "Nie można zresetować hasła" + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Unable to setup two-factor authentication" +msgstr "Nie można skonfigurować uwierzytelniania dwuetapowego" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "Unable to sign in" +msgstr "Nie można się zalogować" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "Unauthorized" +msgstr "Nieautoryzowany" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Uncompleted" +msgstr "Niezakończony" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +msgid "Unknown" +msgstr "Nieznany" + +#: apps/remix/app/components/tables/admin-claims-table.tsx +msgid "Unlimited" +msgstr "Nieograniczone" + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Unlimited documents, API and more" +msgstr "Nieograniczone dokumenty, API i więcej" + +#: apps/remix/app/components/general/folder/folder-card.tsx +msgid "Unpin" +msgstr "Odepnij" + +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "Untitled Group" +msgstr "Grupa bez nazwy" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx +#: apps/remix/app/components/tables/admin-claims-table.tsx +#: apps/remix/app/components/forms/public-profile-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "Update" +msgstr "Zaktualizuj" + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Update Banner" +msgstr "Zaktualizuj baner" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +msgid "Update Billing" +msgstr "Aktualizuj rozliczenia" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Update Claim" +msgstr "Zaktualizuj roszczenie" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Update current organisation" +msgstr "Zaktualizuj bieżącą organizację" + +#: apps/remix/app/components/general/legacy-field-warning-popover.tsx +msgid "Update Fields" +msgstr "Zaktualizuj pola" + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Update organisation" +msgstr "Zaktualizuj organizację" + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "Update organisation member" +msgstr "Zaktualizuj członka organizacji" + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "Update passkey" +msgstr "Zaktualizuj klucz dostępu" + +#: apps/remix/app/components/forms/password.tsx +msgid "Update password" +msgstr "Zaktualizuj hasło" + +#: apps/remix/app/components/forms/profile.tsx +msgid "Update profile" +msgstr "Zaktualizuj profil" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx +#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx +msgid "Update Recipient" +msgstr "Zaktualizuj odbiorcę" + +#: apps/remix/app/components/tables/team-members-table.tsx +#: apps/remix/app/components/tables/team-groups-table.tsx +#: apps/remix/app/components/tables/organisation-members-table.tsx +msgid "Update role" +msgstr "Zaktualizuj rolę" + +#: apps/remix/app/components/dialogs/claim-update-dialog.tsx +msgid "Update Subscription Claim" +msgstr "Zaktualizuj roszczenie dotyczące subskrypcji" + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "Update team" +msgstr "Zaktualizuj zespół" + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "Update team email" +msgstr "Zaktualizuj adres e-mail zespołu" + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "Update team group" +msgstr "Zaktualizuj grupę zespołu" + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "Update team member" +msgstr "Zaktualizuj członka zespołu" + +#: packages/lib/constants/template.ts +msgid "Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient." +msgstr "Zaktualizuj rolę i dodaj pola, jeśli to konieczne dla bezpośredniego odbiorcy. Osoba, która korzysta z bezpośredniego linku, podpisze dokument jako bezpośredni odbiorca." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Update user" +msgstr "Zaktualizuj użytkownika" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Update webhook" +msgstr "Zaktualizuj webhook" + +#: apps/remix/app/components/forms/password.tsx +msgid "Updating password..." +msgstr "Aktualizowanie hasła..." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Updating Your Information" +msgstr "Aktualizowanie informacji" + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "Upgrade" +msgstr "Ulepsz" + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/general/billing-plans.tsx +msgid "Upgrade <0>{0} to {planName}" +msgstr "Ulepsz <0>{0} do {planName}" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Upgrade your plan to upload more documents" +msgstr "Zaktualizuj swój plan, aby przesłać więcej dokumentów" + +#: packages/lib/constants/document.ts +msgid "Upload" +msgstr "Prześlij" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload a CSV file to create multiple documents from this template. Each row represents one document with its recipient details." +msgstr "Prześlij plik CSV, aby utworzyć wiele dokumentów z tego szablonu. Każda linia reprezentuje jeden dokument z jego szczegółami odbiorcy." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Upload a custom document to use instead of the template's default document" +msgstr "Prześlij niestandardowy dokument do użycia zamiast domyślnego dokumentu szablonu" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload and Process" +msgstr "Prześlij i przetwórz" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Upload Avatar" +msgstr "Prześlij awatar" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Upload CSV" +msgstr "Prześlij CSV" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Upload custom document" +msgstr "Prześlij niestandardowy dokument" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +#: packages/ui/primitives/document-upload.tsx +msgid "Upload Document" +msgstr "Prześlij dokument" + +#: packages/ui/primitives/signature-pad/signature-pad-upload.tsx +msgid "Upload Signature" +msgstr "Prześlij podpis" + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "Upload Template Document" +msgstr "Prześlij szablon dokumentu" + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Upload your brand logo (max 5MB, JPG, PNG, or WebP)" +msgstr "Prześlij swoje logo (maks. 5 MB, JPG, PNG lub WebP)" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +msgid "Uploaded by" +msgstr "Przesłane przez" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file is too large" +msgstr "Przesłany plik jest zbyt duży" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file is too small" +msgstr "Przesłany plik jest zbyt mały" + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Uploaded file not an allowed file type" +msgstr "Przesłany plik nie jest dozwolonym typem pliku" + +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Uploading document..." +msgstr "Przesyłanie dokumentu..." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx +msgid "Use" +msgstr "Użyj" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Use Authenticator" +msgstr "Użyj Authenticatora" + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "Use Backup Code" +msgstr "Użyj kodu zapasowego" + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Use Template" +msgstr "Użyj szablonu" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx +msgid "Use your passkey for authentication" +msgstr "Użyj swojego klucza dostępu do uwierzytelniania" + +#: apps/remix/app/components/tables/internal-audit-log-table.tsx +#: apps/remix/app/components/tables/document-logs-table.tsx +msgid "User" +msgstr "Użytkownik" + +#: apps/remix/app/components/forms/password.tsx +msgid "User has no password." +msgstr "Użytkownik nie ma hasła." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "User not found" +msgstr "Użytkownik nie znaleziony" + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "User not found." +msgstr "Nie znaleziono użytkownika." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "User Organisations" +msgstr "Organizacje użytkownika" + +#: apps/remix/app/components/forms/signup.tsx +msgid "User profiles are here!" +msgstr "Profile użytkowników są tutaj!" + +#: apps/remix/app/components/general/menu-switcher.tsx +msgid "User settings" +msgstr "Ustawienia użytkownika" + +#: apps/remix/app/components/forms/signup.tsx +msgid "User with this email already exists. Please use a different email address." +msgstr "Użytkownik z tym adresem e-mail już istnieje. Proszę użyć innego adresu e-mail." + +#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx +msgid "Users" +msgstr "Użytkownicy" + +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx +msgid "Validation" +msgstr "Walidacja" + +#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx +msgid "Value" +msgstr "Wartość" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verification Email Sent" +msgstr "Wysłano wiadomość e-mail z weryfikacją" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verification email sent successfully." +msgstr "Wiadomość e-mail z weryfikacją została wysłana pomyślnie." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify Now" +msgstr "Zweryfikuj teraz" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify your email address" +msgstr "Zweryfikuj adres e-mail" + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "Verify your email address to unlock all features." +msgstr "Zweryfikuj adres e-mail, aby odblokować wszystkie funkcje." + +#: apps/remix/app/components/general/document/document-upload.tsx +msgid "Verify your email to upload documents." +msgstr "Zweryfikuj adres e-mail, aby przesłać dokumenty." + +#: packages/email/templates/confirm-team-email.tsx +msgid "Verify your team email address" +msgstr "Zweryfikuj adres e-mail zespołu" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx +msgid "Version History" +msgstr "Historia wersji" + +#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/inbox-table.tsx +#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/tables/documents-table-action-button.tsx +#: apps/remix/app/components/general/document/document-page-view-button.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "View" +msgstr "Widok" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View activity" +msgstr "Wyświetl aktywność" + +#: packages/email/templates/confirm-team-email.tsx +msgid "View all documents sent to and from this email address" +msgstr "Wyświetl wszystkie dokumenty wysłane do i z tego adresu e-mail" + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "View all documents sent to your account" +msgstr "Wyświetl wszystkie dokumenty wysłane na twoje konto" + +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View all recent security activity related to your account." +msgstr "Wyświetl wszystkie ostatnie aktywności związane z bezpieczeństwem twojego konta." + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "View all related documents" +msgstr "Zobacz wszystkie powiązane dokumenty" + +#: apps/remix/app/routes/_authenticated+/settings+/security.activity.tsx +msgid "View all security activity related to your account." +msgstr "Wyświetl wszystkie aktywności związane z bezpieczeństwem twojego konta." + +#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx +#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx +msgid "View and manage all active sessions for your account." +msgstr "Przeglądaj i zarządzaj wszystkimi aktywnymi sesjami swojego konta." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "View Codes" +msgstr "Wyświetl kody" + +#: packages/email/templates/document-created-from-direct-template.tsx +msgid "View document" +msgstr "Zobacz dokument" + +#: apps/remix/app/components/general/document-signing/document-signing-form.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +#: packages/email/template-components/template-document-rejected.tsx +#: packages/email/template-components/template-document-invite.tsx +msgid "View Document" +msgstr "Wyświetl dokument" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "View documents associated with this email" +msgstr "Wyświetl dokumenty powiązane z tym e-mailem" + +#: apps/remix/app/components/general/organisations/organisation-invitations.tsx +msgid "View invites" +msgstr "Wyświetl zaproszenia" + +#: apps/remix/app/components/general/template/template-page-view-recent-activity.tsx +msgid "View more" +msgstr "Zobacz więcej" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "View next document" +msgstr "Zobacz następny dokument" + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "View Original Document" +msgstr "Wyświetl oryginalny dokument" + +#: apps/remix/app/components/tables/admin-organisations-table.tsx +msgid "View owner" +msgstr "Zobacz właściciela" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "View plans" +msgstr "Zobacz plany" + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +msgid "View Recovery Codes" +msgstr "Wyświetl kody odzyskiwania" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/_layout.tsx +msgid "View teams" +msgstr "Wyświetl zespoły" + +#: apps/remix/app/routes/_internal+/[__htmltopdf]+/certificate.tsx +#: apps/remix/app/components/general/document/document-page-view-recipients.tsx +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +#: packages/lib/constants/recipient-roles.ts +msgid "Viewed" +msgstr "Wyświetlił" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewer" +msgstr "Użytkownik widoku" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewers" +msgstr "Widokowcy" + +#: packages/lib/constants/recipient-roles.ts +msgid "Viewing" +msgstr "Wyświetlanie" + +#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx +msgid "Waiting" +msgstr "Czekam" + +#: packages/email/template-components/template-document-pending.tsx +msgid "Waiting for others" +msgstr "Czekam na innych" + +#: packages/lib/server-only/document/send-pending-email.ts +msgid "Waiting for others to complete signing." +msgstr "Czekam na innych, aby zakończyć podpisywanie." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "Waiting for others to sign" +msgstr "Czekam na podpisy innych" + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +#: apps/remix/app/components/embed/embed-document-waiting-for-turn.tsx +msgid "Waiting for Your Turn" +msgstr "Czekając na Twój Ruch" + +#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx +msgid "Want to send slick signing links like this one? <0>Check out Documenso." +msgstr "Chcesz wysłać eleganckie linki do podpisywania, takie jak ten? <0>Sprawdź Documenso." + +#: apps/remix/app/routes/_profile+/_layout.tsx +msgid "Want your own public profile?" +msgstr "Chcesz mieć profil publiczny?" + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "Warning: Assistant as last signer" +msgstr "Uwaga: Asystent jako ostatni sygnatariusz" + +#: apps/remix/app/components/general/organisations/organisation-billing-portal-button.tsx +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "We are unable to proceed to the billing portal at this time. Please try again, or contact support." +msgstr "Nie możemy przejść do portalu rozliczeń w tej chwili. Proszę spróbuj ponownie lub skontaktuj się z pomocą techniczną." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "We are unable to remove this passkey at the moment. Please try again later." +msgstr "Nie możemy usunąć tego klucza zabezpieczeń w tej chwili. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "We are unable to update this passkey at the moment. Please try again later." +msgstr "Nie możemy zaktualizować tego klucza zabezpieczeń w tej chwili. Proszę spróbuj ponownie później." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "We couldn't create a Stripe customer. Please try again." +msgstr "Nie udało nam się utworzyć klienta Stripe. Spróbuj ponownie." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx +msgid "We couldn't update the group. Please try again." +msgstr "Nie udało nam się zaktualizować grupy. Spróbuj ponownie." + +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx +msgid "We couldn't update the organisation. Please try again." +msgstr "Nie udało nam się zaktualizować organizacji. Spróbuj ponownie." + +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "We encountered an error while removing the direct template link. Please try again later." +msgstr "Wystąpił błąd podczas usuwania bezpośredniego linku do szablonu. Proszę spróbować ponownie później." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "We encountered an error while updating the webhook. Please try again later." +msgstr "Natknęliśmy się na błąd podczas aktualizacji webhooka. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx +msgid "We encountered an unknown error while attempting to add team members. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby dodania członków zespołu. Spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "We encountered an unknown error while attempting to add this email. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby dodania tego e-maila. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a group. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby utworzenia grupy. Spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a organisation. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby utworzenia organizacji. Spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "We encountered an unknown error while attempting to create a team. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby utworzenia zespołu. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete it. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby usunięcia tego. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this organisation. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby usunięcia tej organizacji. Spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this team. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby usunięcia tego zespołu. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete this token. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby usunięcia tego tokena. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to delete your account. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby usunięcia twojego konta. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "We encountered an unknown error while attempting to disable access." +msgstr "Napotkaliśmy nieznany błąd podczas próby zablokowania dostępu." + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "We encountered an unknown error while attempting to enable access." +msgstr "Napotkaliśmy nieznany błąd podczas próby włączenia dostępu." + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "We encountered an unknown error while attempting to invite organisation members. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby zaproszenia członków organizacji. Spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "We encountered an unknown error while attempting to leave this organisation. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby opuszczenia tej organizacji. Spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this group. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby usunięcia tej grupy. Spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this template from your profile. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby usunięcia tego szablonu z twojego profilu. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "We encountered an unknown error while attempting to remove this user. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby usunięcia tego użytkownika. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/forms/reset-password.tsx +msgid "We encountered an unknown error while attempting to reset your password. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zresetowania hasła. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "We encountered an unknown error while attempting to revoke access. Please try again or contact support." +msgstr "Natknęliśmy się na nieznany błąd podczas próby odwołania dostępu. Proszę spróbuj ponownie lub skontaktuj się z pomocą techniczną." + +#: apps/remix/app/components/forms/signin.tsx +#: apps/remix/app/components/forms/signin.tsx +msgid "We encountered an unknown error while attempting to sign you In. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zalogowania się. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/forms/signup.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "We encountered an unknown error while attempting to sign you Up. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby rejestracji. Proszę spróbuj ponownie później." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "We encountered an unknown error while attempting to update the banner. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zaktualizowania banera. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "We encountered an unknown error while attempting to update the template. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zaktualizowania szablonu. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "We encountered an unknown error while attempting to update this organisation member. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby zaktualizowania tego członka organizacji. Spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "We encountered an unknown error while attempting to update this team member. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zaktualizowania tego członka zespołu. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "We encountered an unknown error while attempting to update your organisation. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby zaktualizowania Twojej organizacji. Spróbuj ponownie później." + +#: apps/remix/app/components/forms/password.tsx +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "We encountered an unknown error while attempting to update your password. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zaktualizowania twojego hasła. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "We encountered an unknown error while attempting to update your public profile. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zaktualizowania twojego profilu publicznego. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "We encountered an unknown error while attempting to update your team. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zaktualizowania twojego zespołu. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/dialogs/team-email-update-dialog.tsx +msgid "We encountered an unknown error while attempting update the team email. Please try again later." +msgstr "Natknęliśmy się na nieznany błąd podczas próby zaktualizowania e-maila zespołu. Proszę spróbuj ponownie później." + +#: apps/remix/app/components/forms/profile.tsx +msgid "We encountered an unknown error while attempting update your profile. Please try again later." +msgstr "Napotkaliśmy nieznany błąd podczas próby aktualizacji Twojego profilu. Proszę spróbować ponownie później." + +#: apps/remix/app/components/dialogs/team-email-add-dialog.tsx +msgid "We have sent a confirmation email for verification." +msgstr "Wysłaliśmy wiadomość e-mail z potwierdzeniem dla weryfikacji." + +#: apps/remix/app/components/forms/signup.tsx +msgid "We need your signature to sign documents" +msgstr "Potrzebujemy Twojego podpisu, aby podpisać dokumenty" + +#: apps/remix/app/components/forms/token.tsx +msgid "We were unable to copy the token to your clipboard. Please try again." +msgstr "Nie udało nam się skopiować tokena do schowka. Spróbuj ponownie." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "We were unable to copy your recovery code to your clipboard. Please try again." +msgstr "Nie udało nam się skopiować twojego kodu odzyskiwania do schowka. Spróbuj ponownie." + +#: apps/remix/app/components/forms/signup.tsx +msgid "We were unable to create your account. Please review the information you provided and try again." +msgstr "Nie udało się utworzyć Twojego konta. Proszę sprawdzić podane informacje i spróbować ponownie." + +#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx +msgid "We were unable to disable two-factor authentication for your account. Please ensure that you have entered your password and backup code correctly and try again." +msgstr "Nie udało nam się wyłączyć uwierzytelniania dwuskładnikowego dla twojego konta. Upewnij się, że wpisałeś poprawnie swoje hasło i kod zapasowy, a następnie spróbuj ponownie." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-account.tsx +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "We were unable to log you out at this time." +msgstr "Nie udało nam się wylogować w tej chwili." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "We were unable to set your public profile to public. Please try again." +msgstr "Nie udało nam się ustawić twojego profilu publicznego na publiczny. Proszę spróbuj ponownie." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "We were unable to setup two-factor authentication for your account. Please ensure that you have entered your code correctly and try again." +msgstr "Nie udało nam się skonfigurować uwierzytelniania dwuskładnikowego dla twojego konta. Upewnij się, że wpisałeś poprawnie swój kod, a następnie spróbuj ponownie." + +#: apps/remix/app/components/general/direct-template/direct-template-page.tsx +#: apps/remix/app/components/embed/embed-document-signing-page.tsx +#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx +msgid "We were unable to submit this document at this time. Please try again later." +msgstr "Nie udało nam się złożyć tego dokumentu w tej chwili. Proszę spróbuj ponownie później." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "We were unable to update your branding preferences at this time, please try again later" +msgstr "Nie udało nam się zaktualizować ustawień dotyczących marki w tym czasie, spróbuj ponownie później" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "We were unable to update your document preferences at this time, please try again later" +msgstr "Nie udało nam się zaktualizować preferencji dokumentu w tym czasie, spróbuj ponownie później" + +#: apps/remix/app/components/general/document-signing/document-signing-auth-password.tsx +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "We were unable to verify your details. Please try again or contact support" +msgstr "Nie udało się zweryfikować twoich danych. Proszę spróbuj ponownie lub skontaktuj się z pomocą techniczną" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "We were unable to verify your email at this time." +msgstr "Nie udało się zweryfikować Twojego e-maila w tym momencie." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "We were unable to verify your email. If your email is not verified already, please try again." +msgstr "Nie udało się zweryfikować twojego e-maila. Jeśli twój e-mail nie jest jeszcze zweryfikowany, spróbuj ponownie." + +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "We will generate signing links for with you, which you can send to the recipients through your method of choice." +msgstr "Wygenerujemy linki do podpisu dla Ciebie, które możesz wysłać do odbiorców w wybrany przez siebie sposób." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "We will generate signing links for you, which you can send to the recipients through your method of choice." +msgstr "Wygenerujemy dla Ciebie linki do podpisania, które możesz wysłać do odbiorców za pomocą wybranej metody." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +#: packages/ui/primitives/document-flow/add-subject.tsx +msgid "We won't send anything to notify recipients." +msgstr "Nie wyślemy nic, aby powiadomić odbiorców." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "We're all empty" +msgstr "Pusto" + +#: packages/email/template-components/template-document-pending.tsx +msgid "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." +msgstr "Wciąż czekamy na innych sygnatariuszy, aby podpisać ten dokument.<0/>Powiadomimy Cię, gdy będzie gotowy." + +#: packages/email/templates/reset-password.tsx +msgid "We've changed your password as you asked. You can now sign in with your new password." +msgstr "Zmieniłem hasło, jak prosiłeś. Teraz możesz zalogować się za pomocą nowego hasła." + +#: apps/remix/app/components/general/verify-email-banner.tsx +msgid "We've sent a confirmation email to <0>{email}. Please check your inbox and click the link in the email to verify your account." +msgstr "Wysłaliśmy wiadomość e-mail z potwierdzeniem na <0>{email}. Proszę sprawdź swoją skrzynkę odbiorczą i kliknij link w e-maile, aby zweryfikować swoje konto." + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Webhook created" +msgstr "Webhook utworzony" + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +msgid "Webhook deleted" +msgstr "Webhook usunięty" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id.tsx +msgid "Webhook updated" +msgstr "Webhook zaktualizowany" + +#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx +msgid "Webhook URL" +msgstr "URL webhooka" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +#: apps/remix/app/components/general/settings-nav-mobile.tsx +#: apps/remix/app/components/general/settings-nav-desktop.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-mobile.tsx +#: apps/remix/app/components/general/teams/team-settings-nav-desktop.tsx +msgid "Webhooks" +msgstr "Webhooki" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Welcome" +msgstr "Witaj" + +#: apps/remix/app/routes/_unauthenticated+/signin.tsx +msgid "Welcome back, we are lucky to have you." +msgstr "Witaj ponownie. Mamy szczęście, że Cię mamy." + +#: apps/remix/app/routes/_authenticated+/dashboard.tsx +msgid "Welcome back! Here's an overview of your account." +msgstr "Witamy z powrotem! Oto przegląd twojego konta." + +#: packages/email/template-components/template-confirmation-email.tsx +msgid "Welcome to Documenso!" +msgstr "Witamy w Documenso!" + +#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx +msgid "Were you trying to edit this document instead?" +msgstr "Czy próbowałeś raczej edytować ten dokument?" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "What you can do with teams:" +msgstr "Co możesz zrobić z zespołami:" + +#: apps/remix/app/components/embed/authoring/configure-document-recipients.tsx +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "When enabled, signers can choose who should sign next in the sequence instead of following the predefined order." +msgstr "Kiedy włączone, sygnatariusze mogą wybrać, kto ma podpisać następny w kolejności zamiast podążać za zdefiniowanym porządkiem." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "When you click continue, you will be prompted to add the first available authenticator on your system." +msgstr "Kiedy klikniesz kontynuuj, zostaniesz poproszony o dodanie pierwszego dostępnego autoryzatora w swoim systemie." + +#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx +msgid "When you sign a document, we can automatically fill in and sign the following fields using information that has already been provided. You can also manually sign or remove any automatically signed fields afterwards if you desire." +msgstr "Gdy podpisujesz dokument, możemy automatycznie wypełnić i podpisać następujące pola, używając już podanych informacji. Możesz też ręcznie podpisać lub usunąć wszystkie automatycznie podpisane pola, jeśli chcesz." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." +msgstr "Kiedy korzystasz z naszej platformy, aby przyczepić swój podpis elektroniczny do dokumentów, wyrażasz zgodę na dokonanie tego zgodnie z Ustawą o podpisach elektronicznych w handlu globalnym i krajowym (Ustawa E-Sign) oraz innymi obowiązującymi przepisami. Ta czynność wskazuje na twoją zgodę na korzystanie z elektronicznych środków do podpisywania dokumentów i otrzymywania powiadomień." + +#: apps/remix/app/routes/_profile+/p.$url.tsx +msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." +msgstr "Czekając na ich działania możesz utworzyć własne konto Documenso i od razu rozpocząć podpisywanie dokumentów." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Whitelabeling, unlimited members and more" +msgstr "Oznaczenie białą etykietą, nieograniczeni członkowie i więcej" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Who do you want to remind?" +msgstr "Kogo chcesz przypomnieć?" + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "Withdrawing Consent" +msgstr "Wycofanie zgody" + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Write a description to display on your public profile" +msgstr "Napisz opis, który będzie wyświetlany w Twoim profilu publicznym" + +#: apps/remix/app/components/general/billing-plans.tsx +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Yearly" +msgstr "Rocznie" + +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/document-preferences-form.tsx +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Yes" +msgstr "Tak" + +#: apps/remix/app/components/general/template/template-page-view-information.tsx +#: apps/remix/app/components/general/document/document-page-view-information.tsx +#: packages/lib/utils/document-audit-logs.ts +msgid "You" +msgstr "Ty" + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "You are about to delete <0>\"{documentTitle}\"" +msgstr "Zaraz usuniesz <0>\"{documentTitle}\"" + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "You are about to delete <0>{0}. All data related to this organisation such as teams, documents, and all other resources will be deleted. This action is irreversible." +msgstr "Masz zamiar usunąć <0>{0}. Wszystkie dane związane z tą organizacją, takie jak zespoły, dokumenty i wszystkie inne zasoby zostaną usunięte. Ta akcja jest nieodwracalna." + +#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx +msgid "You are about to delete the following team email from <0>{teamName}." +msgstr "Zaraz usuniesz następujący e-mail zespołowy z <0>{teamName}." + +#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx +msgid "You are about to give all organisation members access to this team under their organisation role." +msgstr "Masz zamiar dać wszystkim członkom organizacji dostęp do tego zespołu w ramach ich roli w organizacji." + +#: apps/remix/app/components/dialogs/document-delete-dialog.tsx +msgid "You are about to hide <0>\"{documentTitle}\"" +msgstr "Zaraz ukryjesz <0>\"{documentTitle}\"" + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "You are about to leave the following organisation." +msgstr "Masz zamiar opuścić następującą organizację." + +#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx +msgid "You are about to remove default access to this team for all organisation members. Any members not explicitly added to this team will no longer have access." +msgstr "Masz zamiar usunąć domyślny dostęp do tego zespołu dla wszystkich członków organizacji. Każdy członek nie dodany odrębnie do tego zespołu nie będzie miał już dostępu." + +#. placeholder {0}: team.name +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "You are about to remove the following group from <0>{0}." +msgstr "Masz zamiar usunąć następującą grupę z <0>{0}." + +#. placeholder {0}: organisation.name +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "You are about to remove the following user from <0>{0}." +msgstr "Masz zamiar usunąć następującego użytkownika z <0>{0}." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You are about to remove the following user from <0>{teamName}." +msgstr "Zaraz usuniesz następującego użytkownika z <0>{teamName}." + +#. placeholder {0}: teamEmail.team.name +#. placeholder {1}: teamEmail.team.url +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "You are about to revoke access for team <0>{0} ({1}) to use your email." +msgstr "Zaraz cofniesz dostęp dla zespołu <0>{0} ({1}) do korzystania z twojego e-maila." + +#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx +msgid "You are about to send this document to the recipients. Are you sure you want to continue?" +msgstr "Zaraz wyślesz ten dokument do odbiorców. Czy na pewno chcesz kontynuować?" + +#: apps/remix/app/components/general/billing-plans.tsx +msgid "You are about to subscribe to the {planName}" +msgstr "Masz zamiar zapisać się do {planName}" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "You are currently on the <0>Free Plan." +msgstr "Obecnie jesteś na <0>Planie darmowym." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You are currently updating <0>{memberName}." +msgstr "Obecnie aktualizujesz <0>{memberName}." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You are currently updating <0>{organisationMemberName}." +msgstr "Obecnie aktualizujesz <0>{organisationMemberName}." + +#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx +msgid "You are currently updating the <0>{passkeyName} passkey." +msgstr "Obecnie aktualizujesz klucz zabezpieczeń <0>{passkeyName}." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You are currently updating the <0>{teamGroupName} team group." +msgstr "Obecnie aktualizujesz grupę zespołu <0>{teamGroupName}." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._layout.tsx +msgid "You are not authorized to access this page." +msgstr "Nie masz uprawnień do dostępu do tej strony." + +#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx +msgid "You are not authorized to delete this user." +msgstr "Nie masz uprawnień do usunięcia tego użytkownika." + +#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx +msgid "You are not authorized to disable this user." +msgstr "Nie masz uprawnień, aby wyłączyć tego użytkownika." + +#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx +msgid "You are not authorized to enable this user." +msgstr "Nie masz uprawnień, aby włączyć tego użytkownika." + +#: 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)" +msgstr "Możesz także skopiować i wkleić ten link do przeglądarki: {confirmationLink} (link wygasa za 1 godzinę)" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.public-profile.tsx +msgid "You can choose to enable or disable the profile for public view." +msgstr "Możesz włączyć lub wyłączyć widoczność profilu publicznego." + +#: apps/remix/app/components/general/document/document-recipient-link-copy-dialog.tsx +msgid "You can copy and share these links to recipients so they can action the document." +msgstr "Możesz skopiować i udostępnić te linki odbiorcom, aby mogli wykonać dokument." + +#: apps/remix/app/components/general/teams/team-inherit-member-alert.tsx +msgid "You can enable access to allow all organisation members to access this team by default." +msgstr "Możesz domyślnie włączyć dostęp, aby wszyscy członkowie organizacji mogli uzyskać dostęp do tego zespołu." + +#: packages/email/templates/confirm-team-email.tsx +msgid "You can revoke access at any time in your team settings on Documenso <0>here." +msgstr "Możesz w każdej chwili cofnąć dostęp w ustawieniach zespołu na Documenso <0>tutaj." + +#: 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." +msgstr "Możesz zaktualizować adres URL profilu, aktualizując adres URL zespołu na stronie ogólnych ustawień." + +#: packages/ui/components/document/document-send-email-message-helper.tsx +msgid "You can use the following variables in your message:" +msgstr "Możesz użyć następujących zmiennych w swojej wiadomości:" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx +msgid "You can view documents associated with this email and use this identity when sending documents." +msgstr "Możesz wyświetlać dokumenty powiązane z tym e-mailem i używać tej tożsamości podczas wysyłania dokumentów." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "You can view the created documents in your dashboard under the \"Documents created from template\" section." +msgstr "Możesz zobaczyć utworzone dokumenty na swoim pulpicie w sekcji \"Dokumenty utworzone z szablonu\"." + +#: packages/email/template-components/template-document-rejected.tsx +msgid "You can view the document and its status by clicking the button below." +msgstr "Możesz zobaczyć dokument i jego status, klikając przycisk poniżej." + +#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx +#: packages/ui/primitives/document-flow/add-signers.tsx +msgid "You cannot add assistants when signing order is disabled." +msgstr "Nie można dodać asystentów, gdy kolejność podpisywania jest wyłączona." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "You cannot delete a group which has a higher role than you." +msgstr "Nie możesz usunąć grupy, która ma wyższą rolę niż ty." + +#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx +msgid "You cannot have more than {MAXIMUM_PASSKEYS} passkeys." +msgstr "Nie możesz mieć więcej niż {MAXIMUM_PASSKEYS} kluczy zabezpieczeń." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You cannot modify a group which has a higher role than you." +msgstr "Nie możesz modyfikować grupy, która ma wyższą rolę niż ty." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You cannot modify a organisation member who has a higher role than you." +msgstr "Nie możesz modyfikować członka organizacji, który ma wyższą rolę niż ty." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You cannot modify a team member who has a higher role than you." +msgstr "Nie możesz modyfikować członka zespołu, który ma wyższą rolę niż ty." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You cannot remove members from this team if the inherit member feature is enabled." +msgstr "Nie możesz usuwać członków z tego zespołu, jeśli funkcja dziedziczenia członka jest włączona." + +#: packages/ui/primitives/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "You cannot upload documents at this time." +msgstr "Nie możesz przesyłać dokumentów w tej chwili." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "You cannot upload encrypted PDFs" +msgstr "Nie możesz przesyłać zaszyfrowanych plików PDF" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "You currently have an inactive <0>{currentProductName} subscription" +msgstr "Obecnie masz nieaktywną subskrypcję <0>{currentProductName}" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx +msgid "You currently have no access to any teams within this organisation. Please contact your organisation to request access." +msgstr "Obecnie nie masz dostępu do żadnych zespołów w tej organizacji. Skontaktuj się ze swoją organizacją, aby poprosić o dostęp." + +#: apps/remix/app/components/forms/token.tsx +msgid "You do not have permission to create a token for this team" +msgstr "Nie masz uprawnień do utworzenia tokenu dla tego zespołu" + +#: packages/email/template-components/template-document-cancel.tsx +msgid "You don't need to sign it anymore." +msgstr "Nie musisz go już podpisywać." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "You have accepted an invitation from <0>{0} to join their organisation." +msgstr "Zaakceptowałeś zaproszenie od <0>{0} do dołączenia do ich organizacji." + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "You have already verified your email address for <0>{0}." +msgstr "Już zweryfikowałeś swój adres e-mail dla <0>{0}." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.invite.$token.tsx +msgid "You have been invited by <0>{0} to join their organisation." +msgstr "Zostałeś zaproszony przez <0>{0} do dołączenia do ich organizacji." + +#. placeholder {0}: organisation.name +#: packages/lib/server-only/organisation/create-organisation-member-invites.ts +msgid "You have been invited to join {0} on Documenso" +msgstr "Zostałeś zaproszony do dołączenia do {0} na Documenso" + +#: packages/email/templates/organisation-invite.tsx +msgid "You have been invited to join the following organisation" +msgstr "Zostałeś zaproszony do dołączenia do następującej organizacji" + +#: packages/lib/server-only/recipient/set-document-recipients.ts +#: packages/lib/server-only/recipient/delete-document-recipient.ts +msgid "You have been removed from a document" +msgstr "Zostałeś usunięty z dokumentu" + +#: apps/remix/app/components/embed/multisign/multi-sign-document-list.tsx +msgid "You have been requested to sign the following documents. Review each document carefully and complete the signing process." +msgstr "Zostałeś poproszony o podpisanie następujących dokumentów. Przeglądaj każdy dokument ostrożnie i zakończ proces podpisu." + +#. placeholder {0}: data.organisationName +#: apps/remix/app/routes/_unauthenticated+/organisation.decline.$token.tsx +msgid "You have declined the invitation from <0>{0} to join their organisation." +msgstr "Odrzuciłeś zaproszenie od <0>{0} do dołączenia do ich organizacji." + +#. placeholder {0}: `"${document.title}"` +#: packages/lib/server-only/document/resend-document.tsx +#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts +msgid "You have initiated the document {0} that requires you to {recipientActionVerb} it." +msgstr "Rozpocząłeś dokument {0}, który wymaga, abyś go {recipientActionVerb}." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx +msgid "You have no webhooks yet. Your webhooks will be shown here once you create them." +msgstr "Nie masz jeszcze żadnych webhooków. Twoje webhooki będą tutaj widoczne, gdy je utworzysz." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates._index.tsx +msgid "You have not yet created any templates. To create a template please upload one." +msgstr "Brak utworzonych szablonów. Prześlij, aby utworzyć." + +#: apps/remix/app/components/tables/documents-table-empty-state.tsx +msgid "You have not yet created or received any documents. To create a document please upload one." +msgstr "Brak utworzonych lub odebranych dokumentów. Prześlij, aby utworzyć." + +#. placeholder {0}: quota.directTemplates +#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx +msgid "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" +msgstr "Osiągnąłeś maksymalny limit {0} bezpośrednich szablonów. <0>Ulepsz swoje konto, aby kontynuować!" + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "You have reached the maximum number of teams for your plan. Please contact sales at <0>support@documenso.com if you would like to adjust your plan." +msgstr "Osiągnąłeś maksymalną liczbę zespołów dla swojego planu. Skontaktuj się ze sprzedażą na <0>support@documenso.com, jeśli chcesz dostosować swój plan." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "You have reached your document limit for this month. Please upgrade your plan." +msgstr "Osiągnąłeś limit dokumentów na ten miesiąc. Proszę zaktualizować swój plan." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: packages/ui/primitives/document-dropzone.tsx +msgid "You have reached your document limit." +msgstr "Osiągnięto limit dokumentów." + +#: apps/remix/app/components/tables/templates-table.tsx +msgid "You have reached your document limit. <0>Upgrade your account to continue!" +msgstr "Osiągnąłeś limit dokumentów. <0>Ulepsz swoje konto, aby kontynuować!" + +#: packages/email/templates/document-rejection-confirmed.tsx +msgid "You have rejected the document '{documentName}'" +msgstr "Odrzuciłeś dokument '{documentName}'" + +#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx +#: apps/remix/app/components/embed/embed-document-rejected.tsx +msgid "You have rejected this document" +msgstr "Odrzuciłeś ten dokument" + +#: packages/email/template-components/template-document-self-signed.tsx +msgid "You have signed “{documentName}”" +msgstr "Podpisałeś „{documentName}”" + +#: apps/remix/app/components/dialogs/organisation-leave-dialog.tsx +msgid "You have successfully left this organisation." +msgstr "Pomyślnie opuściłeś tę organizację." + +#: apps/remix/app/components/general/claim-account.tsx +#: apps/remix/app/components/forms/signup.tsx +msgid "You have successfully registered. Please verify your account by clicking on the link you received in the email." +msgstr "Rejestracja zakończona sukcesem. Zweryfikuj swoje konto, klikając w link, który otrzymałeś w e-mailu." + +#: apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx +msgid "You have successfully removed this group from the organisation." +msgstr "Pomyślnie usunięto tę grupę z organizacji." + +#: apps/remix/app/components/dialogs/team-group-delete-dialog.tsx +msgid "You have successfully removed this group from the team." +msgstr "Pomyślnie usunięto tę grupę z zespołu." + +#: apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx +msgid "You have successfully removed this user from the organisation." +msgstr "Pomyślnie usunięto tego użytkownika z organizacji." + +#: apps/remix/app/components/dialogs/team-member-delete-dialog.tsx +msgid "You have successfully removed this user from the team." +msgstr "Sukces! Usunięto tego użytkownika z zespołu." + +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "You have successfully revoked access." +msgstr "Sukces! Odebrano dostęp." + +#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx +msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +msgstr "Masz prawo do wycofania zgody na korzystanie z podpisów elektronicznych w dowolnym czasie przed zakończeniem procesu podpisywania. Aby wycofać zgodę, prosimy o kontakt z nadawcą dokumentu. Jeśli nie uda Ci się skontaktować z nadawcą, możesz skontaktować się z <0>{SUPPORT_EMAIL} w celu uzyskania pomocy. Należy pamiętać, że wycofanie zgody może opóźnić lub zatrzymać zakończenie związanej z tym transakcji lub usługi." + +#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx +msgid "You have updated {memberName}." +msgstr "Zaktualizowałeś {memberName}." + +#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx +msgid "You have updated {organisationMemberName}." +msgstr "Zaktualizowałeś {organisationMemberName}." + +#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx +msgid "You have updated the team group." +msgstr "Zaktualizowano grupę zespołu." + +#. placeholder {0}: data.teamName +#: apps/remix/app/routes/_unauthenticated+/team.verify.email.$token.tsx +msgid "You have verified your email address for <0>{0}." +msgstr "Zweryfikowałeś swój adres e-mail dla <0>{0}." + +#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx +#: apps/remix/app/components/dialogs/token-delete-dialog.tsx +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "You must enter '{deleteMessage}' to proceed" +msgstr "Musisz wpisać '{deleteMessage}' aby kontynuować" + +#: apps/remix/app/components/dialogs/folder-delete-dialog.tsx +msgid "You must type '{deleteMessage}' to confirm" +msgstr "Musisz wpisać '{deleteMessage}', by potwierdzić" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "You need to be an admin to manage API tokens." +msgstr "Musisz być administratorem, aby zarządzać tokenami API." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-page.tsx +msgid "You need to be logged in as <0>{email} to view this page." +msgstr "Musisz być zalogowany jako <0>{email}, aby zobaczyć tę stronę." + +#: apps/remix/app/components/general/direct-template/direct-template-signing-auth-page.tsx +msgid "You need to be logged in to view this page." +msgstr "Musisz być zalogowany, aby zobaczyć tę stronę." + +#: apps/remix/app/components/general/document-signing/document-signing-auth-2fa.tsx +msgid "You need to setup 2FA to mark this document as viewed." +msgstr "Musisz skonfigurować 2FA, aby oznaczyć ten dokument jako przeczytany." + +#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx +msgid "You will need to configure any claims or subscription after creating this organisation" +msgstr "Będziesz musiał skonfigurować wszelkie roszczenia lub subskrypcję po utworzeniu tej organizacji." + +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "You will now be required to enter a code from your authenticator app when signing in." +msgstr "Będziesz teraz zobowiązany do wpisania kodu z aplikacji uwierzytelniającej podczas logowania." + +#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx +msgid "You will receive an Email copy of the signed document once everyone has signed." +msgstr "Otrzymasz kopię e-maila podpisanego dokumentu, gdy wszyscy podpiszą." + +#: apps/remix/app/components/dialogs/account-delete-dialog.tsx +msgid "Your account has been deleted successfully." +msgstr "Konto zostało usunięte." + +#: apps/remix/app/components/forms/avatar-image.tsx +msgid "Your avatar has been updated successfully." +msgstr "Awatar został zaktualizowany." + +#: apps/remix/app/routes/_authenticated+/admin+/site-settings.tsx +msgid "Your banner has been updated successfully." +msgstr "Twój banner został pomyślnie zaktualizowany." + +#: apps/remix/app/components/forms/branding-preferences-form.tsx +msgid "Your brand website URL" +msgstr "Adres URL witryny Twojej marki" + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Your branding preferences have been updated" +msgstr "Preferencje dotyczące marki zostały zaktualizowane" + +#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx +msgid "Your bulk send has been initiated. You will receive an email notification upon completion." +msgstr "Twoja masowa wysyłka została zainicjowana. Otrzymasz powiadomienie e-mail po jej zakończeniu." + +#: packages/email/templates/bulk-send-complete.tsx +msgid "Your bulk send operation for template \"{templateName}\" has completed." +msgstr "Twoja operacja masowej wysyłki dla szablonu \"{templateName}\" została zakończona." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current {currentProductName} plan is past due. Please update your payment information." +msgstr "Twój obecny plan {currentProductName} jest zaległy. Zaktualizuj swoje informacje płatnicze." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current plan is inactive." +msgstr "Twój obecny plan jest nieaktywny." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx +msgid "Your current plan is past due." +msgstr "Twój obecny plan jest zaległy." + +#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx +msgid "Your direct signing templates" +msgstr "Twoje bezpośrednie szablony podpisu" + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx +msgid "Your document failed to upload." +msgstr "Twój dokument nie udało się załadować." + +#: apps/remix/app/components/dialogs/template-use-dialog.tsx +msgid "Your document has been created from the template successfully." +msgstr "Twój dokument został pomyślnie utworzony na podstawie szablonu." + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Your document has been created successfully" +msgstr "Dokument został utworzony" + +#: packages/email/template-components/template-document-super-delete.tsx +msgid "Your document has been deleted by an admin!" +msgstr "Dokument został usunięty przez administratora!" + +#: apps/remix/app/components/dialogs/document-resend-dialog.tsx +msgid "Your document has been re-sent successfully." +msgstr "Twój dokument został pomyślnie ponownie wysłany." + +#: apps/remix/app/components/general/document/document-edit-form.tsx +msgid "Your document has been sent successfully." +msgstr "Dokument został wysłany." + +#: apps/remix/app/components/dialogs/document-duplicate-dialog.tsx +msgid "Your document has been successfully duplicated." +msgstr "Dokument został zduplikowany." + +#: apps/remix/app/components/general/document/document-upload.tsx +#: apps/remix/app/components/general/document/document-drop-zone-wrapper.tsx +msgid "Your document has been uploaded successfully." +msgstr "Dokument został przesłany." + +#: apps/remix/app/components/dialogs/template-create-dialog.tsx +msgid "Your document has been uploaded successfully. You will be redirected to the template page." +msgstr "Dokument został przesłany. Zostaniesz przekierowany na stronę szablonu." + +#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.preferences.tsx +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.preferences.tsx +msgid "Your document preferences have been updated" +msgstr "Ustawienia dokumentu zostały zaktualizowane" + +#: apps/remix/app/components/general/app-command-menu.tsx +msgid "Your documents" +msgstr "Twoje dokumenty" + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your email has already been confirmed. You can now use all features of Documenso." +msgstr "Adres e-mail został już potwierdzony. Możesz korzystać ze wszystkich funkcji Documenso." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your email has been successfully confirmed! You can now use all features of Documenso." +msgstr "Adres e-mail został potwierdzony! Możesz korzystać ze wszystkich funkcji Documenso." + +#. placeholder {0}: teamEmail.team.name +#. placeholder {1}: teamEmail.team.url +#: apps/remix/app/components/general/teams/team-email-usage.tsx +msgid "Your email is currently being used by team <0>{0} ({1})." +msgstr "Twój adres e-mail jest aktualnie używany przez zespół <0>{0} ({1})." + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Your existing tokens" +msgstr "Istniejące tokeny" + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Your new password cannot be the same as your old password." +msgstr "Twoje nowe hasło nie może być takie samo jak stare hasło." + +#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx +msgid "Your organisation has been created." +msgstr "Organizacja została utworzona." + +#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx +msgid "Your organisation has been successfully deleted." +msgstr "Organizacja została usunięta." + +#: apps/remix/app/components/forms/organisation-update-form.tsx +msgid "Your organisation has been successfully updated." +msgstr "Organizacja została zaktualizowana." + +#: apps/remix/app/components/forms/reset-password.tsx +#: apps/remix/app/components/forms/password.tsx +msgid "Your password has been updated successfully." +msgstr "Hasło zostało zaktualizowane." + +#: packages/email/template-components/template-reset-password.tsx +msgid "Your password has been updated." +msgstr "Hasło zostało zaktualizowane." + +#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx +msgid "Your payment for teams is overdue. Please settle the payment to avoid any service disruptions." +msgstr "Twoja płatność za zespoły jest przeterminowana. Proszę uregulować płatność, aby uniknąć zakłóceń w świadczeniu usług." + +#: apps/remix/app/components/tables/user-organisations-table.tsx +msgid "Your personal organisation" +msgstr "Twoja osobista organizacja" + +#: apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx +msgid "Your plan does not support inviting members. Please upgrade or your plan or contact sales at <0>support@documenso.com if you would like to discuss your options." +msgstr "Twój plan nie wspiera zapraszania członków. Zaktualizuj swój plan lub skontaktuj się z działem sprzedaży na <0>support@documenso.com, jeśli chcesz omówić swoje opcje." + +#: apps/remix/app/components/forms/profile.tsx +msgid "Your profile has been updated successfully." +msgstr "Profil został zaktualizowany." + +#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx +msgid "Your profile has been updated." +msgstr "Profil został zaktualizowany." + +#: apps/remix/app/components/forms/public-profile-form.tsx +msgid "Your public profile has been updated." +msgstr "Profil publiczny został zaktualizowany." + +#: apps/remix/app/components/forms/2fa/recovery-code-list.tsx +msgid "Your recovery code has been copied to your clipboard." +msgstr "Twój kod odzyskiwania został skopiowany do schowka." + +#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx +#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx +msgid "Your recovery codes are listed below. Please store them in a safe place." +msgstr "Twoje kody odzyskiwania są wymienione poniżej. Proszę przechowywać je w bezpiecznym miejscu." + +#: apps/remix/app/components/dialogs/team-create-dialog.tsx +msgid "Your team has been created." +msgstr "Zespół został utworzony." + +#: apps/remix/app/components/dialogs/team-delete-dialog.tsx +msgid "Your team has been successfully deleted." +msgstr "Zespół został usunięty." + +#: apps/remix/app/components/forms/team-update-form.tsx +msgid "Your team has been successfully updated." +msgstr "Zespół został zaktualizowany." + +#: apps/remix/app/routes/embed+/v1+/authoring_.completed.create.tsx +msgid "Your template has been created successfully" +msgstr "Szablon został utworzony" + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Your template has been duplicated successfully." +msgstr "Szablon został zduplikowany." + +#: apps/remix/app/components/dialogs/template-delete-dialog.tsx +msgid "Your template has been successfully deleted." +msgstr "Szablon został usunięty." + +#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx +msgid "Your template will be duplicated." +msgstr "Szablon zostanie zduplikowany." + +#: apps/remix/app/components/general/template/template-edit-form.tsx +msgid "Your templates has been saved successfully." +msgstr "Szablony zostały zapisane." + +#: apps/remix/app/routes/_unauthenticated+/verify-email.$token.tsx +msgid "Your token has expired!" +msgstr "Twój token wygasł!" + +#: apps/remix/app/components/forms/token.tsx +msgid "Your token was created successfully! Make sure to copy it because you won't be able to see it again!" +msgstr "Twój token został pomyślnie utworzony! Upewnij się, że go skopiujesz, ponieważ nie będziesz mógł go zobaczyć ponownie!" + +#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.tokens.tsx +msgid "Your tokens will be shown here once you create them." +msgstr "Twoje tokeny będą tutaj wyświetlane po ich utworzeniu." + diff --git a/packages/lib/types/document-audit-logs.ts b/packages/lib/types/document-audit-logs.ts index 9a7bf00e1..79a4e7c1b 100644 --- a/packages/lib/types/document-audit-logs.ts +++ b/packages/lib/types/document-audit-logs.ts @@ -59,6 +59,9 @@ export const ZDocumentMetaDiffTypeSchema = z.enum([ 'REDIRECT_URL', 'SUBJECT', 'TIMEZONE', + 'EMAIL_ID', + 'EMAIL_REPLY_TO', + 'EMAIL_SETTINGS', ]); export const ZFieldDiffTypeSchema = z.enum(['DIMENSION', 'POSITION']); @@ -110,6 +113,9 @@ export const ZDocumentAuditLogDocumentMetaSchema = z.union([ z.literal(DOCUMENT_META_DIFF_TYPE.REDIRECT_URL), z.literal(DOCUMENT_META_DIFF_TYPE.SUBJECT), z.literal(DOCUMENT_META_DIFF_TYPE.TIMEZONE), + z.literal(DOCUMENT_META_DIFF_TYPE.EMAIL_ID), + z.literal(DOCUMENT_META_DIFF_TYPE.EMAIL_REPLY_TO), + z.literal(DOCUMENT_META_DIFF_TYPE.EMAIL_SETTINGS), ]), from: z.string().nullable(), to: z.string().nullable(), diff --git a/packages/lib/types/document-email.ts b/packages/lib/types/document-email.ts index 06b44929d..0d2d2b52e 100644 --- a/packages/lib/types/document-email.ts +++ b/packages/lib/types/document-email.ts @@ -54,15 +54,7 @@ export const ZDocumentEmailSettingsSchema = z .default(true), }) .strip() - .catch(() => ({ - recipientSigningRequest: true, - recipientRemoved: true, - recipientSigned: true, - documentPending: true, - documentCompleted: true, - documentDeleted: true, - ownerDocumentCompleted: true, - })); + .catch(() => ({ ...DEFAULT_DOCUMENT_EMAIL_SETTINGS })); export type TDocumentEmailSettings = z.infer; @@ -88,3 +80,13 @@ export const extractDerivedDocumentEmailSettings = ( ownerDocumentCompleted: emailSettings.ownerDocumentCompleted, }; }; + +export const DEFAULT_DOCUMENT_EMAIL_SETTINGS: TDocumentEmailSettings = { + recipientSigningRequest: true, + recipientRemoved: true, + recipientSigned: true, + documentPending: true, + documentCompleted: true, + documentDeleted: true, + ownerDocumentCompleted: true, +}; diff --git a/packages/lib/types/document.ts b/packages/lib/types/document.ts index 2b2fe8284..b42801b72 100644 --- a/packages/lib/types/document.ts +++ b/packages/lib/types/document.ts @@ -58,6 +58,8 @@ export const ZDocumentSchema = DocumentSchema.pick({ allowDictateNextSigner: true, language: true, emailSettings: true, + emailId: true, + emailReplyTo: true, }).nullable(), folder: FolderSchema.pick({ id: true, diff --git a/packages/lib/types/email-domain.ts b/packages/lib/types/email-domain.ts new file mode 100644 index 000000000..2dbf79b2a --- /dev/null +++ b/packages/lib/types/email-domain.ts @@ -0,0 +1,40 @@ +import type { z } from 'zod'; + +import { EmailDomainSchema } from '@documenso/prisma/generated/zod/modelSchema/EmailDomainSchema'; + +import { ZOrganisationEmailLiteSchema } from './organisation-email'; + +/** + * The full email domain response schema. + * + * Mainly used for returning a single email domain from the API. + */ +export const ZEmailDomainSchema = EmailDomainSchema.pick({ + id: true, + status: true, + organisationId: true, + domain: true, + selector: true, + publicKey: true, + createdAt: true, + updatedAt: true, +}).extend({ + emails: ZOrganisationEmailLiteSchema.array(), +}); + +export type TEmailDomain = z.infer; + +/** + * A version of the email domain response schema when returning multiple email domains at once from a single API endpoint. + */ +export const ZEmailDomainManySchema = EmailDomainSchema.pick({ + id: true, + status: true, + organisationId: true, + domain: true, + selector: true, + createdAt: true, + updatedAt: true, +}); + +export type TEmailDomainMany = z.infer; diff --git a/packages/lib/types/organisation-email.ts b/packages/lib/types/organisation-email.ts new file mode 100644 index 000000000..c72d6a38d --- /dev/null +++ b/packages/lib/types/organisation-email.ts @@ -0,0 +1,42 @@ +import { EmailDomainStatus } from '@prisma/client'; +import { z } from 'zod'; + +import { OrganisationEmailSchema } from '@documenso/prisma/generated/zod/modelSchema/OrganisationEmailSchema'; + +export const ZOrganisationEmailSchema = OrganisationEmailSchema.pick({ + id: true, + createdAt: true, + updatedAt: true, + email: true, + emailName: true, + // replyTo: true, + emailDomainId: true, + organisationId: true, +}).extend({ + emailDomain: z.object({ + id: z.string(), + status: z.nativeEnum(EmailDomainStatus), + }), +}); + +export type TOrganisationEmail = z.infer; + +/** + * A lite version of the organisation email response schema without relations. + */ +export const ZOrganisationEmailLiteSchema = OrganisationEmailSchema.pick({ + id: true, + createdAt: true, + updatedAt: true, + email: true, + emailName: true, + // replyTo: true, + emailDomainId: true, + organisationId: true, +}); + +export const ZOrganisationEmailManySchema = ZOrganisationEmailLiteSchema.extend({ + // Put anything extra here. +}); + +export type TOrganisationEmailMany = z.infer; diff --git a/packages/lib/types/subscription.ts b/packages/lib/types/subscription.ts index 34fc588ba..c01f8f4e8 100644 --- a/packages/lib/types/subscription.ts +++ b/packages/lib/types/subscription.ts @@ -19,6 +19,8 @@ export const ZClaimFlagsSchema = z.object({ unlimitedDocuments: z.boolean().optional(), + emailDomains: z.boolean().optional(), + embedAuthoring: z.boolean().optional(), embedAuthoringWhiteLabel: z.boolean().optional(), @@ -50,6 +52,10 @@ export const SUBSCRIPTION_CLAIM_FEATURE_FLAGS: Record< key: 'hidePoweredBy', label: 'Hide Documenso branding by', }, + emailDomains: { + key: 'emailDomains', + label: 'Email domains', + }, embedAuthoring: { key: 'embedAuthoring', label: 'Embed authoring', @@ -128,6 +134,7 @@ export const internalClaims: InternalClaims = { unlimitedDocuments: true, allowCustomBranding: true, hidePoweredBy: true, + emailDomains: true, embedAuthoring: false, embedAuthoringWhiteLabel: true, embedSigning: false, @@ -144,6 +151,7 @@ export const internalClaims: InternalClaims = { unlimitedDocuments: true, allowCustomBranding: true, hidePoweredBy: true, + emailDomains: true, embedAuthoring: true, embedAuthoringWhiteLabel: true, embedSigning: true, diff --git a/packages/lib/types/template.ts b/packages/lib/types/template.ts index f5f5dd6f0..1171ad18d 100644 --- a/packages/lib/types/template.ts +++ b/packages/lib/types/template.ts @@ -55,6 +55,8 @@ export const ZTemplateSchema = TemplateSchema.pick({ redirectUrl: true, language: true, emailSettings: true, + emailId: true, + emailReplyTo: true, }).nullable(), directLink: TemplateDirectLinkSchema.nullable(), user: UserSchema.pick({ diff --git a/packages/lib/universal/id.ts b/packages/lib/universal/id.ts index dbe159fbe..a6fb55ad5 100644 --- a/packages/lib/universal/id.ts +++ b/packages/lib/universal/id.ts @@ -11,7 +11,9 @@ export const prefixedId = (prefix: string, length = 16) => { }; type DatabaseIdPrefix = + | 'email_domain' | 'org' + | 'org_email' | 'org_claim' | 'org_group' | 'org_setting' diff --git a/packages/lib/utils/document-audit-logs.ts b/packages/lib/utils/document-audit-logs.ts index e03880247..1c19d5f6f 100644 --- a/packages/lib/utils/document-audit-logs.ts +++ b/packages/lib/utils/document-audit-logs.ts @@ -205,12 +205,18 @@ export const diffDocumentMetaChanges = ( const oldTimezone = oldData?.timezone ?? ''; const oldPassword = oldData?.password ?? null; const oldRedirectUrl = oldData?.redirectUrl ?? ''; + const oldEmailId = oldData?.emailId || null; + const oldEmailReplyTo = oldData?.emailReplyTo || null; + const oldEmailSettings = oldData?.emailSettings || null; const newDateFormat = newData?.dateFormat ?? ''; const newMessage = newData?.message ?? ''; const newSubject = newData?.subject ?? ''; const newTimezone = newData?.timezone ?? ''; const newRedirectUrl = newData?.redirectUrl ?? ''; + const newEmailId = newData?.emailId || null; + const newEmailReplyTo = newData?.emailReplyTo || null; + const newEmailSettings = newData?.emailSettings || null; if (oldDateFormat !== newDateFormat) { diffs.push({ @@ -258,6 +264,30 @@ export const diffDocumentMetaChanges = ( }); } + if (oldEmailId !== newEmailId) { + diffs.push({ + type: DOCUMENT_META_DIFF_TYPE.EMAIL_ID, + from: oldEmailId, + to: newEmailId, + }); + } + + if (oldEmailReplyTo !== newEmailReplyTo) { + diffs.push({ + type: DOCUMENT_META_DIFF_TYPE.EMAIL_REPLY_TO, + from: oldEmailReplyTo, + to: newEmailReplyTo, + }); + } + + if (!isDeepEqual(oldEmailSettings, newEmailSettings)) { + diffs.push({ + type: DOCUMENT_META_DIFF_TYPE.EMAIL_SETTINGS, + from: JSON.stringify(oldEmailSettings), + to: JSON.stringify(newEmailSettings), + }); + } + return diffs; }; diff --git a/packages/lib/utils/document.ts b/packages/lib/utils/document.ts index 52ceca627..8bae70ca2 100644 --- a/packages/lib/utils/document.ts +++ b/packages/lib/utils/document.ts @@ -1,8 +1,62 @@ -import type { Document } from '@prisma/client'; -import { DocumentStatus } from '@prisma/client'; +import type { + Document, + DocumentMeta, + OrganisationGlobalSettings, + TemplateMeta, +} from '@prisma/client'; +import { DocumentDistributionMethod, DocumentSigningOrder, DocumentStatus } from '@prisma/client'; + +import { DEFAULT_DOCUMENT_TIME_ZONE } from '../constants/time-zones'; +import { DEFAULT_DOCUMENT_EMAIL_SETTINGS } from '../types/document-email'; export const isDocumentCompleted = (document: Pick | DocumentStatus) => { const status = typeof document === 'string' ? document : document.status; return status === DocumentStatus.COMPLETED || status === DocumentStatus.REJECTED; }; + +/** + * Extracts the derived document meta which should be used when creating a document + * from scratch, or from a template. + * + * Uses the following, the lower number overrides the higher number: + * 1. Merged organisation/team settings + * 2. Meta overrides + * + * @param settings - The merged organisation/team settings. + * @param overrideMeta - The meta to override the settings with. + * @returns The derived document meta. + */ +export const extractDerivedDocumentMeta = ( + settings: Omit, + overrideMeta: Partial | undefined | null, +) => { + const meta = overrideMeta ?? {}; + + // Note: If you update this you will also need to update `create-document-from-template.ts` + // since there is custom work there which allows 3 overrides. + return { + language: meta.language || settings.documentLanguage, + timezone: meta.timezone || settings.documentTimezone || DEFAULT_DOCUMENT_TIME_ZONE, + dateFormat: meta.dateFormat || settings.documentDateFormat, + message: meta.message || null, + subject: meta.subject || null, + password: meta.password || null, + redirectUrl: meta.redirectUrl || null, + + signingOrder: meta.signingOrder || DocumentSigningOrder.PARALLEL, + allowDictateNextSigner: meta.allowDictateNextSigner ?? false, + distributionMethod: meta.distributionMethod || DocumentDistributionMethod.EMAIL, // Todo: Make this a setting. + + // Signature settings. + typedSignatureEnabled: meta.typedSignatureEnabled ?? settings.typedSignatureEnabled, + uploadSignatureEnabled: meta.uploadSignatureEnabled ?? settings.uploadSignatureEnabled, + drawSignatureEnabled: meta.drawSignatureEnabled ?? settings.drawSignatureEnabled, + + // Email settings. + emailId: meta.emailId ?? settings.emailId, + emailReplyTo: meta.emailReplyTo ?? settings.emailReplyTo, + emailSettings: + meta.emailSettings || settings.emailDocumentSettings || DEFAULT_DOCUMENT_EMAIL_SETTINGS, + } satisfies Omit; +}; diff --git a/packages/lib/utils/email-domains.ts b/packages/lib/utils/email-domains.ts new file mode 100644 index 000000000..cbb517ef0 --- /dev/null +++ b/packages/lib/utils/email-domains.ts @@ -0,0 +1,17 @@ +export const generateDkimRecord = (recordName: string, publicKeyFlattened: string) => { + return { + name: recordName, + value: `v=DKIM1; k=rsa; p=${publicKeyFlattened}`, + type: 'TXT', + }; +}; + +export const AWS_SES_SPF_RECORD = { + name: `@`, + value: 'v=spf1 include:amazonses.com -all', + type: 'TXT', +}; + +export const generateEmailDomainRecords = (recordName: string, publicKeyFlattened: string) => { + return [generateDkimRecord(recordName, publicKeyFlattened), AWS_SES_SPF_RECORD]; +}; diff --git a/packages/lib/utils/organisations.ts b/packages/lib/utils/organisations.ts index 539db071b..f8a41c5f8 100644 --- a/packages/lib/utils/organisations.ts +++ b/packages/lib/utils/organisations.ts @@ -7,11 +7,13 @@ import { import type { ORGANISATION_MEMBER_ROLE_MAP } from '@documenso/lib/constants/organisations-translations'; +import { DEFAULT_DOCUMENT_DATE_FORMAT } from '../constants/date-formats'; import { LOWEST_ORGANISATION_ROLE, ORGANISATION_MEMBER_ROLE_HIERARCHY, ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP, } from '../constants/organisations'; +import { DEFAULT_DOCUMENT_EMAIL_SETTINGS } from '../types/document-email'; export const isPersonalLayout = (organisations: Pick[]) => { return organisations.length === 1 && organisations[0].type === 'PERSONAL'; @@ -113,6 +115,9 @@ export const generateDefaultOrganisationSettings = (): Omit< return { documentVisibility: DocumentVisibility.EVERYONE, documentLanguage: 'en', + documentTimezone: null, // Null means local timezone. + documentDateFormat: DEFAULT_DOCUMENT_DATE_FORMAT, + includeSenderDetails: true, includeSigningCertificate: true, @@ -124,5 +129,10 @@ export const generateDefaultOrganisationSettings = (): Omit< brandingLogo: '', brandingUrl: '', brandingCompanyDetails: '', + + emailId: null, + emailReplyTo: null, + // emailReplyToName: null, + emailDocumentSettings: DEFAULT_DOCUMENT_EMAIL_SETTINGS, }; }; diff --git a/packages/lib/utils/teams.ts b/packages/lib/utils/teams.ts index 9e72c462c..ecc8006fe 100644 --- a/packages/lib/utils/teams.ts +++ b/packages/lib/utils/teams.ts @@ -165,6 +165,9 @@ export const generateDefaultTeamSettings = (): Omit { + const { organisationId, domain } = input; + const { user } = ctx; + + ctx.logger.info({ + input: { + organisationId, + domain, + }, + }); + + if (!IS_BILLING_ENABLED()) { + throw new AppError(AppErrorCode.INVALID_REQUEST, { + message: 'Billing is not enabled', + }); + } + + const organisation = await prisma.organisation.findFirst({ + where: buildOrganisationWhereQuery({ + organisationId, + userId: user.id, + roles: ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP['MANAGE_ORGANISATION'], + }), + include: { + emailDomains: true, + organisationClaim: true, + }, + }); + + if (!organisation) { + throw new AppError(AppErrorCode.UNAUTHORIZED); + } + + if (!organisation.organisationClaim.flags.emailDomains) { + throw new AppError(AppErrorCode.INVALID_BODY, { + message: 'Email domains are not enabled for this organisation', + }); + } + + if (organisation.emailDomains.length >= 100) { + throw new AppError(AppErrorCode.INVALID_BODY, { + message: 'You have reached the maximum number of email domains', + }); + } + + return await createEmailDomain({ + domain, + organisationId, + }); + }); diff --git a/packages/trpc/server/enterprise-router/create-organisation-email-domain.types.ts b/packages/trpc/server/enterprise-router/create-organisation-email-domain.types.ts new file mode 100644 index 000000000..3dcb3fc3b --- /dev/null +++ b/packages/trpc/server/enterprise-router/create-organisation-email-domain.types.ts @@ -0,0 +1,27 @@ +import { z } from 'zod'; + +import { ZEmailDomainSchema } from '@documenso/lib/types/email-domain'; + +const domainRegex = + /^(?!https?:\/\/)(?!www\.)([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/; + +export const ZDomainSchema = z + .string() + .regex(domainRegex, { message: 'Invalid domain name' }) + .toLowerCase(); + +export const ZCreateOrganisationEmailDomainRequestSchema = z.object({ + organisationId: z.string(), + domain: ZDomainSchema, +}); + +export const ZCreateOrganisationEmailDomainResponseSchema = z.object({ + emailDomain: ZEmailDomainSchema, + records: z.array( + z.object({ + name: z.string(), + value: z.string(), + type: z.string(), + }), + ), +}); diff --git a/packages/trpc/server/enterprise-router/create-organisation-email.ts b/packages/trpc/server/enterprise-router/create-organisation-email.ts new file mode 100644 index 000000000..6a047da37 --- /dev/null +++ b/packages/trpc/server/enterprise-router/create-organisation-email.ts @@ -0,0 +1,61 @@ +import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/organisations'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { generateDatabaseId } from '@documenso/lib/universal/id'; +import { buildOrganisationWhereQuery } from '@documenso/lib/utils/organisations'; +import { prisma } from '@documenso/prisma'; + +import { authenticatedProcedure } from '../trpc'; +import { + ZCreateOrganisationEmailRequestSchema, + ZCreateOrganisationEmailResponseSchema, +} from './create-organisation-email.types'; + +export const createOrganisationEmailRoute = authenticatedProcedure + .input(ZCreateOrganisationEmailRequestSchema) + .output(ZCreateOrganisationEmailResponseSchema) + .mutation(async ({ input, ctx }) => { + const { email, emailName, emailDomainId } = input; + const { user } = ctx; + + ctx.logger.info({ + input: { + emailDomainId, + }, + }); + + const emailDomain = await prisma.emailDomain.findFirst({ + where: { + id: emailDomainId, + organisation: buildOrganisationWhereQuery({ + organisationId: undefined, + userId: user.id, + roles: ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP['MANAGE_ORGANISATION'], + }), + }, + }); + + if (!emailDomain) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email domain not found', + }); + } + + const allowedEmailSuffix = '@' + emailDomain.domain; + + if (!email.endsWith(allowedEmailSuffix)) { + throw new AppError(AppErrorCode.INVALID_BODY, { + message: 'Cannot create an email with a different domain', + }); + } + + await prisma.organisationEmail.create({ + data: { + id: generateDatabaseId('org_email'), + organisationId: emailDomain.organisationId, + emailName, + // replyTo, + email, + emailDomainId, + }, + }); + }); diff --git a/packages/trpc/server/enterprise-router/create-organisation-email.types.ts b/packages/trpc/server/enterprise-router/create-organisation-email.types.ts new file mode 100644 index 000000000..3de340790 --- /dev/null +++ b/packages/trpc/server/enterprise-router/create-organisation-email.types.ts @@ -0,0 +1,12 @@ +import { z } from 'zod'; + +export const ZCreateOrganisationEmailRequestSchema = z.object({ + emailDomainId: z.string(), + emailName: z.string().min(1).max(100), + email: z.string().email().toLowerCase(), + + // This does not need to be validated to be part of the domain. + // replyTo: z.string().email().optional(), +}); + +export const ZCreateOrganisationEmailResponseSchema = z.void(); diff --git a/packages/trpc/server/billing/create-subscription.ts b/packages/trpc/server/enterprise-router/create-subscription.ts similarity index 100% rename from packages/trpc/server/billing/create-subscription.ts rename to packages/trpc/server/enterprise-router/create-subscription.ts diff --git a/packages/trpc/server/billing/create-subscription.types.ts b/packages/trpc/server/enterprise-router/create-subscription.types.ts similarity index 100% rename from packages/trpc/server/billing/create-subscription.types.ts rename to packages/trpc/server/enterprise-router/create-subscription.types.ts diff --git a/packages/trpc/server/enterprise-router/delete-organisation-email-domain.ts b/packages/trpc/server/enterprise-router/delete-organisation-email-domain.ts new file mode 100644 index 000000000..1edadfbd7 --- /dev/null +++ b/packages/trpc/server/enterprise-router/delete-organisation-email-domain.ts @@ -0,0 +1,53 @@ +import { deleteEmailDomain } from '@documenso/ee/server-only/lib/delete-email-domain'; +import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app'; +import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/organisations'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { buildOrganisationWhereQuery } from '@documenso/lib/utils/organisations'; +import { prisma } from '@documenso/prisma'; + +import { authenticatedProcedure } from '../trpc'; +import { + ZDeleteOrganisationEmailDomainRequestSchema, + ZDeleteOrganisationEmailDomainResponseSchema, +} from './delete-organisation-email-domain.types'; + +export const deleteOrganisationEmailDomainRoute = authenticatedProcedure + .input(ZDeleteOrganisationEmailDomainRequestSchema) + .output(ZDeleteOrganisationEmailDomainResponseSchema) + .mutation(async ({ input, ctx }) => { + const { emailDomainId } = input; + const { user } = ctx; + + ctx.logger.info({ + input: { + emailDomainId, + }, + }); + + if (!IS_BILLING_ENABLED()) { + throw new AppError(AppErrorCode.INVALID_REQUEST, { + message: 'Billing is not enabled', + }); + } + + const emailDomain = await prisma.emailDomain.findFirst({ + where: { + id: emailDomainId, + organisation: buildOrganisationWhereQuery({ + organisationId: undefined, + userId: user.id, + roles: ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP['MANAGE_ORGANISATION'], + }), + }, + }); + + if (!emailDomain) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email domain not found', + }); + } + + await deleteEmailDomain({ + emailDomainId: emailDomain.id, + }); + }); diff --git a/packages/trpc/server/enterprise-router/delete-organisation-email-domain.types.ts b/packages/trpc/server/enterprise-router/delete-organisation-email-domain.types.ts new file mode 100644 index 000000000..2ba8802da --- /dev/null +++ b/packages/trpc/server/enterprise-router/delete-organisation-email-domain.types.ts @@ -0,0 +1,7 @@ +import { z } from 'zod'; + +export const ZDeleteOrganisationEmailDomainRequestSchema = z.object({ + emailDomainId: z.string(), +}); + +export const ZDeleteOrganisationEmailDomainResponseSchema = z.void(); diff --git a/packages/trpc/server/enterprise-router/delete-organisation-email.ts b/packages/trpc/server/enterprise-router/delete-organisation-email.ts new file mode 100644 index 000000000..770649d71 --- /dev/null +++ b/packages/trpc/server/enterprise-router/delete-organisation-email.ts @@ -0,0 +1,45 @@ +import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/organisations'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { buildOrganisationWhereQuery } from '@documenso/lib/utils/organisations'; +import { prisma } from '@documenso/prisma'; + +import { authenticatedProcedure } from '../trpc'; +import { + ZDeleteOrganisationEmailRequestSchema, + ZDeleteOrganisationEmailResponseSchema, +} from './delete-organisation-email.types'; + +export const deleteOrganisationEmailRoute = authenticatedProcedure + .input(ZDeleteOrganisationEmailRequestSchema) + .output(ZDeleteOrganisationEmailResponseSchema) + .mutation(async ({ input, ctx }) => { + const { emailId } = input; + const { user } = ctx; + + ctx.logger.info({ + input: { + emailId, + }, + }); + + const email = await prisma.organisationEmail.findFirst({ + where: { + id: emailId, + organisation: buildOrganisationWhereQuery({ + organisationId: undefined, + userId: user.id, + roles: ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP['MANAGE_ORGANISATION'], + }), + }, + }); + + if (!email) { + throw new AppError(AppErrorCode.UNAUTHORIZED); + } + + await prisma.organisationEmail.delete({ + where: { + id: email.id, + }, + }); + }); diff --git a/packages/trpc/server/enterprise-router/delete-organisation-email.types.ts b/packages/trpc/server/enterprise-router/delete-organisation-email.types.ts new file mode 100644 index 000000000..116d60d4b --- /dev/null +++ b/packages/trpc/server/enterprise-router/delete-organisation-email.types.ts @@ -0,0 +1,7 @@ +import { z } from 'zod'; + +export const ZDeleteOrganisationEmailRequestSchema = z.object({ + emailId: z.string(), +}); + +export const ZDeleteOrganisationEmailResponseSchema = z.void(); diff --git a/packages/trpc/server/enterprise-router/find-organisation-email-domain.ts b/packages/trpc/server/enterprise-router/find-organisation-email-domain.ts new file mode 100644 index 000000000..6901efb76 --- /dev/null +++ b/packages/trpc/server/enterprise-router/find-organisation-email-domain.ts @@ -0,0 +1,122 @@ +import type { EmailDomainStatus } from '@prisma/client'; +import { Prisma } from '@prisma/client'; + +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import type { FindResultResponse } from '@documenso/lib/types/search-params'; +import { buildOrganisationWhereQuery } from '@documenso/lib/utils/organisations'; +import { prisma } from '@documenso/prisma'; + +import { authenticatedProcedure } from '../trpc'; +import { + ZFindOrganisationEmailDomainsRequestSchema, + ZFindOrganisationEmailDomainsResponseSchema, +} from './find-organisation-email-domain.types'; + +export const findOrganisationEmailDomainsRoute = authenticatedProcedure + .input(ZFindOrganisationEmailDomainsRequestSchema) + .output(ZFindOrganisationEmailDomainsResponseSchema) + .query(async ({ input, ctx }) => { + const { organisationId, emailDomainId, statuses, query, page, perPage } = input; + const { user } = ctx; + + ctx.logger.info({ + input: { + organisationId, + }, + }); + + return await findOrganisationEmailDomains({ + userId: user.id, + organisationId, + emailDomainId, + statuses, + query, + page, + perPage, + }); + }); + +type FindOrganisationEmailDomainsOptions = { + userId: number; + organisationId: string; + emailDomainId?: string; + statuses?: EmailDomainStatus[]; + query?: string; + page?: number; + perPage?: number; +}; + +export const findOrganisationEmailDomains = async ({ + userId, + organisationId, + emailDomainId, + statuses = [], + query, + page = 1, + perPage = 100, +}: FindOrganisationEmailDomainsOptions) => { + const organisation = await prisma.organisation.findFirst({ + where: buildOrganisationWhereQuery({ organisationId, userId }), + }); + + if (!organisation) { + throw new AppError(AppErrorCode.NOT_FOUND); + } + + const whereClause: Prisma.EmailDomainWhereInput = { + organisationId: organisation.id, + status: statuses.length > 0 ? { in: statuses } : undefined, + }; + + if (emailDomainId) { + whereClause.id = emailDomainId; + } + + if (query) { + whereClause.domain = { + contains: query, + mode: Prisma.QueryMode.insensitive, + }; + } + + const [data, count] = await Promise.all([ + prisma.emailDomain.findMany({ + where: whereClause, + skip: Math.max(page - 1, 0) * perPage, + take: perPage, + orderBy: { + createdAt: 'desc', + }, + select: { + id: true, + status: true, + organisationId: true, + domain: true, + selector: true, + createdAt: true, + updatedAt: true, + _count: { + select: { + emails: true, + }, + }, + }, + }), + prisma.emailDomain.count({ + where: whereClause, + }), + ]); + + const mappedData = data.map((item) => ({ + ...item, + emailCount: item._count.emails, + })); + + return { + data: mappedData, + count, + currentPage: page, + perPage, + totalPages: Math.ceil(count / perPage), + } satisfies FindResultResponse; +}; diff --git a/packages/trpc/server/enterprise-router/find-organisation-email-domain.types.ts b/packages/trpc/server/enterprise-router/find-organisation-email-domain.types.ts new file mode 100644 index 000000000..1aa4bde0c --- /dev/null +++ b/packages/trpc/server/enterprise-router/find-organisation-email-domain.types.ts @@ -0,0 +1,23 @@ +import { EmailDomainStatus } from '@prisma/client'; +import { z } from 'zod'; + +import { ZEmailDomainManySchema } from '@documenso/lib/types/email-domain'; +import { ZFindResultResponse, ZFindSearchParamsSchema } from '@documenso/lib/types/search-params'; + +export const ZFindOrganisationEmailDomainsRequestSchema = ZFindSearchParamsSchema.extend({ + organisationId: z.string(), + emailDomainId: z.string().optional(), + statuses: z.nativeEnum(EmailDomainStatus).array().optional(), +}); + +export const ZFindOrganisationEmailDomainsResponseSchema = ZFindResultResponse.extend({ + data: z.array( + ZEmailDomainManySchema.extend({ + emailCount: z.number(), + }), + ), +}); + +export type TFindOrganisationEmailDomainsResponse = z.infer< + typeof ZFindOrganisationEmailDomainsResponseSchema +>; diff --git a/packages/trpc/server/enterprise-router/find-organisation-emails.ts b/packages/trpc/server/enterprise-router/find-organisation-emails.ts new file mode 100644 index 000000000..9f0f759ac --- /dev/null +++ b/packages/trpc/server/enterprise-router/find-organisation-emails.ts @@ -0,0 +1,105 @@ +import { Prisma } from '@prisma/client'; + +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import type { FindResultResponse } from '@documenso/lib/types/search-params'; +import { buildOrganisationWhereQuery } from '@documenso/lib/utils/organisations'; +import { prisma } from '@documenso/prisma'; + +import { authenticatedProcedure } from '../trpc'; +import { + ZFindOrganisationEmailsRequestSchema, + ZFindOrganisationEmailsResponseSchema, +} from './find-organisation-emails.types'; + +export const findOrganisationEmailsRoute = authenticatedProcedure + .input(ZFindOrganisationEmailsRequestSchema) + .output(ZFindOrganisationEmailsResponseSchema) + .query(async ({ input, ctx }) => { + const { organisationId, emailDomainId, query, page, perPage } = input; + const { user } = ctx; + + ctx.logger.info({ + input: { + organisationId, + }, + }); + + return await findOrganisationEmails({ + userId: user.id, + organisationId, + emailDomainId, + query, + page, + perPage, + }); + }); + +type FindOrganisationEmailsOptions = { + userId: number; + organisationId: string; + emailDomainId?: string; + query?: string; + page?: number; + perPage?: number; +}; + +export const findOrganisationEmails = async ({ + userId, + organisationId, + emailDomainId, + query, + page = 1, + perPage = 100, +}: FindOrganisationEmailsOptions) => { + const organisation = await prisma.organisation.findFirst({ + where: buildOrganisationWhereQuery({ organisationId, userId }), + }); + + if (!organisation) { + throw new AppError(AppErrorCode.NOT_FOUND); + } + + const whereClause: Prisma.OrganisationEmailWhereInput = { + organisationId: organisation.id, + emailDomainId, + }; + + if (query) { + whereClause.email = { + contains: query, + mode: Prisma.QueryMode.insensitive, + }; + } + + const [data, count] = await Promise.all([ + prisma.organisationEmail.findMany({ + where: whereClause, + skip: Math.max(page - 1, 0) * perPage, + take: perPage, + orderBy: { + createdAt: 'desc', + }, + select: { + id: true, + createdAt: true, + updatedAt: true, + email: true, + emailName: true, + // replyTo: true, + emailDomainId: true, + organisationId: true, + }, + }), + prisma.organisationEmail.count({ + where: whereClause, + }), + ]); + + return { + data, + count, + currentPage: page, + perPage, + totalPages: Math.ceil(count / perPage), + } satisfies FindResultResponse; +}; diff --git a/packages/trpc/server/enterprise-router/find-organisation-emails.types.ts b/packages/trpc/server/enterprise-router/find-organisation-emails.types.ts new file mode 100644 index 000000000..2e0d25e4e --- /dev/null +++ b/packages/trpc/server/enterprise-router/find-organisation-emails.types.ts @@ -0,0 +1,15 @@ +import { z } from 'zod'; + +import { ZOrganisationEmailManySchema } from '@documenso/lib/types/organisation-email'; +import { ZFindResultResponse, ZFindSearchParamsSchema } from '@documenso/lib/types/search-params'; + +export const ZFindOrganisationEmailsRequestSchema = ZFindSearchParamsSchema.extend({ + organisationId: z.string(), + emailDomainId: z.string().optional(), +}); + +export const ZFindOrganisationEmailsResponseSchema = ZFindResultResponse.extend({ + data: ZOrganisationEmailManySchema.array(), +}); + +export type TFindOrganisationEmailsResponse = z.infer; diff --git a/packages/trpc/server/billing/get-invoices.ts b/packages/trpc/server/enterprise-router/get-invoices.ts similarity index 100% rename from packages/trpc/server/billing/get-invoices.ts rename to packages/trpc/server/enterprise-router/get-invoices.ts diff --git a/packages/trpc/server/billing/get-invoices.types.ts b/packages/trpc/server/enterprise-router/get-invoices.types.ts similarity index 100% rename from packages/trpc/server/billing/get-invoices.types.ts rename to packages/trpc/server/enterprise-router/get-invoices.types.ts diff --git a/packages/trpc/server/enterprise-router/get-organisation-email-domain.ts b/packages/trpc/server/enterprise-router/get-organisation-email-domain.ts new file mode 100644 index 000000000..c2834d2a3 --- /dev/null +++ b/packages/trpc/server/enterprise-router/get-organisation-email-domain.ts @@ -0,0 +1,63 @@ +import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/organisations'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { buildOrganisationWhereQuery } from '@documenso/lib/utils/organisations'; +import { prisma } from '@documenso/prisma'; + +import { authenticatedProcedure } from '../trpc'; +import { + ZGetOrganisationEmailDomainRequestSchema, + ZGetOrganisationEmailDomainResponseSchema, +} from './get-organisation-email-domain.types'; + +export const getOrganisationEmailDomainRoute = authenticatedProcedure + .input(ZGetOrganisationEmailDomainRequestSchema) + .output(ZGetOrganisationEmailDomainResponseSchema) + .query(async ({ input, ctx }) => { + const { emailDomainId } = input; + + ctx.logger.info({ + input: { + emailDomainId, + }, + }); + + return await getOrganisationEmailDomain({ + userId: ctx.user.id, + emailDomainId, + }); + }); + +type GetOrganisationEmailDomainOptions = { + userId: number; + emailDomainId: string; +}; + +export const getOrganisationEmailDomain = async ({ + userId, + emailDomainId, +}: GetOrganisationEmailDomainOptions) => { + const emailDomain = await prisma.emailDomain.findFirst({ + where: { + id: emailDomainId, + organisation: buildOrganisationWhereQuery({ + organisationId: undefined, + userId, + roles: ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP['MANAGE_ORGANISATION'], + }), + }, + omit: { + privateKey: true, + }, + include: { + emails: true, + }, + }); + + if (!emailDomain) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email domain not found', + }); + } + + return emailDomain; +}; diff --git a/packages/trpc/server/enterprise-router/get-organisation-email-domain.types.ts b/packages/trpc/server/enterprise-router/get-organisation-email-domain.types.ts new file mode 100644 index 000000000..4fc9afaf7 --- /dev/null +++ b/packages/trpc/server/enterprise-router/get-organisation-email-domain.types.ts @@ -0,0 +1,13 @@ +import { z } from 'zod'; + +import { ZEmailDomainSchema } from '@documenso/lib/types/email-domain'; + +export const ZGetOrganisationEmailDomainRequestSchema = z.object({ + emailDomainId: z.string(), +}); + +export const ZGetOrganisationEmailDomainResponseSchema = ZEmailDomainSchema; + +export type TGetOrganisationEmailDomainResponse = z.infer< + typeof ZGetOrganisationEmailDomainResponseSchema +>; diff --git a/packages/trpc/server/billing/get-plans.ts b/packages/trpc/server/enterprise-router/get-plans.ts similarity index 100% rename from packages/trpc/server/billing/get-plans.ts rename to packages/trpc/server/enterprise-router/get-plans.ts diff --git a/packages/trpc/server/billing/get-subscription.ts b/packages/trpc/server/enterprise-router/get-subscription.ts similarity index 100% rename from packages/trpc/server/billing/get-subscription.ts rename to packages/trpc/server/enterprise-router/get-subscription.ts diff --git a/packages/trpc/server/billing/get-subscription.types.ts b/packages/trpc/server/enterprise-router/get-subscription.types.ts similarity index 100% rename from packages/trpc/server/billing/get-subscription.types.ts rename to packages/trpc/server/enterprise-router/get-subscription.types.ts diff --git a/packages/trpc/server/billing/manage-subscription.ts b/packages/trpc/server/enterprise-router/manage-subscription.ts similarity index 100% rename from packages/trpc/server/billing/manage-subscription.ts rename to packages/trpc/server/enterprise-router/manage-subscription.ts diff --git a/packages/trpc/server/billing/manage-subscription.types.ts b/packages/trpc/server/enterprise-router/manage-subscription.types.ts similarity index 100% rename from packages/trpc/server/billing/manage-subscription.types.ts rename to packages/trpc/server/enterprise-router/manage-subscription.types.ts diff --git a/packages/trpc/server/enterprise-router/router.ts b/packages/trpc/server/enterprise-router/router.ts new file mode 100644 index 000000000..3fcac5708 --- /dev/null +++ b/packages/trpc/server/enterprise-router/router.ts @@ -0,0 +1,46 @@ +import { router } from '../trpc'; +import { createOrganisationEmailRoute } from './create-organisation-email'; +import { createOrganisationEmailDomainRoute } from './create-organisation-email-domain'; +import { createSubscriptionRoute } from './create-subscription'; +import { deleteOrganisationEmailRoute } from './delete-organisation-email'; +import { deleteOrganisationEmailDomainRoute } from './delete-organisation-email-domain'; +import { findOrganisationEmailDomainsRoute } from './find-organisation-email-domain'; +import { findOrganisationEmailsRoute } from './find-organisation-emails'; +import { getInvoicesRoute } from './get-invoices'; +import { getOrganisationEmailDomainRoute } from './get-organisation-email-domain'; +import { getPlansRoute } from './get-plans'; +import { getSubscriptionRoute } from './get-subscription'; +import { manageSubscriptionRoute } from './manage-subscription'; +import { updateOrganisationEmailRoute } from './update-organisation-email'; +import { verifyOrganisationEmailDomainRoute } from './verify-organisation-email-domain'; + +export const enterpriseRouter = router({ + organisation: { + email: { + find: findOrganisationEmailsRoute, + create: createOrganisationEmailRoute, + update: updateOrganisationEmailRoute, + delete: deleteOrganisationEmailRoute, + }, + emailDomain: { + get: getOrganisationEmailDomainRoute, + find: findOrganisationEmailDomainsRoute, + create: createOrganisationEmailDomainRoute, + delete: deleteOrganisationEmailDomainRoute, + verify: verifyOrganisationEmailDomainRoute, + }, + }, + billing: { + plans: { + get: getPlansRoute, + }, + subscription: { + get: getSubscriptionRoute, + create: createSubscriptionRoute, + manage: manageSubscriptionRoute, + }, + invoices: { + get: getInvoicesRoute, + }, + }, +}); diff --git a/packages/trpc/server/enterprise-router/update-organisation-email.ts b/packages/trpc/server/enterprise-router/update-organisation-email.ts new file mode 100644 index 000000000..59ca52435 --- /dev/null +++ b/packages/trpc/server/enterprise-router/update-organisation-email.ts @@ -0,0 +1,49 @@ +import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/organisations'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { buildOrganisationWhereQuery } from '@documenso/lib/utils/organisations'; +import { prisma } from '@documenso/prisma'; + +import { authenticatedProcedure } from '../trpc'; +import { + ZUpdateOrganisationEmailRequestSchema, + ZUpdateOrganisationEmailResponseSchema, +} from './update-organisation-email.types'; + +export const updateOrganisationEmailRoute = authenticatedProcedure + .input(ZUpdateOrganisationEmailRequestSchema) + .output(ZUpdateOrganisationEmailResponseSchema) + .mutation(async ({ input, ctx }) => { + const { emailId, emailName } = input; + const { user } = ctx; + + ctx.logger.info({ + input: { + emailId, + }, + }); + + const organisationEmail = await prisma.organisationEmail.findFirst({ + where: { + id: emailId, + organisation: buildOrganisationWhereQuery({ + organisationId: undefined, + userId: user.id, + roles: ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP['MANAGE_ORGANISATION'], + }), + }, + }); + + if (!organisationEmail) { + throw new AppError(AppErrorCode.UNAUTHORIZED); + } + + await prisma.organisationEmail.update({ + where: { + id: emailId, + }, + data: { + emailName, + // replyTo, + }, + }); + }); diff --git a/packages/trpc/server/enterprise-router/update-organisation-email.types.ts b/packages/trpc/server/enterprise-router/update-organisation-email.types.ts new file mode 100644 index 000000000..61222c1a2 --- /dev/null +++ b/packages/trpc/server/enterprise-router/update-organisation-email.types.ts @@ -0,0 +1,18 @@ +import { z } from 'zod'; + +import { ZCreateOrganisationEmailRequestSchema } from './create-organisation-email.types'; + +export const ZUpdateOrganisationEmailRequestSchema = z + .object({ + emailId: z.string(), + }) + .extend( + ZCreateOrganisationEmailRequestSchema.pick({ + emailName: true, + // replyTo: true + }).shape, + ); + +export const ZUpdateOrganisationEmailResponseSchema = z.void(); + +export type TUpdateOrganisationEmailRequest = z.infer; diff --git a/packages/trpc/server/enterprise-router/verify-organisation-email-domain.ts b/packages/trpc/server/enterprise-router/verify-organisation-email-domain.ts new file mode 100644 index 000000000..436e1a33d --- /dev/null +++ b/packages/trpc/server/enterprise-router/verify-organisation-email-domain.ts @@ -0,0 +1,59 @@ +import { verifyEmailDomain } from '@documenso/ee/server-only/lib/verify-email-domain'; +import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app'; +import { ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/organisations'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; +import { buildOrganisationWhereQuery } from '@documenso/lib/utils/organisations'; +import { prisma } from '@documenso/prisma'; + +import { authenticatedProcedure } from '../trpc'; +import { + ZVerifyOrganisationEmailDomainRequestSchema, + ZVerifyOrganisationEmailDomainResponseSchema, +} from './verify-organisation-email-domain.types'; + +export const verifyOrganisationEmailDomainRoute = authenticatedProcedure + .input(ZVerifyOrganisationEmailDomainRequestSchema) + .output(ZVerifyOrganisationEmailDomainResponseSchema) + .mutation(async ({ input, ctx }) => { + const { organisationId, emailDomainId } = input; + const { user } = ctx; + + ctx.logger.info({ + input: { + organisationId, + emailDomainId, + }, + }); + + if (!IS_BILLING_ENABLED()) { + throw new AppError(AppErrorCode.INVALID_REQUEST, { + message: 'Billing is not enabled', + }); + } + + const organisation = await prisma.organisation.findFirst({ + where: buildOrganisationWhereQuery({ + organisationId, + userId: user.id, + roles: ORGANISATION_MEMBER_ROLE_PERMISSIONS_MAP['MANAGE_ORGANISATION'], + }), + include: { + emailDomains: true, + }, + }); + + if (!organisation) { + throw new AppError(AppErrorCode.UNAUTHORIZED); + } + + // Filter down emails to verify a specific email, otherwise verify all emails regardless of status. + const emailsToVerify = organisation.emailDomains.filter((email) => { + if (emailDomainId && email.id !== emailDomainId) { + return false; + } + + return true; + }); + + await Promise.all(emailsToVerify.map(async (email) => verifyEmailDomain(email.id))); + }); diff --git a/packages/trpc/server/enterprise-router/verify-organisation-email-domain.types.ts b/packages/trpc/server/enterprise-router/verify-organisation-email-domain.types.ts new file mode 100644 index 000000000..49897b4a4 --- /dev/null +++ b/packages/trpc/server/enterprise-router/verify-organisation-email-domain.types.ts @@ -0,0 +1,8 @@ +import { z } from 'zod'; + +export const ZVerifyOrganisationEmailDomainRequestSchema = z.object({ + organisationId: z.string(), + emailDomainId: z.string().optional().describe('Leave blank to revalidate all emails'), +}); + +export const ZVerifyOrganisationEmailDomainResponseSchema = z.void(); diff --git a/packages/trpc/server/organisation-router/update-organisation-settings.ts b/packages/trpc/server/organisation-router/update-organisation-settings.ts index 09061bf07..ca347bc10 100644 --- a/packages/trpc/server/organisation-router/update-organisation-settings.ts +++ b/packages/trpc/server/organisation-router/update-organisation-settings.ts @@ -26,16 +26,25 @@ export const updateOrganisationSettingsRoute = authenticatedProcedure // Document related settings. documentVisibility, documentLanguage, + documentTimezone, + documentDateFormat, includeSenderDetails, includeSigningCertificate, typedSignatureEnabled, uploadSignatureEnabled, drawSignatureEnabled, + // Branding related settings. brandingEnabled, brandingLogo, brandingUrl, brandingCompanyDetails, + + // Email related settings. + emailId, + emailReplyTo, + // emailReplyToName, + emailDocumentSettings, } = data; if (Object.values(data).length === 0) { @@ -61,6 +70,22 @@ export const updateOrganisationSettingsRoute = authenticatedProcedure }); } + // Validate that the email ID belongs to the organisation. + if (emailId) { + const email = await prisma.organisationEmail.findFirst({ + where: { + id: emailId, + organisationId, + }, + }); + + if (!email) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email not found', + }); + } + } + const derivedTypedSignatureEnabled = typedSignatureEnabled ?? organisation.organisationGlobalSettings.typedSignatureEnabled; const derivedUploadSignatureEnabled = @@ -88,6 +113,8 @@ export const updateOrganisationSettingsRoute = authenticatedProcedure // Document related settings. documentVisibility, documentLanguage, + documentTimezone, + documentDateFormat, includeSenderDetails, includeSigningCertificate, typedSignatureEnabled, @@ -99,6 +126,12 @@ export const updateOrganisationSettingsRoute = authenticatedProcedure brandingLogo, brandingUrl, brandingCompanyDetails, + + // Email related settings. + emailId, + emailReplyTo, + // emailReplyToName, + emailDocumentSettings, }, }, }, diff --git a/packages/trpc/server/organisation-router/update-organisation-settings.types.ts b/packages/trpc/server/organisation-router/update-organisation-settings.types.ts index 99987ba21..c7b0ac75b 100644 --- a/packages/trpc/server/organisation-router/update-organisation-settings.types.ts +++ b/packages/trpc/server/organisation-router/update-organisation-settings.types.ts @@ -1,14 +1,22 @@ import { z } from 'zod'; import { SUPPORTED_LANGUAGE_CODES } from '@documenso/lib/constants/i18n'; +import { ZDocumentEmailSettingsSchema } from '@documenso/lib/types/document-email'; import { DocumentVisibility } from '@documenso/lib/types/document-visibility'; +import { + ZDocumentMetaDateFormatSchema, + ZDocumentMetaTimezoneSchema, +} from '../document-router/schema'; + export const ZUpdateOrganisationSettingsRequestSchema = z.object({ organisationId: z.string(), data: z.object({ // Document related settings. documentVisibility: z.nativeEnum(DocumentVisibility).optional(), documentLanguage: z.enum(SUPPORTED_LANGUAGE_CODES).optional(), + documentTimezone: ZDocumentMetaTimezoneSchema.nullish(), // Null means local timezone. + documentDateFormat: ZDocumentMetaDateFormatSchema.optional(), includeSenderDetails: z.boolean().optional(), includeSigningCertificate: z.boolean().optional(), typedSignatureEnabled: z.boolean().optional(), @@ -20,6 +28,12 @@ export const ZUpdateOrganisationSettingsRequestSchema = z.object({ brandingLogo: z.string().optional(), brandingUrl: z.string().optional(), brandingCompanyDetails: z.string().optional(), + + // Email related settings. + emailId: z.string().nullish(), + emailReplyTo: z.string().email().nullish(), + // emailReplyToName: z.string().optional(), + emailDocumentSettings: ZDocumentEmailSettingsSchema.optional(), }), }); diff --git a/packages/trpc/server/router.ts b/packages/trpc/server/router.ts index a171b1bc9..879d1c75e 100644 --- a/packages/trpc/server/router.ts +++ b/packages/trpc/server/router.ts @@ -2,9 +2,9 @@ import { adminRouter } from './admin-router/router'; import { apiTokenRouter } from './api-token-router/router'; import { attachmentRouter } from './attachment-router/router'; import { authRouter } from './auth-router/router'; -import { billingRouter } from './billing/router'; import { documentRouter } from './document-router/router'; import { embeddingPresignRouter } from './embedding-router/_router'; +import { enterpriseRouter } from './enterprise-router/router'; import { fieldRouter } from './field-router/router'; import { folderRouter } from './folder-router/router'; import { organisationRouter } from './organisation-router/router'; @@ -17,8 +17,8 @@ import { router } from './trpc'; import { webhookRouter } from './webhook-router/router'; export const appRouter = router({ + enterprise: enterpriseRouter, auth: authRouter, - billing: billingRouter, profile: profileRouter, document: documentRouter, field: fieldRouter, diff --git a/packages/trpc/server/team-router/update-team-settings.ts b/packages/trpc/server/team-router/update-team-settings.ts index 72082a9a1..9cae5b330 100644 --- a/packages/trpc/server/team-router/update-team-settings.ts +++ b/packages/trpc/server/team-router/update-team-settings.ts @@ -1,3 +1,5 @@ +import { Prisma } from '@prisma/client'; + import { TEAM_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/teams'; import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import { buildTeamWhereQuery } from '@documenso/lib/utils/teams'; @@ -26,6 +28,8 @@ export const updateTeamSettingsRoute = authenticatedProcedure // Document related settings. documentVisibility, documentLanguage, + documentTimezone, + documentDateFormat, includeSenderDetails, includeSigningCertificate, typedSignatureEnabled, @@ -37,6 +41,12 @@ export const updateTeamSettingsRoute = authenticatedProcedure brandingLogo, brandingUrl, brandingCompanyDetails, + + // Email related settings. + emailId, + emailReplyTo, + // emailReplyToName, + emailDocumentSettings, } = data; if (Object.values(data).length === 0) { @@ -70,6 +80,22 @@ export const updateTeamSettingsRoute = authenticatedProcedure }); } + // Validate that the email ID belongs to the organisation. + if (emailId) { + const email = await prisma.organisationEmail.findFirst({ + where: { + id: emailId, + organisationId: team.organisationId, + }, + }); + + if (!email) { + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Email not found', + }); + } + } + await prisma.team.update({ where: { id: teamId, @@ -80,6 +106,8 @@ export const updateTeamSettingsRoute = authenticatedProcedure // Document related settings. documentVisibility, documentLanguage, + documentTimezone, + documentDateFormat, includeSenderDetails, includeSigningCertificate, typedSignatureEnabled, @@ -91,6 +119,13 @@ export const updateTeamSettingsRoute = authenticatedProcedure brandingLogo, brandingUrl, brandingCompanyDetails, + + // Email related settings. + emailId, + emailReplyTo, + // emailReplyToName, + emailDocumentSettings: + emailDocumentSettings === null ? Prisma.DbNull : emailDocumentSettings, }, }, }, diff --git a/packages/trpc/server/team-router/update-team-settings.types.ts b/packages/trpc/server/team-router/update-team-settings.types.ts index 5b7781b92..9f1fee8fd 100644 --- a/packages/trpc/server/team-router/update-team-settings.types.ts +++ b/packages/trpc/server/team-router/update-team-settings.types.ts @@ -1,8 +1,14 @@ import { z } from 'zod'; import { SUPPORTED_LANGUAGE_CODES } from '@documenso/lib/constants/i18n'; +import { ZDocumentEmailSettingsSchema } from '@documenso/lib/types/document-email'; import { DocumentVisibility } from '@documenso/lib/types/document-visibility'; +import { + ZDocumentMetaDateFormatSchema, + ZDocumentMetaTimezoneSchema, +} from '../document-router/schema'; + /** * Null = Inherit from organisation. * Undefined = Do nothing @@ -13,6 +19,8 @@ export const ZUpdateTeamSettingsRequestSchema = z.object({ // Document related settings. documentVisibility: z.nativeEnum(DocumentVisibility).nullish(), documentLanguage: z.enum(SUPPORTED_LANGUAGE_CODES).nullish(), + documentTimezone: ZDocumentMetaTimezoneSchema.nullish(), + documentDateFormat: ZDocumentMetaDateFormatSchema.nullish(), includeSenderDetails: z.boolean().nullish(), includeSigningCertificate: z.boolean().nullish(), typedSignatureEnabled: z.boolean().nullish(), @@ -24,6 +32,12 @@ export const ZUpdateTeamSettingsRequestSchema = z.object({ brandingLogo: z.string().nullish(), brandingUrl: z.string().nullish(), brandingCompanyDetails: z.string().nullish(), + + // Email related settings. + emailId: z.string().nullish(), + emailReplyTo: z.string().email().nullish(), + // emailReplyToName: z.string().nullish(), + emailDocumentSettings: ZDocumentEmailSettingsSchema.nullish(), }), }); diff --git a/packages/trpc/server/template-router/schema.ts b/packages/trpc/server/template-router/schema.ts index 41452915a..ff8bb0eca 100644 --- a/packages/trpc/server/template-router/schema.ts +++ b/packages/trpc/server/template-router/schema.ts @@ -64,6 +64,8 @@ export const ZTemplateMetaUpsertSchema = z.object({ timezone: ZDocumentMetaTimezoneSchema.optional(), dateFormat: ZDocumentMetaDateFormatSchema.optional(), distributionMethod: ZDocumentMetaDistributionMethodSchema.optional(), + emailId: z.string().nullish(), + emailReplyTo: z.string().nullish(), emailSettings: ZDocumentEmailSettingsSchema.optional(), redirectUrl: ZDocumentMetaRedirectUrlSchema.optional(), language: ZDocumentMetaLanguageSchema.optional(), diff --git a/packages/ui/components/document/document-read-only-fields.tsx b/packages/ui/components/document/document-read-only-fields.tsx index 4dcf72104..80e998c26 100644 --- a/packages/ui/components/document/document-read-only-fields.tsx +++ b/packages/ui/components/document/document-read-only-fields.tsx @@ -23,7 +23,7 @@ import { FieldContent } from '../../primitives/document-flow/field-content'; export type DocumentReadOnlyFieldsProps = { fields: DocumentField[]; - documentMeta?: DocumentMeta | TemplateMeta; + documentMeta?: Pick; showFieldStatus?: boolean; diff --git a/packages/ui/primitives/combobox.tsx b/packages/ui/primitives/combobox.tsx index 93f4167f7..2f5bb6712 100644 --- a/packages/ui/primitives/combobox.tsx +++ b/packages/ui/primitives/combobox.tsx @@ -15,8 +15,10 @@ type ComboboxProps = { options: string[]; value: string | null; onChange: (_value: string | null) => void; + triggerPlaceholder?: string; placeholder?: string; disabled?: boolean; + testId?: string; }; const Combobox = ({ @@ -25,7 +27,9 @@ const Combobox = ({ value, onChange, disabled = false, + triggerPlaceholder, placeholder, + testId, }: ComboboxProps) => { const { _ } = useLingui(); @@ -47,8 +51,9 @@ const Combobox = ({ aria-expanded={open} className={cn('my-2 w-full justify-between', className)} disabled={disabled} + data-testid={testId} > - {value ? value : placeholderValue} + {value ? value : triggerPlaceholder || placeholderValue} diff --git a/packages/ui/primitives/document-flow/add-subject.tsx b/packages/ui/primitives/document-flow/add-subject.tsx index 5666bae91..6553597f2 100644 --- a/packages/ui/primitives/document-flow/add-subject.tsx +++ b/packages/ui/primitives/document-flow/add-subject.tsx @@ -5,13 +5,31 @@ import { Trans } from '@lingui/react/macro'; import type { Field, Recipient } from '@prisma/client'; import { DocumentDistributionMethod, DocumentStatus, RecipientRole } from '@prisma/client'; import { AnimatePresence, motion } from 'framer-motion'; +import { InfoIcon } from 'lucide-react'; import { useForm } from 'react-hook-form'; +import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation'; import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-roles'; import type { TDocument } from '@documenso/lib/types/document'; import { ZDocumentEmailSettingsSchema } from '@documenso/lib/types/document-email'; import { formatSigningLink } from '@documenso/lib/utils/recipients'; +import { trpc } from '@documenso/trpc/react'; import { DocumentSendEmailMessageHelper } from '@documenso/ui/components/document/document-send-email-message-helper'; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@documenso/ui/primitives/form/form'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@documenso/ui/primitives/select'; import { Tabs, TabsList, TabsTrigger } from '@documenso/ui/primitives/tabs'; import { CopyTextButton } from '../../components/common/copy-text-button'; @@ -21,11 +39,10 @@ import { mapFieldsWithRecipients, } from '../../components/document/document-read-only-fields'; import { AvatarWithText } from '../avatar'; -import { FormErrorMessage } from '../form/form-error-message'; import { Input } from '../input'; -import { Label } from '../label'; import { useStep } from '../stepper'; import { Textarea } from '../textarea'; +import { Tooltip, TooltipContent, TooltipTrigger } from '../tooltip'; import { toast } from '../use-toast'; import { type TAddSubjectFormSchema, ZAddSubjectFormSchema } from './add-subject.types'; import { @@ -56,15 +73,14 @@ export const AddSubjectFormPartial = ({ }: AddSubjectFormProps) => { const { _ } = useLingui(); - const { - register, - handleSubmit, - setValue, - watch, - formState: { errors, isSubmitting }, - } = useForm({ + const organisation = useCurrentOrganisation(); + + const form = useForm({ defaultValues: { meta: { + emailId: document.documentMeta?.emailId ?? null, + emailReplyTo: document.documentMeta?.emailReplyTo || undefined, + // emailReplyName: document.documentMeta?.emailReplyName || undefined, subject: document.documentMeta?.subject ?? '', message: document.documentMeta?.message ?? '', distributionMethod: @@ -75,6 +91,21 @@ export const AddSubjectFormPartial = ({ resolver: zodResolver(ZAddSubjectFormSchema), }); + const { + handleSubmit, + setValue, + watch, + formState: { isSubmitting }, + } = form; + + const { data: emailData, isLoading: isLoadingEmails } = + trpc.enterprise.organisation.email.find.useQuery({ + organisationId: organisation.id, + perPage: 100, + }); + + const emails = emailData?.data || []; + const GoNextLabel = { [DocumentDistributionMethod.EMAIL]: { [DocumentStatus.DRAFT]: msg`Send`, @@ -139,54 +170,141 @@ export const AddSubjectFormPartial = ({ initial={{ opacity: 0, y: 15 }} animate={{ opacity: 1, y: 0, transition: { duration: 0.3 } }} exit={{ opacity: 0, transition: { duration: 0.15 } }} - className="flex flex-col gap-y-4 rounded-lg border p-4" > -
- +
+
+ {organisation.organisationClaim.flags.emailDomains && ( + ( + + + Email Sender + - + + + -