diff --git a/.env.example b/.env.example index b2dfb0805..559684160 100644 --- a/.env.example +++ b/.env.example @@ -93,6 +93,8 @@ NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS= NEXT_PRIVATE_SMTP_FROM_NAME="Documenso" # REQUIRED: Defines the email address to use as the from address. NEXT_PRIVATE_SMTP_FROM_ADDRESS="noreply@documenso.com" +# OPTIONAL: Defines the service for nodemailer +NEXT_PRIVATE_SMTP_SERVICE= # OPTIONAL: The API key to use for Resend.com NEXT_PRIVATE_RESEND_API_KEY= # OPTIONAL: The API key to use for MailChannels. diff --git a/apps/documentation/pages/developers/local-development/signing-certificate.mdx b/apps/documentation/pages/developers/local-development/signing-certificate.mdx index c06fe9440..55c1ff820 100644 --- a/apps/documentation/pages/developers/local-development/signing-certificate.mdx +++ b/apps/documentation/pages/developers/local-development/signing-certificate.mdx @@ -38,11 +38,17 @@ You will be prompted to enter some information, such as the certificate's Common Combine the private key and the self-signed certificate to create a `.p12` certificate. Use the following command: ```bash -openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt +openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt -legacy ``` - If you get the error "Error: Failed to get private key bags", add the `-legacy` flag to the command `openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt -legacy`. +When running the application in Docker, you may encounter permission issues when attempting to sign documents using your certificate (.p12) file. This happens because the application runs as a non-root user inside the container and needs read access to the certificate. + +To resolve this, you'll need to update the certificate file permissions to allow the container user 1001, which runs NextJS, to read it: + +```bash +sudo chown 1001 certificate.p12 +``` @@ -54,8 +60,8 @@ Note that for local development, the password can be left empty. ### Add Certificate to the Project -Finally, add the certificate to the project. Place the `certificate.p12` file in the `/apps/web/resources` directory. If the directory doesn't exist, create it. +Use the `NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH` environment variable to point at the certificate you created. -The final file path should be `/apps/web/resources/certificate.p12`. +Details about environment variables associated with certificates can be found [here](/developers/self-hosting/signing-certificate#configure-documenso-to-use-the-certificate). diff --git a/apps/documentation/pages/developers/self-hosting/how-to.mdx b/apps/documentation/pages/developers/self-hosting/how-to.mdx index a316b02b1..0d1583859 100644 --- a/apps/documentation/pages/developers/self-hosting/how-to.mdx +++ b/apps/documentation/pages/developers/self-hosting/how-to.mdx @@ -133,7 +133,7 @@ volumes: After updating the volume binding, save the `compose.yml` file and run the following command to start the containers: ```bash -docker-compose --env-file ./.env -d up +docker-compose --env-file ./.env up -d ``` The command will start the PostgreSQL database and the Documenso application containers. diff --git a/apps/marketing/package.json b/apps/marketing/package.json index a890c8374..7923022c9 100644 --- a/apps/marketing/package.json +++ b/apps/marketing/package.json @@ -1,6 +1,6 @@ { "name": "@documenso/marketing", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "private": true, "license": "AGPL-3.0", "scripts": { diff --git a/apps/marketing/src/app/(marketing)/[content]/content.tsx b/apps/marketing/src/app/(marketing)/[content]/content.tsx new file mode 100644 index 000000000..d263d8c35 --- /dev/null +++ b/apps/marketing/src/app/(marketing)/[content]/content.tsx @@ -0,0 +1,23 @@ +'use client'; + +import Image from 'next/image'; + +import type { DocumentTypes } from 'contentlayer/generated'; +import type { MDXComponents } from 'mdx/types'; +import { useMDXComponent } from 'next-contentlayer/hooks'; + +const mdxComponents: MDXComponents = { + MdxNextImage: (props: { width: number; height: number; alt?: string; src: string }) => ( + {props.alt + ), +}; + +export type ContentPageContentProps = { + document: DocumentTypes; +}; + +export const ContentPageContent = ({ document }: ContentPageContentProps) => { + const MDXContent = useMDXComponent(document.body.code); + + return ; +}; diff --git a/apps/marketing/src/app/(marketing)/[content]/page.tsx b/apps/marketing/src/app/(marketing)/[content]/page.tsx index 38200d984..9bcc2b92d 100644 --- a/apps/marketing/src/app/(marketing)/[content]/page.tsx +++ b/apps/marketing/src/app/(marketing)/[content]/page.tsx @@ -1,12 +1,11 @@ -import Image from 'next/image'; import { notFound } from 'next/navigation'; import { allDocuments } from 'contentlayer/generated'; -import type { MDXComponents } from 'mdx/types'; -import { useMDXComponent } from 'next-contentlayer/hooks'; import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; +import { ContentPageContent } from './content'; + export const dynamic = 'force-dynamic'; export const generateMetadata = ({ params }: { params: { content: string } }) => { @@ -19,12 +18,6 @@ export const generateMetadata = ({ params }: { params: { content: string } }) => return { title: document.title }; }; -const mdxComponents: MDXComponents = { - MdxNextImage: (props: { width: number; height: number; alt?: string; src: string }) => ( - {props.alt - ), -}; - /** * A generic catch all page for the root level that checks for content layer documents. * @@ -39,11 +32,9 @@ export default async function ContentPage({ params }: { params: { content: strin notFound(); } - const MDXContent = useMDXComponent(post.body.code); - return (
- +
); } diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/content.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/content.tsx new file mode 100644 index 000000000..ebcd5f8b9 --- /dev/null +++ b/apps/marketing/src/app/(marketing)/blog/[post]/content.tsx @@ -0,0 +1,23 @@ +'use client'; + +import Image from 'next/image'; + +import type { BlogPost } from 'contentlayer/generated'; +import type { MDXComponents } from 'mdx/types'; +import { useMDXComponent } from 'next-contentlayer/hooks'; + +const mdxComponents: MDXComponents = { + MdxNextImage: (props: { width: number; height: number; alt?: string; src: string }) => ( + {props.alt + ), +}; + +export type BlogPostContentProps = { + post: BlogPost; +}; + +export const BlogPostContent = ({ post }: BlogPostContentProps) => { + const MdxContent = useMDXComponent(post.body.code); + + return ; +}; diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx index 324f742d1..03c5bcb81 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx @@ -1,16 +1,15 @@ -import Image from 'next/image'; import Link from 'next/link'; import { notFound } from 'next/navigation'; import { allBlogPosts } from 'contentlayer/generated'; import { ChevronLeft } from 'lucide-react'; -import type { MDXComponents } from 'mdx/types'; -import { useMDXComponent } from 'next-contentlayer/hooks'; import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; import { CallToAction } from '~/components/(marketing)/call-to-action'; +import { BlogPostContent } from './content'; + export const dynamic = 'force-dynamic'; export const generateMetadata = ({ params }: { params: { post: string } }) => { @@ -42,12 +41,6 @@ export const generateMetadata = ({ params }: { params: { post: string } }) => { }; }; -const mdxComponents: MDXComponents = { - MdxNextImage: (props: { width: number; height: number; alt?: string; src: string }) => ( - {props.alt - ), -}; - export default async function BlogPostPage({ params }: { params: { post: string } }) { await setupI18nSSR(); @@ -57,8 +50,6 @@ export default async function BlogPostPage({ params }: { params: { post: string notFound(); } - const MDXContent = useMDXComponent(post.body.code); - return (
@@ -87,7 +78,7 @@ export default async function BlogPostPage({ params }: { params: { post: string
- + {post.tags.length > 0 && (
    diff --git a/apps/marketing/src/app/(marketing)/open/page.tsx b/apps/marketing/src/app/(marketing)/open/page.tsx index 035b4de38..367afcd5a 100644 --- a/apps/marketing/src/app/(marketing)/open/page.tsx +++ b/apps/marketing/src/app/(marketing)/open/page.tsx @@ -1,6 +1,7 @@ import type { Metadata } from 'next'; import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; import { z } from 'zod'; import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; @@ -130,9 +131,9 @@ const fetchEarlyAdopters = async () => { }; export default async function OpenPage() { - const { i18n } = await setupI18nSSR(); + await setupI18nSSR(); - const { _ } = i18n; + const { _ } = useLingui(); const [ { forks_count: forksCount, stargazers_count: stargazersCount }, diff --git a/apps/web/package.json b/apps/web/package.json index 722e028d6..15cde6270 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@documenso/web", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "private": true, "license": "AGPL-3.0", "scripts": { diff --git a/apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx b/apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx index ee86c17c5..a5852b40e 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx @@ -33,6 +33,8 @@ import { } from '@documenso/ui/primitives/dropdown-menu'; import { useToast } from '@documenso/ui/primitives/use-toast'; +import { DocumentRecipientLinkCopyDialog } from '~/components/document/document-recipient-link-copy-dialog'; + import { ResendDocumentActionItem } from '../_action-items/resend-document'; import { DeleteDocumentDialog } from '../delete-document-dialog'; import { DuplicateDocumentDialog } from '../duplicate-document-dialog'; @@ -62,6 +64,7 @@ export const DocumentPageViewDropdown = ({ document, team }: DocumentPageViewDro const isOwner = document.User.id === session.user.id; const isDraft = document.status === DocumentStatus.DRAFT; + const isPending = document.status === DocumentStatus.PENDING; const isDeleted = document.deletedAt !== null; const isComplete = document.status === DocumentStatus.COMPLETED; const isCurrentTeamDocument = team && document.team?.url === team.url; @@ -145,6 +148,21 @@ export const DocumentPageViewDropdown = ({ document, team }: DocumentPageViewDro Share + {canManageDocument && ( + e.preventDefault()} + > + + Signing Links + + } + /> + )} + - {/* Todo: Translations. */}

    - - {formatDocumentAuditLogAction(auditLog, userId).prefix} - {' '} - {formatDocumentAuditLogAction(auditLog, userId).description} + {formatDocumentAuditLogAction(_, auditLog, userId).description}

diff --git a/apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx b/apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx index c827899a9..d4af4ee62 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx @@ -26,6 +26,7 @@ import { LazyPDFViewer } from '@documenso/ui/primitives/lazy-pdf-viewer'; import { StackAvatarsWithTooltip } from '~/components/(dashboard)/avatar/stack-avatars-with-tooltip'; import { DocumentHistorySheet } from '~/components/document/document-history-sheet'; import { DocumentReadOnlyFields } from '~/components/document/document-read-only-fields'; +import { DocumentRecipientLinkCopyDialog } from '~/components/document/document-recipient-link-copy-dialog'; import { DocumentStatus as DocumentStatusComponent, FRIENDLY_STATUS_MAP, @@ -134,6 +135,10 @@ export const DocumentPageView = async ({ params, team }: DocumentPageViewProps) return (
+ {document.status === DocumentStatus.PENDING && ( + + )} + Documents diff --git a/apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx b/apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx index 953dbec35..3058518a7 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx @@ -58,10 +58,6 @@ export const DocumentLogsDataTable = ({ documentId }: DocumentLogsDataTableProps }); }; - const uppercaseFistLetter = (text: string) => { - return text.charAt(0).toUpperCase() + text.slice(1); - }; - const results = data ?? { data: [], perPage: 10, @@ -103,9 +99,7 @@ export const DocumentLogsDataTable = ({ documentId }: DocumentLogsDataTableProps { header: _(msg`Action`), accessorKey: 'type', - cell: ({ row }) => ( - {uppercaseFistLetter(formatDocumentAuditLogAction(row.original).description)} - ), + cell: ({ row }) => {formatDocumentAuditLogAction(_, row.original).description}, }, { header: 'IP Address', diff --git a/apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx b/apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx index a4595f2fd..4e76f4ef0 100644 --- a/apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx +++ b/apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx @@ -37,6 +37,8 @@ import { } from '@documenso/ui/primitives/dropdown-menu'; import { useToast } from '@documenso/ui/primitives/use-toast'; +import { DocumentRecipientLinkCopyDialog } from '~/components/document/document-recipient-link-copy-dialog'; + import { ResendDocumentActionItem } from './_action-items/resend-document'; import { DeleteDocumentDialog } from './delete-document-dialog'; import { DuplicateDocumentDialog } from './duplicate-document-dialog'; @@ -69,7 +71,7 @@ export const DataTableActionDropdown = ({ row, team }: DataTableActionDropdownPr const isOwner = row.User.id === session.user.id; // const isRecipient = !!recipient; const isDraft = row.status === DocumentStatus.DRAFT; - // const isPending = row.status === DocumentStatus.PENDING; + const isPending = row.status === DocumentStatus.PENDING; const isComplete = row.status === DocumentStatus.COMPLETED; // const isSigned = recipient?.signingStatus === SigningStatus.SIGNED; const isCurrentTeamDocument = team && row.team?.url === team.url; @@ -191,6 +193,20 @@ export const DataTableActionDropdown = ({ row, team }: DataTableActionDropdownPr Share + {canManageDocument && ( + e.preventDefault()}> +
+ + Signing Links +
+ + } + /> + )} + { const isMounted = useIsMounted(); const [interval, setInterval] = useState('month'); - const [isFetchingCheckoutSession, setIsFetchingCheckoutSession] = useState(false); + const [checkoutSessionPriceId, setCheckoutSessionPriceId] = useState(null); const onSubscribeClick = async (priceId: string) => { try { - setIsFetchingCheckoutSession(true); + setCheckoutSessionPriceId(priceId); const url = await createCheckout({ priceId }); @@ -64,7 +64,7 @@ export const BillingPlans = ({ prices }: BillingPlansProps) => { variant: 'destructive', }); } finally { - setIsFetchingCheckoutSession(false); + setCheckoutSessionPriceId(null); } }; @@ -122,7 +122,8 @@ export const BillingPlans = ({ prices }: BillingPlansProps) => { +
+ )} + + {data && ( + <> +
    + {data.data.length > 0 && results.totalPages > 1 && ( +
  • +
    +
    +
    + +
    +
    +
    + + +
  • + )} + + {results.data.length === 0 && ( +
    +

    + No recent documents +

    +
    + )} + + {results.data.map((document, documentIndex) => ( +
  • +
    +
    +
    + +
    +
    +
    + + + {match(document.source) + .with(DocumentSource.DOCUMENT, DocumentSource.TEMPLATE, () => ( + + Document created by {document.User.name} + + )) + .with(DocumentSource.TEMPLATE_DIRECT_LINK, () => ( + + Document created using a direct link + + )) + .exhaustive()} + + + +
  • + ))} +
+ + + + )} + + ); +}; diff --git a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx new file mode 100644 index 000000000..50a9581e3 --- /dev/null +++ b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx @@ -0,0 +1,69 @@ +import Link from 'next/link'; + +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; +import { PenIcon, PlusIcon } from 'lucide-react'; + +import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-roles'; +import type { Recipient, Template } from '@documenso/prisma/client'; +import { AvatarWithText } from '@documenso/ui/primitives/avatar'; + +export type TemplatePageViewRecipientsProps = { + template: Template & { + Recipient: Recipient[]; + }; + templateRootPath: string; +}; + +export const TemplatePageViewRecipients = ({ + template, + templateRootPath, +}: TemplatePageViewRecipientsProps) => { + const { _ } = useLingui(); + + const recipients = template.Recipient; + + return ( +
+
+

+ Recipients +

+ + + {recipients.length === 0 ? ( + + ) : ( + + )} + +
+ +
    + {recipients.length === 0 && ( +
  • + No recipients +
  • + )} + + {recipients.map((recipient) => ( +
  • + {recipient.email}

    } + secondaryText={ +

    + {_(RECIPIENT_ROLES_DESCRIPTION[recipient.role].roleName)} +

    + } + /> +
  • + ))} +
+
+ ); +}; diff --git a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx index b67f289a8..0436ab3f6 100644 --- a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx +++ b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx @@ -1,22 +1,28 @@ -import React from 'react'; - import Link from 'next/link'; import { redirect } from 'next/navigation'; import { Trans } from '@lingui/macro'; -import { ChevronLeft } from 'lucide-react'; +import { ChevronLeft, LucideEdit } from 'lucide-react'; -import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; -import { getTemplateWithDetailsById } from '@documenso/lib/server-only/template/get-template-with-details-by-id'; -import { formatTemplatesPath } from '@documenso/lib/utils/teams'; -import type { Team } from '@documenso/prisma/client'; +import { getTemplateById } from '@documenso/lib/server-only/template/get-template-by-id'; +import { formatDocumentsPath, formatTemplatesPath } from '@documenso/lib/utils/teams'; +import { DocumentSigningOrder, SigningStatus, type Team } from '@documenso/prisma/client'; +import { Button } from '@documenso/ui/primitives/button'; +import { Card, CardContent } from '@documenso/ui/primitives/card'; +import { LazyPDFViewer } from '@documenso/ui/primitives/lazy-pdf-viewer'; +import { DocumentReadOnlyFields } from '~/components/document/document-read-only-fields'; import { TemplateType } from '~/components/formatter/template-type'; +import { DataTableActionDropdown } from '../data-table-action-dropdown'; import { TemplateDirectLinkBadge } from '../template-direct-link-badge'; -import { EditTemplateForm } from './edit-template'; +import { UseTemplateDialog } from '../use-template-dialog'; import { TemplateDirectLinkDialogWrapper } from './template-direct-link-dialog-wrapper'; +import { TemplatePageViewDocumentsTable } from './template-page-view-documents-table'; +import { TemplatePageViewInformation } from './template-page-view-information'; +import { TemplatePageViewRecentActivity } from './template-page-view-recent-activity'; +import { TemplatePageViewRecipients } from './template-page-view-recipients'; export type TemplatePageViewProps = { params: { @@ -30,6 +36,7 @@ export const TemplatePageView = async ({ params, team }: TemplatePageViewProps) const templateId = Number(id); const templateRootPath = formatTemplatesPath(team?.url); + const documentRootPath = formatDocumentsPath(team?.url); if (!templateId || Number.isNaN(templateId)) { redirect(templateRootPath); @@ -37,29 +44,51 @@ export const TemplatePageView = async ({ params, team }: TemplatePageViewProps) const { user } = await getRequiredServerComponentSession(); - const template = await getTemplateWithDetailsById({ + const template = await getTemplateById({ id: templateId, userId: user.id, + teamId: team?.id, }).catch(() => null); - if (!template || !template.templateDocumentData) { + if (!template || !template.templateDocumentData || (template?.teamId && !team?.url)) { redirect(templateRootPath); } - const isTemplateEnterprise = await isUserEnterprise({ - userId: user.id, - teamId: team?.id, + const { templateDocumentData, Field, Recipient: recipients, templateMeta } = template; + + // Remap to fit the DocumentReadOnlyFields component. + const readOnlyFields = Field.map((field) => { + const recipient = recipients.find((recipient) => recipient.id === field.recipientId) || { + name: '', + email: '', + signingStatus: SigningStatus.NOT_SIGNED, + }; + + return { + ...field, + Recipient: recipient, + Signature: null, + }; }); - return ( -
-
-
- - - Templates - + const mockedDocumentMeta = templateMeta + ? { + typedSignatureEnabled: false, + ...templateMeta, + signingOrder: templateMeta.signingOrder || DocumentSigningOrder.SEQUENTIAL, + documentId: 0, + } + : undefined; + return ( +
+ + + Templates + + +
+

{template.title}

@@ -77,17 +106,97 @@ export const TemplatePageView = async ({ params, team }: TemplatePageViewProps)
-
+
+ +
- +
+ + + + + + + + +
+
+
+
+

+ Template +

+ +
+ +
+
+ +

+ Manage and view template +

+ +
+ + Use + + } + /> +
+
+ + {/* Template information section. */} + + + {/* Recipients section. */} + + + {/* Recent activity section. */} + +
+
+
+ +
+

+ Documents created from template +

+ + +
); }; diff --git a/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx b/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx index 0e8b3b2b0..95ca60ae9 100644 --- a/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx +++ b/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx @@ -8,7 +8,7 @@ import { Trans } from '@lingui/macro'; import { Copy, Edit, MoreHorizontal, MoveRight, Share2Icon, Trash2 } from 'lucide-react'; import { useSession } from 'next-auth/react'; -import { type FindTemplateRow } from '@documenso/lib/server-only/template/find-templates'; +import type { Recipient, Template, TemplateDirectLink } from '@documenso/prisma/client'; import { DropdownMenu, DropdownMenuContent, @@ -23,7 +23,10 @@ import { MoveTemplateDialog } from './move-template-dialog'; import { TemplateDirectLinkDialog } from './template-direct-link-dialog'; export type DataTableActionDropdownProps = { - row: FindTemplateRow; + row: Template & { + directLink?: Pick | null; + Recipient: Recipient[]; + }; templateRootPath: string; teamId?: number; }; @@ -57,7 +60,7 @@ export const DataTableActionDropdown = ({ Action - + Edit diff --git a/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx b/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx index 0181a5ea7..277f9d36f 100644 --- a/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx +++ b/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx @@ -124,7 +124,7 @@ export const TemplatesDataTable = ({ accessorKey: 'type', cell: ({ row }) => (
- + {row.original.directLink?.token && ( !form.formState.isSubmitting && setOpen(value)}> - + {trigger || ( + + )} diff --git a/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx b/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx index 69b72bb17..a3c77c15e 100644 --- a/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx +++ b/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx @@ -1,5 +1,5 @@ -'use client'; - +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; import { DateTime } from 'luxon'; import type { DateTimeFormatOptions } from 'luxon'; import { UAParser } from 'ua-parser-js'; @@ -25,7 +25,12 @@ const dateFormat: DateTimeFormatOptions = { hourCycle: 'h12', }; +/** + * DO NOT USE TRANS. YOU MUST USE _ FOR THIS FILE AND ALL CHILDREN COMPONENTS. + */ export const AuditLogDataTable = ({ logs }: AuditLogDataTableProps) => { + const { _ } = useLingui(); + const parser = new UAParser(); const uppercaseFistLetter = (text: string) => { @@ -36,11 +41,11 @@ export const AuditLogDataTable = ({ logs }: AuditLogDataTableProps) => { - Time - User - Action - IP Address - Browser + {_(msg`Time`)} + {_(msg`User`)} + {_(msg`Action`)} + {_(msg`IP Address`)} + {_(msg`Browser`)} @@ -74,7 +79,7 @@ export const AuditLogDataTable = ({ logs }: AuditLogDataTableProps) => { - {uppercaseFistLetter(formatDocumentAuditLogAction(log).description)} + {uppercaseFistLetter(formatDocumentAuditLogAction(_, log).description)} {log.ipAddress} diff --git a/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx b/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx index 3466b1b1c..f8e510e65 100644 --- a/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx +++ b/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx @@ -2,13 +2,18 @@ import React from 'react'; import { redirect } from 'next/navigation'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; import { DateTime } from 'luxon'; -import { APP_I18N_OPTIONS } from '@documenso/lib/constants/i18n'; -import { RECIPIENT_ROLES_DESCRIPTION_ENG } from '@documenso/lib/constants/recipient-roles'; +import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; +import { DOCUMENT_STATUS } from '@documenso/lib/constants/document'; +import { APP_I18N_OPTIONS, ZSupportedLanguageCodeSchema } from '@documenso/lib/constants/i18n'; +import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-roles'; import { getEntireDocument } from '@documenso/lib/server-only/admin/get-entire-document'; import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt'; import { findDocumentAuditLogs } from '@documenso/lib/server-only/document/find-document-audit-logs'; +import { dynamicActivate } from '@documenso/lib/utils/i18n'; import { Card, CardContent } from '@documenso/ui/primitives/card'; import { Logo } from '~/components/branding/logo'; @@ -21,7 +26,17 @@ type AuditLogProps = { }; }; +/** + * DO NOT USE TRANS. YOU MUST USE _ FOR THIS FILE AND ALL CHILDREN COMPONENTS. + * + * Cannot use dynamicActivate by itself to translate this specific page and all + * children components because `not-found.tsx` page runs and overrides the i18n. + */ export default async function AuditLog({ searchParams }: AuditLogProps) { + const { i18n } = await setupI18nSSR(); + + const { _ } = useLingui(); + const { d } = searchParams; if (typeof d !== 'string' || !d) { @@ -44,6 +59,10 @@ export default async function AuditLog({ searchParams }: AuditLogProps) { return redirect('/'); } + const documentLanguage = ZSupportedLanguageCodeSchema.parse(document.documentMeta?.language); + + await dynamicActivate(i18n, documentLanguage); + const { data: auditLogs } = await findDocumentAuditLogs({ documentId: documentId, userId: document.userId, @@ -53,31 +72,35 @@ export default async function AuditLog({ searchParams }: AuditLogProps) { return (
-

Version History

+

{_(msg`Version History`)}

- Document ID + {_(msg`Document ID`)} {document.id}

- Enclosed Document + {_(msg`Enclosed Document`)} {document.title}

- Status + {_(msg`Status`)} - {document.deletedAt ? 'DELETED' : document.status} + + {_( + document.deletedAt ? msg`Deleted` : DOCUMENT_STATUS[document.status].description, + ).toUpperCase()} +

- Owner + {_(msg`Owner`)} {document.User.name} ({document.User.email}) @@ -85,7 +108,7 @@ export default async function AuditLog({ searchParams }: AuditLogProps) {

- Created At + {_(msg`Created At`)} {DateTime.fromJSDate(document.createdAt) @@ -95,7 +118,7 @@ export default async function AuditLog({ searchParams }: AuditLogProps) {

- Last Updated + {_(msg`Last Updated`)} {DateTime.fromJSDate(document.updatedAt) @@ -105,7 +128,7 @@ export default async function AuditLog({ searchParams }: AuditLogProps) {

- Time Zone + {_(msg`Time Zone`)} {document.documentMeta?.timezone ?? 'N/A'} @@ -113,13 +136,13 @@ export default async function AuditLog({ searchParams }: AuditLogProps) {

-

Recipients

+

{_(msg`Recipients`)}

    {document.Recipient.map((recipient) => (
  • - [{RECIPIENT_ROLES_DESCRIPTION_ENG[recipient.role].roleName}] + [{_(RECIPIENT_ROLES_DESCRIPTION[recipient.role].roleName)}] {' '} {recipient.name} ({recipient.email})
  • diff --git a/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx b/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx index 8c69de2e9..35c0d0542 100644 --- a/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx +++ b/apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx @@ -2,20 +2,24 @@ import React from 'react'; import { redirect } from 'next/navigation'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; import { DateTime } from 'luxon'; import { match } from 'ts-pattern'; import { UAParser } from 'ua-parser-js'; -import { APP_I18N_OPTIONS } from '@documenso/lib/constants/i18n'; +import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; +import { APP_I18N_OPTIONS, ZSupportedLanguageCodeSchema } from '@documenso/lib/constants/i18n'; import { - RECIPIENT_ROLES_DESCRIPTION_ENG, - RECIPIENT_ROLE_SIGNING_REASONS_ENG, + RECIPIENT_ROLES_DESCRIPTION, + RECIPIENT_ROLE_SIGNING_REASONS, } from '@documenso/lib/constants/recipient-roles'; import { getEntireDocument } from '@documenso/lib/server-only/admin/get-entire-document'; import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt'; import { getDocumentCertificateAuditLogs } from '@documenso/lib/server-only/document/get-document-certificate-audit-logs'; import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs'; import { extractDocumentAuthMethods } from '@documenso/lib/utils/document-auth'; +import { dynamicActivate } from '@documenso/lib/utils/i18n'; import { FieldType } from '@documenso/prisma/client'; import { Card, CardContent } from '@documenso/ui/primitives/card'; import { @@ -36,11 +40,21 @@ type SigningCertificateProps = { }; const FRIENDLY_SIGNING_REASONS = { - ['__OWNER__']: `I am the owner of this document`, - ...RECIPIENT_ROLE_SIGNING_REASONS_ENG, + ['__OWNER__']: msg`I am the owner of this document`, + ...RECIPIENT_ROLE_SIGNING_REASONS, }; +/** + * DO NOT USE TRANS. YOU MUST USE _ FOR THIS FILE AND ALL CHILDREN COMPONENTS. + * + * Cannot use dynamicActivate by itself to translate this specific page and all + * children components because `not-found.tsx` page runs and overrides the i18n. + */ export default async function SigningCertificate({ searchParams }: SigningCertificateProps) { + const { i18n } = await setupI18nSSR(); + + const { _ } = useLingui(); + const { d } = searchParams; if (typeof d !== 'string' || !d) { @@ -63,6 +77,10 @@ export default async function SigningCertificate({ searchParams }: SigningCertif return redirect('/'); } + const documentLanguage = ZSupportedLanguageCodeSchema.parse(document.documentMeta?.language); + + await dynamicActivate(i18n, documentLanguage); + const auditLogs = await getDocumentCertificateAuditLogs({ id: documentId, }); @@ -98,17 +116,17 @@ export default async function SigningCertificate({ searchParams }: SigningCertif }); let authLevel = match(extractedAuthMethods.derivedRecipientActionAuth) - .with('ACCOUNT', () => 'Account Re-Authentication') - .with('TWO_FACTOR_AUTH', () => 'Two-Factor Re-Authentication') - .with('PASSKEY', () => 'Passkey Re-Authentication') - .with('EXPLICIT_NONE', () => 'Email') + .with('ACCOUNT', () => _(msg`Account Re-Authentication`)) + .with('TWO_FACTOR_AUTH', () => _(msg`Two-Factor Re-Authentication`)) + .with('PASSKEY', () => _(msg`Passkey Re-Authentication`)) + .with('EXPLICIT_NONE', () => _(msg`Email`)) .with(null, () => null) .exhaustive(); if (!authLevel) { authLevel = match(extractedAuthMethods.derivedRecipientAccessAuth) - .with('ACCOUNT', () => 'Account Authentication') - .with(null, () => 'Email') + .with('ACCOUNT', () => _(msg`Account Authentication`)) + .with(null, () => _(msg`Email`)) .exhaustive(); } @@ -147,7 +165,7 @@ export default async function SigningCertificate({ searchParams }: SigningCertif return (
    -

    Signing Certificate

    +

    {_(msg`Signing Certificate`)}

    @@ -155,9 +173,9 @@ export default async function SigningCertificate({ searchParams }: SigningCertif
- Signer Events - Signature - Details + {_(msg`Signer Events`)} + {_(msg`Signature`)} + {_(msg`Details`)} {/* Security */} @@ -173,11 +191,11 @@ export default async function SigningCertificate({ searchParams }: SigningCertif
{recipient.name}
{recipient.email}

- {RECIPIENT_ROLES_DESCRIPTION_ENG[recipient.role].roleName} + {_(RECIPIENT_ROLES_DESCRIPTION[recipient.role].roleName)}

- Authentication Level:{' '} + {_(msg`Authentication Level`)}:{' '} {getAuthenticationLevel(recipient.id)}

@@ -199,21 +217,21 @@ export default async function SigningCertificate({ searchParams }: SigningCertif

- Signature ID:{' '} + {_(msg`Signature ID`)}:{' '} {signature.secondaryId}

- IP Address:{' '} + {_(msg`IP Address`)}:{' '} - {logs.DOCUMENT_RECIPIENT_COMPLETED[0]?.ipAddress ?? 'Unknown'} + {logs.DOCUMENT_RECIPIENT_COMPLETED[0]?.ipAddress ?? _(msg`Unknown`)}

- Device:{' '} + {_(msg`Device`)}:{' '} {getDevice(logs.DOCUMENT_RECIPIENT_COMPLETED[0]?.userAgent)} @@ -227,44 +245,46 @@ export default async function SigningCertificate({ searchParams }: SigningCertif

- Sent:{' '} + {_(msg`Sent`)}:{' '} {logs.EMAIL_SENT[0] ? DateTime.fromJSDate(logs.EMAIL_SENT[0].createdAt) .setLocale(APP_I18N_OPTIONS.defaultLocale) .toFormat('yyyy-MM-dd hh:mm:ss a (ZZZZ)') - : 'Unknown'} + : _(msg`Unknown`)}

- Viewed:{' '} + {_(msg`Viewed`)}:{' '} {logs.DOCUMENT_OPENED[0] ? DateTime.fromJSDate(logs.DOCUMENT_OPENED[0].createdAt) .setLocale(APP_I18N_OPTIONS.defaultLocale) .toFormat('yyyy-MM-dd hh:mm:ss a (ZZZZ)') - : 'Unknown'} + : _(msg`Unknown`)}

- Signed:{' '} + {_(msg`Signed`)}:{' '} {logs.DOCUMENT_RECIPIENT_COMPLETED[0] ? DateTime.fromJSDate(logs.DOCUMENT_RECIPIENT_COMPLETED[0].createdAt) .setLocale(APP_I18N_OPTIONS.defaultLocale) .toFormat('yyyy-MM-dd hh:mm:ss a (ZZZZ)') - : 'Unknown'} + : _(msg`Unknown`)}

- Reason:{' '} + {_(msg`Reason`)}:{' '} - {isOwner(recipient.email) - ? FRIENDLY_SIGNING_REASONS['__OWNER__'] - : FRIENDLY_SIGNING_REASONS[recipient.role]} + {_( + isOwner(recipient.email) + ? FRIENDLY_SIGNING_REASONS['__OWNER__'] + : FRIENDLY_SIGNING_REASONS[recipient.role], + )}

@@ -280,7 +300,7 @@ export default async function SigningCertificate({ searchParams }: SigningCertif

- Signing certificate provided by: + {_(msg`Signing certificate provided by`)}:

diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/edit/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/edit/page.tsx new file mode 100644 index 000000000..2ae081ba4 --- /dev/null +++ b/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/edit/page.tsx @@ -0,0 +1,24 @@ +import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; +import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; +import { getTeamByUrl } from '@documenso/lib/server-only/team/get-team'; + +import type { TemplateEditPageViewProps } from '~/app/(dashboard)/templates/[id]/edit/template-edit-page-view'; +import { TemplateEditPageView } from '~/app/(dashboard)/templates/[id]/edit/template-edit-page-view'; + +export type TeamsTemplateEditPageProps = { + params: TemplateEditPageViewProps['params'] & { + teamUrl: string; + }; +}; + +export default async function TeamsTemplateEditPage({ params }: TeamsTemplateEditPageProps) { + await setupI18nSSR(); + + const { teamUrl } = params; + + const { user } = await getRequiredServerComponentSession(); + + const team = await getTeamByUrl({ userId: user.id, teamUrl }); + + return ; +} diff --git a/apps/web/src/components/document/document-history-sheet.tsx b/apps/web/src/components/document/document-history-sheet.tsx index 8ca8fa2ff..92f4a4cf1 100644 --- a/apps/web/src/components/document/document-history-sheet.tsx +++ b/apps/web/src/components/document/document-history-sheet.tsx @@ -12,7 +12,7 @@ import { UAParser } from 'ua-parser-js'; import { DOCUMENT_AUDIT_LOG_EMAIL_FORMAT } from '@documenso/lib/constants/document-audit-logs'; import { DOCUMENT_AUTH_TYPES } from '@documenso/lib/constants/document-auth'; import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs'; -import { formatDocumentAuditLogActionString } from '@documenso/lib/utils/document-audit-logs'; +import { formatDocumentAuditLogAction } from '@documenso/lib/utils/document-audit-logs'; import { trpc } from '@documenso/trpc/react'; import { cn } from '@documenso/ui/lib/utils'; import { Avatar, AvatarFallback } from '@documenso/ui/primitives/avatar'; @@ -37,7 +37,7 @@ export const DocumentHistorySheet = ({ onMenuOpenChange, children, }: DocumentHistorySheetProps) => { - const { i18n } = useLingui(); + const { _, i18n } = useLingui(); const [isUserDetailsVisible, setIsUserDetailsVisible] = useState(false); @@ -152,7 +152,7 @@ export const DocumentHistorySheet = ({

- {formatDocumentAuditLogActionString(auditLog, userId)} + {formatDocumentAuditLogAction(_, auditLog, userId).description}

{DateTime.fromJSDate(auditLog.createdAt) diff --git a/apps/web/src/components/document/document-read-only-fields.tsx b/apps/web/src/components/document/document-read-only-fields.tsx index 9c534ca35..0b9550a8c 100644 --- a/apps/web/src/components/document/document-read-only-fields.tsx +++ b/apps/web/src/components/document/document-read-only-fields.tsx @@ -2,8 +2,9 @@ import { useState } from 'react'; +import { Trans } from '@lingui/macro'; import { useLingui } from '@lingui/react'; -import { EyeOffIcon } from 'lucide-react'; +import { Clock, EyeOffIcon } from 'lucide-react'; import { P, match } from 'ts-pattern'; import { @@ -18,8 +19,10 @@ import { extractInitials } from '@documenso/lib/utils/recipient-formatter'; import type { DocumentMeta } from '@documenso/prisma/client'; import { FieldType, SigningStatus } from '@documenso/prisma/client'; import { FieldRootContainer } from '@documenso/ui/components/field/field'; +import { SignatureIcon } from '@documenso/ui/icons/signature'; import { cn } from '@documenso/ui/lib/utils'; import { Avatar, AvatarFallback } from '@documenso/ui/primitives/avatar'; +import { Badge } from '@documenso/ui/primitives/badge'; import { FRIENDLY_FIELD_TYPE } from '@documenso/ui/primitives/document-flow/types'; import { ElementVisible } from '@documenso/ui/primitives/element-visible'; import { PopoverHover } from '@documenso/ui/primitives/popover'; @@ -27,9 +30,14 @@ import { PopoverHover } from '@documenso/ui/primitives/popover'; export type DocumentReadOnlyFieldsProps = { fields: DocumentField[]; documentMeta?: DocumentMeta; + showFieldStatus?: boolean; }; -export const DocumentReadOnlyFields = ({ documentMeta, fields }: DocumentReadOnlyFieldsProps) => { +export const DocumentReadOnlyFields = ({ + documentMeta, + fields, + showFieldStatus = true, +}: DocumentReadOnlyFieldsProps) => { const { _ } = useLingui(); const [hiddenFieldIds, setHiddenFieldIds] = useState>({}); @@ -58,15 +66,37 @@ export const DocumentReadOnlyFields = ({ documentMeta, fields }: DocumentReadOnl } contentProps={{ - className: 'relative flex w-fit flex-col p-2.5 text-sm', + className: 'relative flex w-fit flex-col p-4 text-sm', }} > -

- {field.Recipient.signingStatus === SigningStatus.SIGNED ? 'Signed' : 'Pending'}{' '} - {parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[field.type]).toLowerCase()} field + {showFieldStatus && ( + + {field.Recipient.signingStatus === SigningStatus.SIGNED ? ( + <> + + Signed + + ) : ( + <> + + Pending + + )} + + )} + +

+ {parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[field.type])} field

-

+

{field.Recipient.name ? `${field.Recipient.name} (${field.Recipient.email})` : field.Recipient.email}{' '} diff --git a/apps/web/src/components/document/document-recipient-link-copy-dialog.tsx b/apps/web/src/components/document/document-recipient-link-copy-dialog.tsx new file mode 100644 index 000000000..bec368f4c --- /dev/null +++ b/apps/web/src/components/document/document-recipient-link-copy-dialog.tsx @@ -0,0 +1,151 @@ +'use client'; + +import { useEffect, useState } from 'react'; + +import { useSearchParams } from 'next/navigation'; + +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; + +import { useCopyToClipboard } from '@documenso/lib/client-only/hooks/use-copy-to-clipboard'; +import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params'; +import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; +import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-roles'; +import { formatSigningLink } from '@documenso/lib/utils/recipients'; +import type { Recipient } from '@documenso/prisma/client'; +import { RecipientRole } from '@documenso/prisma/client'; +import { CopyTextButton } from '@documenso/ui/components/common/copy-text-button'; +import { AvatarWithText } from '@documenso/ui/primitives/avatar'; +import { Button } from '@documenso/ui/primitives/button'; +import { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@documenso/ui/primitives/dialog'; +import { useToast } from '@documenso/ui/primitives/use-toast'; + +export type DocumentRecipientLinkCopyDialogProps = { + trigger?: React.ReactNode; + recipients: Recipient[]; +}; + +export const DocumentRecipientLinkCopyDialog = ({ + trigger, + recipients, +}: DocumentRecipientLinkCopyDialogProps) => { + const { _ } = useLingui(); + const { toast } = useToast(); + + const [, copy] = useCopyToClipboard(); + + const searchParams = useSearchParams(); + const updateSearchParams = useUpdateSearchParams(); + + const [open, setOpen] = useState(false); + + const actionSearchParam = searchParams?.get('action'); + + const onBulkCopy = async () => { + const generatedString = recipients + .filter((recipient) => recipient.role !== RecipientRole.CC) + .map((recipient) => `${recipient.email}\n${NEXT_PUBLIC_WEBAPP_URL()}/sign/${recipient.token}`) + .join('\n\n'); + + await copy(generatedString).then(() => { + toast({ + title: _(msg`Copied to clipboard`), + description: _(msg`All signing links have been copied to your clipboard.`), + }); + }); + }; + + useEffect(() => { + if (actionSearchParam === 'view-signing-links') { + setOpen(true); + updateSearchParams({ action: null }); + } + }, [actionSearchParam, open, setOpen, updateSearchParams]); + + return ( +

setOpen(value)}> + e.stopPropagation()}> + {trigger} + + + + + + Copy Signing Links + + + + + You can copy and share these links to recipients so they can action the document. + + + + +
    + {recipients.length === 0 && ( +
  • + No recipients +
  • + )} + + {recipients.map((recipient) => ( +
  • + {recipient.email}

    } + secondaryText={ +

    + {_(RECIPIENT_ROLES_DESCRIPTION[recipient.role].roleName)} +

    + } + /> + + {recipient.role !== RecipientRole.CC && ( + { + toast({ + title: _(msg`Copied to clipboard`), + description: _(msg`The signing link has been copied to your clipboard.`), + }); + }} + badgeContentUncopied={ +

    + Copy +

    + } + badgeContentCopied={ +

    + Copied +

    + } + /> + )} +
  • + ))} +
+ + + + + + + + +
+
+ ); +}; diff --git a/apps/web/src/components/forms/search-param-selector.tsx b/apps/web/src/components/forms/search-param-selector.tsx new file mode 100644 index 000000000..cdd4ef2b2 --- /dev/null +++ b/apps/web/src/components/forms/search-param-selector.tsx @@ -0,0 +1,50 @@ +import React, { useMemo } from 'react'; + +import { usePathname, useRouter, useSearchParams } from 'next/navigation'; + +import { Select, SelectContent, SelectTrigger, SelectValue } from '@documenso/ui/primitives/select'; + +export type SearchParamSelector = { + paramKey: string; + isValueValid: (value: unknown) => boolean; + children: React.ReactNode; +}; + +export const SearchParamSelector = ({ children, paramKey, isValueValid }: SearchParamSelector) => { + const pathname = usePathname(); + const searchParams = useSearchParams(); + + const router = useRouter(); + + const value = useMemo(() => { + const p = searchParams?.get(paramKey) ?? 'all'; + + return isValueValid(p) ? p : 'all'; + }, [searchParams]); + + const onValueChange = (newValue: string) => { + if (!pathname) { + return; + } + + const params = new URLSearchParams(searchParams?.toString()); + + params.set(paramKey, newValue); + + if (newValue === '' || newValue === 'all') { + params.delete(paramKey); + } + + router.push(`${pathname}?${params.toString()}`, { scroll: false }); + }; + + return ( + + ); +}; diff --git a/docker/production/compose.yml b/docker/production/compose.yml index bd2b9597e..505228b24 100644 --- a/docker/production/compose.yml +++ b/docker/production/compose.yml @@ -50,6 +50,7 @@ services: - NEXT_PRIVATE_SMTP_SECURE=${NEXT_PRIVATE_SMTP_SECURE} - NEXT_PRIVATE_SMTP_FROM_NAME=${NEXT_PRIVATE_SMTP_FROM_NAME:?err} - NEXT_PRIVATE_SMTP_FROM_ADDRESS=${NEXT_PRIVATE_SMTP_FROM_ADDRESS:?err} + - NEXT_PRIVATE_SMTP_SERVICE=${NEXT_PRIVATE_SMTP_SERVICE} - NEXT_PRIVATE_RESEND_API_KEY=${NEXT_PRIVATE_RESEND_API_KEY} - NEXT_PRIVATE_MAILCHANNELS_API_KEY=${NEXT_PRIVATE_MAILCHANNELS_API_KEY} - NEXT_PRIVATE_MAILCHANNELS_ENDPOINT=${NEXT_PRIVATE_MAILCHANNELS_ENDPOINT} @@ -60,6 +61,7 @@ services: - NEXT_PUBLIC_POSTHOG_KEY=${NEXT_PUBLIC_POSTHOG_KEY} - NEXT_PUBLIC_DISABLE_SIGNUP=${NEXT_PUBLIC_DISABLE_SIGNUP} - NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=${NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH:-/opt/documenso/cert.p12} + - NEXT_PRIVATE_SIGNING_PASSPHRASE=${NEXT_PRIVATE_SIGNING_PASSPHRASE} ports: - ${PORT:-3000}:${PORT:-3000} volumes: diff --git a/package-lock.json b/package-lock.json index 956db402e..77172fba3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@documenso/root", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@documenso/root", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "workspaces": [ "apps/*", "packages/*" @@ -80,7 +80,7 @@ }, "apps/marketing": { "name": "@documenso/marketing", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "license": "AGPL-3.0", "dependencies": { "@documenso/assets": "*", @@ -441,7 +441,7 @@ }, "apps/web": { "name": "@documenso/web", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "license": "AGPL-3.0", "dependencies": { "@documenso/api": "*", diff --git a/package.json b/package.json index 1aedb4fba..bc6df055a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "scripts": { "build": "turbo run build", "build:web": "turbo run build --filter=@documenso/web", diff --git a/packages/app-tests/e2e/templates-flow/template-settings-step.spec.ts b/packages/app-tests/e2e/templates-flow/template-settings-step.spec.ts index 4061b0046..e367ecef6 100644 --- a/packages/app-tests/e2e/templates-flow/template-settings-step.spec.ts +++ b/packages/app-tests/e2e/templates-flow/template-settings-step.spec.ts @@ -32,7 +32,7 @@ test.describe('[EE_ONLY]', () => { await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Set EE action auth. @@ -74,7 +74,7 @@ test.describe('[EE_ONLY]', () => { await apiSignin({ page, email: teamMemberUser.email, - redirectPath: `/t/${team.url}/templates/${template.id}`, + redirectPath: `/t/${team.url}/templates/${template.id}/edit`, }); // Set EE action auth. @@ -110,7 +110,7 @@ test.describe('[EE_ONLY]', () => { await apiSignin({ page, email: teamMemberUser.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Global action auth should not be visible. @@ -132,7 +132,7 @@ test('[TEMPLATE_FLOW]: add settings', async ({ page }) => { await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Set title. diff --git a/packages/app-tests/e2e/templates-flow/template-signers-step.spec.ts b/packages/app-tests/e2e/templates-flow/template-signers-step.spec.ts index 16bb077e4..3ce52c55c 100644 --- a/packages/app-tests/e2e/templates-flow/template-signers-step.spec.ts +++ b/packages/app-tests/e2e/templates-flow/template-signers-step.spec.ts @@ -31,7 +31,7 @@ test.describe('[EE_ONLY]', () => { await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Save the settings by going to the next step. @@ -81,7 +81,7 @@ test('[TEMPLATE_FLOW]: add placeholder', async ({ page }) => { await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Save the settings by going to the next step. diff --git a/packages/app-tests/e2e/templates/create-document-from-template.spec.ts b/packages/app-tests/e2e/templates/create-document-from-template.spec.ts index 72baa0002..57100eaa6 100644 --- a/packages/app-tests/e2e/templates/create-document-from-template.spec.ts +++ b/packages/app-tests/e2e/templates/create-document-from-template.spec.ts @@ -37,7 +37,7 @@ test('[TEMPLATE]: should create a document from a template', async ({ page }) => await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Set template title. @@ -172,7 +172,7 @@ test('[TEMPLATE]: should create a team document from a team template', async ({ await apiSignin({ page, email: owner.email, - redirectPath: `/t/${team.url}/templates/${template.id}`, + redirectPath: `/t/${team.url}/templates/${template.id}/edit`, }); // Set template title. diff --git a/packages/email/mailer.ts b/packages/email/mailer.ts index 21aecfa19..3b5afa524 100644 --- a/packages/email/mailer.ts +++ b/packages/email/mailer.ts @@ -1,10 +1,56 @@ +import type { Transporter } from 'nodemailer'; import { createTransport } from 'nodemailer'; import { ResendTransport } from '@documenso/nodemailer-resend'; import { MailChannelsTransport } from './transports/mailchannels'; -const getTransport = () => { +/** + * Creates a Nodemailer transport object for sending emails. + * + * This function uses various environment variables to configure the appropriate + * email transport mechanism. It supports multiple types of email transports, + * including MailChannels, Resend, and different SMTP configurations. + * + * @returns {Transporter} A configured Nodemailer transporter instance. + * + * Supported Transports: + * - **mailchannels**: Uses MailChannelsTransport, requiring: + * - `NEXT_PRIVATE_MAILCHANNELS_API_KEY`: API key for MailChannels + * - `NEXT_PRIVATE_MAILCHANNELS_ENDPOINT`: Endpoint for MailChannels (optional) + * - **resend**: Uses ResendTransport, requiring: + * - `NEXT_PRIVATE_RESEND_API_KEY`: API key for Resend + * - **smtp-api**: Uses a custom SMTP API configuration, requiring: + * - `NEXT_PRIVATE_SMTP_HOST`: The SMTP server host + * - `NEXT_PRIVATE_SMTP_APIKEY`: The API key for SMTP authentication + * - `NEXT_PRIVATE_SMTP_APIKEY_USER`: The username for SMTP authentication (default: 'apikey') + * - **smtp-auth** (default): Uses a standard SMTP configuration, requiring: + * - `NEXT_PRIVATE_SMTP_HOST`: The SMTP server host (default: 'localhost:2500') + * - `NEXT_PRIVATE_SMTP_PORT`: The port to connect to (default: 587) + * - `NEXT_PRIVATE_SMTP_SECURE`: Whether to use SSL/TLS (default: false) + * - `NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS`: Whether to ignore TLS (default: false) + * - `NEXT_PRIVATE_SMTP_USERNAME`: The username for SMTP authentication + * - `NEXT_PRIVATE_SMTP_PASSWORD`: The password for SMTP authentication + * - `NEXT_PRIVATE_SMTP_SERVICE`: The SMTP service provider (e.g., "gmail"). This option is used + * when integrating with well-known services (like Gmail), enabling simplified configuration. + * + * Example Usage: + * ```env + * NEXT_PRIVATE_SMTP_TRANSPORT='smtp-auth'; + * NEXT_PRIVATE_SMTP_HOST='smtp.example.com'; + * NEXT_PRIVATE_SMTP_PORT=587; + * NEXT_PRIVATE_SMTP_SERVICE='gmail'; + * NEXT_PRIVATE_SMTP_SECURE='true'; + * NEXT_PRIVATE_SMTP_USERNAME='your-email@gmail.com'; + * NEXT_PRIVATE_SMTP_PASSWORD='your-password'; + * ``` + * + * Notes: + * - Ensure that the required environment variables for each transport type are set. + * - If `NEXT_PRIVATE_SMTP_TRANSPORT` is not specified, the default is `smtp-auth`. + * - `NEXT_PRIVATE_SMTP_SERVICE` is optional and used specifically for well-known services like Gmail. + */ +const getTransport = (): Transporter => { const transport = process.env.NEXT_PRIVATE_SMTP_TRANSPORT ?? 'smtp-auth'; if (transport === 'mailchannels') { @@ -53,6 +99,9 @@ const getTransport = () => { pass: process.env.NEXT_PRIVATE_SMTP_PASSWORD ?? '', } : undefined, + ...(process.env.NEXT_PRIVATE_SMTP_SERVICE + ? { service: process.env.NEXT_PRIVATE_SMTP_SERVICE } + : {}), }); }; diff --git a/packages/lib/constants/document.ts b/packages/lib/constants/document.ts new file mode 100644 index 000000000..69bd62093 --- /dev/null +++ b/packages/lib/constants/document.ts @@ -0,0 +1,18 @@ +import type { MessageDescriptor } from '@lingui/core'; +import { msg } from '@lingui/macro'; + +import { DocumentStatus } from '@documenso/prisma/client'; + +export const DOCUMENT_STATUS: { + [status in DocumentStatus]: { description: MessageDescriptor }; +} = { + [DocumentStatus.COMPLETED]: { + description: msg`Completed`, + }, + [DocumentStatus.DRAFT]: { + description: msg`Draft`, + }, + [DocumentStatus.PENDING]: { + description: msg`Pending`, + }, +}; diff --git a/packages/lib/constants/recipient-roles.ts b/packages/lib/constants/recipient-roles.ts index 9a3eefe1c..51b890268 100644 --- a/packages/lib/constants/recipient-roles.ts +++ b/packages/lib/constants/recipient-roles.ts @@ -78,13 +78,3 @@ export const RECIPIENT_ROLE_SIGNING_REASONS = { [RecipientRole.CC]: msg`I am required to receive a copy of this document`, [RecipientRole.VIEWER]: msg`I am a viewer of this document`, } satisfies Record; - -/** - * Raw english descriptions for certificates. - */ -export const RECIPIENT_ROLE_SIGNING_REASONS_ENG = { - [RecipientRole.SIGNER]: `I am a signer of this document`, - [RecipientRole.APPROVER]: `I am an approver of this document`, - [RecipientRole.CC]: `I am required to receive a copy of this document`, - [RecipientRole.VIEWER]: `I am a viewer of this document`, -} satisfies Record; diff --git a/packages/lib/jobs/definitions/emails/send-signing-email.ts b/packages/lib/jobs/definitions/emails/send-signing-email.ts index 34d1a8422..552dbae72 100644 --- a/packages/lib/jobs/definitions/emails/send-signing-email.ts +++ b/packages/lib/jobs/definitions/emails/send-signing-email.ts @@ -115,9 +115,11 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = { if (isTeamDocument && team) { emailSubject = i18n._(msg`${team.name} invited you to ${recipientActionVerb} a document`); - emailMessage = i18n._( - msg`${user.name} on behalf of ${team.name} has invited you to ${recipientActionVerb} the document "${document.title}".`, - ); + emailMessage = + customEmail?.message || + i18n._( + msg`${user.name} on behalf of ${team.name} has invited you to ${recipientActionVerb} the document "${document.title}".`, + ); } const customEmailTemplate = { diff --git a/packages/lib/server-only/document/delete-document.ts b/packages/lib/server-only/document/delete-document.ts index b43ed2cd3..301d37bd2 100644 --- a/packages/lib/server-only/document/delete-document.ts +++ b/packages/lib/server-only/document/delete-document.ts @@ -2,12 +2,15 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; import DocumentCancelTemplate from '@documenso/email/templates/document-cancel'; import { prisma } from '@documenso/prisma'; import type { Document, DocumentMeta, Recipient, User } from '@documenso/prisma/client'; import { DocumentStatus, SendStatus } from '@documenso/prisma/client'; +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 { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; @@ -192,10 +195,12 @@ const handleDocumentOwnerDelete = async ({ }); const [html, text] = await Promise.all([ - renderEmailWithI18N(template), - renderEmailWithI18N(template, { plainText: true }), + renderEmailWithI18N(template, { lang: document.documentMeta?.language }), + renderEmailWithI18N(template, { lang: document.documentMeta?.language, plainText: true }), ]); + const i18n = await getI18nInstance(document.documentMeta?.language); + await mailer.sendMail({ to: { address: recipient.email, @@ -205,7 +210,7 @@ const handleDocumentOwnerDelete = async ({ name: FROM_NAME, address: FROM_ADDRESS, }, - subject: 'Document Cancelled', + subject: i18n._(msg`Document Cancelled`), html, text, }); diff --git a/packages/lib/server-only/document/find-documents.ts b/packages/lib/server-only/document/find-documents.ts index 2495973f2..a14996bb9 100644 --- a/packages/lib/server-only/document/find-documents.ts +++ b/packages/lib/server-only/document/find-documents.ts @@ -3,7 +3,14 @@ import { P, match } from 'ts-pattern'; import { prisma } from '@documenso/prisma'; import { RecipientRole, SigningStatus, TeamMemberRole } from '@documenso/prisma/client'; -import type { Document, Prisma, Team, TeamEmail, User } from '@documenso/prisma/client'; +import type { + Document, + DocumentSource, + Prisma, + Team, + TeamEmail, + User, +} from '@documenso/prisma/client'; import { ExtendedDocumentStatus } from '@documenso/prisma/types/extended-document-status'; import { DocumentVisibility } from '../../types/document-visibility'; @@ -16,6 +23,8 @@ export type FindDocumentsOptions = { userId: number; teamId?: number; term?: string; + templateId?: number; + source?: DocumentSource; status?: ExtendedDocumentStatus; page?: number; perPage?: number; @@ -32,6 +41,8 @@ export const findDocuments = async ({ userId, teamId, term, + templateId, + source, status = ExtendedDocumentStatus.ALL, page = 1, perPage = 10, @@ -40,44 +51,37 @@ export const findDocuments = async ({ senderIds, search, }: FindDocumentsOptions) => { - const { user, team } = await prisma.$transaction(async (tx) => { - const user = await tx.user.findFirstOrThrow({ + const user = await prisma.user.findFirstOrThrow({ + where: { + id: userId, + }, + }); + + let team = null; + + if (teamId !== undefined) { + team = await prisma.team.findFirstOrThrow({ where: { - id: userId, + id: teamId, + members: { + some: { + userId, + }, + }, + }, + include: { + teamEmail: true, + members: { + where: { + userId, + }, + select: { + role: true, + }, + }, }, }); - - let team = null; - - if (teamId !== undefined) { - team = await tx.team.findFirstOrThrow({ - where: { - id: teamId, - members: { - some: { - userId, - }, - }, - }, - include: { - teamEmail: true, - members: { - where: { - userId, - }, - select: { - role: true, - }, - }, - }, - }); - } - - return { - user, - team, - }; - }); + } const orderByColumn = orderBy?.column ?? 'createdAt'; const orderByDirection = orderBy?.direction ?? 'desc'; @@ -197,8 +201,27 @@ export const findDocuments = async ({ }; } + const whereAndClause: Prisma.DocumentWhereInput['AND'] = [ + { ...termFilters }, + { ...filters }, + { ...deletedFilter }, + { ...searchFilter }, + ]; + + if (templateId) { + whereAndClause.push({ + templateId, + }); + } + + if (source) { + whereAndClause.push({ + source, + }); + } + const whereClause: Prisma.DocumentWhereInput = { - AND: [{ ...termFilters }, { ...filters }, { ...deletedFilter }, { ...searchFilter }], + AND: whereAndClause, }; if (period) { diff --git a/packages/lib/server-only/document/resend-document.tsx b/packages/lib/server-only/document/resend-document.tsx index e25b4b766..ffe202d8e 100644 --- a/packages/lib/server-only/document/resend-document.tsx +++ b/packages/lib/server-only/document/resend-document.tsx @@ -106,17 +106,25 @@ export const resendDocument = async ({ ._(RECIPIENT_ROLES_DESCRIPTION[recipient.role].actionVerb) .toLowerCase(); - let emailMessage = msg`${customEmail?.message || ''}`; - let emailSubject = msg`Reminder: Please ${recipientActionVerb} this document`; + let emailMessage = customEmail?.message || ''; + let emailSubject = i18n._(msg`Reminder: Please ${recipientActionVerb} this document`); if (selfSigner) { - emailMessage = msg`You have initiated the document ${`"${document.title}"`} that requires you to ${recipientActionVerb} it.`; - emailSubject = msg`Reminder: Please ${recipientActionVerb} your document`; + emailMessage = i18n._( + msg`You have initiated the document ${`"${document.title}"`} that requires you to ${recipientActionVerb} it.`, + ); + emailSubject = i18n._(msg`Reminder: Please ${recipientActionVerb} your document`); } if (isTeamDocument && document.team) { - emailSubject = msg`Reminder: ${document.team.name} invited you to ${recipientActionVerb} a document`; - emailMessage = msg`${user.name} on behalf of ${document.team.name} has invited you to ${recipientActionVerb} the document "${document.title}".`; + emailSubject = i18n._( + msg`Reminder: ${document.team.name} invited you to ${recipientActionVerb} a document`, + ); + emailMessage = + customEmail?.message || + i18n._( + msg`${user.name} on behalf of ${document.team.name} has invited you to ${recipientActionVerb} the document "${document.title}".`, + ); } const customEmailTemplate = { @@ -134,7 +142,7 @@ export const resendDocument = async ({ inviterEmail: isTeamDocument ? document.team?.teamEmail?.email || user.email : user.email, assetBaseUrl, signDocumentLink, - customBody: renderCustomEmailTemplate(i18n._(emailMessage), customEmailTemplate), + customBody: renderCustomEmailTemplate(emailMessage, customEmailTemplate), role: recipient.role, selfSigner, isTeamInvite: isTeamDocument, @@ -165,7 +173,7 @@ export const resendDocument = async ({ i18n._(msg`Reminder: ${customEmail.subject}`), customEmailTemplate, ) - : i18n._(emailSubject), + : emailSubject, html, text, }); diff --git a/packages/lib/server-only/template/get-template-by-id.ts b/packages/lib/server-only/template/get-template-by-id.ts index fbc8c48f8..fc365433e 100644 --- a/packages/lib/server-only/template/get-template-by-id.ts +++ b/packages/lib/server-only/template/get-template-by-id.ts @@ -42,6 +42,13 @@ export const getTemplateById = async ({ id, userId, teamId }: GetTemplateByIdOpt templateMeta: true, Recipient: true, Field: true, + User: { + select: { + id: true, + name: true, + email: true, + }, + }, }, }); diff --git a/packages/lib/translations/de/common.po b/packages/lib/translations/de/common.po index 43b62d6ea..71f72020b 100644 --- a/packages/lib/translations/de/common.po +++ b/packages/lib/translations/de/common.po @@ -8,7 +8,7 @@ msgstr "" "Language: de\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -96,6 +96,90 @@ msgstr "{memberEmail} ist dem folgenden Team beigetreten" msgid "{memberEmail} left the following team" msgstr "{memberEmail} hat das folgende Team verlassen" +#: packages/lib/utils/document-audit-logs.ts:263 +msgid "{prefix} added a field" +msgstr "{prefix} hat ein Feld hinzugefügt" + +#: packages/lib/utils/document-audit-logs.ts:275 +msgid "{prefix} added a recipient" +msgstr "{prefix} hat einen Empfänger hinzugefügt" + +#: packages/lib/utils/document-audit-logs.ts:287 +msgid "{prefix} created the document" +msgstr "{prefix} hat das Dokument erstellt" + +#: packages/lib/utils/document-audit-logs.ts:291 +msgid "{prefix} deleted the document" +msgstr "{prefix} hat das Dokument gelöscht" + +#: packages/lib/utils/document-audit-logs.ts:335 +msgid "{prefix} moved the document to team" +msgstr "{prefix} hat das Dokument ins Team verschoben" + +#: packages/lib/utils/document-audit-logs.ts:319 +msgid "{prefix} opened the document" +msgstr "{prefix} hat das Dokument geöffnet" + +#: packages/lib/utils/document-audit-logs.ts:267 +msgid "{prefix} removed a field" +msgstr "{prefix} hat ein Feld entfernt" + +#: packages/lib/utils/document-audit-logs.ts:279 +msgid "{prefix} removed a recipient" +msgstr "{prefix} hat einen Empfänger entfernt" + +#: packages/lib/utils/document-audit-logs.ts:355 +msgid "{prefix} resent an email to {0}" +msgstr "{prefix} hat eine E-Mail an {0} erneut gesendet" + +#: packages/lib/utils/document-audit-logs.ts:356 +msgid "{prefix} sent an email to {0}" +msgstr "{prefix} hat eine E-Mail an {0} gesendet" + +#: packages/lib/utils/document-audit-logs.ts:331 +msgid "{prefix} sent the document" +msgstr "{prefix} hat das Dokument gesendet" + +#: packages/lib/utils/document-audit-logs.ts:295 +msgid "{prefix} signed a field" +msgstr "{prefix} hat ein Feld unterschrieben" + +#: packages/lib/utils/document-audit-logs.ts:299 +msgid "{prefix} unsigned a field" +msgstr "{prefix} hat ein Feld ungültig gemacht" + +#: packages/lib/utils/document-audit-logs.ts:271 +msgid "{prefix} updated a field" +msgstr "{prefix} hat ein Feld aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:283 +msgid "{prefix} updated a recipient" +msgstr "{prefix} hat einen Empfänger aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:315 +msgid "{prefix} updated the document" +msgstr "{prefix} hat das Dokument aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:307 +msgid "{prefix} updated the document access auth requirements" +msgstr "{prefix} hat die Anforderungen an die Dokumentenzugriffsautorisierung aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:327 +msgid "{prefix} updated the document external ID" +msgstr "{prefix} hat die externe ID des Dokuments aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:311 +msgid "{prefix} updated the document signing auth requirements" +msgstr "{prefix} hat die Authentifizierungsanforderungen für die Dokumentenunterzeichnung aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:323 +msgid "{prefix} updated the document title" +msgstr "{prefix} hat den Titel des Dokuments aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:303 +msgid "{prefix} updated the document visibility" +msgstr "{prefix} hat die Sichtbarkeit des Dokuments aktualisiert" + #: packages/email/templates/document-created-from-direct-template.tsx:55 msgid "{recipientName} {action} a document by using one of your direct links" msgstr "{recipientName} {action} ein Dokument, indem Sie einen Ihrer direkten Links verwenden" @@ -104,6 +188,26 @@ msgstr "{recipientName} {action} ein Dokument, indem Sie einen Ihrer direkten Li msgid "{teamName} ownership transfer request" msgstr "Anfrage zur Übertragung des Eigentums von {teamName}" +#: packages/lib/utils/document-audit-logs.ts:343 +msgid "{userName} approved the document" +msgstr "{userName} hat das Dokument genehmigt" + +#: packages/lib/utils/document-audit-logs.ts:344 +msgid "{userName} CC'd the document" +msgstr "{userName} hat das Dokument in CC gesetzt" + +#: packages/lib/utils/document-audit-logs.ts:345 +msgid "{userName} completed their task" +msgstr "{userName} hat ihre Aufgabe abgeschlossen" + +#: packages/lib/utils/document-audit-logs.ts:341 +msgid "{userName} signed the document" +msgstr "{userName} hat das Dokument unterschrieben" + +#: packages/lib/utils/document-audit-logs.ts:342 +msgid "{userName} viewed the document" +msgstr "{userName} hat das Dokument angesehen" + #: packages/ui/primitives/data-table-pagination.tsx:41 msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" msgstr "{visibleRows, plural, one {Eine # Ergebnis wird angezeigt.} other {# Ergebnisse werden angezeigt.}}" @@ -150,10 +254,34 @@ msgstr "<0>Passkey erforderlich - Der Empfänger muss ein Konto haben und de msgid "A document was created by your direct template that requires you to {recipientActionVerb} it." msgstr "Ein Dokument wurde von deiner direkten Vorlage erstellt, das erfordert, dass du {recipientActionVerb}." +#: packages/lib/utils/document-audit-logs.ts:262 +msgid "A field was added" +msgstr "Ein Feld wurde hinzugefügt" + +#: packages/lib/utils/document-audit-logs.ts:266 +msgid "A field was removed" +msgstr "Ein Feld wurde entfernt" + +#: packages/lib/utils/document-audit-logs.ts:270 +msgid "A field was updated" +msgstr "Ein Feld wurde aktualisiert" + #: packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts:90 msgid "A new member has joined your team" msgstr "Ein neues Mitglied ist deinem Team beigetreten" +#: packages/lib/utils/document-audit-logs.ts:274 +msgid "A recipient was added" +msgstr "Ein Empfänger wurde hinzugefügt" + +#: packages/lib/utils/document-audit-logs.ts:278 +msgid "A recipient was removed" +msgstr "Ein Empfänger wurde entfernt" + +#: packages/lib/utils/document-audit-logs.ts:282 +msgid "A recipient was updated" +msgstr "Ein Empfänger wurde aktualisiert" + #: packages/lib/server-only/team/create-team-email-verification.ts:142 msgid "A request to use your email has been initiated by {teamName} on Documenso" msgstr "Eine Anfrage zur Verwendung deiner E-Mail wurde von {teamName} auf Documenso initiiert" @@ -368,6 +496,7 @@ msgstr "Schließen" #: packages/email/template-components/template-document-completed.tsx:35 #: packages/email/template-components/template-document-self-signed.tsx:36 +#: packages/lib/constants/document.ts:10 msgid "Completed" msgstr "Abgeschlossen" @@ -450,10 +579,24 @@ msgstr "Empfänger des direkten Links" msgid "Document access" msgstr "Dokumentenzugriff" +#: packages/lib/utils/document-audit-logs.ts:306 +msgid "Document access auth updated" +msgstr "Die Authentifizierung für den Dokumentenzugriff wurde aktualisiert" + +#: packages/lib/server-only/document/delete-document.ts:213 #: packages/lib/server-only/document/super-delete-document.ts:75 msgid "Document Cancelled" msgstr "Dokument storniert" +#: packages/lib/utils/document-audit-logs.ts:359 +#: packages/lib/utils/document-audit-logs.ts:360 +msgid "Document completed" +msgstr "Dokument abgeschlossen" + +#: packages/lib/utils/document-audit-logs.ts:286 +msgid "Document created" +msgstr "Dokument erstellt" + #: packages/email/templates/document-created-from-direct-template.tsx:30 #: packages/lib/server-only/template/create-document-from-direct-template.ts:554 msgid "Document created from direct template" @@ -463,15 +606,55 @@ msgstr "Dokument erstellt aus direkter Vorlage" msgid "Document Creation" msgstr "Dokumenterstellung" +#: packages/lib/utils/document-audit-logs.ts:290 +msgid "Document deleted" +msgstr "Dokument gelöscht" + #: packages/lib/server-only/document/send-delete-email.ts:58 msgid "Document Deleted!" msgstr "Dokument gelöscht!" +#: packages/lib/utils/document-audit-logs.ts:326 +msgid "Document external ID updated" +msgstr "Externe ID des Dokuments aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:334 +msgid "Document moved to team" +msgstr "Dokument ins Team verschoben" + +#: packages/lib/utils/document-audit-logs.ts:318 +msgid "Document opened" +msgstr "Dokument geöffnet" + +#: packages/lib/utils/document-audit-logs.ts:330 +msgid "Document sent" +msgstr "Dokument gesendet" + +#: packages/lib/utils/document-audit-logs.ts:310 +msgid "Document signing auth updated" +msgstr "Dokument unterzeichnen Authentifizierung aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:322 +msgid "Document title updated" +msgstr "Dokumenttitel aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:314 +msgid "Document updated" +msgstr "Dokument aktualisiert" + +#: packages/lib/utils/document-audit-logs.ts:302 +msgid "Document visibility updated" +msgstr "Sichtbarkeit des Dokuments aktualisiert" + #: packages/email/template-components/template-document-completed.tsx:64 #: packages/ui/components/document/document-download-button.tsx:68 msgid "Download" msgstr "Herunterladen" +#: packages/lib/constants/document.ts:13 +msgid "Draft" +msgstr "Entwurf" + #: packages/ui/primitives/document-dropzone.tsx:162 msgid "Drag & drop your PDF here." msgstr "Ziehen Sie Ihr PDF hierher." @@ -504,6 +687,14 @@ msgstr "E-Mail ist erforderlich" msgid "Email Options" msgstr "E-Mail-Optionen" +#: packages/lib/utils/document-audit-logs.ts:353 +msgid "Email resent" +msgstr "E-Mail erneut gesendet" + +#: packages/lib/utils/document-audit-logs.ts:353 +msgid "Email sent" +msgstr "E-Mail gesendet" + #: packages/ui/primitives/document-flow/add-fields.tsx:1123 msgid "Empty field" msgstr "Leeres Feld" @@ -564,6 +755,14 @@ msgstr "Feldbeschriftung" msgid "Field placeholder" msgstr "Feldplatzhalter" +#: packages/lib/utils/document-audit-logs.ts:294 +msgid "Field signed" +msgstr "Feld unterschrieben" + +#: packages/lib/utils/document-audit-logs.ts:298 +msgid "Field unsigned" +msgstr "Feld nicht unterschrieben" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56 #: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38 #: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38 @@ -774,6 +973,10 @@ msgstr "Passwort erfolgreich zurückgesetzt" msgid "Password updated!" msgstr "Passwort aktualisiert!" +#: packages/lib/constants/document.ts:16 +msgid "Pending" +msgstr "Ausstehend" + #: packages/email/templates/document-pending.tsx:17 msgid "Pending Document" msgstr "Ausstehendes Dokument" @@ -841,6 +1044,10 @@ msgstr "Nur lesen" msgid "Receives copy" msgstr "Erhält Kopie" +#: packages/lib/utils/document-audit-logs.ts:338 +msgid "Recipient" +msgstr "Empfänger" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:39 #: packages/ui/primitives/document-flow/add-settings.tsx:257 #: packages/ui/primitives/template-flow/add-template-settings.tsx:208 @@ -1248,6 +1455,10 @@ msgstr "Wir haben dein Passwort wie gewünscht geändert. Du kannst dich jetzt m msgid "Welcome to Documenso!" msgstr "Willkommen bei Documenso!" +#: packages/lib/utils/document-audit-logs.ts:258 +msgid "You" +msgstr "Du" + #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44 msgid "You are about to send this document to the recipients. Are you sure you want to continue?" msgstr "Sie sind dabei, dieses Dokument an die Empfänger zu senden. Sind Sie sicher, dass Sie fortfahren möchten?" @@ -1309,4 +1520,3 @@ msgstr "Dein Passwort wurde aktualisiert." #: packages/email/templates/team-delete.tsx:30 msgid "Your team has been deleted" msgstr "Dein Team wurde gelöscht" - diff --git a/packages/lib/translations/de/marketing.po b/packages/lib/translations/de/marketing.po index e903d0b4b..4bca2ad2b 100644 --- a/packages/lib/translations/de/marketing.po +++ b/packages/lib/translations/de/marketing.po @@ -8,7 +8,7 @@ msgstr "" "Language: de\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -42,7 +42,7 @@ msgstr "Dokument hinzufügen" msgid "Add More Users for {0}" msgstr "Mehr Benutzer hinzufügen für {0}" -#: apps/marketing/src/app/(marketing)/open/page.tsx:164 +#: apps/marketing/src/app/(marketing)/open/page.tsx:165 msgid "All our metrics, finances, and learnings are public. We believe in transparency and want to share our journey with you. You can read more about why here: <0>Announcing Open Metrics" msgstr "Alle unsere Kennzahlen, Finanzen und Erkenntnisse sind öffentlich. Wir glauben an Transparenz und möchten unsere Reise mit Ihnen teilen. Mehr erfahren Sie hier: <0>Ankündigung Offene Kennzahlen" @@ -90,7 +90,7 @@ msgstr "Änderungsprotokoll" msgid "Choose a template from the community app store. Or submit your own template for others to use." msgstr "Wählen Sie eine Vorlage aus dem Community-App-Store. Oder reichen Sie Ihre eigene Vorlage ein, damit andere sie benutzen können." -#: apps/marketing/src/app/(marketing)/open/page.tsx:218 +#: apps/marketing/src/app/(marketing)/open/page.tsx:219 msgid "Community" msgstr "Gemeinschaft" @@ -193,7 +193,7 @@ msgstr "Schnell." msgid "Faster, smarter and more beautiful." msgstr "Schneller, intelligenter und schöner." -#: apps/marketing/src/app/(marketing)/open/page.tsx:209 +#: apps/marketing/src/app/(marketing)/open/page.tsx:210 msgid "Finances" msgstr "Finanzen" @@ -246,15 +246,15 @@ msgstr "Fangen Sie heute an." msgid "Get the latest news from Documenso, including product updates, team announcements and more!" msgstr "Erhalten Sie die neuesten Nachrichten von Documenso, einschließlich Produkt-Updates, Team-Ankündigungen und mehr!" -#: apps/marketing/src/app/(marketing)/open/page.tsx:232 +#: apps/marketing/src/app/(marketing)/open/page.tsx:233 msgid "GitHub: Total Merged PRs" msgstr "GitHub: Gesamte PRs zusammengeführt" -#: apps/marketing/src/app/(marketing)/open/page.tsx:250 +#: apps/marketing/src/app/(marketing)/open/page.tsx:251 msgid "GitHub: Total Open Issues" msgstr "GitHub: Gesamte offene Issues" -#: apps/marketing/src/app/(marketing)/open/page.tsx:224 +#: apps/marketing/src/app/(marketing)/open/page.tsx:225 msgid "GitHub: Total Stars" msgstr "GitHub: Gesamtanzahl Sterne" @@ -262,7 +262,7 @@ msgstr "GitHub: Gesamtanzahl Sterne" msgid "Global Salary Bands" msgstr "Globale Gehaltsbänder" -#: apps/marketing/src/app/(marketing)/open/page.tsx:260 +#: apps/marketing/src/app/(marketing)/open/page.tsx:261 msgid "Growth" msgstr "Wachstum" @@ -286,7 +286,7 @@ msgstr "Integrierte Zahlungen mit Stripe, sodass Sie sich keine Sorgen ums Bezah msgid "Integrates with all your favourite tools." msgstr "Integriert sich mit all Ihren Lieblingstools." -#: apps/marketing/src/app/(marketing)/open/page.tsx:288 +#: apps/marketing/src/app/(marketing)/open/page.tsx:289 msgid "Is there more?" msgstr "Gibt es mehr?" @@ -310,11 +310,11 @@ msgstr "Standort" msgid "Make it your own through advanced customization and adjustability." msgstr "Machen Sie es zu Ihrem eigenen durch erweiterte Anpassung und Einstellbarkeit." -#: apps/marketing/src/app/(marketing)/open/page.tsx:198 +#: apps/marketing/src/app/(marketing)/open/page.tsx:199 msgid "Merged PR's" msgstr "Zusammengeführte PRs" -#: apps/marketing/src/app/(marketing)/open/page.tsx:233 +#: apps/marketing/src/app/(marketing)/open/page.tsx:234 msgid "Merged PRs" msgstr "Zusammengeführte PRs" @@ -345,8 +345,8 @@ msgstr "Keine Kreditkarte erforderlich" msgid "None of these work for you? Try self-hosting!" msgstr "Keines dieser Angebote passt zu Ihnen? Versuchen Sie das Selbst-Hosting!" -#: apps/marketing/src/app/(marketing)/open/page.tsx:193 -#: apps/marketing/src/app/(marketing)/open/page.tsx:251 +#: apps/marketing/src/app/(marketing)/open/page.tsx:194 +#: apps/marketing/src/app/(marketing)/open/page.tsx:252 msgid "Open Issues" msgstr "Offene Issues" @@ -354,7 +354,7 @@ msgstr "Offene Issues" msgid "Open Source or Hosted." msgstr "Open Source oder Hosted." -#: apps/marketing/src/app/(marketing)/open/page.tsx:160 +#: apps/marketing/src/app/(marketing)/open/page.tsx:161 #: apps/marketing/src/components/(marketing)/footer.tsx:37 #: apps/marketing/src/components/(marketing)/header.tsx:64 #: apps/marketing/src/components/(marketing)/mobile-navigation.tsx:40 @@ -466,7 +466,7 @@ msgstr "Intelligent." msgid "Star on GitHub" msgstr "Auf GitHub favorisieren" -#: apps/marketing/src/app/(marketing)/open/page.tsx:225 +#: apps/marketing/src/app/(marketing)/open/page.tsx:226 msgid "Stars" msgstr "Favoriten" @@ -501,7 +501,7 @@ msgstr "Vorlagen-Shop (Demnächst)." msgid "That's awesome. You can take a look at the current <0>Issues and join our <1>Discord Community to keep up to date, on what the current priorities are. In any case, we are an open community and welcome all input, technical and non-technical ❤️" msgstr "Das ist großartig. Sie können sich die aktuellen <0>Issues ansehen und unserer <1>Discord-Community beitreten, um auf dem neuesten Stand zu bleiben, was die aktuellen Prioritäten sind. In jedem Fall sind wir eine offene Gemeinschaft und begrüßen jegliche Beiträge, technische und nicht-technische ❤️" -#: apps/marketing/src/app/(marketing)/open/page.tsx:292 +#: apps/marketing/src/app/(marketing)/open/page.tsx:293 msgid "This page is evolving as we learn what makes a great signing company. We'll update it when we have more to share." msgstr "Diese Seite entwickelt sich weiter, während wir lernen, was ein großartiges Signing-Unternehmen ausmacht. Wir werden sie aktualisieren, wenn wir mehr zu teilen haben." @@ -514,8 +514,8 @@ msgstr "Titel" msgid "Total Completed Documents" msgstr "Insgesamt Abgeschlossene Dokumente" -#: apps/marketing/src/app/(marketing)/open/page.tsx:266 #: apps/marketing/src/app/(marketing)/open/page.tsx:267 +#: apps/marketing/src/app/(marketing)/open/page.tsx:268 msgid "Total Customers" msgstr "Insgesamt Kunden" @@ -602,4 +602,3 @@ msgstr "Sie können Documenso kostenlos selbst hosten oder unsere sofort einsatz #: apps/marketing/src/components/(marketing)/carousel.tsx:272 msgid "Your browser does not support the video tag." msgstr "Ihr Browser unterstützt das Video-Tag nicht." - diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index 75c379767..2d5eb10be 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -8,7 +8,7 @@ msgstr "" "Language: de\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -64,7 +64,7 @@ msgstr "{0, plural, one {<0>Du hast <1>1 ausstehende Team-Einladung} oth msgid "{0, plural, one {1 Recipient} other {# Recipients}}" msgstr "{0, plural, one {1 Empfänger} other {# Empfänger}}" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:230 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:235 msgid "{0, plural, one {Waiting on 1 recipient} other {Waiting on # recipients}}" msgstr "{0, plural, one {Warte auf 1 Empfänger} other {Warte auf # Empfänger}}" @@ -84,7 +84,7 @@ msgstr "{0} Dokument" msgid "{0} of {1} documents remaining this month." msgstr "{0} von {1} Dokumenten verbleibend in diesem Monat." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:170 msgid "{0} Recipient(s)" msgstr "{0} Empfänger(in)" @@ -161,7 +161,7 @@ msgstr "Eine Bestätigungs-E-Mail wurde gesendet, und sie sollte in Kürze in de msgid "A device capable of accessing, opening, and reading documents" msgstr "Ein Gerät, das in der Lage ist, Dokumente zuzugreifen, zu öffnen und zu lesen" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:207 msgid "A draft document will be created" msgstr "Ein Entwurf wird erstellt" @@ -220,24 +220,34 @@ msgstr "Zustimmung und Einverständnis" msgid "Accepted team invitation" msgstr "Team-Einladung akzeptiert" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:128 +msgid "Account Authentication" +msgstr "Kontowauthentifizierung" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:48 msgid "Account deleted" msgstr "Konto gelöscht" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:119 +msgid "Account Re-Authentication" +msgstr "Kontowiederauthentifizierung" + #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 msgid "Acknowledgment" msgstr "Bestätigung" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:105 -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:104 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:121 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:108 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:100 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:123 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:164 #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:118 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:46 msgid "Action" msgstr "Aktion" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:85 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:181 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:133 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:142 @@ -261,11 +271,11 @@ msgid "Add" msgstr "Hinzufügen" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:176 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:88 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:88 msgid "Add all relevant fields for each recipient." msgstr "Fügen Sie alle relevanten Felder für jeden Empfänger hinzu." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Fügen Sie alle relevanten Platzhalter für jeden Empfänger hinzu." @@ -282,7 +292,7 @@ msgid "Add email" msgstr "E-Mail hinzufügen" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:87 msgid "Add Fields" msgstr "Felder hinzufügen" @@ -295,7 +305,7 @@ msgstr "Mehr hinzufügen" msgid "Add passkey" msgstr "Passkey hinzufügen" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Platzhalter hinzufügen" @@ -315,7 +325,7 @@ msgstr "Team-E-Mail hinzufügen" msgid "Add the people who will sign the document." msgstr "Fügen Sie die Personen hinzu, die das Dokument unterschreiben werden." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:209 msgid "Add the recipients to create the document with" msgstr "Fügen Sie die Empfänger hinzu, um das Dokument zu erstellen" @@ -363,6 +373,10 @@ msgstr "Alle eingefügten Unterschriften werden annulliert" msgid "All recipients will be notified" msgstr "Alle Empfänger werden benachrichtigt" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:62 +msgid "All signing links have been copied to your clipboard." +msgstr "" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:57 msgid "All templates" msgstr "Alle Vorlagen" @@ -415,8 +429,8 @@ msgid "An error occurred" msgstr "Ein Fehler ist aufgetreten" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:268 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:201 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:235 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:201 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:235 msgid "An error occurred while adding signers." msgstr "Ein Fehler ist aufgetreten, während Unterzeichner hinzugefügt wurden." @@ -424,7 +438,7 @@ msgstr "Ein Fehler ist aufgetreten, während Unterzeichner hinzugefügt wurden." msgid "An error occurred while adding the fields." msgstr "Ein Fehler ist aufgetreten, während die Felder hinzugefügt wurden." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:165 msgid "An error occurred while creating document from template." msgstr "Ein Fehler ist aufgetreten, während das Dokument aus der Vorlage erstellt wurde." @@ -437,9 +451,9 @@ msgid "An error occurred while disabling direct link signing." msgstr "Ein Fehler ist aufgetreten, während das direkte Links-Signieren deaktiviert wurde." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:64 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:89 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:92 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:76 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:105 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:107 msgid "An error occurred while downloading your document." msgstr "Ein Fehler ist aufgetreten, während dein Dokument heruntergeladen wurde." @@ -508,7 +522,7 @@ msgid "An error occurred while trying to create a checkout session." msgstr "Ein Fehler ist aufgetreten, während versucht wurde, eine Checkout-Sitzung zu erstellen." #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "Ein Fehler ist aufgetreten, während die Dokumenteinstellungen aktualisiert wurden." @@ -571,6 +585,14 @@ msgstr "Es ist ein unbekannter Fehler aufgetreten" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Alle Zahlungsmethoden, die mit diesem Team verbunden sind, bleiben diesem Team zugeordnet. Bitte kontaktiere uns, wenn du diese Informationen aktualisieren möchtest." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 +msgid "Any Source" +msgstr "Jede Quelle" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 +msgid "Any Status" +msgstr "Jeder Status" + #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:22 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:42 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:56 @@ -587,7 +609,7 @@ msgstr "App-Version" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:89 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:120 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:144 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:146 #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:125 msgid "Approve" msgstr "Genehmigen" @@ -596,7 +618,7 @@ msgstr "Genehmigen" msgid "Approve Document" msgstr "Dokument genehmigen" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:85 msgid "Approved" msgstr "Genehmigt" @@ -626,10 +648,14 @@ msgstr "Bist du dir sicher?" msgid "Attempts sealing the document again, useful for after a code change has occurred to resolve an erroneous document." msgstr "Versuche, das Dokument erneut zu versiegeln, nützlich nach einer Codeänderung, um ein fehlerhaftes Dokument zu beheben." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:127 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:130 msgid "Audit Log" msgstr "Audit-Protokoll" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:198 +msgid "Authentication Level" +msgstr "Authentifizierungsstufe" + #: apps/web/src/app/(recipient)/d/[token]/signing-auth-page.tsx:41 #: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:52 msgid "Authentication required" @@ -688,9 +714,14 @@ msgid "Billing" msgstr "Abrechnung" #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:99 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:48 msgid "Browser" msgstr "Browser" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:145 +msgid "Bulk Copy" +msgstr "" + #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:279 msgid "Bulk Import" msgstr "Bulk-Import" @@ -805,6 +836,7 @@ msgstr "Klicken Sie hier, um zu beginnen" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:78 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:118 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:68 #: apps/web/src/components/document/document-history-sheet.tsx:133 msgid "Click here to retry" msgstr "Klicken Sie hier, um es erneut zu versuchen" @@ -826,10 +858,11 @@ msgid "Click to insert field" msgstr "Klicken Sie, um das Feld einzufügen" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:126 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:125 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:138 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:121 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:140 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:180 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:102 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:319 @@ -856,6 +889,7 @@ msgstr "Unterzeichnung abschließen" msgid "Complete Viewing" msgstr "Betrachten abschließen" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:62 #: apps/web/src/components/formatter/document-status.tsx:28 msgid "Completed" @@ -873,7 +907,7 @@ msgstr "Abgeschlossene Dokumente" msgid "Configure general settings for the document." msgstr "Konfigurieren Sie die allgemeinen Einstellungen für das Dokument." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Konfigurieren Sie die allgemeinen Einstellungen für die Vorlage." @@ -937,14 +971,25 @@ msgstr "Fortfahren" msgid "Continue to login" msgstr "Weiter zum Login" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:128 +msgid "Copied" +msgstr "" + +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:133 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:77 #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:31 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:163 #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:40 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:61 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:117 #: apps/web/src/components/forms/public-profile-form.tsx:117 msgid "Copied to clipboard" msgstr "In die Zwischenablage kopiert" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:123 +msgid "Copy" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:169 msgid "Copy sharable link" msgstr "Kopieren Sie den teilbaren Link" @@ -953,6 +998,10 @@ msgstr "Kopieren Sie den teilbaren Link" msgid "Copy Shareable Link" msgstr "Kopiere den teilbaren Link" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:83 +msgid "Copy Signing Links" +msgstr "" + #: apps/web/src/components/forms/token.tsx:288 msgid "Copy token" msgstr "Token kopieren" @@ -975,15 +1024,15 @@ msgstr "Ein Team erstellen, um mit Ihren Teammitgliedern zusammenzuarbeiten." msgid "Create account" msgstr "Konto erstellen" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:351 msgid "Create and send" msgstr "Erstellen und senden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:353 msgid "Create as draft" msgstr "Als Entwurf erstellen" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:37 msgid "Create Direct Link" msgstr "Direkten Link erstellen" @@ -991,7 +1040,7 @@ msgstr "Direkten Link erstellen" msgid "Create Direct Signing Link" msgstr "Direkten Signatur-Link erstellen" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Create document from template" msgstr "Dokument aus der Vorlage erstellen" @@ -1040,12 +1089,15 @@ msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit dem modernen Dokumentensign #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:34 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:274 msgid "Created" msgstr "Erstellt" #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:35 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:111 msgid "Created At" msgstr "Erstellt am" @@ -1107,14 +1159,14 @@ msgstr "Team-Einladung abgelehnt" msgid "delete" msgstr "löschen" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:141 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:187 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:144 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:189 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:200 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:177 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:211 #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:83 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:100 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:91 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:94 #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:90 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 @@ -1186,6 +1238,7 @@ msgid "Delete your account and all its contents, including completed documents. msgstr "Löschen Sie Ihr Konto und alle Inhalte, einschließlich abgeschlossener Dokumente. Diese Aktion ist irreversibel und führt zur Kündigung Ihres Abonnements, seien Sie also vorsichtig." #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:41 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:97 msgid "Deleted" msgstr "Gelöscht" @@ -1193,7 +1246,12 @@ msgstr "Gelöscht" msgid "Deleting account..." msgstr "Konto wird gelöscht..." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:178 +msgid "Details" +msgstr "Einzelheiten" + #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:75 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:234 msgid "Device" msgstr "Gerät" @@ -1202,10 +1260,16 @@ msgstr "Gerät" msgid "direct link" msgstr "Direkter Link" -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:76 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:40 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:79 msgid "Direct link" msgstr "Direkter Link" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:160 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:231 +msgid "Direct Link" +msgstr "Direkter Link" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:46 msgid "direct link disabled" msgstr "Direkter Link deaktiviert" @@ -1274,6 +1338,7 @@ msgid "Documenso will delete <0>all of your documents, along with all of you msgstr "Documenso wird <0>alle Ihre Dokumente löschen, zusammen mit allen abgeschlossenen Dokumenten, Unterschriften und allen anderen Ressourcen, die zu Ihrem Konto gehören." #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:119 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:38 msgid "Document" msgstr "Dokument" @@ -1297,12 +1362,20 @@ msgstr "Dokument abgeschlossen" msgid "Document Completed!" msgstr "Dokument abgeschlossen!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:154 msgid "Document created" msgstr "Dokument erstellt" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:129 +msgid "Document created by <0>{0}" +msgstr "Dokument erstellt von <0>{0}" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:134 +msgid "Document created using a <0>direct link" +msgstr "Dokument erstellt mit einem <0>direkten Link" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:173 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:178 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:59 msgid "Document deleted" msgstr "Dokument gelöscht" @@ -1315,12 +1388,13 @@ msgstr "Dokument-Entwurf" msgid "Document Duplicated" msgstr "Dokument dupliziert" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:184 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:189 #: apps/web/src/components/document/document-history-sheet.tsx:104 msgid "Document history" msgstr "Dokumentverlauf" #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:71 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:81 msgid "Document ID" msgstr "Dokument-ID" @@ -1394,7 +1468,7 @@ msgstr "Dokument wird dauerhaft gelöscht" #: apps/web/src/app/(dashboard)/admin/nav.tsx:65 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:92 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:139 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:144 #: apps/web/src/app/(dashboard)/documents/[id]/edit/document-edit-page-view.tsx:109 #: apps/web/src/app/(dashboard)/documents/[id]/loading.tsx:16 #: apps/web/src/app/(dashboard)/documents/[id]/sent/page.tsx:15 @@ -1408,6 +1482,10 @@ msgstr "Dokument wird dauerhaft gelöscht" msgid "Documents" msgstr "Dokumente" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:195 +msgid "Documents created from template" +msgstr "Dokumente erstellt aus Vorlage" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:113 msgid "Documents Received" msgstr "Dokumente empfangen" @@ -1422,9 +1500,9 @@ msgid "Don't have an account? <0>Sign up" msgstr "Haben Sie kein Konto? <0>Registrieren" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:111 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:120 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:123 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:141 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:160 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:162 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:110 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:185 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:107 @@ -1439,6 +1517,7 @@ msgstr "Auditprotokolle herunterladen" msgid "Download Certificate" msgstr "Zertifikat herunterladen" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:214 #: apps/web/src/components/formatter/document-status.tsx:34 msgid "Draft" msgstr "Entwurf" @@ -1455,27 +1534,31 @@ msgstr "Entwurfte Dokumente" msgid "Due to an unpaid invoice, your team has been restricted. Please settle the payment to restore full access to your team." msgstr "Aufgrund einer unbezahlten Rechnung wurde Ihrem Team der Zugriff eingeschränkt. Bitte begleichen Sie die Zahlung, um den vollumfänglichen Zugang zu Ihrem Team wiederherzustellen." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:133 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:136 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:167 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:85 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:118 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:71 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:74 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:91 msgid "Duplicate" msgstr "Duplizieren" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:104 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:112 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:115 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:102 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:154 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:156 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:111 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:95 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:62 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:65 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:77 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:100 msgid "Edit" msgstr "Bearbeiten" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:115 +msgid "Edit Template" +msgstr "Vorlage bearbeiten" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:94 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:100 msgid "Edit webhook" @@ -1492,8 +1575,10 @@ msgstr "Offenlegung der elektronischen Unterschrift" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:166 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:114 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:71 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:248 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:254 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:261 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:122 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:129 #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:118 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:126 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 @@ -1563,6 +1648,10 @@ msgstr "Direktlinksignierung aktivieren" msgid "Enabled" msgstr "Aktiviert" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:87 +msgid "Enclosed Document" +msgstr "Beigefügte Dokument" + #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:38 msgid "Ends On" msgstr "Endet am" @@ -1592,12 +1681,12 @@ msgstr "Geben Sie hier Ihren Text ein" #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57 #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106 #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:112 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:169 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:200 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:169 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:234 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:51 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:56 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:151 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:212 @@ -1686,7 +1775,7 @@ msgid "Full Name" msgstr "Vollständiger Name" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:77 #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60 #: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43 #: apps/web/src/components/(teams)/settings/layout/mobile-nav.tsx:51 @@ -1737,7 +1826,7 @@ msgstr "So funktioniert es:" msgid "Hey I’m Timur" msgstr "Hey, ich bin Timur" -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:187 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:189 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:200 #: apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx:155 msgid "Hide" @@ -1747,6 +1836,10 @@ msgstr "Ausblenden" msgid "Hide additional information" msgstr "Zusätzliche Informationen ausblenden" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:43 +msgid "I am the owner of this document" +msgstr "Ich bin der Besitzer dieses Dokuments" + #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:186 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:173 msgid "I'm sure! Delete it" @@ -1777,6 +1870,7 @@ msgid "Inbox documents" msgstr "Posteingang Dokumente" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:53 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:50 msgid "Information" msgstr "Information" @@ -1850,6 +1944,11 @@ msgstr "Eingeladen am" msgid "Invoice" msgstr "Rechnung" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:47 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:227 +msgid "IP Address" +msgstr "IP-Adresse" + #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:118 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 "Es ist entscheidend, dass Sie Ihre Kontaktinformationen, insbesondere Ihre E-Mail-Adresse, aktuell halten. Bitte informieren Sie uns sofort über Änderungen, damit Sie weiterhin alle notwendigen Mitteilungen erhalten." @@ -1891,6 +1990,7 @@ msgid "Last 7 days" msgstr "Die letzten 7 Tage" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:41 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:38 msgid "Last modified" msgstr "Zuletzt geändert" @@ -1898,6 +1998,10 @@ msgstr "Zuletzt geändert" msgid "Last updated" msgstr "Zuletzt aktualisiert" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:121 +msgid "Last Updated" +msgstr "Zuletzt aktualisiert" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:52 msgid "Last updated at" msgstr "Zuletzt aktualisiert am" @@ -1981,11 +2085,15 @@ msgstr "Verwalten Sie das Profil von {0}" msgid "Manage all teams you are currently associated with." msgstr "Verwalten Sie alle Teams, mit denen Sie derzeit verbunden sind." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:159 +msgid "Manage and view template" +msgstr "Vorlage verwalten und anzeigen" + #: apps/web/src/components/templates/manage-public-template-dialog.tsx:341 msgid "Manage details for this public template" msgstr "Details für diese öffentliche Vorlage verwalten" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:33 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 msgid "Manage Direct Link" msgstr "Direktlink verwalten" @@ -2060,7 +2168,8 @@ msgstr "Mitglied seit" msgid "Members" msgstr "Mitglieder" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:46 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:35 msgid "Modify recipients" msgstr "Empfänger ändern" @@ -2089,8 +2198,8 @@ msgstr "Dokument in Team verschieben" msgid "Move Template to Team" msgstr "Vorlage in Team verschieben" -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:172 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:82 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:174 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:85 msgid "Move to Team" msgstr "In Team verschieben" @@ -2109,8 +2218,8 @@ msgstr "Meine Vorlagen" #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:61 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:270 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:277 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:276 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:283 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:119 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:170 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:153 @@ -2166,7 +2275,13 @@ msgstr "Keine Vorlagen für das öffentliche Profil gefunden" msgid "No recent activity" msgstr "Keine aktuellen Aktivitäten" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:55 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:103 +msgid "No recent documents" +msgstr "Keine aktuellen Dokumente" + +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:61 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:49 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:96 msgid "No recipients" msgstr "Keine Empfänger" @@ -2261,11 +2376,12 @@ msgstr "Oder" msgid "Or continue with" msgstr "Oder fahren Sie fort mit" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:330 msgid "Otherwise, the document will be created as a draft." msgstr "Andernfalls wird das Dokument als Entwurf erstellt." #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:86 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:103 #: apps/web/src/components/(dashboard)/layout/menu-switcher.tsx:81 #: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:86 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:109 @@ -2300,6 +2416,10 @@ msgstr "Die Passkey wurde aktualisiert" msgid "Passkey name" msgstr "Passkey-Name" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:121 +msgid "Passkey Re-Authentication" +msgstr "Passwortwiederauthentifizierung" + #: apps/web/src/app/(dashboard)/settings/security/page.tsx:106 #: apps/web/src/app/(dashboard)/settings/security/passkeys/page.tsx:32 msgid "Passkeys" @@ -2340,9 +2460,11 @@ msgstr "Zahlung ist erforderlich, um die Erstellung Ihres Teams abzuschließen." msgid "Payment overdue" msgstr "Zahlung überfällig" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:115 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:122 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:211 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 +#: apps/web/src/components/document/document-read-only-fields.tsx:89 #: apps/web/src/components/formatter/document-status.tsx:22 msgid "Pending" msgstr "Ausstehend" @@ -2529,10 +2651,14 @@ msgstr "Nur-Lese-Feld" msgid "Read the full <0>signature disclosure." msgstr "Lesen Sie die vollständige <0>Offenlegung der Unterschrift." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:97 msgid "Ready" msgstr "Bereit" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:281 +msgid "Reason" +msgstr "Grund" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:62 msgid "Reauthentication is required to sign this field" msgstr "Eine erneute Authentifizierung ist erforderlich, um dieses Feld zu unterschreiben" @@ -2542,7 +2668,12 @@ msgstr "Eine erneute Authentifizierung ist erforderlich, um dieses Feld zu unter msgid "Recent activity" msgstr "Aktuelle Aktivitäten" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:47 +msgid "Recent documents" +msgstr "Neueste Dokumente" + #: apps/web/src/app/(dashboard)/documents/data-table.tsx:69 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:120 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:280 msgid "Recipient" msgstr "Empfänger" @@ -2552,7 +2683,9 @@ msgid "Recipient updated" msgstr "Empfänger aktualisiert" #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:66 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:34 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:30 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:139 msgid "Recipients" msgstr "Empfänger" @@ -2780,7 +2913,7 @@ msgstr "Passkey auswählen" msgid "Send confirmation email" msgstr "Bestätigungs-E-Mail senden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:314 msgid "Send document" msgstr "Dokument senden" @@ -2800,7 +2933,8 @@ msgstr "Zurücksetzungs-E-Mail wird gesendet..." msgid "Sending..." msgstr "Senden..." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:85 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:92 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:248 msgid "Sent" msgstr "Gesendet" @@ -2819,13 +2953,13 @@ msgstr "Einstellungen" msgid "Setup" msgstr "Einrichten" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:145 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:191 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:148 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:193 msgid "Share" msgstr "Teilen" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:161 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:203 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:179 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:219 msgid "Share Signing Card" msgstr "Signaturkarte teilen" @@ -2847,7 +2981,7 @@ msgstr "Vorlagen in Ihrem Team-Öffentliches Profil anzeigen, damit Ihre Zielgru #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:83 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:114 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:137 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:139 #: apps/web/src/app/(profile)/p/[url]/page.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:182 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:224 @@ -2923,6 +3057,7 @@ msgid "Sign Up with OIDC" msgstr "Registrieren mit OIDC" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:177 #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:338 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195 @@ -2933,6 +3068,10 @@ msgstr "Registrieren mit OIDC" msgid "Signature" msgstr "Unterschrift" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:220 +msgid "Signature ID" +msgstr "Signatur-ID" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:123 msgid "Signatures Collected" msgstr "Gesammelte Unterschriften" @@ -2941,15 +3080,34 @@ msgstr "Gesammelte Unterschriften" msgid "Signatures will appear once the document has been completed" msgstr "Unterschriften erscheinen, sobald das Dokument abgeschlossen ist" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:98 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:105 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:270 +#: apps/web/src/components/document/document-read-only-fields.tsx:84 msgid "Signed" msgstr "Unterzeichnet" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:176 +msgid "Signer Events" +msgstr "Signer-Ereignisse" + +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:168 +msgid "Signing Certificate" +msgstr "Unterzeichnungszertifikat" + +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:303 +msgid "Signing certificate provided by" +msgstr "Unterzeichnungszertifikat bereitgestellt von" + #: apps/web/src/components/forms/signin.tsx:383 #: apps/web/src/components/forms/signin.tsx:510 msgid "Signing in..." msgstr "Anmeldung..." +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:160 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:203 +msgid "Signing Links" +msgstr "" + #: apps/web/src/components/forms/signup.tsx:235 msgid "Signing up..." msgstr "Registrierung..." @@ -2974,11 +3132,11 @@ msgstr "Website Einstellungen" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:105 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:63 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:88 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:91 #: apps/web/src/app/(dashboard)/documents/[id]/logs/download-audit-log-button.tsx:65 #: apps/web/src/app/(dashboard)/documents/[id]/logs/download-certificate-button.tsx:66 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:75 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:104 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:106 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:80 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:72 #: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:62 @@ -3047,6 +3205,10 @@ msgstr "Entschuldigung, wir konnten die Prüfprotokolle nicht herunterladen. Bit msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Entschuldigung, wir konnten das Zertifikat nicht herunterladen. Bitte versuchen Sie es später erneut." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:138 +msgid "Source" +msgstr "Quelle" + #: apps/web/src/app/(dashboard)/admin/nav.tsx:37 msgid "Stats" msgstr "Statistiken" @@ -3054,11 +3216,13 @@ msgstr "Statistiken" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:130 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:93 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" msgstr "Status" -#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:128 +#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:129 msgid "Subscribe" msgstr "Abonnieren" @@ -3232,6 +3396,11 @@ msgstr "Teams" msgid "Teams restricted" msgstr "Teams beschränkt" +#: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:63 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:148 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:228 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:146 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:271 msgid "Template" @@ -3261,11 +3430,11 @@ msgstr "Vorlage wurde aktualisiert." msgid "Template moved" msgstr "Vorlage verschoben" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:223 msgid "Template saved" msgstr "Vorlage gespeichert" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:87 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:208 #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 @@ -3312,7 +3481,7 @@ msgstr "Das Dokument wurde erfolgreich in das ausgewählte Team verschoben." msgid "The document is now completed, please follow any instructions provided within the parent application." msgstr "Das Dokument ist jetzt abgeschlossen. Bitte folgen Sie allen Anweisungen, die in der übergeordneten Anwendung bereitgestellt werden." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:171 msgid "The document was created but could not be sent to recipients." msgstr "Das Dokument wurde erstellt, konnte aber nicht an die Empfänger versendet werden." @@ -3320,7 +3489,7 @@ msgstr "Das Dokument wurde erstellt, konnte aber nicht an die Empfänger versend msgid "The document will be hidden from your account" msgstr "Das Dokument wird von Ihrem Konto verborgen werden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:322 msgid "The document will be immediately sent to recipients if this is checked." msgstr "Das Dokument wird sofort an die Empfänger gesendet, wenn dies angehakt ist." @@ -3362,7 +3531,9 @@ msgstr "Der Empfänger wurde erfolgreich aktualisiert" msgid "The selected team member will receive an email which they must accept before the team is transferred" msgstr "Das ausgewählte Teammitglied erhält eine E-Mail, die es akzeptieren muss, bevor das Team übertragen wird" +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:134 #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:41 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:118 msgid "The signing link has been copied to your clipboard." msgstr "Der Signierlink wurde in die Zwischenablage kopiert." @@ -3463,14 +3634,22 @@ msgstr "Dieses Dokument wurde vom Eigentümer storniert und steht anderen nicht msgid "This document has been cancelled by the owner." msgstr "Dieses Dokument wurde vom Eigentümer storniert." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:219 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:224 msgid "This document has been signed by all recipients" msgstr "Dieses Dokument wurde von allen Empfängern unterschrieben" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:222 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:227 msgid "This document is currently a draft and has not been sent" msgstr "Dieses Dokument ist momentan ein Entwurf und wurde nicht gesendet" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:152 +msgid "This document was created by you or a team member using the template above." +msgstr "Dieses Dokument wurde von Ihnen oder einem Teammitglied unter Verwendung der oben genannten Vorlage erstellt." + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:164 +msgid "This document was created using a direct link." +msgstr "Dieses Dokument wurde mit einem direkten Link erstellt." + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." msgstr "Diese E-Mail-Adresse wird bereits von einem anderen Team verwendet." @@ -3528,7 +3707,8 @@ msgstr "Dieser Benutzername ist bereits vergeben" msgid "This username is already taken" msgstr "Dieser Benutzername ist bereits vergeben" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:77 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:73 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:44 msgid "Time" msgstr "Zeit" @@ -3536,8 +3716,13 @@ msgstr "Zeit" msgid "Time zone" msgstr "Zeitzone" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:131 +msgid "Time Zone" +msgstr "Zeitzone" + #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 msgid "Title" msgstr "Titel" @@ -3683,6 +3868,10 @@ msgstr "Zwei-Faktor-Authentifizierung aktiviert" 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 "Die Zwei-Faktor-Authentifizierung wurde für Ihr Konto deaktiviert. Sie müssen beim Anmelden keinen Code aus Ihrer Authentifizierungs-App mehr eingeben." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:120 +msgid "Two-Factor Re-Authentication" +msgstr "Zwei-Faktor-Wiederauthentifizierung" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:73 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:67 msgid "Type" @@ -3741,6 +3930,10 @@ msgstr "Zurzeit kann diesem Team nicht beigetreten werden." msgid "Unable to load document history" msgstr "Kann den Dokumentverlauf nicht laden" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:62 +msgid "Unable to load documents" +msgstr "Dokumente können nicht geladen werden" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:111 msgid "Unable to load your public profile templates at this time" msgstr "Derzeit können Ihre öffentlichen Profilvorlagen nicht geladen werden" @@ -3784,6 +3977,13 @@ msgstr "Nicht autorisiert" msgid "Uncompleted" msgstr "Unvollendet" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:229 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:254 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:265 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:276 +msgid "Unknown" +msgstr "Unbekannt" + #: apps/web/src/app/(teams)/t/[teamUrl]/error.tsx:23 msgid "Unknown error" msgstr "Unbekannter Fehler" @@ -3865,6 +4065,7 @@ msgid "Upload Avatar" msgstr "Avatar hochladen" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:31 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:30 msgid "Uploaded by" msgstr "Hochgeladen von" @@ -3880,6 +4081,10 @@ msgstr "Die hochgeladene Datei ist zu klein" msgid "Uploaded file not an allowed file type" msgstr "Die hochgeladene Datei ist kein zulässiger Dateityp" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:170 +msgid "Use" +msgstr "Verwenden" + #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187 #: apps/web/src/components/forms/signin.tsx:505 msgid "Use Authenticator" @@ -3890,11 +4095,12 @@ msgstr "Authenticator verwenden" msgid "Use Backup Code" msgstr "Backup-Code verwenden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:196 msgid "Use Template" msgstr "Vorlage verwenden" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:82 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:78 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:45 msgid "User" msgstr "Benutzer" @@ -3942,10 +4148,14 @@ msgstr "Überprüfen Sie Ihre E-Mail-Adresse, um alle Funktionen freizuschalten. msgid "Verify your email to upload documents." msgstr "Überprüfen Sie Ihre E-Mail, um Dokumente hochzuladen." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:75 +msgid "Version History" +msgstr "Versionsverlauf" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:95 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:126 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:135 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:130 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:132 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:100 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:168 msgid "View" @@ -3963,6 +4173,10 @@ msgstr "Alle Dokumente anzeigen, die an Ihr Konto gesendet wurden" msgid "View all recent security activity related to your account." msgstr "Sehen Sie sich alle aktuellen Sicherheitsaktivitäten in Ihrem Konto an." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:157 +msgid "View all related documents" +msgstr "Alle verwandten Dokumente anzeigen" + #: apps/web/src/app/(dashboard)/settings/security/activity/page.tsx:26 msgid "View all security activity related to your account." msgstr "Sehen Sie sich alle Sicherheitsaktivitäten in Ihrem Konto an." @@ -3983,6 +4197,10 @@ msgstr "Dokumente ansehen, die mit dieser E-Mail verknüpft sind" msgid "View invites" msgstr "Einladungen ansehen" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:95 +msgid "View more" +msgstr "Mehr anzeigen" + #: apps/web/src/app/(signing)/sign/[token]/complete/document-preview-button.tsx:34 msgid "View Original Document" msgstr "Originaldokument ansehen" @@ -3996,7 +4214,8 @@ msgstr "Wiederherstellungscodes ansehen" msgid "View teams" msgstr "Teams ansehen" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:104 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:111 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:259 msgid "Viewed" msgstr "Angesehen" @@ -4297,6 +4516,7 @@ msgid "Yearly" msgstr "Jährlich" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:32 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:31 msgid "You" msgstr "Sie" @@ -4364,6 +4584,10 @@ msgstr "Sie können wählen, ob Sie Ihr Teamprofil für die öffentliche Ansicht msgid "You can claim your profile later on by going to your profile settings!" msgstr "Sie können Ihr Profil später über die Profileinstellungen beanspruchen!" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:87 +msgid "You can copy and share these links to recipients so they can action the document." +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:154 msgid "You can update the profile URL by updating the team URL in the general settings page." msgstr "Sie können die Profil-URL aktualisieren, indem Sie die Team-URL auf der Seite mit den allgemeinen Einstellungen aktualisieren." @@ -4530,7 +4754,7 @@ msgstr "Ihre direkten Unterzeichnungsvorlagen" msgid "Your document failed to upload." msgstr "Ihr Dokument konnte nicht hochgeladen werden." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:155 msgid "Your document has been created from the template successfully." msgstr "Ihr Dokument wurde erfolgreich aus der Vorlage erstellt." @@ -4629,7 +4853,7 @@ msgstr "Ihre Vorlage wurde erfolgreich gelöscht." msgid "Your template will be duplicated." msgstr "Ihre Vorlage wird dupliziert." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Ihre Vorlagen wurden erfolgreich gespeichert." @@ -4645,4 +4869,3 @@ msgstr "Ihr Token wurde erfolgreich erstellt! Stellen Sie sicher, dass Sie es ko #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:86 msgid "Your tokens will be shown here once you create them." msgstr "Ihre Tokens werden hier angezeigt, sobald Sie sie erstellt haben." - diff --git a/packages/lib/translations/en/common.po b/packages/lib/translations/en/common.po index 596ff4e27..a88421223 100644 --- a/packages/lib/translations/en/common.po +++ b/packages/lib/translations/en/common.po @@ -91,6 +91,90 @@ msgstr "{memberEmail} joined the following team" msgid "{memberEmail} left the following team" msgstr "{memberEmail} left the following team" +#: packages/lib/utils/document-audit-logs.ts:263 +msgid "{prefix} added a field" +msgstr "{prefix} added a field" + +#: packages/lib/utils/document-audit-logs.ts:275 +msgid "{prefix} added a recipient" +msgstr "{prefix} added a recipient" + +#: packages/lib/utils/document-audit-logs.ts:287 +msgid "{prefix} created the document" +msgstr "{prefix} created the document" + +#: packages/lib/utils/document-audit-logs.ts:291 +msgid "{prefix} deleted the document" +msgstr "{prefix} deleted the document" + +#: packages/lib/utils/document-audit-logs.ts:335 +msgid "{prefix} moved the document to team" +msgstr "{prefix} moved the document to team" + +#: packages/lib/utils/document-audit-logs.ts:319 +msgid "{prefix} opened the document" +msgstr "{prefix} opened the document" + +#: packages/lib/utils/document-audit-logs.ts:267 +msgid "{prefix} removed a field" +msgstr "{prefix} removed a field" + +#: packages/lib/utils/document-audit-logs.ts:279 +msgid "{prefix} removed a recipient" +msgstr "{prefix} removed a recipient" + +#: packages/lib/utils/document-audit-logs.ts:355 +msgid "{prefix} resent an email to {0}" +msgstr "{prefix} resent an email to {0}" + +#: packages/lib/utils/document-audit-logs.ts:356 +msgid "{prefix} sent an email to {0}" +msgstr "{prefix} sent an email to {0}" + +#: packages/lib/utils/document-audit-logs.ts:331 +msgid "{prefix} sent the document" +msgstr "{prefix} sent the document" + +#: packages/lib/utils/document-audit-logs.ts:295 +msgid "{prefix} signed a field" +msgstr "{prefix} signed a field" + +#: packages/lib/utils/document-audit-logs.ts:299 +msgid "{prefix} unsigned a field" +msgstr "{prefix} unsigned a field" + +#: packages/lib/utils/document-audit-logs.ts:271 +msgid "{prefix} updated a field" +msgstr "{prefix} updated a field" + +#: packages/lib/utils/document-audit-logs.ts:283 +msgid "{prefix} updated a recipient" +msgstr "{prefix} updated a recipient" + +#: packages/lib/utils/document-audit-logs.ts:315 +msgid "{prefix} updated the document" +msgstr "{prefix} updated the document" + +#: packages/lib/utils/document-audit-logs.ts:307 +msgid "{prefix} updated the document access auth requirements" +msgstr "{prefix} updated the document access auth requirements" + +#: packages/lib/utils/document-audit-logs.ts:327 +msgid "{prefix} updated the document external ID" +msgstr "{prefix} updated the document external ID" + +#: packages/lib/utils/document-audit-logs.ts:311 +msgid "{prefix} updated the document signing auth requirements" +msgstr "{prefix} updated the document signing auth requirements" + +#: packages/lib/utils/document-audit-logs.ts:323 +msgid "{prefix} updated the document title" +msgstr "{prefix} updated the document title" + +#: packages/lib/utils/document-audit-logs.ts:303 +msgid "{prefix} updated the document visibility" +msgstr "{prefix} updated the document visibility" + #: packages/email/templates/document-created-from-direct-template.tsx:55 msgid "{recipientName} {action} a document by using one of your direct links" msgstr "{recipientName} {action} a document by using one of your direct links" @@ -99,6 +183,26 @@ msgstr "{recipientName} {action} a document by using one of your direct links" msgid "{teamName} ownership transfer request" msgstr "{teamName} ownership transfer request" +#: packages/lib/utils/document-audit-logs.ts:343 +msgid "{userName} approved the document" +msgstr "{userName} approved the document" + +#: packages/lib/utils/document-audit-logs.ts:344 +msgid "{userName} CC'd the document" +msgstr "{userName} CC'd the document" + +#: packages/lib/utils/document-audit-logs.ts:345 +msgid "{userName} completed their task" +msgstr "{userName} completed their task" + +#: packages/lib/utils/document-audit-logs.ts:341 +msgid "{userName} signed the document" +msgstr "{userName} signed the document" + +#: packages/lib/utils/document-audit-logs.ts:342 +msgid "{userName} viewed the document" +msgstr "{userName} viewed the document" + #: packages/ui/primitives/data-table-pagination.tsx:41 msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" msgstr "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" @@ -145,10 +249,34 @@ msgstr "<0>Require passkey - The recipient must have an account and passkey 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." +#: packages/lib/utils/document-audit-logs.ts:262 +msgid "A field was added" +msgstr "A field was added" + +#: packages/lib/utils/document-audit-logs.ts:266 +msgid "A field was removed" +msgstr "A field was removed" + +#: packages/lib/utils/document-audit-logs.ts:270 +msgid "A field was updated" +msgstr "A field was updated" + #: packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts:90 msgid "A new member has joined your team" msgstr "A new member has joined your team" +#: packages/lib/utils/document-audit-logs.ts:274 +msgid "A recipient was added" +msgstr "A recipient was added" + +#: packages/lib/utils/document-audit-logs.ts:278 +msgid "A recipient was removed" +msgstr "A recipient was removed" + +#: packages/lib/utils/document-audit-logs.ts:282 +msgid "A recipient was updated" +msgstr "A recipient was updated" + #: packages/lib/server-only/team/create-team-email-verification.ts:142 msgid "A request to use your email has been initiated by {teamName} on Documenso" msgstr "A request to use your email has been initiated by {teamName} on Documenso" @@ -363,6 +491,7 @@ msgstr "Close" #: packages/email/template-components/template-document-completed.tsx:35 #: packages/email/template-components/template-document-self-signed.tsx:36 +#: packages/lib/constants/document.ts:10 msgid "Completed" msgstr "Completed" @@ -445,10 +574,24 @@ msgstr "Direct link receiver" msgid "Document access" msgstr "Document access" +#: packages/lib/utils/document-audit-logs.ts:306 +msgid "Document access auth updated" +msgstr "Document access auth updated" + +#: packages/lib/server-only/document/delete-document.ts:213 #: packages/lib/server-only/document/super-delete-document.ts:75 msgid "Document Cancelled" msgstr "Document Cancelled" +#: packages/lib/utils/document-audit-logs.ts:359 +#: packages/lib/utils/document-audit-logs.ts:360 +msgid "Document completed" +msgstr "Document completed" + +#: packages/lib/utils/document-audit-logs.ts:286 +msgid "Document created" +msgstr "Document created" + #: packages/email/templates/document-created-from-direct-template.tsx:30 #: packages/lib/server-only/template/create-document-from-direct-template.ts:554 msgid "Document created from direct template" @@ -458,15 +601,55 @@ msgstr "Document created from direct template" msgid "Document Creation" msgstr "Document Creation" +#: packages/lib/utils/document-audit-logs.ts:290 +msgid "Document deleted" +msgstr "Document deleted" + #: packages/lib/server-only/document/send-delete-email.ts:58 msgid "Document Deleted!" msgstr "Document Deleted!" +#: packages/lib/utils/document-audit-logs.ts:326 +msgid "Document external ID updated" +msgstr "Document external ID updated" + +#: packages/lib/utils/document-audit-logs.ts:334 +msgid "Document moved to team" +msgstr "Document moved to team" + +#: packages/lib/utils/document-audit-logs.ts:318 +msgid "Document opened" +msgstr "Document opened" + +#: packages/lib/utils/document-audit-logs.ts:330 +msgid "Document sent" +msgstr "Document sent" + +#: packages/lib/utils/document-audit-logs.ts:310 +msgid "Document signing auth updated" +msgstr "Document signing auth updated" + +#: packages/lib/utils/document-audit-logs.ts:322 +msgid "Document title updated" +msgstr "Document title updated" + +#: packages/lib/utils/document-audit-logs.ts:314 +msgid "Document updated" +msgstr "Document updated" + +#: packages/lib/utils/document-audit-logs.ts:302 +msgid "Document visibility updated" +msgstr "Document visibility updated" + #: packages/email/template-components/template-document-completed.tsx:64 #: packages/ui/components/document/document-download-button.tsx:68 msgid "Download" msgstr "Download" +#: packages/lib/constants/document.ts:13 +msgid "Draft" +msgstr "Draft" + #: packages/ui/primitives/document-dropzone.tsx:162 msgid "Drag & drop your PDF here." msgstr "Drag & drop your PDF here." @@ -499,6 +682,14 @@ msgstr "Email is required" msgid "Email Options" msgstr "Email Options" +#: packages/lib/utils/document-audit-logs.ts:353 +msgid "Email resent" +msgstr "Email resent" + +#: packages/lib/utils/document-audit-logs.ts:353 +msgid "Email sent" +msgstr "Email sent" + #: packages/ui/primitives/document-flow/add-fields.tsx:1123 msgid "Empty field" msgstr "Empty field" @@ -559,6 +750,14 @@ msgstr "Field label" msgid "Field placeholder" msgstr "Field placeholder" +#: packages/lib/utils/document-audit-logs.ts:294 +msgid "Field signed" +msgstr "Field signed" + +#: packages/lib/utils/document-audit-logs.ts:298 +msgid "Field unsigned" +msgstr "Field unsigned" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56 #: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38 #: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38 @@ -769,6 +968,10 @@ msgstr "Password Reset Successful" msgid "Password updated!" msgstr "Password updated!" +#: packages/lib/constants/document.ts:16 +msgid "Pending" +msgstr "Pending" + #: packages/email/templates/document-pending.tsx:17 msgid "Pending Document" msgstr "Pending Document" @@ -836,6 +1039,10 @@ msgstr "Read only" msgid "Receives copy" msgstr "Receives copy" +#: packages/lib/utils/document-audit-logs.ts:338 +msgid "Recipient" +msgstr "Recipient" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:39 #: packages/ui/primitives/document-flow/add-settings.tsx:257 #: packages/ui/primitives/template-flow/add-template-settings.tsx:208 @@ -1243,6 +1450,10 @@ msgstr "We've changed your password as you asked. You can now sign in with your msgid "Welcome to Documenso!" msgstr "Welcome to Documenso!" +#: packages/lib/utils/document-audit-logs.ts:258 +msgid "You" +msgstr "You" + #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44 msgid "You are about to send this document to the recipients. Are you sure you want to continue?" msgstr "You are about to send this document to the recipients. Are you sure you want to continue?" diff --git a/packages/lib/translations/en/marketing.po b/packages/lib/translations/en/marketing.po index d85ccda92..427ba58e5 100644 --- a/packages/lib/translations/en/marketing.po +++ b/packages/lib/translations/en/marketing.po @@ -37,7 +37,7 @@ msgstr "Add document" msgid "Add More Users for {0}" msgstr "Add More Users for {0}" -#: apps/marketing/src/app/(marketing)/open/page.tsx:164 +#: apps/marketing/src/app/(marketing)/open/page.tsx:165 msgid "All our metrics, finances, and learnings are public. We believe in transparency and want to share our journey with you. You can read more about why here: <0>Announcing Open Metrics" msgstr "All our metrics, finances, and learnings are public. We believe in transparency and want to share our journey with you. You can read more about why here: <0>Announcing Open Metrics" @@ -85,7 +85,7 @@ msgstr "Changelog" msgid "Choose a template from the community app store. Or submit your own template for others to use." msgstr "Choose a template from the community app store. Or submit your own template for others to use." -#: apps/marketing/src/app/(marketing)/open/page.tsx:218 +#: apps/marketing/src/app/(marketing)/open/page.tsx:219 msgid "Community" msgstr "Community" @@ -188,7 +188,7 @@ msgstr "Fast." msgid "Faster, smarter and more beautiful." msgstr "Faster, smarter and more beautiful." -#: apps/marketing/src/app/(marketing)/open/page.tsx:209 +#: apps/marketing/src/app/(marketing)/open/page.tsx:210 msgid "Finances" msgstr "Finances" @@ -241,15 +241,15 @@ msgstr "Get started today." msgid "Get the latest news from Documenso, including product updates, team announcements and more!" msgstr "Get the latest news from Documenso, including product updates, team announcements and more!" -#: apps/marketing/src/app/(marketing)/open/page.tsx:232 +#: apps/marketing/src/app/(marketing)/open/page.tsx:233 msgid "GitHub: Total Merged PRs" msgstr "GitHub: Total Merged PRs" -#: apps/marketing/src/app/(marketing)/open/page.tsx:250 +#: apps/marketing/src/app/(marketing)/open/page.tsx:251 msgid "GitHub: Total Open Issues" msgstr "GitHub: Total Open Issues" -#: apps/marketing/src/app/(marketing)/open/page.tsx:224 +#: apps/marketing/src/app/(marketing)/open/page.tsx:225 msgid "GitHub: Total Stars" msgstr "GitHub: Total Stars" @@ -257,7 +257,7 @@ msgstr "GitHub: Total Stars" msgid "Global Salary Bands" msgstr "Global Salary Bands" -#: apps/marketing/src/app/(marketing)/open/page.tsx:260 +#: apps/marketing/src/app/(marketing)/open/page.tsx:261 msgid "Growth" msgstr "Growth" @@ -281,7 +281,7 @@ msgstr "Integrated payments with Stripe so you don’t have to worry about getti msgid "Integrates with all your favourite tools." msgstr "Integrates with all your favourite tools." -#: apps/marketing/src/app/(marketing)/open/page.tsx:288 +#: apps/marketing/src/app/(marketing)/open/page.tsx:289 msgid "Is there more?" msgstr "Is there more?" @@ -305,11 +305,11 @@ msgstr "Location" msgid "Make it your own through advanced customization and adjustability." msgstr "Make it your own through advanced customization and adjustability." -#: apps/marketing/src/app/(marketing)/open/page.tsx:198 +#: apps/marketing/src/app/(marketing)/open/page.tsx:199 msgid "Merged PR's" msgstr "Merged PR's" -#: apps/marketing/src/app/(marketing)/open/page.tsx:233 +#: apps/marketing/src/app/(marketing)/open/page.tsx:234 msgid "Merged PRs" msgstr "Merged PRs" @@ -340,8 +340,8 @@ msgstr "No Credit Card required" msgid "None of these work for you? Try self-hosting!" msgstr "None of these work for you? Try self-hosting!" -#: apps/marketing/src/app/(marketing)/open/page.tsx:193 -#: apps/marketing/src/app/(marketing)/open/page.tsx:251 +#: apps/marketing/src/app/(marketing)/open/page.tsx:194 +#: apps/marketing/src/app/(marketing)/open/page.tsx:252 msgid "Open Issues" msgstr "Open Issues" @@ -349,7 +349,7 @@ msgstr "Open Issues" msgid "Open Source or Hosted." msgstr "Open Source or Hosted." -#: apps/marketing/src/app/(marketing)/open/page.tsx:160 +#: apps/marketing/src/app/(marketing)/open/page.tsx:161 #: apps/marketing/src/components/(marketing)/footer.tsx:37 #: apps/marketing/src/components/(marketing)/header.tsx:64 #: apps/marketing/src/components/(marketing)/mobile-navigation.tsx:40 @@ -461,7 +461,7 @@ msgstr "Smart." msgid "Star on GitHub" msgstr "Star on GitHub" -#: apps/marketing/src/app/(marketing)/open/page.tsx:225 +#: apps/marketing/src/app/(marketing)/open/page.tsx:226 msgid "Stars" msgstr "Stars" @@ -496,7 +496,7 @@ msgstr "Template Store (Soon)." msgid "That's awesome. You can take a look at the current <0>Issues and join our <1>Discord Community to keep up to date, on what the current priorities are. In any case, we are an open community and welcome all input, technical and non-technical ❤️" msgstr "That's awesome. You can take a look at the current <0>Issues and join our <1>Discord Community to keep up to date, on what the current priorities are. In any case, we are an open community and welcome all input, technical and non-technical ❤️" -#: apps/marketing/src/app/(marketing)/open/page.tsx:292 +#: apps/marketing/src/app/(marketing)/open/page.tsx:293 msgid "This page is evolving as we learn what makes a great signing company. We'll update it when we have more to share." msgstr "This page is evolving as we learn what makes a great signing company. We'll update it when we have more to share." @@ -509,8 +509,8 @@ msgstr "Title" msgid "Total Completed Documents" msgstr "Total Completed Documents" -#: apps/marketing/src/app/(marketing)/open/page.tsx:266 #: apps/marketing/src/app/(marketing)/open/page.tsx:267 +#: apps/marketing/src/app/(marketing)/open/page.tsx:268 msgid "Total Customers" msgstr "Total Customers" diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index 8670f6880..aff8343a3 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -59,7 +59,7 @@ msgstr "{0, plural, one {<0>You have <1>1 pending team invitation} other msgid "{0, plural, one {1 Recipient} other {# Recipients}}" msgstr "{0, plural, one {1 Recipient} other {# Recipients}}" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:230 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:235 msgid "{0, plural, one {Waiting on 1 recipient} other {Waiting on # recipients}}" msgstr "{0, plural, one {Waiting on 1 recipient} other {Waiting on # recipients}}" @@ -79,7 +79,7 @@ msgstr "{0} document" msgid "{0} of {1} documents remaining this month." msgstr "{0} of {1} documents remaining this month." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:170 msgid "{0} Recipient(s)" msgstr "{0} Recipient(s)" @@ -156,7 +156,7 @@ msgstr "A confirmation email has been sent, and it should arrive in your inbox s msgid "A device capable of accessing, opening, and reading documents" msgstr "A device capable of accessing, opening, and reading documents" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:207 msgid "A draft document will be created" msgstr "A draft document will be created" @@ -215,24 +215,34 @@ msgstr "Acceptance and Consent" msgid "Accepted team invitation" msgstr "Accepted team invitation" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:128 +msgid "Account Authentication" +msgstr "Account Authentication" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:48 msgid "Account deleted" msgstr "Account deleted" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:119 +msgid "Account Re-Authentication" +msgstr "Account Re-Authentication" + #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 msgid "Acknowledgment" msgstr "Acknowledgment" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:105 -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:104 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:121 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:108 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:100 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:123 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:164 #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:118 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:46 msgid "Action" msgstr "Action" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:85 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:181 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:133 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:142 @@ -256,11 +266,11 @@ msgid "Add" msgstr "Add" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:176 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:88 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:88 msgid "Add all relevant fields for each recipient." msgstr "Add all relevant fields for each recipient." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Add all relevant placeholders for each recipient." @@ -277,7 +287,7 @@ msgid "Add email" msgstr "Add email" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:87 msgid "Add Fields" msgstr "Add Fields" @@ -290,7 +300,7 @@ msgstr "Add more" msgid "Add passkey" msgstr "Add passkey" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Add Placeholders" @@ -310,7 +320,7 @@ msgstr "Add team email" msgid "Add the people who will sign the document." msgstr "Add the people who will sign the document." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:209 msgid "Add the recipients to create the document with" msgstr "Add the recipients to create the document with" @@ -358,6 +368,10 @@ msgstr "All inserted signatures will be voided" msgid "All recipients will be notified" msgstr "All recipients will be notified" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:62 +msgid "All signing links have been copied to your clipboard." +msgstr "All signing links have been copied to your clipboard." + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:57 msgid "All templates" msgstr "All templates" @@ -410,8 +424,8 @@ msgid "An error occurred" msgstr "An error occurred" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:268 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:201 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:235 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:201 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:235 msgid "An error occurred while adding signers." msgstr "An error occurred while adding signers." @@ -419,7 +433,7 @@ msgstr "An error occurred while adding signers." msgid "An error occurred while adding the fields." msgstr "An error occurred while adding the fields." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:165 msgid "An error occurred while creating document from template." msgstr "An error occurred while creating document from template." @@ -432,9 +446,9 @@ msgid "An error occurred while disabling direct link signing." msgstr "An error occurred while disabling direct link signing." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:64 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:89 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:92 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:76 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:105 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:107 msgid "An error occurred while downloading your document." msgstr "An error occurred while downloading your document." @@ -503,7 +517,7 @@ msgid "An error occurred while trying to create a checkout session." msgstr "An error occurred while trying to create a checkout session." #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "An error occurred while updating the document settings." @@ -566,6 +580,14 @@ msgstr "An unknown error occurred" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 +msgid "Any Source" +msgstr "Any Source" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 +msgid "Any Status" +msgstr "Any Status" + #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:22 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:42 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:56 @@ -582,7 +604,7 @@ msgstr "App Version" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:89 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:120 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:144 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:146 #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:125 msgid "Approve" msgstr "Approve" @@ -591,7 +613,7 @@ msgstr "Approve" msgid "Approve Document" msgstr "Approve Document" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:85 msgid "Approved" msgstr "Approved" @@ -621,10 +643,14 @@ msgstr "Are you sure?" 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/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:127 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:130 msgid "Audit Log" msgstr "Audit Log" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:198 +msgid "Authentication Level" +msgstr "Authentication Level" + #: apps/web/src/app/(recipient)/d/[token]/signing-auth-page.tsx:41 #: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:52 msgid "Authentication required" @@ -683,9 +709,14 @@ msgid "Billing" msgstr "Billing" #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:99 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:48 msgid "Browser" msgstr "Browser" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:145 +msgid "Bulk Copy" +msgstr "Bulk Copy" + #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:279 msgid "Bulk Import" msgstr "Bulk Import" @@ -800,6 +831,7 @@ msgstr "Click here to get started" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:78 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:118 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:68 #: apps/web/src/components/document/document-history-sheet.tsx:133 msgid "Click here to retry" msgstr "Click here to retry" @@ -821,10 +853,11 @@ msgid "Click to insert field" msgstr "Click to insert field" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:126 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:125 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:138 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:121 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:140 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:180 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:102 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:319 @@ -851,6 +884,7 @@ msgstr "Complete Signing" msgid "Complete Viewing" msgstr "Complete Viewing" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:62 #: apps/web/src/components/formatter/document-status.tsx:28 msgid "Completed" @@ -868,7 +902,7 @@ msgstr "Completed Documents" msgid "Configure general settings for the document." msgstr "Configure general settings for the document." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Configure general settings for the template." @@ -932,14 +966,25 @@ msgstr "Continue" msgid "Continue to login" msgstr "Continue to login" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:128 +msgid "Copied" +msgstr "Copied" + +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:133 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:77 #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:31 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:163 #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:40 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:61 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:117 #: apps/web/src/components/forms/public-profile-form.tsx:117 msgid "Copied to clipboard" msgstr "Copied to clipboard" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:123 +msgid "Copy" +msgstr "Copy" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:169 msgid "Copy sharable link" msgstr "Copy sharable link" @@ -948,6 +993,10 @@ msgstr "Copy sharable link" msgid "Copy Shareable Link" msgstr "Copy Shareable Link" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:83 +msgid "Copy Signing Links" +msgstr "Copy Signing Links" + #: apps/web/src/components/forms/token.tsx:288 msgid "Copy token" msgstr "Copy token" @@ -970,15 +1019,15 @@ msgstr "Create a team to collaborate with your team members." msgid "Create account" msgstr "Create account" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:351 msgid "Create and send" msgstr "Create and send" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:353 msgid "Create as draft" msgstr "Create as draft" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:37 msgid "Create Direct Link" msgstr "Create Direct Link" @@ -986,7 +1035,7 @@ msgstr "Create Direct Link" msgid "Create Direct Signing Link" msgstr "Create Direct Signing Link" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Create document from template" msgstr "Create document from template" @@ -1035,12 +1084,15 @@ msgstr "Create your account and start using state-of-the-art document signing. O #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:34 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:274 msgid "Created" msgstr "Created" #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:35 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:111 msgid "Created At" msgstr "Created At" @@ -1102,14 +1154,14 @@ msgstr "Declined team invitation" msgid "delete" msgstr "delete" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:141 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:187 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:144 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:189 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:200 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:177 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:211 #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:83 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:100 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:91 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:94 #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:90 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 @@ -1181,6 +1233,7 @@ msgid "Delete your account and all its contents, including completed documents. 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/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:41 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:97 msgid "Deleted" msgstr "Deleted" @@ -1188,7 +1241,12 @@ msgstr "Deleted" msgid "Deleting account..." msgstr "Deleting account..." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:178 +msgid "Details" +msgstr "Details" + #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:75 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:234 msgid "Device" msgstr "Device" @@ -1197,10 +1255,16 @@ msgstr "Device" msgid "direct link" msgstr "direct link" -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:76 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:40 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:79 msgid "Direct link" msgstr "Direct link" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:160 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:231 +msgid "Direct Link" +msgstr "Direct Link" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:46 msgid "direct link disabled" msgstr "direct link disabled" @@ -1269,6 +1333,7 @@ msgid "Documenso will delete <0>all of your documents, along with all of you 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/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:119 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:38 msgid "Document" msgstr "Document" @@ -1292,12 +1357,20 @@ msgstr "Document completed" msgid "Document Completed!" msgstr "Document Completed!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:154 msgid "Document created" msgstr "Document created" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:129 +msgid "Document created by <0>{0}" +msgstr "Document created by <0>{0}" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:134 +msgid "Document created using a <0>direct link" +msgstr "Document created using a <0>direct link" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:173 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:178 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:59 msgid "Document deleted" msgstr "Document deleted" @@ -1310,12 +1383,13 @@ msgstr "Document draft" msgid "Document Duplicated" msgstr "Document Duplicated" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:184 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:189 #: apps/web/src/components/document/document-history-sheet.tsx:104 msgid "Document history" msgstr "Document history" #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:71 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:81 msgid "Document ID" msgstr "Document ID" @@ -1389,7 +1463,7 @@ msgstr "Document will be permanently deleted" #: apps/web/src/app/(dashboard)/admin/nav.tsx:65 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:92 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:139 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:144 #: apps/web/src/app/(dashboard)/documents/[id]/edit/document-edit-page-view.tsx:109 #: apps/web/src/app/(dashboard)/documents/[id]/loading.tsx:16 #: apps/web/src/app/(dashboard)/documents/[id]/sent/page.tsx:15 @@ -1403,6 +1477,10 @@ msgstr "Document will be permanently deleted" msgid "Documents" msgstr "Documents" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:195 +msgid "Documents created from template" +msgstr "Documents created from template" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:113 msgid "Documents Received" msgstr "Documents Received" @@ -1417,9 +1495,9 @@ msgid "Don't have an account? <0>Sign up" msgstr "Don't have an account? <0>Sign up" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:111 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:120 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:123 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:141 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:160 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:162 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:110 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:185 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:107 @@ -1434,6 +1512,7 @@ msgstr "Download Audit Logs" msgid "Download Certificate" msgstr "Download Certificate" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:214 #: apps/web/src/components/formatter/document-status.tsx:34 msgid "Draft" msgstr "Draft" @@ -1450,27 +1529,31 @@ msgstr "Drafted Documents" msgid "Due to an unpaid invoice, your team has been restricted. Please settle the payment to restore full access to your team." msgstr "Due to an unpaid invoice, your team has been restricted. Please settle the payment to restore full access to your team." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:133 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:136 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:167 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:85 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:118 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:71 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:74 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:91 msgid "Duplicate" msgstr "Duplicate" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:104 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:112 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:115 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:102 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:154 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:156 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:111 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:95 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:62 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:65 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:77 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:100 msgid "Edit" msgstr "Edit" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:115 +msgid "Edit Template" +msgstr "Edit Template" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:94 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:100 msgid "Edit webhook" @@ -1487,8 +1570,10 @@ msgstr "Electronic Signature Disclosure" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:166 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:114 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:71 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:248 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:254 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:261 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:122 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:129 #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:118 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:126 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 @@ -1558,6 +1643,10 @@ msgstr "Enable Direct Link Signing" msgid "Enabled" msgstr "Enabled" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:87 +msgid "Enclosed Document" +msgstr "Enclosed Document" + #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:38 msgid "Ends On" msgstr "Ends On" @@ -1587,12 +1676,12 @@ msgstr "Enter your text here" #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57 #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106 #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:112 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:169 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:200 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:169 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:234 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:51 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:56 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:151 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:212 @@ -1681,7 +1770,7 @@ msgid "Full Name" msgstr "Full Name" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:77 #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60 #: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43 #: apps/web/src/components/(teams)/settings/layout/mobile-nav.tsx:51 @@ -1732,7 +1821,7 @@ msgstr "Here's how it works:" msgid "Hey I’m Timur" msgstr "Hey I’m Timur" -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:187 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:189 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:200 #: apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx:155 msgid "Hide" @@ -1742,6 +1831,10 @@ msgstr "Hide" msgid "Hide additional information" msgstr "Hide additional information" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:43 +msgid "I am the owner of this document" +msgstr "I am the owner of this document" + #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:186 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:173 msgid "I'm sure! Delete it" @@ -1772,6 +1865,7 @@ msgid "Inbox documents" msgstr "Inbox documents" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:53 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:50 msgid "Information" msgstr "Information" @@ -1845,6 +1939,11 @@ msgstr "Invited At" msgid "Invoice" msgstr "Invoice" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:47 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:227 +msgid "IP Address" +msgstr "IP Address" + #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:118 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." @@ -1886,6 +1985,7 @@ msgid "Last 7 days" msgstr "Last 7 days" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:41 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:38 msgid "Last modified" msgstr "Last modified" @@ -1893,6 +1993,10 @@ msgstr "Last modified" msgid "Last updated" msgstr "Last updated" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:121 +msgid "Last Updated" +msgstr "Last Updated" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:52 msgid "Last updated at" msgstr "Last updated at" @@ -1976,11 +2080,15 @@ msgstr "Manage {0}'s profile" msgid "Manage all teams you are currently associated with." msgstr "Manage all teams you are currently associated with." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:159 +msgid "Manage and view template" +msgstr "Manage and view template" + #: apps/web/src/components/templates/manage-public-template-dialog.tsx:341 msgid "Manage details for this public template" msgstr "Manage details for this public template" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:33 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 msgid "Manage Direct Link" msgstr "Manage Direct Link" @@ -2055,7 +2163,8 @@ msgstr "Member Since" msgid "Members" msgstr "Members" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:46 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:35 msgid "Modify recipients" msgstr "Modify recipients" @@ -2084,8 +2193,8 @@ msgstr "Move Document to Team" msgid "Move Template to Team" msgstr "Move Template to Team" -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:172 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:82 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:174 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:85 msgid "Move to Team" msgstr "Move to Team" @@ -2104,8 +2213,8 @@ msgstr "My templates" #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:61 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:270 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:277 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:276 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:283 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:119 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:170 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:153 @@ -2161,7 +2270,13 @@ msgstr "No public profile templates found" msgid "No recent activity" msgstr "No recent activity" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:55 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:103 +msgid "No recent documents" +msgstr "No recent documents" + +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:61 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:49 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:96 msgid "No recipients" msgstr "No recipients" @@ -2256,11 +2371,12 @@ msgstr "Or" msgid "Or continue with" msgstr "Or continue with" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:330 msgid "Otherwise, the document will be created as a draft." msgstr "Otherwise, the document will be created as a draft." #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:86 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:103 #: apps/web/src/components/(dashboard)/layout/menu-switcher.tsx:81 #: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:86 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:109 @@ -2295,6 +2411,10 @@ msgstr "Passkey has been updated" msgid "Passkey name" msgstr "Passkey name" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:121 +msgid "Passkey Re-Authentication" +msgstr "Passkey Re-Authentication" + #: apps/web/src/app/(dashboard)/settings/security/page.tsx:106 #: apps/web/src/app/(dashboard)/settings/security/passkeys/page.tsx:32 msgid "Passkeys" @@ -2335,9 +2455,11 @@ msgstr "Payment is required to finalise the creation of your team." msgid "Payment overdue" msgstr "Payment overdue" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:115 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:122 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:211 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 +#: apps/web/src/components/document/document-read-only-fields.tsx:89 #: apps/web/src/components/formatter/document-status.tsx:22 msgid "Pending" msgstr "Pending" @@ -2524,10 +2646,14 @@ msgstr "Read only field" msgid "Read the full <0>signature disclosure." msgstr "Read the full <0>signature disclosure." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:97 msgid "Ready" msgstr "Ready" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:281 +msgid "Reason" +msgstr "Reason" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:62 msgid "Reauthentication is required to sign this field" msgstr "Reauthentication is required to sign this field" @@ -2537,7 +2663,12 @@ msgstr "Reauthentication is required to sign this field" msgid "Recent activity" msgstr "Recent activity" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:47 +msgid "Recent documents" +msgstr "Recent documents" + #: apps/web/src/app/(dashboard)/documents/data-table.tsx:69 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:120 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:280 msgid "Recipient" msgstr "Recipient" @@ -2547,7 +2678,9 @@ msgid "Recipient updated" msgstr "Recipient updated" #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:66 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:34 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:30 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:139 msgid "Recipients" msgstr "Recipients" @@ -2775,7 +2908,7 @@ msgstr "Select passkey" msgid "Send confirmation email" msgstr "Send confirmation email" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:314 msgid "Send document" msgstr "Send document" @@ -2795,7 +2928,8 @@ msgstr "Sending Reset Email..." msgid "Sending..." msgstr "Sending..." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:85 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:92 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:248 msgid "Sent" msgstr "Sent" @@ -2814,13 +2948,13 @@ msgstr "Settings" msgid "Setup" msgstr "Setup" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:145 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:191 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:148 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:193 msgid "Share" msgstr "Share" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:161 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:203 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:179 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:219 msgid "Share Signing Card" msgstr "Share Signing Card" @@ -2842,7 +2976,7 @@ msgstr "Show templates in your team public profile for your audience to sign and #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:83 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:114 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:137 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:139 #: apps/web/src/app/(profile)/p/[url]/page.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:182 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:224 @@ -2918,6 +3052,7 @@ msgid "Sign Up with OIDC" msgstr "Sign Up with OIDC" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:177 #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:338 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195 @@ -2928,6 +3063,10 @@ msgstr "Sign Up with OIDC" msgid "Signature" msgstr "Signature" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:220 +msgid "Signature ID" +msgstr "Signature ID" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:123 msgid "Signatures Collected" msgstr "Signatures Collected" @@ -2936,15 +3075,34 @@ msgstr "Signatures Collected" msgid "Signatures will appear once the document has been completed" msgstr "Signatures will appear once the document has been completed" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:98 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:105 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:270 +#: apps/web/src/components/document/document-read-only-fields.tsx:84 msgid "Signed" msgstr "Signed" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:176 +msgid "Signer Events" +msgstr "Signer Events" + +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:168 +msgid "Signing Certificate" +msgstr "Signing Certificate" + +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:303 +msgid "Signing certificate provided by" +msgstr "Signing certificate provided by" + #: apps/web/src/components/forms/signin.tsx:383 #: apps/web/src/components/forms/signin.tsx:510 msgid "Signing in..." msgstr "Signing in..." +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:160 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:203 +msgid "Signing Links" +msgstr "Signing Links" + #: apps/web/src/components/forms/signup.tsx:235 msgid "Signing up..." msgstr "Signing up..." @@ -2969,11 +3127,11 @@ msgstr "Site Settings" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:105 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:63 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:88 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:91 #: apps/web/src/app/(dashboard)/documents/[id]/logs/download-audit-log-button.tsx:65 #: apps/web/src/app/(dashboard)/documents/[id]/logs/download-certificate-button.tsx:66 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:75 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:104 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:106 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:80 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:72 #: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:62 @@ -3042,6 +3200,10 @@ msgstr "Sorry, we were unable to download the audit logs. Please try again later 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/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:138 +msgid "Source" +msgstr "Source" + #: apps/web/src/app/(dashboard)/admin/nav.tsx:37 msgid "Stats" msgstr "Stats" @@ -3049,11 +3211,13 @@ msgstr "Stats" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:130 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:93 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" msgstr "Status" -#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:128 +#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:129 msgid "Subscribe" msgstr "Subscribe" @@ -3227,6 +3391,11 @@ msgstr "Teams" msgid "Teams restricted" msgstr "Teams restricted" +#: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:63 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:148 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:228 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:146 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:271 msgid "Template" @@ -3256,11 +3425,11 @@ msgstr "Template has been updated." msgid "Template moved" msgstr "Template moved" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:223 msgid "Template saved" msgstr "Template saved" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:87 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:208 #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 @@ -3307,7 +3476,7 @@ msgstr "The document has been successfully moved to the selected team." 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." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:171 msgid "The document was created but could not be sent to recipients." msgstr "The document was created but could not be sent to recipients." @@ -3315,7 +3484,7 @@ msgstr "The document was created but could not be sent to recipients." msgid "The document will be hidden from your account" msgstr "The document will be hidden from your account" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:322 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." @@ -3357,7 +3526,9 @@ msgstr "The recipient has been updated successfully" msgid "The selected team member will receive an email which they must accept before the team is transferred" msgstr "The selected team member will receive an email which they must accept before the team is transferred" +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:134 #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:41 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:118 msgid "The signing link has been copied to your clipboard." msgstr "The signing link has been copied to your clipboard." @@ -3458,14 +3629,22 @@ msgstr "This document has been cancelled by the owner and is no longer available msgid "This document has been cancelled by the owner." msgstr "This document has been cancelled by the owner." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:219 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:224 msgid "This document has been signed by all recipients" msgstr "This document has been signed by all recipients" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:222 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:227 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/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:152 +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/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:164 +msgid "This document was created using a direct link." +msgstr "This document was created using a direct link." + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." msgstr "This email is already being used by another team." @@ -3523,7 +3702,8 @@ msgstr "This username has already been taken" msgid "This username is already taken" msgstr "This username is already taken" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:77 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:73 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:44 msgid "Time" msgstr "Time" @@ -3531,8 +3711,13 @@ msgstr "Time" msgid "Time zone" msgstr "Time zone" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:131 +msgid "Time Zone" +msgstr "Time Zone" + #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 msgid "Title" msgstr "Title" @@ -3678,6 +3863,10 @@ msgstr "Two-factor authentication enabled" 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/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:120 +msgid "Two-Factor Re-Authentication" +msgstr "Two-Factor Re-Authentication" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:73 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:67 msgid "Type" @@ -3736,6 +3925,10 @@ msgstr "Unable to join this team at this time." msgid "Unable to load document history" msgstr "Unable to load document history" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:62 +msgid "Unable to load documents" +msgstr "Unable to load documents" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:111 msgid "Unable to load your public profile templates at this time" msgstr "Unable to load your public profile templates at this time" @@ -3779,6 +3972,13 @@ msgstr "Unauthorized" msgid "Uncompleted" msgstr "Uncompleted" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:229 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:254 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:265 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:276 +msgid "Unknown" +msgstr "Unknown" + #: apps/web/src/app/(teams)/t/[teamUrl]/error.tsx:23 msgid "Unknown error" msgstr "Unknown error" @@ -3860,6 +4060,7 @@ msgid "Upload Avatar" msgstr "Upload Avatar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:31 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:30 msgid "Uploaded by" msgstr "Uploaded by" @@ -3875,6 +4076,10 @@ msgstr "Uploaded file is too small" msgid "Uploaded file not an allowed file type" msgstr "Uploaded file not an allowed file type" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:170 +msgid "Use" +msgstr "Use" + #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187 #: apps/web/src/components/forms/signin.tsx:505 msgid "Use Authenticator" @@ -3885,11 +4090,12 @@ msgstr "Use Authenticator" msgid "Use Backup Code" msgstr "Use Backup Code" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:196 msgid "Use Template" msgstr "Use Template" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:82 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:78 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:45 msgid "User" msgstr "User" @@ -3937,10 +4143,14 @@ msgstr "Verify your email address to unlock all features." msgid "Verify your email to upload documents." msgstr "Verify your email to upload documents." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:75 +msgid "Version History" +msgstr "Version History" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:95 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:126 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:135 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:130 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:132 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:100 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:168 msgid "View" @@ -3958,6 +4168,10 @@ msgstr "View all documents sent to your account" msgid "View all recent security activity related to your account." msgstr "View all recent security activity related to your account." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:157 +msgid "View all related documents" +msgstr "View all related documents" + #: apps/web/src/app/(dashboard)/settings/security/activity/page.tsx:26 msgid "View all security activity related to your account." msgstr "View all security activity related to your account." @@ -3978,6 +4192,10 @@ msgstr "View documents associated with this email" msgid "View invites" msgstr "View invites" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:95 +msgid "View more" +msgstr "View more" + #: apps/web/src/app/(signing)/sign/[token]/complete/document-preview-button.tsx:34 msgid "View Original Document" msgstr "View Original Document" @@ -3991,7 +4209,8 @@ msgstr "View Recovery Codes" msgid "View teams" msgstr "View teams" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:104 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:111 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:259 msgid "Viewed" msgstr "Viewed" @@ -4292,6 +4511,7 @@ msgid "Yearly" msgstr "Yearly" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:32 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:31 msgid "You" msgstr "You" @@ -4359,6 +4579,10 @@ msgstr "You can choose to enable or disable your team profile for public view." msgid "You can claim your profile later on by going to your profile settings!" msgstr "You can claim your profile later on by going to your profile settings!" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:87 +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/web/src/components/forms/public-profile-form.tsx:154 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." @@ -4525,7 +4749,7 @@ msgstr "Your direct signing templates" msgid "Your document failed to upload." msgstr "Your document failed to upload." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:155 msgid "Your document has been created from the template successfully." msgstr "Your document has been created from the template successfully." @@ -4624,7 +4848,7 @@ msgstr "Your template has been successfully deleted." msgid "Your template will be duplicated." msgstr "Your template will be duplicated." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Your templates has been saved successfully." diff --git a/packages/lib/translations/es/common.po b/packages/lib/translations/es/common.po index a4501f145..de84d425a 100644 --- a/packages/lib/translations/es/common.po +++ b/packages/lib/translations/es/common.po @@ -8,7 +8,7 @@ msgstr "" "Language: es\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -96,6 +96,90 @@ msgstr "{memberEmail} se unió al siguiente equipo" msgid "{memberEmail} left the following team" msgstr "{memberEmail} dejó el siguiente equipo" +#: packages/lib/utils/document-audit-logs.ts:263 +msgid "{prefix} added a field" +msgstr "{prefix} agregó un campo" + +#: packages/lib/utils/document-audit-logs.ts:275 +msgid "{prefix} added a recipient" +msgstr "{prefix} agregó un destinatario" + +#: packages/lib/utils/document-audit-logs.ts:287 +msgid "{prefix} created the document" +msgstr "{prefix} creó el documento" + +#: packages/lib/utils/document-audit-logs.ts:291 +msgid "{prefix} deleted the document" +msgstr "{prefix} eliminó el documento" + +#: packages/lib/utils/document-audit-logs.ts:335 +msgid "{prefix} moved the document to team" +msgstr "{prefix} movió el documento al equipo" + +#: packages/lib/utils/document-audit-logs.ts:319 +msgid "{prefix} opened the document" +msgstr "{prefix} abrió el documento" + +#: packages/lib/utils/document-audit-logs.ts:267 +msgid "{prefix} removed a field" +msgstr "{prefix} eliminó un campo" + +#: packages/lib/utils/document-audit-logs.ts:279 +msgid "{prefix} removed a recipient" +msgstr "{prefix} eliminó un destinatario" + +#: packages/lib/utils/document-audit-logs.ts:355 +msgid "{prefix} resent an email to {0}" +msgstr "{prefix} reenviaron un correo electrónico a {0}" + +#: packages/lib/utils/document-audit-logs.ts:356 +msgid "{prefix} sent an email to {0}" +msgstr "{prefix} envió un correo electrónico a {0}" + +#: packages/lib/utils/document-audit-logs.ts:331 +msgid "{prefix} sent the document" +msgstr "{prefix} envió el documento" + +#: packages/lib/utils/document-audit-logs.ts:295 +msgid "{prefix} signed a field" +msgstr "{prefix} firmó un campo" + +#: packages/lib/utils/document-audit-logs.ts:299 +msgid "{prefix} unsigned a field" +msgstr "{prefix} no firmó un campo" + +#: packages/lib/utils/document-audit-logs.ts:271 +msgid "{prefix} updated a field" +msgstr "{prefix} actualizó un campo" + +#: packages/lib/utils/document-audit-logs.ts:283 +msgid "{prefix} updated a recipient" +msgstr "{prefix} actualizó un destinatario" + +#: packages/lib/utils/document-audit-logs.ts:315 +msgid "{prefix} updated the document" +msgstr "{prefix} actualizó el documento" + +#: packages/lib/utils/document-audit-logs.ts:307 +msgid "{prefix} updated the document access auth requirements" +msgstr "{prefix} actualizó los requisitos de autorización de acceso al documento" + +#: packages/lib/utils/document-audit-logs.ts:327 +msgid "{prefix} updated the document external ID" +msgstr "{prefix} actualizó el ID externo del documento" + +#: packages/lib/utils/document-audit-logs.ts:311 +msgid "{prefix} updated the document signing auth requirements" +msgstr "{prefix} actualizó los requisitos de autenticación para la firma del documento" + +#: packages/lib/utils/document-audit-logs.ts:323 +msgid "{prefix} updated the document title" +msgstr "{prefix} actualizó el título del documento" + +#: packages/lib/utils/document-audit-logs.ts:303 +msgid "{prefix} updated the document visibility" +msgstr "{prefix} actualizó la visibilidad del documento" + #: packages/email/templates/document-created-from-direct-template.tsx:55 msgid "{recipientName} {action} a document by using one of your direct links" msgstr "{recipientName} {action} un documento utilizando uno de tus enlaces directos" @@ -104,6 +188,26 @@ msgstr "{recipientName} {action} un documento utilizando uno de tus enlaces dire msgid "{teamName} ownership transfer request" msgstr "solicitud de transferencia de propiedad de {teamName}" +#: packages/lib/utils/document-audit-logs.ts:343 +msgid "{userName} approved the document" +msgstr "{userName} aprobó el documento" + +#: packages/lib/utils/document-audit-logs.ts:344 +msgid "{userName} CC'd the document" +msgstr "{userName} envió una copia del documento" + +#: packages/lib/utils/document-audit-logs.ts:345 +msgid "{userName} completed their task" +msgstr "{userName} completó su tarea" + +#: packages/lib/utils/document-audit-logs.ts:341 +msgid "{userName} signed the document" +msgstr "{userName} firmó el documento" + +#: packages/lib/utils/document-audit-logs.ts:342 +msgid "{userName} viewed the document" +msgstr "{userName} vio el documento" + #: packages/ui/primitives/data-table-pagination.tsx:41 msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" msgstr "{visibleRows, plural, one {Mostrando # resultado.} other {Mostrando # resultados.}}" @@ -150,10 +254,34 @@ msgstr "<0>Requerir clave de acceso - El destinatario debe tener una cuenta msgid "A document was created by your direct template that requires you to {recipientActionVerb} it." msgstr "Se creó un documento a partir de tu plantilla directa que requiere que {recipientActionVerb}." +#: packages/lib/utils/document-audit-logs.ts:262 +msgid "A field was added" +msgstr "Se añadió un campo" + +#: packages/lib/utils/document-audit-logs.ts:266 +msgid "A field was removed" +msgstr "Se eliminó un campo" + +#: packages/lib/utils/document-audit-logs.ts:270 +msgid "A field was updated" +msgstr "Se actualizó un campo" + #: packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts:90 msgid "A new member has joined your team" msgstr "Un nuevo miembro se ha unido a tu equipo" +#: packages/lib/utils/document-audit-logs.ts:274 +msgid "A recipient was added" +msgstr "Se añadió un destinatario" + +#: packages/lib/utils/document-audit-logs.ts:278 +msgid "A recipient was removed" +msgstr "Se eliminó un destinatario" + +#: packages/lib/utils/document-audit-logs.ts:282 +msgid "A recipient was updated" +msgstr "Se actualizó un destinatario" + #: packages/lib/server-only/team/create-team-email-verification.ts:142 msgid "A request to use your email has been initiated by {teamName} on Documenso" msgstr "Se ha iniciado una solicitud para utilizar tu correo electrónico por {teamName} en Documenso" @@ -368,6 +496,7 @@ msgstr "Cerrar" #: packages/email/template-components/template-document-completed.tsx:35 #: packages/email/template-components/template-document-self-signed.tsx:36 +#: packages/lib/constants/document.ts:10 msgid "Completed" msgstr "Completado" @@ -450,10 +579,24 @@ msgstr "Receptor de enlace directo" msgid "Document access" msgstr "Acceso al documento" +#: packages/lib/utils/document-audit-logs.ts:306 +msgid "Document access auth updated" +msgstr "Se actualizó la autenticación de acceso al documento" + +#: packages/lib/server-only/document/delete-document.ts:213 #: packages/lib/server-only/document/super-delete-document.ts:75 msgid "Document Cancelled" msgstr "Documento cancelado" +#: packages/lib/utils/document-audit-logs.ts:359 +#: packages/lib/utils/document-audit-logs.ts:360 +msgid "Document completed" +msgstr "Documento completado" + +#: packages/lib/utils/document-audit-logs.ts:286 +msgid "Document created" +msgstr "Documento creado" + #: packages/email/templates/document-created-from-direct-template.tsx:30 #: packages/lib/server-only/template/create-document-from-direct-template.ts:554 msgid "Document created from direct template" @@ -463,15 +606,55 @@ msgstr "Documento creado a partir de plantilla directa" msgid "Document Creation" msgstr "Creación de documento" +#: packages/lib/utils/document-audit-logs.ts:290 +msgid "Document deleted" +msgstr "Documento eliminado" + #: packages/lib/server-only/document/send-delete-email.ts:58 msgid "Document Deleted!" msgstr "¡Documento eliminado!" +#: packages/lib/utils/document-audit-logs.ts:326 +msgid "Document external ID updated" +msgstr "ID externo del documento actualizado" + +#: packages/lib/utils/document-audit-logs.ts:334 +msgid "Document moved to team" +msgstr "Documento movido al equipo" + +#: packages/lib/utils/document-audit-logs.ts:318 +msgid "Document opened" +msgstr "Documento abierto" + +#: packages/lib/utils/document-audit-logs.ts:330 +msgid "Document sent" +msgstr "Documento enviado" + +#: packages/lib/utils/document-audit-logs.ts:310 +msgid "Document signing auth updated" +msgstr "Se actualizó la autenticación de firma del documento" + +#: packages/lib/utils/document-audit-logs.ts:322 +msgid "Document title updated" +msgstr "Título del documento actualizado" + +#: packages/lib/utils/document-audit-logs.ts:314 +msgid "Document updated" +msgstr "Documento actualizado" + +#: packages/lib/utils/document-audit-logs.ts:302 +msgid "Document visibility updated" +msgstr "Visibilidad del documento actualizada" + #: packages/email/template-components/template-document-completed.tsx:64 #: packages/ui/components/document/document-download-button.tsx:68 msgid "Download" msgstr "Descargar" +#: packages/lib/constants/document.ts:13 +msgid "Draft" +msgstr "Borrador" + #: packages/ui/primitives/document-dropzone.tsx:162 msgid "Drag & drop your PDF here." msgstr "Arrastre y suelte su PDF aquí." @@ -504,6 +687,14 @@ msgstr "Se requiere email" msgid "Email Options" msgstr "Opciones de correo electrónico" +#: packages/lib/utils/document-audit-logs.ts:353 +msgid "Email resent" +msgstr "Correo electrónico reeenviado" + +#: packages/lib/utils/document-audit-logs.ts:353 +msgid "Email sent" +msgstr "Correo electrónico enviado" + #: packages/ui/primitives/document-flow/add-fields.tsx:1123 msgid "Empty field" msgstr "Campo vacío" @@ -564,6 +755,14 @@ msgstr "Etiqueta de campo" msgid "Field placeholder" msgstr "Marcador de posición de campo" +#: packages/lib/utils/document-audit-logs.ts:294 +msgid "Field signed" +msgstr "Campo firmado" + +#: packages/lib/utils/document-audit-logs.ts:298 +msgid "Field unsigned" +msgstr "Campo no firmado" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56 #: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38 #: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38 @@ -774,6 +973,10 @@ msgstr "Restablecimiento de contraseña exitoso" msgid "Password updated!" msgstr "¡Contraseña actualizada!" +#: packages/lib/constants/document.ts:16 +msgid "Pending" +msgstr "Pendiente" + #: packages/email/templates/document-pending.tsx:17 msgid "Pending Document" msgstr "Documento pendiente" @@ -841,6 +1044,10 @@ msgstr "Solo lectura" msgid "Receives copy" msgstr "Recibe copia" +#: packages/lib/utils/document-audit-logs.ts:338 +msgid "Recipient" +msgstr "Destinatario" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:39 #: packages/ui/primitives/document-flow/add-settings.tsx:257 #: packages/ui/primitives/template-flow/add-template-settings.tsx:208 @@ -1248,6 +1455,10 @@ msgstr "Hemos cambiado tu contraseña como solicitaste. Ahora puedes iniciar ses msgid "Welcome to Documenso!" msgstr "¡Bienvenido a Documenso!" +#: packages/lib/utils/document-audit-logs.ts:258 +msgid "You" +msgstr "Tú" + #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44 msgid "You are about to send this document to the recipients. Are you sure you want to continue?" msgstr "Está a punto de enviar este documento a los destinatarios. ¿Está seguro de que desea continuar?" @@ -1309,4 +1520,3 @@ msgstr "Tu contraseña ha sido actualizada." #: packages/email/templates/team-delete.tsx:30 msgid "Your team has been deleted" msgstr "Tu equipo ha sido eliminado" - diff --git a/packages/lib/translations/es/marketing.po b/packages/lib/translations/es/marketing.po index 672200726..7e9d39b8f 100644 --- a/packages/lib/translations/es/marketing.po +++ b/packages/lib/translations/es/marketing.po @@ -8,7 +8,7 @@ msgstr "" "Language: es\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -42,7 +42,7 @@ msgstr "Agregar documento" msgid "Add More Users for {0}" msgstr "Agregar más usuarios por {0}" -#: apps/marketing/src/app/(marketing)/open/page.tsx:164 +#: apps/marketing/src/app/(marketing)/open/page.tsx:165 msgid "All our metrics, finances, and learnings are public. We believe in transparency and want to share our journey with you. You can read more about why here: <0>Announcing Open Metrics" msgstr "Todos nuestros métricas, finanzas y aprendizajes son públicos. Creemos en la transparencia y queremos compartir nuestro viaje contigo. Puedes leer más sobre por qué aquí: <0>Anunciando Métricas Abiertas" @@ -90,7 +90,7 @@ msgstr "Registro de cambios" msgid "Choose a template from the community app store. Or submit your own template for others to use." msgstr "Elige una plantilla de la tienda de aplicaciones de la comunidad. O envía tu propia plantilla para que otros la usen." -#: apps/marketing/src/app/(marketing)/open/page.tsx:218 +#: apps/marketing/src/app/(marketing)/open/page.tsx:219 msgid "Community" msgstr "Comunidad" @@ -193,7 +193,7 @@ msgstr "Rápido." msgid "Faster, smarter and more beautiful." msgstr "Más rápido, más inteligente y más hermoso." -#: apps/marketing/src/app/(marketing)/open/page.tsx:209 +#: apps/marketing/src/app/(marketing)/open/page.tsx:210 msgid "Finances" msgstr "Finanzas" @@ -246,15 +246,15 @@ msgstr "Comienza hoy." msgid "Get the latest news from Documenso, including product updates, team announcements and more!" msgstr "¡Obtén las últimas noticias de Documenso, incluidas actualizaciones de productos, anuncios del equipo y más!" -#: apps/marketing/src/app/(marketing)/open/page.tsx:232 +#: apps/marketing/src/app/(marketing)/open/page.tsx:233 msgid "GitHub: Total Merged PRs" msgstr "GitHub: Total de PRs fusionados" -#: apps/marketing/src/app/(marketing)/open/page.tsx:250 +#: apps/marketing/src/app/(marketing)/open/page.tsx:251 msgid "GitHub: Total Open Issues" msgstr "GitHub: Total de problemas abiertos" -#: apps/marketing/src/app/(marketing)/open/page.tsx:224 +#: apps/marketing/src/app/(marketing)/open/page.tsx:225 msgid "GitHub: Total Stars" msgstr "GitHub: Total de estrellas" @@ -262,7 +262,7 @@ msgstr "GitHub: Total de estrellas" msgid "Global Salary Bands" msgstr "Bandas salariales globales" -#: apps/marketing/src/app/(marketing)/open/page.tsx:260 +#: apps/marketing/src/app/(marketing)/open/page.tsx:261 msgid "Growth" msgstr "Crecimiento" @@ -286,7 +286,7 @@ msgstr "Pagos integrados con Stripe para que no tengas que preocuparte por cobra msgid "Integrates with all your favourite tools." msgstr "Se integra con todas tus herramientas favoritas." -#: apps/marketing/src/app/(marketing)/open/page.tsx:288 +#: apps/marketing/src/app/(marketing)/open/page.tsx:289 msgid "Is there more?" msgstr "¿Hay más?" @@ -310,11 +310,11 @@ msgstr "Ubicación" msgid "Make it your own through advanced customization and adjustability." msgstr "Hazlo tuyo a través de personalización y ajustabilidad avanzadas." -#: apps/marketing/src/app/(marketing)/open/page.tsx:198 +#: apps/marketing/src/app/(marketing)/open/page.tsx:199 msgid "Merged PR's" msgstr "PRs fusionados" -#: apps/marketing/src/app/(marketing)/open/page.tsx:233 +#: apps/marketing/src/app/(marketing)/open/page.tsx:234 msgid "Merged PRs" msgstr "PRs fusionados" @@ -345,8 +345,8 @@ msgstr "No se requiere tarjeta de crédito" msgid "None of these work for you? Try self-hosting!" msgstr "¿Ninguna de estas opciones funciona para ti? ¡Prueba el autoalojamiento!" -#: apps/marketing/src/app/(marketing)/open/page.tsx:193 -#: apps/marketing/src/app/(marketing)/open/page.tsx:251 +#: apps/marketing/src/app/(marketing)/open/page.tsx:194 +#: apps/marketing/src/app/(marketing)/open/page.tsx:252 msgid "Open Issues" msgstr "Problemas Abiertos" @@ -354,7 +354,7 @@ msgstr "Problemas Abiertos" msgid "Open Source or Hosted." msgstr "Código Abierto o Alojado." -#: apps/marketing/src/app/(marketing)/open/page.tsx:160 +#: apps/marketing/src/app/(marketing)/open/page.tsx:161 #: apps/marketing/src/components/(marketing)/footer.tsx:37 #: apps/marketing/src/components/(marketing)/header.tsx:64 #: apps/marketing/src/components/(marketing)/mobile-navigation.tsx:40 @@ -466,7 +466,7 @@ msgstr "Inteligente." msgid "Star on GitHub" msgstr "Estrella en GitHub" -#: apps/marketing/src/app/(marketing)/open/page.tsx:225 +#: apps/marketing/src/app/(marketing)/open/page.tsx:226 msgid "Stars" msgstr "Estrellas" @@ -501,7 +501,7 @@ msgstr "Tienda de Plantillas (Pronto)." msgid "That's awesome. You can take a look at the current <0>Issues and join our <1>Discord Community to keep up to date, on what the current priorities are. In any case, we are an open community and welcome all input, technical and non-technical ❤️" msgstr "Eso es increíble. Puedes echar un vistazo a los <0>Problemas actuales y unirte a nuestra <1>Comunidad de Discord para mantenerte al día sobre cuáles son las prioridades actuales. En cualquier caso, somos una comunidad abierta y agradecemos todas las aportaciones, técnicas y no técnicas ❤️" -#: apps/marketing/src/app/(marketing)/open/page.tsx:292 +#: apps/marketing/src/app/(marketing)/open/page.tsx:293 msgid "This page is evolving as we learn what makes a great signing company. We'll update it when we have more to share." msgstr "Esta página está evolucionando a medida que aprendemos lo que hace una gran empresa de firmas. La actualizaremos cuando tengamos más para compartir." @@ -514,8 +514,8 @@ msgstr "Título" msgid "Total Completed Documents" msgstr "Total de Documentos Completados" -#: apps/marketing/src/app/(marketing)/open/page.tsx:266 #: apps/marketing/src/app/(marketing)/open/page.tsx:267 +#: apps/marketing/src/app/(marketing)/open/page.tsx:268 msgid "Total Customers" msgstr "Total de Clientes" @@ -602,4 +602,3 @@ msgstr "Puedes autoalojar Documenso de forma gratuita o usar nuestra versión al #: apps/marketing/src/components/(marketing)/carousel.tsx:272 msgid "Your browser does not support the video tag." msgstr "Tu navegador no soporta la etiqueta de video." - diff --git a/packages/lib/translations/es/web.po b/packages/lib/translations/es/web.po index b2184618e..21e2e6d3c 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -8,7 +8,7 @@ msgstr "" "Language: es\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -64,7 +64,7 @@ msgstr "{0, plural, one {<0>Tienes <1>1 invitación de equipo pendiente} msgid "{0, plural, one {1 Recipient} other {# Recipients}}" msgstr "{0, plural, one {1 Destinatario} other {# Destinatarios}}" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:230 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:235 msgid "{0, plural, one {Waiting on 1 recipient} other {Waiting on # recipients}}" msgstr "{0, plural, one {Esperando 1 destinatario} other {Esperando # destinatarios}}" @@ -84,7 +84,7 @@ msgstr "{0} documento" msgid "{0} of {1} documents remaining this month." msgstr "{0} de {1} documentos restantes este mes." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:170 msgid "{0} Recipient(s)" msgstr "{0} Destinatario(s)" @@ -161,7 +161,7 @@ msgstr "Se ha enviado un correo electrónico de confirmación y debería llegar msgid "A device capable of accessing, opening, and reading documents" msgstr "Un dispositivo capaz de acceder, abrir y leer documentos" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:207 msgid "A draft document will be created" msgstr "Se creará un documento borrador" @@ -220,24 +220,34 @@ msgstr "Aceptación y Consentimiento" msgid "Accepted team invitation" msgstr "Invitación de equipo aceptada" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:128 +msgid "Account Authentication" +msgstr "Autenticación de Cuenta" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:48 msgid "Account deleted" msgstr "Cuenta eliminada" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:119 +msgid "Account Re-Authentication" +msgstr "Re-autenticación de Cuenta" + #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 msgid "Acknowledgment" msgstr "Reconocimiento" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:105 -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:104 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:121 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:108 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:100 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:123 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:164 #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:118 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:46 msgid "Action" msgstr "Acción" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:85 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:181 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:133 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:142 @@ -261,11 +271,11 @@ msgid "Add" msgstr "Agregar" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:176 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:88 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:88 msgid "Add all relevant fields for each recipient." msgstr "Agrega todos los campos relevantes para cada destinatario." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Agrega todos los marcadores de posición relevantes para cada destinatario." @@ -282,7 +292,7 @@ msgid "Add email" msgstr "Agregar correo electrónico" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:87 msgid "Add Fields" msgstr "Agregar Campos" @@ -295,7 +305,7 @@ msgstr "Agregar más" msgid "Add passkey" msgstr "Agregar clave" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Agregar Marcadores de posición" @@ -315,7 +325,7 @@ msgstr "Agregar correo electrónico del equipo" msgid "Add the people who will sign the document." msgstr "Agrega a las personas que firmarán el documento." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:209 msgid "Add the recipients to create the document with" msgstr "Agrega los destinatarios con los que crear el documento" @@ -363,6 +373,10 @@ msgstr "Todas las firmas insertadas serán anuladas" msgid "All recipients will be notified" msgstr "Todos los destinatarios serán notificados" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:62 +msgid "All signing links have been copied to your clipboard." +msgstr "" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:57 msgid "All templates" msgstr "Todas las plantillas" @@ -415,8 +429,8 @@ msgid "An error occurred" msgstr "Ocurrió un error" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:268 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:201 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:235 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:201 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:235 msgid "An error occurred while adding signers." msgstr "Ocurrió un error al agregar firmantes." @@ -424,7 +438,7 @@ msgstr "Ocurrió un error al agregar firmantes." msgid "An error occurred while adding the fields." msgstr "Ocurrió un error al agregar los campos." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:165 msgid "An error occurred while creating document from template." msgstr "Ocurrió un error al crear el documento a partir de la plantilla." @@ -437,9 +451,9 @@ msgid "An error occurred while disabling direct link signing." msgstr "Ocurrió un error al desactivar la firma de enlace directo." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:64 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:89 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:92 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:76 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:105 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:107 msgid "An error occurred while downloading your document." msgstr "Ocurrió un error al descargar tu documento." @@ -508,7 +522,7 @@ msgid "An error occurred while trying to create a checkout session." msgstr "Ocurrió un error al intentar crear una sesión de pago." #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "Ocurrió un error al actualizar la configuración del documento." @@ -571,6 +585,14 @@ msgstr "Ocurrió un error desconocido" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Cualquier método de pago adjunto a este equipo permanecerá adjunto a este equipo. Por favor, contáctanos si necesitas actualizar esta información." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 +msgid "Any Source" +msgstr "Cualquier fuente" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 +msgid "Any Status" +msgstr "Cualquier estado" + #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:22 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:42 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:56 @@ -587,7 +609,7 @@ msgstr "Versión de la Aplicación" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:89 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:120 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:144 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:146 #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:125 msgid "Approve" msgstr "Aprobar" @@ -596,7 +618,7 @@ msgstr "Aprobar" msgid "Approve Document" msgstr "Aprobar Documento" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:85 msgid "Approved" msgstr "Aprobado" @@ -626,10 +648,14 @@ msgstr "¿Estás seguro?" msgid "Attempts sealing the document again, useful for after a code change has occurred to resolve an erroneous document." msgstr "Intenta sellar el documento de nuevo, útil después de que se haya producido un cambio de código para resolver un documento erróneo." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:127 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:130 msgid "Audit Log" msgstr "Registro de Auditoría" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:198 +msgid "Authentication Level" +msgstr "Nivel de Autenticación" + #: apps/web/src/app/(recipient)/d/[token]/signing-auth-page.tsx:41 #: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:52 msgid "Authentication required" @@ -688,9 +714,14 @@ msgid "Billing" msgstr "Facturación" #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:99 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:48 msgid "Browser" msgstr "Navegador" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:145 +msgid "Bulk Copy" +msgstr "" + #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:279 msgid "Bulk Import" msgstr "Importación masiva" @@ -805,6 +836,7 @@ msgstr "Haga clic aquí para comenzar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:78 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:118 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:68 #: apps/web/src/components/document/document-history-sheet.tsx:133 msgid "Click here to retry" msgstr "Haga clic aquí para reintentar" @@ -826,10 +858,11 @@ msgid "Click to insert field" msgstr "Haga clic para insertar campo" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:126 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:125 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:138 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:121 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:140 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:180 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:102 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:319 @@ -856,6 +889,7 @@ msgstr "Completar Firmado" msgid "Complete Viewing" msgstr "Completar Visualización" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:62 #: apps/web/src/components/formatter/document-status.tsx:28 msgid "Completed" @@ -873,7 +907,7 @@ msgstr "Documentos Completados" msgid "Configure general settings for the document." msgstr "Configurar ajustes generales para el documento." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Configurar ajustes generales para la plantilla." @@ -937,14 +971,25 @@ msgstr "Continuar" msgid "Continue to login" msgstr "Continuar con el inicio de sesión" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:128 +msgid "Copied" +msgstr "" + +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:133 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:77 #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:31 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:163 #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:40 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:61 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:117 #: apps/web/src/components/forms/public-profile-form.tsx:117 msgid "Copied to clipboard" msgstr "Copiado al portapapeles" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:123 +msgid "Copy" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:169 msgid "Copy sharable link" msgstr "Copiar enlace compartible" @@ -953,6 +998,10 @@ msgstr "Copiar enlace compartible" msgid "Copy Shareable Link" msgstr "Copiar enlace compartible" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:83 +msgid "Copy Signing Links" +msgstr "" + #: apps/web/src/components/forms/token.tsx:288 msgid "Copy token" msgstr "Copiar token" @@ -975,15 +1024,15 @@ msgstr "Crea un equipo para colaborar con los miembros de tu equipo." msgid "Create account" msgstr "Crear cuenta" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:351 msgid "Create and send" msgstr "Crear y enviar" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:353 msgid "Create as draft" msgstr "Crear como borrador" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:37 msgid "Create Direct Link" msgstr "Crear enlace directo" @@ -991,7 +1040,7 @@ msgstr "Crear enlace directo" msgid "Create Direct Signing Link" msgstr "Crear enlace de firma directo" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Create document from template" msgstr "Crear documento a partir de la plantilla" @@ -1039,12 +1088,15 @@ msgstr "Crea tu cuenta y comienza a utilizar la firma de documentos de última g #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:34 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:274 msgid "Created" msgstr "Creado" #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:35 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:111 msgid "Created At" msgstr "Creado En" @@ -1101,14 +1153,14 @@ msgstr "Invitación de equipo rechazada" msgid "delete" msgstr "eliminar" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:141 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:187 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:144 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:189 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:200 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:177 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:211 #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:83 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:100 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:91 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:94 #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:90 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 @@ -1180,6 +1232,7 @@ msgid "Delete your account and all its contents, including completed documents. msgstr "Eliminar su cuenta y todo su contenido, incluidos documentos completados. Esta acción es irreversible y cancelará su suscripción, así que proceda con cuidado." #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:41 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:97 msgid "Deleted" msgstr "Eliminado" @@ -1187,7 +1240,12 @@ msgstr "Eliminado" msgid "Deleting account..." msgstr "Eliminando cuenta..." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:178 +msgid "Details" +msgstr "Detalles" + #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:75 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:234 msgid "Device" msgstr "Dispositivo" @@ -1196,10 +1254,16 @@ msgstr "Dispositivo" msgid "direct link" msgstr "enlace directo" -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:76 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:40 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:79 msgid "Direct link" msgstr "Enlace directo" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:160 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:231 +msgid "Direct Link" +msgstr "Enlace directo" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:46 msgid "direct link disabled" msgstr "enlace directo deshabilitado" @@ -1268,6 +1332,7 @@ msgid "Documenso will delete <0>all of your documents, along with all of you msgstr "Documenso eliminará <0>todos sus documentos, junto con todos sus documentos completados, firmas y todos los demás recursos de su cuenta." #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:119 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:38 msgid "Document" msgstr "Documento" @@ -1291,12 +1356,20 @@ msgstr "Documento completado" msgid "Document Completed!" msgstr "¡Documento completado!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:154 msgid "Document created" msgstr "Documento creado" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:129 +msgid "Document created by <0>{0}" +msgstr "Documento creado por <0>{0}" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:134 +msgid "Document created using a <0>direct link" +msgstr "Documento creado usando un <0>enlace directo" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:173 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:178 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:59 msgid "Document deleted" msgstr "Documento eliminado" @@ -1309,12 +1382,13 @@ msgstr "Borrador de documento" msgid "Document Duplicated" msgstr "Documento duplicado" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:184 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:189 #: apps/web/src/components/document/document-history-sheet.tsx:104 msgid "Document history" msgstr "Historial de documentos" #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:71 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:81 msgid "Document ID" msgstr "ID del documento" @@ -1388,7 +1462,7 @@ msgstr "El documento será eliminado permanentemente" #: apps/web/src/app/(dashboard)/admin/nav.tsx:65 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:92 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:139 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:144 #: apps/web/src/app/(dashboard)/documents/[id]/edit/document-edit-page-view.tsx:109 #: apps/web/src/app/(dashboard)/documents/[id]/loading.tsx:16 #: apps/web/src/app/(dashboard)/documents/[id]/sent/page.tsx:15 @@ -1402,6 +1476,10 @@ msgstr "El documento será eliminado permanentemente" msgid "Documents" msgstr "Documentos" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:195 +msgid "Documents created from template" +msgstr "Documentos creados a partir de la plantilla" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:113 msgid "Documents Received" msgstr "Documentos recibidos" @@ -1416,9 +1494,9 @@ msgid "Don't have an account? <0>Sign up" msgstr "¿No tienes una cuenta? <0>Regístrate" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:111 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:120 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:123 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:141 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:160 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:162 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:110 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:185 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:107 @@ -1433,6 +1511,7 @@ msgstr "Descargar registros de auditoría" msgid "Download Certificate" msgstr "Descargar certificado" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:214 #: apps/web/src/components/formatter/document-status.tsx:34 msgid "Draft" msgstr "Borrador" @@ -1449,27 +1528,31 @@ msgstr "Documentos redactados" msgid "Due to an unpaid invoice, your team has been restricted. Please settle the payment to restore full access to your team." msgstr "Debido a una factura impaga, tu equipo ha sido restringido. Realiza el pago para restaurar el acceso completo a tu equipo." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:133 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:136 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:167 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:85 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:118 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:71 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:74 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:91 msgid "Duplicate" msgstr "Duplicar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:104 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:112 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:115 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:102 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:154 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:156 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:111 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:95 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:62 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:65 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:77 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:100 msgid "Edit" msgstr "Editar" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:115 +msgid "Edit Template" +msgstr "Editar plantilla" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:94 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:100 msgid "Edit webhook" @@ -1486,8 +1569,10 @@ msgstr "Divulgación de Firma Electrónica" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:166 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:114 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:71 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:248 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:254 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:261 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:122 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:129 #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:118 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:126 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 @@ -1557,6 +1642,10 @@ msgstr "Habilitar firma de enlace directo" msgid "Enabled" msgstr "Habilitado" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:87 +msgid "Enclosed Document" +msgstr "Documento Adjunto" + #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:38 msgid "Ends On" msgstr "Termina en" @@ -1586,12 +1675,12 @@ msgstr "Ingresa tu texto aquí" #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57 #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106 #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:112 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:169 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:200 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:169 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:234 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:51 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:56 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:151 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:212 @@ -1680,7 +1769,7 @@ msgid "Full Name" msgstr "Nombre completo" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:77 #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60 #: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43 #: apps/web/src/components/(teams)/settings/layout/mobile-nav.tsx:51 @@ -1731,7 +1820,7 @@ msgstr "Así es como funciona:" msgid "Hey I’m Timur" msgstr "Hola, soy Timur" -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:187 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:189 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:200 #: apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx:155 msgid "Hide" @@ -1741,6 +1830,10 @@ msgstr "Ocultar" msgid "Hide additional information" msgstr "Ocultar información adicional" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:43 +msgid "I am the owner of this document" +msgstr "Soy el propietario de este documento" + #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:186 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:173 msgid "I'm sure! Delete it" @@ -1771,6 +1864,7 @@ msgid "Inbox documents" msgstr "Documentos en bandeja de entrada" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:53 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:50 msgid "Information" msgstr "Información" @@ -1844,6 +1938,11 @@ msgstr "Invitado el" msgid "Invoice" msgstr "Factura" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:47 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:227 +msgid "IP Address" +msgstr "Dirección IP" + #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:118 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 "Es crucial mantener su información de contacto, especialmente su dirección de correo electrónico, actual con nosotros. Por favor, notifíquenos inmediatamente sobre cualquier cambio para asegurarse de seguir recibiendo todas las comunicaciones necesarias." @@ -1885,6 +1984,7 @@ msgid "Last 7 days" msgstr "Últimos 7 días" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:41 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:38 msgid "Last modified" msgstr "Última modificación" @@ -1892,6 +1992,10 @@ msgstr "Última modificación" msgid "Last updated" msgstr "Última actualización" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:121 +msgid "Last Updated" +msgstr "Última Actualización" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:52 msgid "Last updated at" msgstr "Última actualización el" @@ -1971,11 +2075,15 @@ msgstr "Gestionar el perfil de {0}" msgid "Manage all teams you are currently associated with." msgstr "Gestionar todos los equipos con los que estás asociado actualmente." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:159 +msgid "Manage and view template" +msgstr "Gestionar y ver plantilla" + #: apps/web/src/components/templates/manage-public-template-dialog.tsx:341 msgid "Manage details for this public template" msgstr "Gestionar detalles de esta plantilla pública" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:33 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 msgid "Manage Direct Link" msgstr "Gestionar enlace directo" @@ -2050,7 +2158,8 @@ msgstr "Miembro desde" msgid "Members" msgstr "Miembros" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:46 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:35 msgid "Modify recipients" msgstr "Modificar destinatarios" @@ -2079,8 +2188,8 @@ msgstr "Mover documento al equipo" msgid "Move Template to Team" msgstr "Mover plantilla al equipo" -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:172 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:82 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:174 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:85 msgid "Move to Team" msgstr "Mover al equipo" @@ -2098,8 +2207,8 @@ msgstr "Mis plantillas" #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:61 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:270 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:277 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:276 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:283 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:119 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:170 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:153 @@ -2155,7 +2264,13 @@ msgstr "No se encontraron plantillas de perfil público" msgid "No recent activity" msgstr "No hay actividad reciente" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:55 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:103 +msgid "No recent documents" +msgstr "No hay documentos recientes" + +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:61 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:49 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:96 msgid "No recipients" msgstr "No hay destinatarios" @@ -2250,11 +2365,12 @@ msgstr "O" msgid "Or continue with" msgstr "O continúa con" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:330 msgid "Otherwise, the document will be created as a draft." msgstr "De lo contrario, el documento se creará como un borrador." #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:86 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:103 #: apps/web/src/components/(dashboard)/layout/menu-switcher.tsx:81 #: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:86 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:109 @@ -2289,6 +2405,10 @@ msgstr "La clave de acceso ha sido actualizada" msgid "Passkey name" msgstr "Nombre de clave de acceso" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:121 +msgid "Passkey Re-Authentication" +msgstr "Re-autenticación de Passkey" + #: apps/web/src/app/(dashboard)/settings/security/page.tsx:106 #: apps/web/src/app/(dashboard)/settings/security/passkeys/page.tsx:32 msgid "Passkeys" @@ -2329,9 +2449,11 @@ msgstr "Se requiere pago para finalizar la creación de tu equipo." msgid "Payment overdue" msgstr "Pago atrasado" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:115 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:122 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:211 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 +#: apps/web/src/components/document/document-read-only-fields.tsx:89 #: apps/web/src/components/formatter/document-status.tsx:22 msgid "Pending" msgstr "Pendiente" @@ -2518,10 +2640,14 @@ msgstr "Campo de solo lectura" msgid "Read the full <0>signature disclosure." msgstr "Lea la <0>divulgación de firma completa." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:97 msgid "Ready" msgstr "Listo" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:281 +msgid "Reason" +msgstr "Razón" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:62 msgid "Reauthentication is required to sign this field" msgstr "Se requiere reautenticación para firmar este campo" @@ -2531,7 +2657,12 @@ msgstr "Se requiere reautenticación para firmar este campo" msgid "Recent activity" msgstr "Actividad reciente" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:47 +msgid "Recent documents" +msgstr "Documentos recientes" + #: apps/web/src/app/(dashboard)/documents/data-table.tsx:69 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:120 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:280 msgid "Recipient" msgstr "Destinatario" @@ -2541,7 +2672,9 @@ msgid "Recipient updated" msgstr "Destinatario actualizado" #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:66 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:34 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:30 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:139 msgid "Recipients" msgstr "Destinatarios" @@ -2768,7 +2901,7 @@ msgstr "Seleccionar clave de acceso" msgid "Send confirmation email" msgstr "Enviar correo de confirmación" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:314 msgid "Send document" msgstr "Enviar documento" @@ -2788,7 +2921,8 @@ msgstr "Enviando correo de restablecimiento..." msgid "Sending..." msgstr "Enviando..." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:85 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:92 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:248 msgid "Sent" msgstr "Enviado" @@ -2807,13 +2941,13 @@ msgstr "Configuraciones" msgid "Setup" msgstr "Configuración" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:145 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:191 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:148 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:193 msgid "Share" msgstr "Compartir" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:161 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:203 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:179 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:219 msgid "Share Signing Card" msgstr "Compartir tarjeta de firma" @@ -2835,7 +2969,7 @@ msgstr "Mostrar plantillas en el perfil público de tu equipo para que tu audien #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:83 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:114 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:137 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:139 #: apps/web/src/app/(profile)/p/[url]/page.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:182 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:224 @@ -2911,6 +3045,7 @@ msgid "Sign Up with OIDC" msgstr "Regístrate con OIDC" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:177 #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:338 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195 @@ -2921,6 +3056,10 @@ msgstr "Regístrate con OIDC" msgid "Signature" msgstr "Firma" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:220 +msgid "Signature ID" +msgstr "ID de Firma" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:123 msgid "Signatures Collected" msgstr "Firmas recolectadas" @@ -2929,15 +3068,34 @@ msgstr "Firmas recolectadas" msgid "Signatures will appear once the document has been completed" msgstr "Las firmas aparecerán una vez que el documento se haya completado" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:98 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:105 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:270 +#: apps/web/src/components/document/document-read-only-fields.tsx:84 msgid "Signed" msgstr "Firmado" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:176 +msgid "Signer Events" +msgstr "Eventos del Firmante" + +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:168 +msgid "Signing Certificate" +msgstr "Certificado de Firma" + +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:303 +msgid "Signing certificate provided by" +msgstr "Certificado de firma proporcionado por" + #: apps/web/src/components/forms/signin.tsx:383 #: apps/web/src/components/forms/signin.tsx:510 msgid "Signing in..." msgstr "Iniciando sesión..." +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:160 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:203 +msgid "Signing Links" +msgstr "" + #: apps/web/src/components/forms/signup.tsx:235 msgid "Signing up..." msgstr "Registrándose..." @@ -2957,11 +3115,11 @@ msgstr "Configuraciones del sitio" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:105 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:63 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:88 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:91 #: apps/web/src/app/(dashboard)/documents/[id]/logs/download-audit-log-button.tsx:65 #: apps/web/src/app/(dashboard)/documents/[id]/logs/download-certificate-button.tsx:66 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:75 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:104 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:106 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:80 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:72 #: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:62 @@ -3030,6 +3188,10 @@ msgstr "Lo sentimos, no pudimos descargar los registros de auditoría. Por favor msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Lo sentimos, no pudimos descargar el certificado. Por favor, intenta de nuevo más tarde." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:138 +msgid "Source" +msgstr "Fuente" + #: apps/web/src/app/(dashboard)/admin/nav.tsx:37 msgid "Stats" msgstr "Estadísticas" @@ -3037,11 +3199,13 @@ msgstr "Estadísticas" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:130 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:93 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" msgstr "Estado" -#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:128 +#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:129 msgid "Subscribe" msgstr "Suscribirse" @@ -3215,6 +3379,11 @@ msgstr "Equipos" msgid "Teams restricted" msgstr "Equipos restringidos" +#: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:63 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:148 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:228 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:146 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:271 msgid "Template" @@ -3244,11 +3413,11 @@ msgstr "La plantilla ha sido actualizada." msgid "Template moved" msgstr "Plantilla movida" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:223 msgid "Template saved" msgstr "Plantilla guardada" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:87 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:208 #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 @@ -3295,7 +3464,7 @@ msgstr "El documento ha sido movido con éxito al equipo seleccionado." msgid "The document is now completed, please follow any instructions provided within the parent application." msgstr "El documento ahora está completado, por favor sigue cualquier instrucción proporcionada dentro de la aplicación principal." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:171 msgid "The document was created but could not be sent to recipients." msgstr "El documento fue creado pero no se pudo enviar a los destinatarios." @@ -3303,7 +3472,7 @@ msgstr "El documento fue creado pero no se pudo enviar a los destinatarios." msgid "The document will be hidden from your account" msgstr "El documento será ocultado de tu cuenta" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:322 msgid "The document will be immediately sent to recipients if this is checked." msgstr "El documento se enviará inmediatamente a los destinatarios si esto está marcado." @@ -3345,7 +3514,9 @@ msgstr "El destinatario ha sido actualizado con éxito" msgid "The selected team member will receive an email which they must accept before the team is transferred" msgstr "El miembro del equipo seleccionado recibirá un correo electrónico que debe aceptar antes de que se transfiera el equipo" +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:134 #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:41 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:118 msgid "The signing link has been copied to your clipboard." msgstr "El enlace de firma ha sido copiado a tu portapapeles." @@ -3446,14 +3617,22 @@ msgstr "Este documento ha sido cancelado por el propietario y ya no está dispon msgid "This document has been cancelled by the owner." msgstr "Este documento ha sido cancelado por el propietario." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:219 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:224 msgid "This document has been signed by all recipients" msgstr "Este documento ha sido firmado por todos los destinatarios" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:222 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:227 msgid "This document is currently a draft and has not been sent" msgstr "Este documento es actualmente un borrador y no ha sido enviado" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:152 +msgid "This document was created by you or a team member using the template above." +msgstr "Este documento fue creado por ti o un miembro del equipo usando la plantilla anterior." + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:164 +msgid "This document was created using a direct link." +msgstr "Este documento fue creado usando un enlace directo." + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." msgstr "Este correo electrónico ya está siendo utilizado por otro equipo." @@ -3511,7 +3690,8 @@ msgstr "Este nombre de usuario ya ha sido tomado" msgid "This username is already taken" msgstr "Este nombre de usuario ya está tomado" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:77 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:73 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:44 msgid "Time" msgstr "Hora" @@ -3519,8 +3699,13 @@ msgstr "Hora" msgid "Time zone" msgstr "Zona horaria" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:131 +msgid "Time Zone" +msgstr "Zona Horaria" + #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 msgid "Title" msgstr "Título" @@ -3666,6 +3851,10 @@ msgstr "Autenticación de dos factores habilitada" 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 "La autenticación de dos factores ha sido desactivada para tu cuenta. Ya no se te pedirá ingresar un código de tu aplicación de autenticador al iniciar sesión." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:120 +msgid "Two-Factor Re-Authentication" +msgstr "Re-autenticación de Doble Factor" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:73 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:67 msgid "Type" @@ -3724,6 +3913,10 @@ msgstr "No se pudo unirte a este equipo en este momento." msgid "Unable to load document history" msgstr "No se pudo cargar el historial del documento" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:62 +msgid "Unable to load documents" +msgstr "No se pueden cargar documentos" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:111 msgid "Unable to load your public profile templates at this time" msgstr "No se pudo cargar tus plantillas de perfil público en este momento" @@ -3767,6 +3960,13 @@ msgstr "No autorizado" msgid "Uncompleted" msgstr "Incompleto" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:229 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:254 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:265 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:276 +msgid "Unknown" +msgstr "Desconocido" + #: apps/web/src/app/(teams)/t/[teamUrl]/error.tsx:23 msgid "Unknown error" msgstr "Error desconocido" @@ -3848,6 +4048,7 @@ msgid "Upload Avatar" msgstr "Subir avatar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:31 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:30 msgid "Uploaded by" msgstr "Subido por" @@ -3863,6 +4064,10 @@ msgstr "El archivo subido es demasiado pequeño" msgid "Uploaded file not an allowed file type" msgstr "El archivo subido no es un tipo de archivo permitido" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:170 +msgid "Use" +msgstr "Usar" + #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187 #: apps/web/src/components/forms/signin.tsx:505 msgid "Use Authenticator" @@ -3873,11 +4078,12 @@ msgstr "Usar Autenticador" msgid "Use Backup Code" msgstr "Usar Código de Respaldo" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:196 msgid "Use Template" msgstr "Usar Plantilla" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:82 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:78 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:45 msgid "User" msgstr "Usuario" @@ -3925,10 +4131,14 @@ msgstr "Verifica tu dirección de correo electrónico para desbloquear todas las msgid "Verify your email to upload documents." msgstr "Verifica tu correo electrónico para subir documentos." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:75 +msgid "Version History" +msgstr "Historial de Versiones" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:95 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:126 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:135 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:130 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:132 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:100 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:168 msgid "View" @@ -3946,6 +4156,10 @@ msgstr "Ver todos los documentos enviados a tu cuenta" msgid "View all recent security activity related to your account." msgstr "Ver toda la actividad de seguridad reciente relacionada con tu cuenta." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:157 +msgid "View all related documents" +msgstr "Ver todos los documentos relacionados" + #: apps/web/src/app/(dashboard)/settings/security/activity/page.tsx:26 msgid "View all security activity related to your account." msgstr "Ver toda la actividad de seguridad relacionada con tu cuenta." @@ -3966,6 +4180,10 @@ msgstr "Ver documentos asociados con este correo electrónico" msgid "View invites" msgstr "Ver invitaciones" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:95 +msgid "View more" +msgstr "Ver más" + #: apps/web/src/app/(signing)/sign/[token]/complete/document-preview-button.tsx:34 msgid "View Original Document" msgstr "Ver Documento Original" @@ -3979,7 +4197,8 @@ msgstr "Ver Códigos de Recuperación" msgid "View teams" msgstr "Ver equipos" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:104 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:111 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:259 msgid "Viewed" msgstr "Visto" @@ -4280,6 +4499,7 @@ msgid "Yearly" msgstr "Anual" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:32 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:31 msgid "You" msgstr "Tú" @@ -4347,6 +4567,10 @@ msgstr "Puedes elegir habilitar o deshabilitar el perfil de tu equipo para la vi msgid "You can claim your profile later on by going to your profile settings!" msgstr "¡Puedes reclamar tu perfil más tarde yendo a la configuración de tu perfil!" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:87 +msgid "You can copy and share these links to recipients so they can action the document." +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:154 msgid "You can update the profile URL by updating the team URL in the general settings page." msgstr "Puedes actualizar la URL del perfil actualizando la URL del equipo en la página de configuración general." @@ -4513,7 +4737,7 @@ msgstr "Tus {0} plantillas de firma directa" msgid "Your document failed to upload." msgstr "Tu documento no se pudo cargar." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:155 msgid "Your document has been created from the template successfully." msgstr "Tu documento se ha creado exitosamente a partir de la plantilla." @@ -4612,7 +4836,7 @@ msgstr "Tu plantilla ha sido eliminada con éxito." msgid "Your template will be duplicated." msgstr "Tu plantilla será duplicada." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Tus plantillas han sido guardadas con éxito." @@ -4628,4 +4852,3 @@ msgstr "¡Tu token se creó con éxito! ¡Asegúrate de copiarlo porque no podr #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:86 msgid "Your tokens will be shown here once you create them." msgstr "Tus tokens se mostrarán aquí una vez que los crees." - diff --git a/packages/lib/translations/fr/common.po b/packages/lib/translations/fr/common.po index f4cfc3aa6..32c9a4b1b 100644 --- a/packages/lib/translations/fr/common.po +++ b/packages/lib/translations/fr/common.po @@ -8,7 +8,7 @@ msgstr "" "Language: fr\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -96,6 +96,90 @@ msgstr "{memberEmail} a rejoint l'équipe suivante" msgid "{memberEmail} left the following team" msgstr "{memberEmail} a quitté l'équipe suivante" +#: packages/lib/utils/document-audit-logs.ts:263 +msgid "{prefix} added a field" +msgstr "{prefix} a ajouté un champ" + +#: packages/lib/utils/document-audit-logs.ts:275 +msgid "{prefix} added a recipient" +msgstr "{prefix} a ajouté un destinataire" + +#: packages/lib/utils/document-audit-logs.ts:287 +msgid "{prefix} created the document" +msgstr "{prefix} a créé le document" + +#: packages/lib/utils/document-audit-logs.ts:291 +msgid "{prefix} deleted the document" +msgstr "{prefix} a supprimé le document" + +#: packages/lib/utils/document-audit-logs.ts:335 +msgid "{prefix} moved the document to team" +msgstr "{prefix} a déplacé le document vers l'équipe" + +#: packages/lib/utils/document-audit-logs.ts:319 +msgid "{prefix} opened the document" +msgstr "{prefix} a ouvert le document" + +#: packages/lib/utils/document-audit-logs.ts:267 +msgid "{prefix} removed a field" +msgstr "{prefix} a supprimé un champ" + +#: packages/lib/utils/document-audit-logs.ts:279 +msgid "{prefix} removed a recipient" +msgstr "{prefix} a supprimé un destinataire" + +#: packages/lib/utils/document-audit-logs.ts:355 +msgid "{prefix} resent an email to {0}" +msgstr "{prefix} a renvoyé un e-mail à {0}" + +#: packages/lib/utils/document-audit-logs.ts:356 +msgid "{prefix} sent an email to {0}" +msgstr "{prefix} a envoyé un email à {0}" + +#: packages/lib/utils/document-audit-logs.ts:331 +msgid "{prefix} sent the document" +msgstr "{prefix} a envoyé le document" + +#: packages/lib/utils/document-audit-logs.ts:295 +msgid "{prefix} signed a field" +msgstr "{prefix} a signé un champ" + +#: packages/lib/utils/document-audit-logs.ts:299 +msgid "{prefix} unsigned a field" +msgstr "{prefix} n'a pas signé un champ" + +#: packages/lib/utils/document-audit-logs.ts:271 +msgid "{prefix} updated a field" +msgstr "{prefix} a mis à jour un champ" + +#: packages/lib/utils/document-audit-logs.ts:283 +msgid "{prefix} updated a recipient" +msgstr "{prefix} a mis à jour un destinataire" + +#: packages/lib/utils/document-audit-logs.ts:315 +msgid "{prefix} updated the document" +msgstr "{prefix} a mis à jour le document" + +#: packages/lib/utils/document-audit-logs.ts:307 +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:327 +msgid "{prefix} updated the document external ID" +msgstr "{prefix} a mis à jour l'ID externe du document" + +#: packages/lib/utils/document-audit-logs.ts:311 +msgid "{prefix} updated the document signing auth requirements" +msgstr "{prefix} a mis à jour les exigences d'authentification pour la signature du document" + +#: packages/lib/utils/document-audit-logs.ts:323 +msgid "{prefix} updated the document title" +msgstr "{prefix} a mis à jour le titre du document" + +#: packages/lib/utils/document-audit-logs.ts:303 +msgid "{prefix} updated the document visibility" +msgstr "{prefix} a mis à jour la visibilité du document" + #: packages/email/templates/document-created-from-direct-template.tsx:55 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" @@ -104,6 +188,26 @@ msgstr "{recipientName} {action} un document en utilisant l'un de vos liens dire msgid "{teamName} ownership transfer request" msgstr "Demande de transfert de propriété de {teamName}" +#: packages/lib/utils/document-audit-logs.ts:343 +msgid "{userName} approved the document" +msgstr "{userName} a approuvé le document" + +#: packages/lib/utils/document-audit-logs.ts:344 +msgid "{userName} CC'd the document" +msgstr "{userName} a mis en copie le document" + +#: packages/lib/utils/document-audit-logs.ts:345 +msgid "{userName} completed their task" +msgstr "{userName} a complété sa tâche" + +#: packages/lib/utils/document-audit-logs.ts:341 +msgid "{userName} signed the document" +msgstr "{userName} a signé le document" + +#: packages/lib/utils/document-audit-logs.ts:342 +msgid "{userName} viewed the document" +msgstr "{userName} a consulté le document" + #: packages/ui/primitives/data-table-pagination.tsx:41 msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" msgstr "{visibleRows, plural, one {Affichage de # résultat.} other {Affichage de # résultats.}}" @@ -150,10 +254,34 @@ msgstr "<0>Exiger une clé d'accès - Le destinataire doit avoir un compte e 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 nécessite que vous {recipientActionVerb} celui-ci." +#: packages/lib/utils/document-audit-logs.ts:262 +msgid "A field was added" +msgstr "Un champ a été ajouté" + +#: packages/lib/utils/document-audit-logs.ts:266 +msgid "A field was removed" +msgstr "Un champ a été supprimé" + +#: packages/lib/utils/document-audit-logs.ts:270 +msgid "A field was updated" +msgstr "Un champ a été mis à jour" + #: packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts:90 msgid "A new member has joined your team" msgstr "Un nouveau membre a rejoint votre équipe" +#: packages/lib/utils/document-audit-logs.ts:274 +msgid "A recipient was added" +msgstr "Un destinataire a été ajouté" + +#: packages/lib/utils/document-audit-logs.ts:278 +msgid "A recipient was removed" +msgstr "Un destinataire a été supprimé" + +#: packages/lib/utils/document-audit-logs.ts:282 +msgid "A recipient was updated" +msgstr "Un destinataire a été mis à jour" + #: packages/lib/server-only/team/create-team-email-verification.ts:142 msgid "A request to use your email has been initiated by {teamName} on Documenso" msgstr "Une demande d'utilisation de votre email a été initiée par {teamName} sur Documenso" @@ -368,6 +496,7 @@ msgstr "Fermer" #: packages/email/template-components/template-document-completed.tsx:35 #: packages/email/template-components/template-document-self-signed.tsx:36 +#: packages/lib/constants/document.ts:10 msgid "Completed" msgstr "Terminé" @@ -450,10 +579,24 @@ msgstr "Receveur de lien direct" msgid "Document access" msgstr "Accès au document" +#: packages/lib/utils/document-audit-logs.ts:306 +msgid "Document access auth updated" +msgstr "L'authentification d'accès au document a été mise à jour" + +#: packages/lib/server-only/document/delete-document.ts:213 #: packages/lib/server-only/document/super-delete-document.ts:75 msgid "Document Cancelled" msgstr "Document Annulé" +#: packages/lib/utils/document-audit-logs.ts:359 +#: packages/lib/utils/document-audit-logs.ts:360 +msgid "Document completed" +msgstr "Document terminé" + +#: packages/lib/utils/document-audit-logs.ts:286 +msgid "Document created" +msgstr "Document créé" + #: packages/email/templates/document-created-from-direct-template.tsx:30 #: packages/lib/server-only/template/create-document-from-direct-template.ts:554 msgid "Document created from direct template" @@ -463,15 +606,55 @@ msgstr "Document créé à partir d'un modèle direct" msgid "Document Creation" msgstr "Création de document" +#: packages/lib/utils/document-audit-logs.ts:290 +msgid "Document deleted" +msgstr "Document supprimé" + #: packages/lib/server-only/document/send-delete-email.ts:58 msgid "Document Deleted!" msgstr "Document Supprimé !" +#: packages/lib/utils/document-audit-logs.ts:326 +msgid "Document external ID updated" +msgstr "ID externe du document mis à jour" + +#: packages/lib/utils/document-audit-logs.ts:334 +msgid "Document moved to team" +msgstr "Document déplacé vers l'équipe" + +#: packages/lib/utils/document-audit-logs.ts:318 +msgid "Document opened" +msgstr "Document ouvert" + +#: packages/lib/utils/document-audit-logs.ts:330 +msgid "Document sent" +msgstr "Document envoyé" + +#: packages/lib/utils/document-audit-logs.ts:310 +msgid "Document signing auth updated" +msgstr "Authentification de signature de document mise à jour" + +#: packages/lib/utils/document-audit-logs.ts:322 +msgid "Document title updated" +msgstr "Titre du document mis à jour" + +#: packages/lib/utils/document-audit-logs.ts:314 +msgid "Document updated" +msgstr "Document mis à jour" + +#: packages/lib/utils/document-audit-logs.ts:302 +msgid "Document visibility updated" +msgstr "Visibilité du document mise à jour" + #: packages/email/template-components/template-document-completed.tsx:64 #: packages/ui/components/document/document-download-button.tsx:68 msgid "Download" msgstr "Télécharger" +#: packages/lib/constants/document.ts:13 +msgid "Draft" +msgstr "Brouillon" + #: packages/ui/primitives/document-dropzone.tsx:162 msgid "Drag & drop your PDF here." msgstr "Faites glisser et déposez votre PDF ici." @@ -504,6 +687,14 @@ msgstr "L'email est requis" msgid "Email Options" msgstr "Options d'email" +#: packages/lib/utils/document-audit-logs.ts:353 +msgid "Email resent" +msgstr "Email renvoyé" + +#: packages/lib/utils/document-audit-logs.ts:353 +msgid "Email sent" +msgstr "Email envoyé" + #: packages/ui/primitives/document-flow/add-fields.tsx:1123 msgid "Empty field" msgstr "Champ vide" @@ -564,6 +755,14 @@ msgstr "Étiquette du champ" msgid "Field placeholder" msgstr "Espace réservé du champ" +#: packages/lib/utils/document-audit-logs.ts:294 +msgid "Field signed" +msgstr "Champ signé" + +#: packages/lib/utils/document-audit-logs.ts:298 +msgid "Field unsigned" +msgstr "Champ non signé" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56 #: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38 #: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38 @@ -774,6 +973,10 @@ msgstr "Réinitialisation du mot de passe réussie" msgid "Password updated!" msgstr "Mot de passe mis à jour !" +#: packages/lib/constants/document.ts:16 +msgid "Pending" +msgstr "En attente" + #: packages/email/templates/document-pending.tsx:17 msgid "Pending Document" msgstr "Document En Attente" @@ -841,6 +1044,10 @@ msgstr "Lecture seule" msgid "Receives copy" msgstr "Recevoir une copie" +#: packages/lib/utils/document-audit-logs.ts:338 +msgid "Recipient" +msgstr "Destinataire" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:39 #: packages/ui/primitives/document-flow/add-settings.tsx:257 #: packages/ui/primitives/template-flow/add-template-settings.tsx:208 @@ -1248,6 +1455,10 @@ msgstr "Nous avons changé votre mot de passe comme demandé. Vous pouvez mainte msgid "Welcome to Documenso!" msgstr "Bienvenue sur Documenso !" +#: packages/lib/utils/document-audit-logs.ts:258 +msgid "You" +msgstr "Vous" + #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44 msgid "You are about to send this document to the recipients. Are you sure you want to continue?" msgstr "Vous êtes sur le point d'envoyer ce document aux destinataires. Êtes-vous sûr de vouloir continuer ?" @@ -1309,4 +1520,3 @@ msgstr "Votre mot de passe a été mis à jour." #: packages/email/templates/team-delete.tsx:30 msgid "Your team has been deleted" msgstr "Votre équipe a été supprimée" - diff --git a/packages/lib/translations/fr/marketing.po b/packages/lib/translations/fr/marketing.po index d0c55e6ba..06f64c066 100644 --- a/packages/lib/translations/fr/marketing.po +++ b/packages/lib/translations/fr/marketing.po @@ -8,7 +8,7 @@ msgstr "" "Language: fr\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -42,7 +42,7 @@ msgstr "Ajouter un document" msgid "Add More Users for {0}" msgstr "Ajouter plus d'utilisateurs pour {0}" -#: apps/marketing/src/app/(marketing)/open/page.tsx:164 +#: apps/marketing/src/app/(marketing)/open/page.tsx:165 msgid "All our metrics, finances, and learnings are public. We believe in transparency and want to share our journey with you. You can read more about why here: <0>Announcing Open Metrics" msgstr "Tous nos indicateurs, finances et apprentissages sont publics. Nous croyons en la transparence et souhaitons partager notre parcours avec vous. Vous pouvez en lire plus sur pourquoi ici : <0>Annonce de Open Metrics" @@ -90,7 +90,7 @@ msgstr "Changelog" msgid "Choose a template from the community app store. Or submit your own template for others to use." msgstr "Choisissez un modèle dans la boutique d'applications communautaires. Ou soumettez votre propre modèle pour que d'autres puissent l'utiliser." -#: apps/marketing/src/app/(marketing)/open/page.tsx:218 +#: apps/marketing/src/app/(marketing)/open/page.tsx:219 msgid "Community" msgstr "Communauté" @@ -193,7 +193,7 @@ msgstr "Rapide." msgid "Faster, smarter and more beautiful." msgstr "Plus rapide, plus intelligent et plus beau." -#: apps/marketing/src/app/(marketing)/open/page.tsx:209 +#: apps/marketing/src/app/(marketing)/open/page.tsx:210 msgid "Finances" msgstr "Finances" @@ -246,15 +246,15 @@ msgstr "Commencez aujourd'hui." msgid "Get the latest news from Documenso, including product updates, team announcements and more!" msgstr "Obtenez les dernières nouvelles de Documenso, y compris les mises à jour de produits, les annonces d'équipe et plus encore !" -#: apps/marketing/src/app/(marketing)/open/page.tsx:232 +#: apps/marketing/src/app/(marketing)/open/page.tsx:233 msgid "GitHub: Total Merged PRs" msgstr "GitHub : Total des PRs fusionnées" -#: apps/marketing/src/app/(marketing)/open/page.tsx:250 +#: apps/marketing/src/app/(marketing)/open/page.tsx:251 msgid "GitHub: Total Open Issues" msgstr "GitHub : Total des problèmes ouverts" -#: apps/marketing/src/app/(marketing)/open/page.tsx:224 +#: apps/marketing/src/app/(marketing)/open/page.tsx:225 msgid "GitHub: Total Stars" msgstr "GitHub : Nombre total d'étoiles" @@ -262,7 +262,7 @@ msgstr "GitHub : Nombre total d'étoiles" msgid "Global Salary Bands" msgstr "Bandes de salaire globales" -#: apps/marketing/src/app/(marketing)/open/page.tsx:260 +#: apps/marketing/src/app/(marketing)/open/page.tsx:261 msgid "Growth" msgstr "Croissance" @@ -286,7 +286,7 @@ msgstr "Paiements intégrés avec Stripe afin que vous n'ayez pas à vous soucie msgid "Integrates with all your favourite tools." msgstr "S'intègre à tous vos outils préférés." -#: apps/marketing/src/app/(marketing)/open/page.tsx:288 +#: apps/marketing/src/app/(marketing)/open/page.tsx:289 msgid "Is there more?" msgstr "Y a-t-il plus ?" @@ -310,11 +310,11 @@ msgstr "Emplacement" msgid "Make it your own through advanced customization and adjustability." msgstr "Faites-en votre propre grâce à une personnalisation avancée et un ajustement." -#: apps/marketing/src/app/(marketing)/open/page.tsx:198 +#: apps/marketing/src/app/(marketing)/open/page.tsx:199 msgid "Merged PR's" msgstr "PRs fusionnées" -#: apps/marketing/src/app/(marketing)/open/page.tsx:233 +#: apps/marketing/src/app/(marketing)/open/page.tsx:234 msgid "Merged PRs" msgstr "PRs fusionnées" @@ -345,8 +345,8 @@ msgstr "Aucune carte de crédit requise" msgid "None of these work for you? Try self-hosting!" msgstr "Aucune de ces options ne fonctionne pour vous ? Essayez l'hébergement autonome !" -#: apps/marketing/src/app/(marketing)/open/page.tsx:193 -#: apps/marketing/src/app/(marketing)/open/page.tsx:251 +#: apps/marketing/src/app/(marketing)/open/page.tsx:194 +#: apps/marketing/src/app/(marketing)/open/page.tsx:252 msgid "Open Issues" msgstr "Problèmes ouverts" @@ -354,7 +354,7 @@ msgstr "Problèmes ouverts" msgid "Open Source or Hosted." msgstr "Open Source ou hébergé." -#: apps/marketing/src/app/(marketing)/open/page.tsx:160 +#: apps/marketing/src/app/(marketing)/open/page.tsx:161 #: apps/marketing/src/components/(marketing)/footer.tsx:37 #: apps/marketing/src/components/(marketing)/header.tsx:64 #: apps/marketing/src/components/(marketing)/mobile-navigation.tsx:40 @@ -466,7 +466,7 @@ msgstr "Intelligent." msgid "Star on GitHub" msgstr "Étoile sur GitHub" -#: apps/marketing/src/app/(marketing)/open/page.tsx:225 +#: apps/marketing/src/app/(marketing)/open/page.tsx:226 msgid "Stars" msgstr "Étoiles" @@ -501,7 +501,7 @@ msgstr "Boutique de modèles (Bientôt)." msgid "That's awesome. You can take a look at the current <0>Issues and join our <1>Discord Community to keep up to date, on what the current priorities are. In any case, we are an open community and welcome all input, technical and non-technical ❤️" msgstr "C'est génial. Vous pouvez consulter les <0>Problèmes actuels et rejoindre notre <1>Communauté Discord pour rester à jour sur ce qui est actuellement prioritaire. Dans tous les cas, nous sommes une communauté ouverte et accueillons toutes les contributions, techniques et non techniques ❤️" -#: apps/marketing/src/app/(marketing)/open/page.tsx:292 +#: apps/marketing/src/app/(marketing)/open/page.tsx:293 msgid "This page is evolving as we learn what makes a great signing company. We'll update it when we have more to share." msgstr "Cette page évolue à mesure que nous apprenons ce qui fait une grande entreprise de signature. Nous la mettrons à jour lorsque nous aurons plus à partager." @@ -514,8 +514,8 @@ msgstr "Titre" msgid "Total Completed Documents" msgstr "Documents totalisés complétés" -#: apps/marketing/src/app/(marketing)/open/page.tsx:266 #: apps/marketing/src/app/(marketing)/open/page.tsx:267 +#: apps/marketing/src/app/(marketing)/open/page.tsx:268 msgid "Total Customers" msgstr "Total des clients" @@ -602,4 +602,3 @@ msgstr "Vous pouvez auto-héberger Documenso gratuitement ou utiliser notre vers #: apps/marketing/src/components/(marketing)/carousel.tsx:272 msgid "Your browser does not support the video tag." msgstr "Votre navigateur ne prend pas en charge la balise vidéo." - diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po index 20e94c34e..0ef7fbdb4 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -8,7 +8,7 @@ msgstr "" "Language: fr\n" "Project-Id-Version: documenso-app\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-05 02:04\n" +"PO-Revision-Date: 2024-11-05 09:34\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -64,7 +64,7 @@ msgstr "{0, plural, one {<0>Vous avez <1>1 invitation d'équipe en attenteall of your documents, along with all of you 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/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:119 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:38 msgid "Document" msgstr "Document" @@ -1291,12 +1356,20 @@ msgstr "Document complété" msgid "Document Completed!" msgstr "Document Complété !" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:154 msgid "Document created" msgstr "Document créé" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:129 +msgid "Document created by <0>{0}" +msgstr "Document créé par <0>{0}" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:134 +msgid "Document created using a <0>direct link" +msgstr "Document créé en utilisant un <0>lien direct" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:173 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:178 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:59 msgid "Document deleted" msgstr "Document supprimé" @@ -1309,12 +1382,13 @@ msgstr "Brouillon de document" msgid "Document Duplicated" msgstr "Document dupliqué" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:184 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:189 #: apps/web/src/components/document/document-history-sheet.tsx:104 msgid "Document history" msgstr "Historique du document" #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:71 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:81 msgid "Document ID" msgstr "ID du document" @@ -1388,7 +1462,7 @@ msgstr "Le document sera supprimé de manière permanente" #: apps/web/src/app/(dashboard)/admin/nav.tsx:65 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:92 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:139 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:144 #: apps/web/src/app/(dashboard)/documents/[id]/edit/document-edit-page-view.tsx:109 #: apps/web/src/app/(dashboard)/documents/[id]/loading.tsx:16 #: apps/web/src/app/(dashboard)/documents/[id]/sent/page.tsx:15 @@ -1402,6 +1476,10 @@ msgstr "Le document sera supprimé de manière permanente" msgid "Documents" msgstr "Documents" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:195 +msgid "Documents created from template" +msgstr "Documents créés à partir du modèle" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:113 msgid "Documents Received" msgstr "Documents reçus" @@ -1416,9 +1494,9 @@ msgid "Don't have an account? <0>Sign up" msgstr "Vous n'avez pas de compte? <0>Inscrivez-vous" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:111 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:120 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:123 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:141 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:160 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:162 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:110 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:185 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:107 @@ -1433,6 +1511,7 @@ msgstr "Télécharger les journaux d'audit" msgid "Download Certificate" msgstr "Télécharger le certificat" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:214 #: apps/web/src/components/formatter/document-status.tsx:34 msgid "Draft" msgstr "Brouillon" @@ -1449,27 +1528,31 @@ msgstr "Documents brouillon" 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/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:133 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:136 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:167 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:85 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:118 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:71 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:74 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:91 msgid "Duplicate" msgstr "Dupliquer" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:104 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:112 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:115 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:102 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:154 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:156 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:111 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:95 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:62 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:65 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:77 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:100 msgid "Edit" msgstr "Modifier" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:115 +msgid "Edit Template" +msgstr "Modifier le modèle" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:94 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:100 msgid "Edit webhook" @@ -1486,8 +1569,10 @@ msgstr "Divulgation de signature électronique" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:166 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:114 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:71 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:248 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:254 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:261 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:122 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:129 #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:118 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:126 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 @@ -1557,6 +1642,10 @@ msgstr "Activer la signature par lien direct" msgid "Enabled" msgstr "Activé" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:87 +msgid "Enclosed Document" +msgstr "Document joint" + #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:38 msgid "Ends On" msgstr "Se termine le" @@ -1586,12 +1675,12 @@ msgstr "Entrez votre texte ici" #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57 #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106 #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:112 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:169 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:200 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:169 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:234 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:51 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:56 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:151 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:212 @@ -1680,7 +1769,7 @@ msgid "Full Name" msgstr "Nom complet" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:77 #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60 #: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43 #: apps/web/src/components/(teams)/settings/layout/mobile-nav.tsx:51 @@ -1731,7 +1820,7 @@ msgstr "Voici comment cela fonctionne :" msgid "Hey I’m Timur" msgstr "Salut, je suis Timur" -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:187 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:189 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:200 #: apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx:155 msgid "Hide" @@ -1741,6 +1830,10 @@ msgstr "Cacher" msgid "Hide additional information" msgstr "Cacher des informations supplémentaires" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:43 +msgid "I am the owner of this document" +msgstr "Je suis le propriétaire de ce document" + #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:186 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:173 msgid "I'm sure! Delete it" @@ -1771,6 +1864,7 @@ msgid "Inbox documents" msgstr "Documents de la boîte de réception" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:53 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:50 msgid "Information" msgstr "Information" @@ -1844,6 +1938,11 @@ msgstr "Invité à" msgid "Invoice" msgstr "Facture" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:47 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:227 +msgid "IP Address" +msgstr "Adresse IP" + #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:118 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." @@ -1885,6 +1984,7 @@ msgid "Last 7 days" msgstr "Derniers 7 jours" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:41 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:38 msgid "Last modified" msgstr "Dernière modification" @@ -1892,6 +1992,10 @@ msgstr "Dernière modification" msgid "Last updated" msgstr "Dernière mise à jour" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:121 +msgid "Last Updated" +msgstr "Dernière mise à jour" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:52 msgid "Last updated at" msgstr "Dernière mise à jour à" @@ -1971,11 +2075,15 @@ msgstr "Gérer le profil de {0}" msgid "Manage all teams you are currently associated with." msgstr "Gérer toutes les équipes avec lesquelles vous êtes actuellement associé." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:159 +msgid "Manage and view template" +msgstr "Gérer et afficher le modèle" + #: apps/web/src/components/templates/manage-public-template-dialog.tsx:341 msgid "Manage details for this public template" msgstr "Gérer les détails de ce modèle public" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:33 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 msgid "Manage Direct Link" msgstr "Gérer le lien direct" @@ -2050,7 +2158,8 @@ msgstr "Membre depuis" msgid "Members" msgstr "Membres" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:46 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:35 msgid "Modify recipients" msgstr "Modifier les destinataires" @@ -2079,8 +2188,8 @@ msgstr "Déplacer le document vers l'équipe" msgid "Move Template to Team" msgstr "Déplacer le modèle vers l'équipe" -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:172 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:82 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:174 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:85 msgid "Move to Team" msgstr "Déplacer vers l'équipe" @@ -2098,8 +2207,8 @@ msgstr "Mes modèles" #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:61 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:270 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:277 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:276 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:283 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:119 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:170 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:153 @@ -2155,7 +2264,13 @@ msgstr "Aucun modèle de profil public trouvé" msgid "No recent activity" msgstr "Aucune activité récente" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:55 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:103 +msgid "No recent documents" +msgstr "Aucun document récent" + +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:61 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:49 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:96 msgid "No recipients" msgstr "Pas de destinataires" @@ -2250,11 +2365,12 @@ msgstr "Ou" msgid "Or continue with" msgstr "Ou continuez avec" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:330 msgid "Otherwise, the document will be created as a draft." msgstr "Sinon, le document sera créé sous forme de brouillon." #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:86 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:103 #: apps/web/src/components/(dashboard)/layout/menu-switcher.tsx:81 #: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:86 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:109 @@ -2289,6 +2405,10 @@ msgstr "La clé d'accès a été mise à jour" msgid "Passkey name" msgstr "Nom de la clé d'accès" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:121 +msgid "Passkey Re-Authentication" +msgstr "Ré-authentification par clé d'accès" + #: apps/web/src/app/(dashboard)/settings/security/page.tsx:106 #: apps/web/src/app/(dashboard)/settings/security/passkeys/page.tsx:32 msgid "Passkeys" @@ -2329,9 +2449,11 @@ msgstr "Un paiement est requis pour finaliser la création de votre équipe." msgid "Payment overdue" msgstr "Paiement en retard" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:115 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:122 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:211 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 +#: apps/web/src/components/document/document-read-only-fields.tsx:89 #: apps/web/src/components/formatter/document-status.tsx:22 msgid "Pending" msgstr "En attente" @@ -2518,10 +2640,14 @@ msgstr "Champ en lecture seule" msgid "Read the full <0>signature disclosure." msgstr "Lisez l'intégralité de la <0>divulgation de signature." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:97 msgid "Ready" msgstr "Prêt" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:281 +msgid "Reason" +msgstr "Raison" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:62 msgid "Reauthentication is required to sign this field" msgstr "Une nouvelle authentification est requise pour signer ce champ" @@ -2531,7 +2657,12 @@ msgstr "Une nouvelle authentification est requise pour signer ce champ" msgid "Recent activity" msgstr "Activité récente" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:47 +msgid "Recent documents" +msgstr "Documents récents" + #: apps/web/src/app/(dashboard)/documents/data-table.tsx:69 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:120 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:280 msgid "Recipient" msgstr "Destinataire" @@ -2541,7 +2672,9 @@ msgid "Recipient updated" msgstr "Destinataire mis à jour" #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:66 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:34 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:30 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:139 msgid "Recipients" msgstr "Destinataires" @@ -2768,7 +2901,7 @@ msgstr "Sélectionner la clé d'authentification" msgid "Send confirmation email" msgstr "Envoyer l'e-mail de confirmation" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:314 msgid "Send document" msgstr "Envoyer le document" @@ -2788,7 +2921,8 @@ msgstr "Envoi de l'e-mail de réinitialisation..." msgid "Sending..." msgstr "Envoi..." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:85 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:92 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:248 msgid "Sent" msgstr "Envoyé" @@ -2807,13 +2941,13 @@ msgstr "Paramètres" msgid "Setup" msgstr "Configuration" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:145 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:191 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:148 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:193 msgid "Share" msgstr "Partager" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:161 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:203 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:179 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:219 msgid "Share Signing Card" msgstr "Partager la carte de signature" @@ -2835,7 +2969,7 @@ msgstr "Afficher des modèles dans le profil public de votre équipe pour que vo #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:83 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:114 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:137 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:139 #: apps/web/src/app/(profile)/p/[url]/page.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:182 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:224 @@ -2911,6 +3045,7 @@ msgid "Sign Up with OIDC" msgstr "S'inscrire avec OIDC" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:177 #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:338 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195 @@ -2921,6 +3056,10 @@ msgstr "S'inscrire avec OIDC" msgid "Signature" msgstr "Signature" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:220 +msgid "Signature ID" +msgstr "ID de signature" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:123 msgid "Signatures Collected" msgstr "Signatures collectées" @@ -2929,15 +3068,34 @@ msgstr "Signatures collectées" msgid "Signatures will appear once the document has been completed" msgstr "Les signatures apparaîtront une fois le document complété" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:98 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:105 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:270 +#: apps/web/src/components/document/document-read-only-fields.tsx:84 msgid "Signed" msgstr "Signé" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:176 +msgid "Signer Events" +msgstr "Événements de signataire" + +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:168 +msgid "Signing Certificate" +msgstr "Certificat de signature" + +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:303 +msgid "Signing certificate provided by" +msgstr "Certificat de signature fourni par" + #: apps/web/src/components/forms/signin.tsx:383 #: apps/web/src/components/forms/signin.tsx:510 msgid "Signing in..." msgstr "Connexion en cours..." +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:160 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:203 +msgid "Signing Links" +msgstr "" + #: apps/web/src/components/forms/signup.tsx:235 msgid "Signing up..." msgstr "Inscription en cours..." @@ -2957,11 +3115,11 @@ msgstr "Paramètres du site" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:105 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:63 -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:88 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:91 #: apps/web/src/app/(dashboard)/documents/[id]/logs/download-audit-log-button.tsx:65 #: apps/web/src/app/(dashboard)/documents/[id]/logs/download-certificate-button.tsx:66 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:75 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:104 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:106 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:80 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:72 #: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:62 @@ -3030,6 +3188,10 @@ msgstr "Désolé, nous n'avons pas pu télécharger les journaux d'audit. Veuill 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/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:138 +msgid "Source" +msgstr "Source" + #: apps/web/src/app/(dashboard)/admin/nav.tsx:37 msgid "Stats" msgstr "Statistiques" @@ -3037,11 +3199,13 @@ msgstr "Statistiques" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:130 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:93 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" msgstr "Statut" -#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:128 +#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:129 msgid "Subscribe" msgstr "S'abonner" @@ -3215,6 +3379,11 @@ msgstr "Équipes" msgid "Teams restricted" msgstr "Équipes restreintes" +#: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:63 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:148 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:228 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:146 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:271 msgid "Template" @@ -3244,11 +3413,11 @@ msgstr "Le modèle a été mis à jour." msgid "Template moved" msgstr "Modèle déplacé" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:223 msgid "Template saved" msgstr "Modèle enregistré" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:87 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:208 #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 @@ -3295,7 +3464,7 @@ msgstr "Le document a été déplacé avec succès vers l'équipe sélectionnée 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." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:171 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." @@ -3303,7 +3472,7 @@ msgstr "Le document a été créé mais n'a pas pu être envoyé aux destinatair msgid "The document will be hidden from your account" msgstr "Le document sera caché de votre compte" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:322 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é." @@ -3345,7 +3514,9 @@ msgstr "Le destinataire a été mis à jour avec succès" msgid "The selected team member will receive an email which they must accept before the team is transferred" msgstr "Le membre d'équipe sélectionné recevra un e-mail qu'il devra accepter avant que l'équipe soit transférée" +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:134 #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:41 +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:118 msgid "The signing link has been copied to your clipboard." msgstr "Le lien de signature a été copié dans votre presse-papiers." @@ -3446,14 +3617,22 @@ msgstr "Ce document a été annulé par le propriétaire et n'est plus disponibl msgid "This document has been cancelled by the owner." msgstr "Ce document a été annulé par le propriétaire." -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:219 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:224 msgid "This document has been signed by all recipients" msgstr "Ce document a été signé par tous les destinataires" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:222 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:227 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/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:152 +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/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:164 +msgid "This document was created using a direct link." +msgstr "Ce document a été créé en utilisant un lien direct." + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." msgstr "Cet e-mail est déjà utilisé par une autre équipe." @@ -3511,7 +3690,8 @@ msgstr "Ce nom d'utilisateur a déjà été pris" msgid "This username is already taken" msgstr "Ce nom d'utilisateur est déjà pris" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:77 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:73 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:44 msgid "Time" msgstr "Temps" @@ -3519,8 +3699,13 @@ msgstr "Temps" msgid "Time zone" msgstr "Fuseau horaire" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:131 +msgid "Time Zone" +msgstr "Fuseau horaire" + #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 msgid "Title" msgstr "Titre" @@ -3666,6 +3851,10 @@ msgstr "Authentification à deux facteurs activée" 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/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:120 +msgid "Two-Factor Re-Authentication" +msgstr "Ré-authentification à deux facteurs" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:73 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:67 msgid "Type" @@ -3724,6 +3913,10 @@ msgstr "Impossible de rejoindre cette équipe pour le moment." msgid "Unable to load document history" msgstr "Impossible de charger l'historique des documents" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:62 +msgid "Unable to load documents" +msgstr "Impossible de charger les documents" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:111 msgid "Unable to load your public profile templates at this time" msgstr "Impossible de charger vos modèles de profil public pour le moment" @@ -3767,6 +3960,13 @@ msgstr "Non autorisé" msgid "Uncompleted" msgstr "Non complet" +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:229 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:254 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:265 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:276 +msgid "Unknown" +msgstr "Inconnu" + #: apps/web/src/app/(teams)/t/[teamUrl]/error.tsx:23 msgid "Unknown error" msgstr "Erreur inconnue" @@ -3848,6 +4048,7 @@ msgid "Upload Avatar" msgstr "Télécharger un avatar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:31 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:30 msgid "Uploaded by" msgstr "Téléversé par" @@ -3863,6 +4064,10 @@ msgstr "Le fichier téléchargé est trop petit" msgid "Uploaded file not an allowed file type" msgstr "Le fichier téléchargé n'est pas un type de fichier autorisé" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:170 +msgid "Use" +msgstr "Utiliser" + #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187 #: apps/web/src/components/forms/signin.tsx:505 msgid "Use Authenticator" @@ -3873,11 +4078,12 @@ msgstr "Utiliser l'authentificateur" msgid "Use Backup Code" msgstr "Utiliser le code de secours" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:196 msgid "Use Template" msgstr "Utiliser le modèle" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:82 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:78 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:45 msgid "User" msgstr "Utilisateur" @@ -3925,10 +4131,14 @@ msgstr "Vérifiez votre adresse e-mail pour débloquer toutes les fonctionnalit msgid "Verify your email to upload documents." msgstr "Vérifiez votre e-mail pour télécharger des documents." +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:75 +msgid "Version History" +msgstr "Historique des versions" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-button.tsx:95 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:126 #: apps/web/src/app/(dashboard)/documents/data-table-action-button.tsx:135 -#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:130 +#: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:132 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:100 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:168 msgid "View" @@ -3946,6 +4156,10 @@ msgstr "Voir tous les documents envoyés à votre compte" 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/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:157 +msgid "View all related documents" +msgstr "Voir tous les documents associés" + #: apps/web/src/app/(dashboard)/settings/security/activity/page.tsx:26 msgid "View all security activity related to your account." msgstr "Voir toute l'activité de sécurité liée à votre compte." @@ -3966,6 +4180,10 @@ msgstr "Voir les documents associés à cet e-mail" msgid "View invites" msgstr "Voir les invitations" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:95 +msgid "View more" +msgstr "Voir plus" + #: apps/web/src/app/(signing)/sign/[token]/complete/document-preview-button.tsx:34 msgid "View Original Document" msgstr "Voir le document original" @@ -3979,7 +4197,8 @@ msgstr "Voir les codes de récupération" msgid "View teams" msgstr "Voir les équipes" -#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:104 +#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:111 +#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:259 msgid "Viewed" msgstr "Vu" @@ -4280,6 +4499,7 @@ msgid "Yearly" msgstr "Annuel" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:32 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:31 msgid "You" msgstr "Vous" @@ -4347,6 +4567,10 @@ msgstr "Vous pouvez choisir d'activer ou de désactiver le profil de votre équi msgid "You can claim your profile later on by going to your profile settings!" msgstr "Vous pouvez revendiquer votre profil plus tard en allant dans vos paramètres de profil !" +#: apps/web/src/components/document/document-recipient-link-copy-dialog.tsx:87 +msgid "You can copy and share these links to recipients so they can action the document." +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:154 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." @@ -4513,7 +4737,7 @@ msgstr "Vos modèles de signature directe" msgid "Your document failed to upload." msgstr "Votre document a échoué à se télécharger." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:155 msgid "Your document has been created from the template successfully." msgstr "Votre document a été créé à partir du modèle avec succès." @@ -4612,7 +4836,7 @@ msgstr "Votre modèle a été supprimé avec succès." msgid "Your template will be duplicated." msgstr "Votre modèle sera dupliqué." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Vos modèles ont été enregistrés avec succès." @@ -4628,4 +4852,3 @@ msgstr "Votre jeton a été créé avec succès ! Assurez-vous de le copier car #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:86 msgid "Your tokens will be shown here once you create them." msgstr "Vos jetons seront affichés ici une fois que vous les aurez créés." - diff --git a/packages/lib/utils/document-audit-logs.ts b/packages/lib/utils/document-audit-logs.ts index 7ae9483d4..09d5548ff 100644 --- a/packages/lib/utils/document-audit-logs.ts +++ b/packages/lib/utils/document-audit-logs.ts @@ -1,14 +1,10 @@ +import type { I18n } from '@lingui/core'; +import { msg } from '@lingui/macro'; import { match } from 'ts-pattern'; -import type { - DocumentAuditLog, - DocumentMeta, - Field, - Recipient, - RecipientRole, -} from '@documenso/prisma/client'; +import type { DocumentAuditLog, DocumentMeta, Field, Recipient } from '@documenso/prisma/client'; +import { RecipientRole } from '@documenso/prisma/client'; -import { RECIPIENT_ROLES_DESCRIPTION_ENG } from '../constants/recipient-roles'; import type { TDocumentAuditLog, TDocumentAuditLogDocumentMetaDiffSchema, @@ -254,129 +250,119 @@ export const diffDocumentMetaChanges = ( * * Provide a userId to prefix the action with the user, example 'X did Y'. */ -export const formatDocumentAuditLogActionString = ( +export const formatDocumentAuditLogAction = ( + _: I18n['_'], auditLog: TDocumentAuditLog, userId?: number, ) => { - const { prefix, description } = formatDocumentAuditLogAction(auditLog, userId); - - return prefix ? `${prefix} ${description}` : description; -}; - -/** - * Formats the audit log into a description of the action. - * - * Provide a userId to prefix the action with the user, example 'X did Y'. - */ -// Todo: Translations. -export const formatDocumentAuditLogAction = (auditLog: TDocumentAuditLog, userId?: number) => { - let prefix = userId === auditLog.userId ? 'You' : auditLog.name || auditLog.email || ''; + const prefix = userId === auditLog.userId ? _(msg`You`) : auditLog.name || auditLog.email || ''; const description = match(auditLog) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.FIELD_CREATED }, () => ({ - anonymous: 'A field was added', - identified: 'added a field', + anonymous: msg`A field was added`, + identified: msg`${prefix} added a field`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.FIELD_DELETED }, () => ({ - anonymous: 'A field was removed', - identified: 'removed a field', + anonymous: msg`A field was removed`, + identified: msg`${prefix} removed a field`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.FIELD_UPDATED }, () => ({ - anonymous: 'A field was updated', - identified: 'updated a field', + anonymous: msg`A field was updated`, + identified: msg`${prefix} updated a field`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.RECIPIENT_CREATED }, () => ({ - anonymous: 'A recipient was added', - identified: 'added a recipient', + anonymous: msg`A recipient was added`, + identified: msg`${prefix} added a recipient`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.RECIPIENT_DELETED }, () => ({ - anonymous: 'A recipient was removed', - identified: 'removed a recipient', + anonymous: msg`A recipient was removed`, + identified: msg`${prefix} removed a recipient`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.RECIPIENT_UPDATED }, () => ({ - anonymous: 'A recipient was updated', - identified: 'updated a recipient', + anonymous: msg`A recipient was updated`, + identified: msg`${prefix} updated a recipient`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_CREATED }, () => ({ - anonymous: 'Document created', - identified: 'created the document', + anonymous: msg`Document created`, + identified: msg`${prefix} created the document`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_DELETED }, () => ({ - anonymous: 'Document deleted', - identified: 'deleted the document', + anonymous: msg`Document deleted`, + identified: msg`${prefix} deleted the document`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_FIELD_INSERTED }, () => ({ - anonymous: 'Field signed', - identified: 'signed a field', + anonymous: msg`Field signed`, + identified: msg`${prefix} signed a field`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_FIELD_UNINSERTED }, () => ({ - anonymous: 'Field unsigned', - identified: 'unsigned a field', + anonymous: msg`Field unsigned`, + identified: msg`${prefix} unsigned a field`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_VISIBILITY_UPDATED }, () => ({ - anonymous: 'Document visibility updated', - identified: 'updated the document visibility', + anonymous: msg`Document visibility updated`, + identified: msg`${prefix} updated the document visibility`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_GLOBAL_AUTH_ACCESS_UPDATED }, () => ({ - anonymous: 'Document access auth updated', - identified: 'updated the document access auth requirements', + anonymous: msg`Document access auth updated`, + identified: msg`${prefix} updated the document access auth requirements`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_GLOBAL_AUTH_ACTION_UPDATED }, () => ({ - anonymous: 'Document signing auth updated', - identified: 'updated the document signing auth requirements', + anonymous: msg`Document signing auth updated`, + identified: msg`${prefix} updated the document signing auth requirements`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_META_UPDATED }, () => ({ - anonymous: 'Document updated', - identified: 'updated the document', + anonymous: msg`Document updated`, + identified: msg`${prefix} updated the document`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED }, () => ({ - anonymous: 'Document opened', - identified: 'opened the document', + anonymous: msg`Document opened`, + identified: msg`${prefix} opened the document`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_TITLE_UPDATED }, () => ({ - anonymous: 'Document title updated', - identified: 'updated the document title', + anonymous: msg`Document title updated`, + identified: msg`${prefix} updated the document title`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_EXTERNAL_ID_UPDATED }, () => ({ - anonymous: 'Document external ID updated', - identified: 'updated the document external ID', + anonymous: msg`Document external ID updated`, + identified: msg`${prefix} updated the document external ID`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT }, () => ({ - anonymous: 'Document sent', - identified: 'sent the document', + anonymous: msg`Document sent`, + identified: msg`${prefix} sent the document`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_MOVED_TO_TEAM }, () => ({ - anonymous: 'Document moved to team', - identified: 'moved the document to team', + anonymous: msg`Document moved to team`, + identified: msg`${prefix} moved the document to team`, })) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_RECIPIENT_COMPLETED }, ({ data }) => { - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - const action = RECIPIENT_ROLES_DESCRIPTION_ENG[data.recipientRole as RecipientRole]?.actioned; + const userName = prefix || _(msg`Recipient`); - const value = action ? `${action.toLowerCase()} the document` : 'completed their task'; + const result = match(data.recipientRole) + .with(RecipientRole.SIGNER, () => msg`${userName} signed the document`) + .with(RecipientRole.VIEWER, () => msg`${userName} viewed the document`) + .with(RecipientRole.APPROVER, () => msg`${userName} approved the document`) + .with(RecipientRole.CC, () => msg`${userName} CC'd the document`) + .otherwise(() => msg`${userName} completed their task`); return { - anonymous: `Recipient ${value}`, - identified: value, + anonymous: result, + identified: result, }; }) .with({ type: DOCUMENT_AUDIT_LOG_TYPE.EMAIL_SENT }, ({ data }) => ({ - anonymous: `Email ${data.isResending ? 'resent' : 'sent'}`, - identified: `${data.isResending ? 'resent' : 'sent'} an email to ${data.recipientEmail}`, + anonymous: data.isResending ? msg`Email resent` : msg`Email sent`, + identified: data.isResending + ? msg`${prefix} resent an email to ${data.recipientEmail}` + : msg`${prefix} sent an email to ${data.recipientEmail}`, + })) + .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_COMPLETED }, () => ({ + anonymous: msg`Document completed`, + identified: msg`Document completed`, })) - .with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_COMPLETED }, () => { - // Clear the prefix since this should be considered an 'anonymous' event. - prefix = ''; - - return { - anonymous: 'Document completed', - identified: 'Document completed', - }; - }) .exhaustive(); return { prefix, - description: prefix ? description.identified : description.anonymous, + description: _(prefix ? description.identified : description.anonymous), }; }; diff --git a/packages/lib/utils/recipients.ts b/packages/lib/utils/recipients.ts index 22afa451d..eab5f963c 100644 --- a/packages/lib/utils/recipients.ts +++ b/packages/lib/utils/recipients.ts @@ -1,5 +1,9 @@ import { type Field, type Recipient, RecipientRole, SigningStatus } from '@documenso/prisma/client'; +import { NEXT_PUBLIC_WEBAPP_URL } from '../constants/app'; + +export const formatSigningLink = (token: string) => `${NEXT_PUBLIC_WEBAPP_URL()}/sign/${token}`; + /** * Whether a recipient can be modified by the document owner. */ diff --git a/packages/trpc/server/document-router/router.ts b/packages/trpc/server/document-router/router.ts index d49dd07ef..753cd87d0 100644 --- a/packages/trpc/server/document-router/router.ts +++ b/packages/trpc/server/document-router/router.ts @@ -11,6 +11,7 @@ import { createDocument } from '@documenso/lib/server-only/document/create-docum import { deleteDocument } from '@documenso/lib/server-only/document/delete-document'; import { duplicateDocumentById } from '@documenso/lib/server-only/document/duplicate-document-by-id'; import { findDocumentAuditLogs } from '@documenso/lib/server-only/document/find-document-audit-logs'; +import { findDocuments } from '@documenso/lib/server-only/document/find-documents'; import { getDocumentById } from '@documenso/lib/server-only/document/get-document-by-id'; import { getDocumentAndSenderByToken } from '@documenso/lib/server-only/document/get-document-by-token'; import { getDocumentWithDetailsById } from '@documenso/lib/server-only/document/get-document-with-details-by-id'; @@ -31,6 +32,7 @@ import { ZDownloadAuditLogsMutationSchema, ZDownloadCertificateMutationSchema, ZFindDocumentAuditLogsQuerySchema, + ZFindDocumentsQuerySchema, ZGetDocumentByIdQuerySchema, ZGetDocumentByTokenQuerySchema, ZGetDocumentWithDetailsByIdQuerySchema, @@ -190,6 +192,37 @@ export const documentRouter = router({ } }), + findDocuments: authenticatedProcedure + .input(ZFindDocumentsQuerySchema) + .query(async ({ input, ctx }) => { + const { user } = ctx; + + const { search, teamId, templateId, page, perPage, orderBy, source, status } = input; + + try { + const documents = await findDocuments({ + userId: user.id, + teamId, + templateId, + search, + source, + status, + page, + perPage, + orderBy, + }); + + return documents; + } catch (err) { + console.error(err); + + throw new TRPCError({ + code: 'BAD_REQUEST', + message: 'We are unable to search for documents. Please try again later.', + }); + } + }), + findDocumentAuditLogs: authenticatedProcedure .input(ZFindDocumentAuditLogsQuerySchema) .query(async ({ input, ctx }) => { diff --git a/packages/trpc/server/document-router/schema.ts b/packages/trpc/server/document-router/schema.ts index 64540b077..b906dae21 100644 --- a/packages/trpc/server/document-router/schema.ts +++ b/packages/trpc/server/document-router/schema.ts @@ -7,7 +7,30 @@ import { } from '@documenso/lib/types/document-auth'; import { ZBaseTableSearchParamsSchema } from '@documenso/lib/types/search-params'; import { isValidRedirectUrl } from '@documenso/lib/utils/is-valid-redirect-url'; -import { DocumentSigningOrder, FieldType, RecipientRole } from '@documenso/prisma/client'; +import { + DocumentSigningOrder, + DocumentSource, + DocumentStatus, + FieldType, + RecipientRole, +} from '@documenso/prisma/client'; + +export const ZFindDocumentsQuerySchema = ZBaseTableSearchParamsSchema.extend({ + teamId: z.number().min(1).optional(), + templateId: z.number().min(1).optional(), + search: z + .string() + .optional() + .catch(() => undefined), + source: z.nativeEnum(DocumentSource).optional(), + status: z.nativeEnum(DocumentStatus).optional(), + orderBy: z + .object({ + column: z.enum(['createdAt']), + direction: z.enum(['asc', 'desc']), + }) + .optional(), +}).omit({ query: true }); export const ZFindDocumentAuditLogsQuerySchema = ZBaseTableSearchParamsSchema.extend({ documentId: z.number().min(1), diff --git a/packages/ui/components/common/copy-text-button.tsx b/packages/ui/components/common/copy-text-button.tsx new file mode 100644 index 000000000..608318690 --- /dev/null +++ b/packages/ui/components/common/copy-text-button.tsx @@ -0,0 +1,82 @@ +'use client'; + +import { useState } from 'react'; + +import { motion } from 'framer-motion'; +import { AnimatePresence } from 'framer-motion'; +import { CheckSquareIcon, CopyIcon } from 'lucide-react'; + +import { useCopyToClipboard } from '@documenso/lib/client-only/hooks/use-copy-to-clipboard'; +import { Button } from '@documenso/ui/primitives/button'; + +import { cn } from '../../lib/utils'; + +export type CopyTextButtonProps = { + value: string; + badgeContentUncopied?: React.ReactNode; + badgeContentCopied?: React.ReactNode; + onCopySuccess?: () => void; +}; + +export const CopyTextButton = ({ + value, + onCopySuccess, + badgeContentUncopied, + badgeContentCopied, +}: CopyTextButtonProps) => { + const [, copy] = useCopyToClipboard(); + + const [copiedTimeout, setCopiedTimeout] = useState(null); + + const onCopy = async () => { + await copy(value).then(() => onCopySuccess?.()); + + if (copiedTimeout) { + clearTimeout(copiedTimeout); + } + + setCopiedTimeout( + setTimeout(() => { + setCopiedTimeout(null); + }, 2000), + ); + }; + + return ( + + ); +}; diff --git a/turbo.json b/turbo.json index 753c11911..3a04158c9 100644 --- a/turbo.json +++ b/turbo.json @@ -105,6 +105,7 @@ "NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS", "NEXT_PRIVATE_SMTP_FROM_NAME", "NEXT_PRIVATE_SMTP_FROM_ADDRESS", + "NEXT_PRIVATE_SMTP_SERVICE", "NEXT_PRIVATE_STRIPE_API_KEY", "NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET", "NEXT_PRIVATE_GITHUB_TOKEN",