From 5fcd8610c95f4b546e665d69087a98d94f508eb1 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Mon, 28 Oct 2024 11:21:49 +0900 Subject: [PATCH 01/17] fix: translate extract command (#1394) Change how the translate extract command is run on build --- apps/marketing/package.json | 2 +- apps/web/package.json | 2 +- turbo.json | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/apps/marketing/package.json b/apps/marketing/package.json index de0b41c88..907f74698 100644 --- a/apps/marketing/package.json +++ b/apps/marketing/package.json @@ -5,7 +5,7 @@ "license": "AGPL-3.0", "scripts": { "dev": "next dev -p 3001", - "build": "turbo run translate:extract && turbo run translate:compile && next build", + "build": "npm run translate:extract --prefix ../../ && turbo run translate:compile && next build", "start": "next start -p 3001", "lint": "next lint", "lint:fix": "next lint --fix", diff --git a/apps/web/package.json b/apps/web/package.json index f8c996cfb..314f39723 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -5,7 +5,7 @@ "license": "AGPL-3.0", "scripts": { "dev": "next dev -p 3000", - "build": "turbo run translate:extract && turbo run translate:compile && next build", + "build": "npm run translate:extract --prefix ../../ && turbo run translate:compile && next build", "start": "next start", "lint": "next lint", "e2e:prepare": "next build && next start", diff --git a/turbo.json b/turbo.json index 0004b30d1..753c11911 100644 --- a/turbo.json +++ b/turbo.json @@ -34,9 +34,6 @@ "dependsOn": ["^build"], "cache": false }, - "translate:extract": { - "cache": false - }, "translate:compile": { "cache": false } From 872762661a0795104b817b57da860cc5f3abcbb3 Mon Sep 17 00:00:00 2001 From: Andre G Date: Mon, 28 Oct 2024 03:23:08 +0100 Subject: [PATCH 02/17] style: Update web.po (#1403) Update translations --- packages/lib/translations/de/web.po | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index 7c5327f4c..e777c6161 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -3102,40 +3102,40 @@ msgstr "Teams" #: apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx:83 msgid "Teams restricted" -msgstr "Teams restricted" +msgstr "Teams beschränkt" #: 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" -msgstr "Template" +msgstr "Vorlage" #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:41 msgid "Template deleted" -msgstr "Template deleted" +msgstr "Vorlage gelöscht" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:67 msgid "Template document uploaded" -msgstr "Template document uploaded" +msgstr "Vorlagendokument hochgeladen" #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:42 msgid "Template duplicated" -msgstr "Template duplicated" +msgstr "Vorlage dupliziert" #: apps/web/src/components/templates/manage-public-template-dialog.tsx:134 msgid "Template has been removed from your public profile." -msgstr "Template has been removed from your public profile." +msgstr "Vorlage ist von Deinem öffentlichen Profil entfernt worden." #: apps/web/src/components/templates/manage-public-template-dialog.tsx:171 msgid "Template has been updated." -msgstr "Template has been updated." +msgstr "Vorlage wurde aktualisiert." #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:48 msgid "Template moved" -msgstr "Template moved" +msgstr "Vorlage verschoben" #: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:219 msgid "Template saved" -msgstr "Template saved" +msgstr "Vorlage gespeichert" #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 @@ -3143,11 +3143,11 @@ msgstr "Template saved" #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 #: apps/web/src/components/(dashboard)/layout/mobile-navigation.tsx:39 msgid "Templates" -msgstr "Templates" +msgstr "Vorlagen" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:106 msgid "Templates allow you to quickly generate documents with pre-filled recipients and fields." -msgstr "Templates allow you to quickly generate documents with pre-filled recipients and fields." +msgstr "Vorlagen erlauben dir das schnelle Erstlelen von Dokumenten mit vorausgefüllten Empfängern und Feldern." #: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:256 #: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:272 @@ -3156,25 +3156,25 @@ msgstr "Text" #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:166 msgid "Text Color" -msgstr "Text Color" +msgstr "Textfarbe" #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." -msgstr "The account has been deleted successfully." +msgstr "Das Konto wurde erfolgreich gelöscht." #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:197 msgid "The content to show in the banner, HTML is allowed" -msgstr "The content to show in the banner, HTML is allowed" +msgstr "Der Inhalt, der im Banne rgezeig wird, HTML ist erlaubt" #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:78 #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:32 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:164 msgid "The direct link has been copied to your clipboard" -msgstr "The direct link has been copied to your clipboard" +msgstr "Der direkte Linkt wurde in die Zwischenablage kopiert" #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:50 msgid "The document has been successfully moved to the selected team." -msgstr "The document has been successfully moved to the selected team." +msgstr "Das Dokument wurde erfolgreich in das ausgewählte Team verschoben." #: apps/web/src/app/embed/completed.tsx:29 msgid "The document is now completed, please follow any instructions provided within the parent application." @@ -3182,7 +3182,7 @@ msgstr "Das Dokument ist jetzt abgeschlossen. Bitte folgen Sie allen Anweisungen #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:159 msgid "The document was created but could not be sent to recipients." -msgstr "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." #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:161 msgid "The document will be hidden from your account" From e30ceeb038d531a3910a088ad78efdc9fe691282 Mon Sep 17 00:00:00 2001 From: Andre G Date: Mon, 28 Oct 2024 03:26:12 +0100 Subject: [PATCH 03/17] style: update common.po (#1402) Update translations --- packages/lib/translations/de/common.po | 25 +---- packages/lib/translations/de/marketing.po | 17 ---- packages/lib/translations/de/web.po | 112 +++++----------------- packages/lib/translations/en/common.po | 16 ---- packages/lib/translations/en/marketing.po | 16 ---- packages/lib/translations/en/web.po | 111 +++++---------------- packages/lib/translations/es/common.po | 17 ---- packages/lib/translations/es/marketing.po | 17 ---- packages/lib/translations/es/web.po | 112 +++++----------------- packages/lib/translations/fr/common.po | 17 ---- packages/lib/translations/fr/marketing.po | 17 ---- packages/lib/translations/fr/web.po | 112 +++++----------------- 12 files changed, 108 insertions(+), 481 deletions(-) diff --git a/packages/lib/translations/de/common.po b/packages/lib/translations/de/common.po index ab0c6fb6c..c4a4a0cd5 100644 --- a/packages/lib/translations/de/common.po +++ b/packages/lib/translations/de/common.po @@ -157,10 +157,6 @@ msgstr "Abbrechen" msgid "Cannot remove signer" msgstr "Unterzeichner kann nicht entfernt werden" -#: packages/ui/primitives/document-flow/add-signers.tsx:221 -#~ msgid "Cannot update signer because they have already signed a field" -#~ msgstr "Cannot update signer because they have already signed a field" - #: packages/lib/constants/recipient-roles.ts:17 msgid "Cc" msgstr "Cc" @@ -374,10 +370,6 @@ msgstr "Ich bin ein Genehmiger dieses Dokuments" msgid "I am required to receive a copy of this document" msgstr "Ich bin verpflichtet, eine Kopie dieses Dokuments zu erhalten" -#: packages/lib/constants/recipient-roles.ts:74 -#~ msgid "I am required to recieve a copy of this document" -#~ msgstr "I am required to recieve a copy of this document" - #: packages/ui/components/recipient/recipient-action-auth-select.tsx:29 #: packages/ui/components/recipient/recipient-action-auth-select.tsx:87 msgid "Inherit authentication method" @@ -729,10 +721,6 @@ msgstr "Dieses Feld kann nicht geändert oder gelöscht werden. Wenn Sie den dir msgid "This recipient can no longer be modified as they have signed a field, or completed the document." msgstr "Dieser Empfänger kann nicht mehr bearbeitet werden, da er ein Feld unterschrieben oder das Dokument abgeschlossen hat." -#: packages/ui/primitives/document-flow/add-signers.tsx:165 -#~ msgid "This signer has already received the document." -#~ msgstr "This signer has already received the document." - #: packages/ui/primitives/document-flow/add-signers.tsx:194 msgid "This signer has already signed the document." msgstr "Dieser Unterzeichner hat das Dokument bereits unterschrieben." @@ -783,23 +771,19 @@ msgstr "Wert" #: packages/lib/constants/recipient-roles.ts:26 msgid "View" -msgstr "View" +msgstr "Betrachten" #: packages/lib/constants/recipient-roles.ts:27 msgid "Viewed" -msgstr "Viewed" +msgstr "Betrachtet" #: packages/lib/constants/recipient-roles.ts:29 msgid "Viewer" -msgstr "Viewer" +msgstr "Betrachter" #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" -msgstr "Viewing" - -#: packages/ui/primitives/signature-pad/signature-pad.tsx:280 -#~ msgid "White" -#~ msgstr "White" +msgstr "Betrachten" #: 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?" @@ -816,4 +800,3 @@ msgstr "Sie können derzeit keine Dokumente hochladen." #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Sie haben Ihr Dokumentenlimit erreicht." - diff --git a/packages/lib/translations/de/marketing.po b/packages/lib/translations/de/marketing.po index ed237f322..0c3a69fe2 100644 --- a/packages/lib/translations/de/marketing.po +++ b/packages/lib/translations/de/marketing.po @@ -160,10 +160,6 @@ msgstr "Dokumentation" msgid "Easily embed Documenso into your product. Simply copy and paste our react widget into your application." msgstr "Betten Sie Documenso ganz einfach in Ihr Produkt ein. Kopieren und fügen Sie einfach unser React-Widget in Ihre Anwendung ein." -#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:42 -#~ msgid "Easy Sharing (Soon)." -#~ msgstr "Easy Sharing (Soon)." - #: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:46 msgid "Easy Sharing." msgstr "Einfaches Teilen." @@ -377,18 +373,10 @@ msgstr "Unsere benutzerdefinierten Vorlagen verfügen über intelligente Regeln, msgid "Our Enterprise License is great for large organizations looking to switch to Documenso for all their signing needs. It's available for our cloud offering as well as self-hosted setups and offers a wide range of compliance and Adminstration Features." msgstr "Unsere Enterprise-Lizenz ist ideal für große Organisationen, die auf Documenso für all ihre Signaturanforderungen umsteigen möchten. Sie ist sowohl für unser Cloud-Angebot als auch für selbstgehostete Setups verfügbar und bietet eine breite Palette an Compliance- und Verwaltungsfunktionen." -#: apps/marketing/src/components/(marketing)/enterprise.tsx:20 -#~ msgid "Our Enterprise License is great large organizations looking to switch to Documenso for all their signing needs. It's availible for our cloud offering as well as self-hosted setups and offer a wide range of compliance and Adminstration Features." -#~ msgstr "Our Enterprise License is great large organizations looking to switch to Documenso for all their signing needs. It's availible for our cloud offering as well as self-hosted setups and offer a wide range of compliance and Adminstration Features." - #: apps/marketing/src/app/(marketing)/pricing/page.tsx:65 msgid "Our self-hosted option is great for small teams and individuals who need a simple solution. You can use our docker based setup to get started in minutes. Take control with full customizability and data ownership." msgstr "Unsere selbstgehostete Option ist ideal für kleine Teams und Einzelpersonen, die eine einfache Lösung benötigen. Sie können unser docker-basiertes Setup verwenden, um in wenigen Minuten loszulegen. Übernehmen Sie die Kontrolle mit vollständiger Anpassbarkeit und Datenhoheit." -#: apps/marketing/src/app/(marketing)/open/data.ts:25 -#~ msgid "Part-Time" -#~ msgstr "Part-Time" - #: apps/marketing/src/components/(marketing)/pricing-table.tsx:151 msgid "Premium Profile Name" msgstr "Premium Profilname" @@ -430,10 +418,6 @@ msgstr "Gehalt" msgid "Save $60 or $120" msgstr "Sparen Sie $60 oder $120" -#: apps/marketing/src/components/(marketing)/i18n-switcher.tsx:47 -#~ msgid "Search languages..." -#~ msgstr "Search languages..." - #: apps/marketing/src/app/(marketing)/pricing/page.tsx:109 msgid "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us." msgstr "Sicher. Unsere Rechenzentren befinden sich in Frankfurt (Deutschland) und bieten uns die besten lokalen Datenschutzgesetze. Uns ist die sensible Natur unserer Daten sehr bewusst und wir folgen bewährten Praktiken, um die Sicherheit und Integrität der uns anvertrauten Daten zu gewährleisten." @@ -618,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 e777c6161..4c8bb1161 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -137,7 +137,7 @@ msgstr "404 Vorlage nicht gefunden" msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." msgstr "Eine Bestätigungs-E-Mail wurde gesendet, und sie sollte in Kürze in deinem Posteingang ankommen." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:193 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" msgstr "Ein Entwurf wird erstellt" @@ -250,10 +250,6 @@ msgstr "Felder hinzufügen" msgid "Add more" msgstr "Mehr hinzufügen" -#: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:270 -#~ msgid "Add number" -#~ msgstr "Add number" - #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:146 #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:154 msgid "Add passkey" @@ -275,19 +271,11 @@ msgstr "Betreff hinzufügen" msgid "Add team email" msgstr "Team-E-Mail hinzufügen" -#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:256 -#~ msgid "Add text" -#~ msgstr "Add text" - -#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:272 -#~ msgid "Add Text" -#~ msgstr "Add Text" - #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 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:195 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Add the recipients to create the document with" msgstr "Fügen Sie die Empfänger hinzu, um das Dokument zu erstellen" @@ -380,7 +368,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:153 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 msgid "An error occurred while creating document from template." msgstr "Ein Fehler ist aufgetreten, während das Dokument aus der Vorlage erstellt wurde." @@ -561,7 +549,7 @@ msgstr "Bist du dir sicher, dass du dieses Team löschen möchtest?" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:98 #: apps/web/src/app/(dashboard)/settings/teams/team-email-usage.tsx:94 -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:453 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:455 #: apps/web/src/components/(teams)/dialogs/delete-team-member-dialog.tsx:81 #: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:81 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:116 @@ -660,7 +648,7 @@ msgstr "Durch die Aktivierung von 2FA müssen Sie jedes Mal, wenn Sie sich anmel #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:81 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:78 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:119 -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:470 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:472 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:71 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164 @@ -759,7 +747,7 @@ 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:304 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 #: 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 @@ -814,7 +802,7 @@ msgstr "Konfigurieren Sie die allgemeinen Einstellungen für die Vorlage." msgid "Configure template" msgstr "Vorlage konfigurieren" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:479 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:481 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:460 msgid "Confirm" msgstr "Bestätigen" @@ -900,11 +888,11 @@ 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:310 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 msgid "Create and send" msgstr "Erstellen und senden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:312 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 msgid "Create as draft" msgstr "Als Entwurf erstellen" @@ -916,7 +904,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:189 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 msgid "Create document from template" msgstr "Dokument aus der Vorlage erstellen" @@ -988,11 +976,6 @@ msgstr "Erstellt am" msgid "Created on {0}" msgstr "Erstellt am {0}" -#: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:89 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:94 -#~ msgid "Created on <0/>" -#~ msgstr "Created on <0/>" - #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 msgid "Created on{0}" msgstr ">>>>>>> 4ca18b99 (fix: refactor dates)" @@ -1107,10 +1090,6 @@ msgstr "Gelöscht" msgid "Deleting account..." msgstr "Konto wird gelöscht..." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:135 -#~ msgid "Deleting document" -#~ msgstr "Deleting document" - #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:75 msgid "Device" msgstr "Gerät" @@ -1215,7 +1194,7 @@ msgstr "Dokument abgeschlossen" msgid "Document Completed!" msgstr "Dokument abgeschlossen!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:142 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 msgid "Document created" msgstr "Dokument erstellt" @@ -1246,7 +1225,7 @@ msgstr "Dokument-ID" msgid "Document inbox" msgstr "Dokumenten-Posteingang" -#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:178 +#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:179 msgid "Document Limit Exceeded!" msgstr "Dokumentenlimit überschritten!" @@ -1369,10 +1348,6 @@ msgstr "Entwurfdokumente" msgid "Drafted Documents" msgstr "Entwurfte Dokumente" -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:245 -#~ msgid "Draw" -#~ msgstr "Draw" - #: apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx:121 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." @@ -1406,8 +1381,8 @@ msgstr "Webhook bearbeiten" #: 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:213 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:220 +#: 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/(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:376 @@ -1507,7 +1482,7 @@ msgstr "Geben Sie hier Ihren Text ein" #: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:230 #: 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:152 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 #: 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 @@ -1548,20 +1523,10 @@ msgstr "Zeitüberschreitung überschritten" msgid "Expired" msgstr "Abgelaufen" -#: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:73 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:106 -#~ msgid "Expires on" -#~ msgstr "Expires on" - #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 msgid "Expires on {0}" msgstr ">>>>>>> 4ca18b99 (fix: refactor dates)" -#: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 -#~ msgid "Expires on <0/>" -#~ msgstr "Expires on <0/>" - #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 msgid "Expires on{0}" msgstr "Läuft ab am{0}" @@ -1663,10 +1628,6 @@ msgstr "Ausblenden" msgid "Hide additional information" msgstr "Zusätzliche Informationen ausblenden" -#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:40 -#~ 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" @@ -2010,8 +1971,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:235 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:242 +#: 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/(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 @@ -2162,7 +2123,7 @@ msgstr "Oder" msgid "Or continue with" msgstr "Oder fahren Sie fort mit" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:289 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 msgid "Otherwise, the document will be created as a draft." msgstr "Andernfalls wird das Dokument als Entwurf erstellt." @@ -2302,7 +2263,7 @@ msgstr "Bitte geben Sie einen aussagekräftigen Namen für Ihr Token ein. Dies w msgid "Please mark as viewed to complete" msgstr "Bitte als angesehen markieren, um abzuschließen" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:457 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:459 msgid "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." msgstr "Bitte beachten Sie, dass das Fortfahren den direkten Linkempfänger entfernt und ihn in einen Platzhalter umwandelt." @@ -2593,7 +2554,7 @@ msgstr "Rolle" msgid "Roles" msgstr "Rollen" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:444 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:446 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:336 #: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:342 msgid "Save" @@ -2662,7 +2623,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:273 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 msgid "Send document" msgstr "Dokument senden" @@ -2744,10 +2705,6 @@ msgstr "Unterzeichnen" msgid "Sign as {0} <0>({1})" msgstr "Unterzeichnen als {0} <0>({1})" -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:219 -#~ msgid "Sign as <0>{0} <1>({1})" -#~ msgstr "Sign as <0>{0} <1>({1})" - #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:183 msgid "Sign as<0>{0} <1>({1})" msgstr "Unterzeichnen als<0>{0} <1>({1})" @@ -3180,7 +3137,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:159 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 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." @@ -3188,7 +3145,7 @@ msgstr "Das Dokument wurde erstellt, konnte aber nicht an die Empfänger versend 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:281 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 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." @@ -3556,10 +3513,6 @@ msgstr "Type 'delete' to confirm" msgid "Type a command or search..." msgstr "Type a command or search..." -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:275 -#~ msgid "Typed Signature" -#~ msgstr "Typed Signature" - #: apps/web/src/app/(unauthenticated)/verify-email/page.tsx:26 msgid "Uh oh! Looks like you're missing a token" msgstr "Uh oh! Looks like you're missing a token" @@ -3750,7 +3703,7 @@ msgstr "Authenticator verwenden" msgid "Use Backup Code" msgstr "Backup-Code verwenden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:183 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 msgid "Use Template" msgstr "Vorlage verwenden" @@ -4184,10 +4137,6 @@ msgstr "Sie stehen kurz davor, den Zugriff für das Team <0>{0} ({1}) zu wid msgid "You are currently on the <0>Free Plan." msgstr "Sie befinden sich derzeit im <0>kostenlosen Plan." -#: apps/web/src/app/(dashboard)/settings/billing/page.tsx:92 -#~ msgid "You are currently subscribed to <0>{0}" -#~ msgstr "You are currently subscribed to <0>{0}" - #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:148 msgid "You are currently updating <0>{teamMemberName}." msgstr "Sie aktualisieren derzeit <0>{teamMemberName}." @@ -4232,10 +4181,6 @@ msgstr "Sie können ein Teammitglied, das eine höhere Rolle als Sie hat, nicht msgid "You cannot upload encrypted PDFs" msgstr "Sie können keine verschlüsselten PDFs hochladen" -#: apps/web/src/app/(dashboard)/settings/billing/page.tsx:97 -#~ msgid "You currently have an active plan" -#~ msgstr "You currently have an active plan" - #: apps/web/src/app/(dashboard)/settings/billing/billing-portal-button.tsx:45 msgid "You do not currently have a customer record, this should not happen. Please contact support for assistance." msgstr "Sie haben derzeit keinen Kundenrecord, das sollte nicht passieren. Bitte kontaktieren Sie den Support um Hilfe." @@ -4282,7 +4227,7 @@ msgstr "Sie haben das maximale Limit von {0} direkten Vorlagen erreicht. <0>Upgr msgid "You have reached your document limit." msgstr "Sie haben Ihr Dokumentenlimit erreicht." -#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:181 +#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:182 msgid "You have reached your document limit. <0>Upgrade your account to continue!" msgstr "Sie haben Ihr Dokumentenlimit erreicht. <0>Upgrade your account to continue!" @@ -4316,10 +4261,6 @@ msgstr "Sie haben Ihre E-Mail-Adresse für <0>{0} bestätigt." msgid "You must be an admin of this team to manage billing." msgstr "Sie müssen Administrator dieses Teams sein, um die Abrechnung zu verwalten." -#: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:80 -#~ msgid "You must enter '{confirmTransferMessage}' to proceed" -#~ msgstr "You must enter '{confirmTransferMessage}' to proceed" - #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:60 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:58 #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:54 @@ -4382,7 +4323,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:143 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 msgid "Your document has been created from the template successfully." msgstr "Ihr Dokument wurde erfolgreich aus der Vorlage erstellt." @@ -4497,4 +4438,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 572c72b4e..f5e621d35 100644 --- a/packages/lib/translations/en/common.po +++ b/packages/lib/translations/en/common.po @@ -152,10 +152,6 @@ msgstr "Cancel" msgid "Cannot remove signer" msgstr "Cannot remove signer" -#: packages/ui/primitives/document-flow/add-signers.tsx:221 -#~ msgid "Cannot update signer because they have already signed a field" -#~ msgstr "Cannot update signer because they have already signed a field" - #: packages/lib/constants/recipient-roles.ts:17 msgid "Cc" msgstr "Cc" @@ -369,10 +365,6 @@ msgstr "I am an approver of this document" msgid "I am required to receive a copy of this document" msgstr "I am required to receive a copy of this document" -#: packages/lib/constants/recipient-roles.ts:74 -#~ msgid "I am required to recieve a copy of this document" -#~ msgstr "I am required to recieve a copy of this document" - #: packages/ui/components/recipient/recipient-action-auth-select.tsx:29 #: packages/ui/components/recipient/recipient-action-auth-select.tsx:87 msgid "Inherit authentication method" @@ -724,10 +716,6 @@ msgstr "This field cannot be modified or deleted. When you share this template's msgid "This recipient can no longer be modified as they have signed a field, or completed the document." msgstr "This recipient can no longer be modified as they have signed a field, or completed the document." -#: packages/ui/primitives/document-flow/add-signers.tsx:165 -#~ msgid "This signer has already received the document." -#~ msgstr "This signer has already received the document." - #: packages/ui/primitives/document-flow/add-signers.tsx:194 msgid "This signer has already signed the document." msgstr "This signer has already signed the document." @@ -792,10 +780,6 @@ msgstr "Viewer" msgid "Viewing" msgstr "Viewing" -#: packages/ui/primitives/signature-pad/signature-pad.tsx:280 -#~ msgid "White" -#~ msgstr "White" - #: 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 d5eafc50f..427ba58e5 100644 --- a/packages/lib/translations/en/marketing.po +++ b/packages/lib/translations/en/marketing.po @@ -155,10 +155,6 @@ msgstr "Documentation" msgid "Easily embed Documenso into your product. Simply copy and paste our react widget into your application." msgstr "Easily embed Documenso into your product. Simply copy and paste our react widget into your application." -#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:42 -#~ msgid "Easy Sharing (Soon)." -#~ msgstr "Easy Sharing (Soon)." - #: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:46 msgid "Easy Sharing." msgstr "Easy Sharing." @@ -372,18 +368,10 @@ msgstr "Our custom templates come with smart rules that can help you save time a msgid "Our Enterprise License is great for large organizations looking to switch to Documenso for all their signing needs. It's available for our cloud offering as well as self-hosted setups and offers a wide range of compliance and Adminstration Features." msgstr "Our Enterprise License is great for large organizations looking to switch to Documenso for all their signing needs. It's available for our cloud offering as well as self-hosted setups and offers a wide range of compliance and Adminstration Features." -#: apps/marketing/src/components/(marketing)/enterprise.tsx:20 -#~ msgid "Our Enterprise License is great large organizations looking to switch to Documenso for all their signing needs. It's availible for our cloud offering as well as self-hosted setups and offer a wide range of compliance and Adminstration Features." -#~ msgstr "Our Enterprise License is great large organizations looking to switch to Documenso for all their signing needs. It's availible for our cloud offering as well as self-hosted setups and offer a wide range of compliance and Adminstration Features." - #: apps/marketing/src/app/(marketing)/pricing/page.tsx:65 msgid "Our self-hosted option is great for small teams and individuals who need a simple solution. You can use our docker based setup to get started in minutes. Take control with full customizability and data ownership." msgstr "Our self-hosted option is great for small teams and individuals who need a simple solution. You can use our docker based setup to get started in minutes. Take control with full customizability and data ownership." -#: apps/marketing/src/app/(marketing)/open/data.ts:25 -#~ msgid "Part-Time" -#~ msgstr "Part-Time" - #: apps/marketing/src/components/(marketing)/pricing-table.tsx:151 msgid "Premium Profile Name" msgstr "Premium Profile Name" @@ -425,10 +413,6 @@ msgstr "Salary" msgid "Save $60 or $120" msgstr "Save $60 or $120" -#: apps/marketing/src/components/(marketing)/i18n-switcher.tsx:47 -#~ msgid "Search languages..." -#~ msgstr "Search languages..." - #: apps/marketing/src/app/(marketing)/pricing/page.tsx:109 msgid "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us." msgstr "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us." diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index 58854ab50..557ffdb6b 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -132,7 +132,7 @@ msgstr "404 Template not found" msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." msgstr "A confirmation email has been sent, and it should arrive in your inbox shortly." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:193 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" msgstr "A draft document will be created" @@ -245,10 +245,6 @@ msgstr "Add Fields" msgid "Add more" msgstr "Add more" -#: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:270 -#~ msgid "Add number" -#~ msgstr "Add number" - #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:146 #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:154 msgid "Add passkey" @@ -270,19 +266,11 @@ msgstr "Add Subject" msgid "Add team email" msgstr "Add team email" -#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:256 -#~ msgid "Add text" -#~ msgstr "Add text" - -#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:272 -#~ msgid "Add Text" -#~ msgstr "Add Text" - #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 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:195 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Add the recipients to create the document with" msgstr "Add the recipients to create the document with" @@ -375,7 +363,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:153 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 msgid "An error occurred while creating document from template." msgstr "An error occurred while creating document from template." @@ -556,7 +544,7 @@ msgstr "Are you sure you wish to delete this team?" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:98 #: apps/web/src/app/(dashboard)/settings/teams/team-email-usage.tsx:94 -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:453 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:455 #: apps/web/src/components/(teams)/dialogs/delete-team-member-dialog.tsx:81 #: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:81 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:116 @@ -655,7 +643,7 @@ msgstr "By enabling 2FA, you will be required to enter a code from your authenti #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:81 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:78 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:119 -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:470 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:472 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:71 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164 @@ -754,7 +742,7 @@ 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:304 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 #: 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 @@ -809,7 +797,7 @@ msgstr "Configure general settings for the template." msgid "Configure template" msgstr "Configure template" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:479 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:481 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:460 msgid "Confirm" msgstr "Confirm" @@ -895,11 +883,11 @@ 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:310 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 msgid "Create and send" msgstr "Create and send" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:312 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 msgid "Create as draft" msgstr "Create as draft" @@ -911,7 +899,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:189 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 msgid "Create document from template" msgstr "Create document from template" @@ -983,11 +971,6 @@ msgstr "Created on" msgid "Created on {0}" msgstr "Created on {0}" -#: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:89 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:94 -#~ msgid "Created on <0/>" -#~ msgstr "Created on <0/>" - #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 msgid "Created on{0}" msgstr "Created on{0}" @@ -1102,10 +1085,6 @@ msgstr "Deleted" msgid "Deleting account..." msgstr "Deleting account..." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:135 -#~ msgid "Deleting document" -#~ msgstr "Deleting document" - #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:75 msgid "Device" msgstr "Device" @@ -1210,7 +1189,7 @@ msgstr "Document completed" msgid "Document Completed!" msgstr "Document Completed!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:142 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 msgid "Document created" msgstr "Document created" @@ -1241,7 +1220,7 @@ msgstr "Document ID" msgid "Document inbox" msgstr "Document inbox" -#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:178 +#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:179 msgid "Document Limit Exceeded!" msgstr "Document Limit Exceeded!" @@ -1364,10 +1343,6 @@ msgstr "Draft documents" msgid "Drafted Documents" msgstr "Drafted Documents" -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:245 -#~ msgid "Draw" -#~ msgstr "Draw" - #: apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx:121 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." @@ -1401,8 +1376,8 @@ msgstr "Edit webhook" #: 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:213 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:220 +#: 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/(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:376 @@ -1502,7 +1477,7 @@ msgstr "Enter your text here" #: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:230 #: 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:152 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 #: 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 @@ -1543,20 +1518,10 @@ msgstr "Exceeded timeout" msgid "Expired" msgstr "Expired" -#: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:73 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:106 -#~ msgid "Expires on" -#~ msgstr "Expires on" - #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 msgid "Expires on {0}" msgstr "Expires on {0}" -#: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 -#~ msgid "Expires on <0/>" -#~ msgstr "Expires on <0/>" - #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 msgid "Expires on{0}" msgstr "Expires on{0}" @@ -1658,10 +1623,6 @@ msgstr "Hide" msgid "Hide additional information" msgstr "Hide additional information" -#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:40 -#~ 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" @@ -2005,8 +1966,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:235 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:242 +#: 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/(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 @@ -2157,7 +2118,7 @@ msgstr "Or" msgid "Or continue with" msgstr "Or continue with" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:289 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 msgid "Otherwise, the document will be created as a draft." msgstr "Otherwise, the document will be created as a draft." @@ -2297,7 +2258,7 @@ msgstr "Please enter a meaningful name for your token. This will help you identi msgid "Please mark as viewed to complete" msgstr "Please mark as viewed to complete" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:457 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:459 msgid "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." msgstr "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." @@ -2588,7 +2549,7 @@ msgstr "Role" msgid "Roles" msgstr "Roles" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:444 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:446 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:336 #: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:342 msgid "Save" @@ -2657,7 +2618,7 @@ msgstr "Select passkey" msgid "Send confirmation email" msgstr "Send confirmation email" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:273 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 msgid "Send document" msgstr "Send document" @@ -2739,10 +2700,6 @@ msgstr "Sign" msgid "Sign as {0} <0>({1})" msgstr "Sign as {0} <0>({1})" -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:219 -#~ msgid "Sign as <0>{0} <1>({1})" -#~ msgstr "Sign as <0>{0} <1>({1})" - #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:183 msgid "Sign as<0>{0} <1>({1})" msgstr "Sign as<0>{0} <1>({1})" @@ -3175,7 +3132,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:159 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 msgid "The document was created but could not be sent to recipients." msgstr "The document was created but could not be sent to recipients." @@ -3183,7 +3140,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:281 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 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." @@ -3551,10 +3508,6 @@ msgstr "Type 'delete' to confirm" msgid "Type a command or search..." msgstr "Type a command or search..." -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:275 -#~ msgid "Typed Signature" -#~ msgstr "Typed Signature" - #: apps/web/src/app/(unauthenticated)/verify-email/page.tsx:26 msgid "Uh oh! Looks like you're missing a token" msgstr "Uh oh! Looks like you're missing a token" @@ -3745,7 +3698,7 @@ msgstr "Use Authenticator" msgid "Use Backup Code" msgstr "Use Backup Code" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:183 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 msgid "Use Template" msgstr "Use Template" @@ -4179,10 +4132,6 @@ msgstr "You are about to revoke access for team <0>{0} ({1}) to use your ema msgid "You are currently on the <0>Free Plan." msgstr "You are currently on the <0>Free Plan." -#: apps/web/src/app/(dashboard)/settings/billing/page.tsx:92 -#~ msgid "You are currently subscribed to <0>{0}" -#~ msgstr "You are currently subscribed to <0>{0}" - #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:148 msgid "You are currently updating <0>{teamMemberName}." msgstr "You are currently updating <0>{teamMemberName}." @@ -4227,10 +4176,6 @@ msgstr "You cannot modify a team member who has a higher role than you." msgid "You cannot upload encrypted PDFs" msgstr "You cannot upload encrypted PDFs" -#: apps/web/src/app/(dashboard)/settings/billing/page.tsx:97 -#~ msgid "You currently have an active plan" -#~ msgstr "You currently have an active plan" - #: apps/web/src/app/(dashboard)/settings/billing/billing-portal-button.tsx:45 msgid "You do not currently have a customer record, this should not happen. Please contact support for assistance." msgstr "You do not currently have a customer record, this should not happen. Please contact support for assistance." @@ -4277,7 +4222,7 @@ msgstr "You have reached the maximum limit of {0} direct templates. <0>Upgrade y msgid "You have reached your document limit." msgstr "You have reached your document limit." -#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:181 +#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:182 msgid "You have reached your document limit. <0>Upgrade your account to continue!" msgstr "You have reached your document limit. <0>Upgrade your account to continue!" @@ -4311,10 +4256,6 @@ msgstr "You have verified your email address for <0>{0}." msgid "You must be an admin of this team to manage billing." msgstr "You must be an admin of this team to manage billing." -#: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:80 -#~ msgid "You must enter '{confirmTransferMessage}' to proceed" -#~ msgstr "You must enter '{confirmTransferMessage}' to proceed" - #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:60 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:58 #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:54 @@ -4377,7 +4318,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:143 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 msgid "Your document has been created from the template successfully." msgstr "Your document has been created from the template successfully." diff --git a/packages/lib/translations/es/common.po b/packages/lib/translations/es/common.po index b78eecbd5..ec1f27b97 100644 --- a/packages/lib/translations/es/common.po +++ b/packages/lib/translations/es/common.po @@ -157,10 +157,6 @@ msgstr "Cancelar" msgid "Cannot remove signer" msgstr "No se puede eliminar el firmante" -#: packages/ui/primitives/document-flow/add-signers.tsx:221 -#~ msgid "Cannot update signer because they have already signed a field" -#~ msgstr "Cannot update signer because they have already signed a field" - #: packages/lib/constants/recipient-roles.ts:17 msgid "Cc" msgstr "Cc" @@ -374,10 +370,6 @@ msgstr "Soy un aprobador de este documento" msgid "I am required to receive a copy of this document" msgstr "Se me requiere recibir una copia de este documento" -#: packages/lib/constants/recipient-roles.ts:74 -#~ msgid "I am required to recieve a copy of this document" -#~ msgstr "I am required to recieve a copy of this document" - #: packages/ui/components/recipient/recipient-action-auth-select.tsx:29 #: packages/ui/components/recipient/recipient-action-auth-select.tsx:87 msgid "Inherit authentication method" @@ -729,10 +721,6 @@ msgstr "Este campo no se puede modificar ni eliminar. Cuando comparta el enlace msgid "This recipient can no longer be modified as they have signed a field, or completed the document." msgstr "Este destinatario ya no puede ser modificado ya que ha firmado un campo o completado el documento." -#: packages/ui/primitives/document-flow/add-signers.tsx:165 -#~ msgid "This signer has already received the document." -#~ msgstr "This signer has already received the document." - #: packages/ui/primitives/document-flow/add-signers.tsx:194 msgid "This signer has already signed the document." msgstr "Este firmante ya ha firmado el documento." @@ -797,10 +785,6 @@ msgstr "Visor" msgid "Viewing" msgstr "Viendo" -#: packages/ui/primitives/signature-pad/signature-pad.tsx:280 -#~ msgid "White" -#~ msgstr "White" - #: 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?" @@ -816,4 +800,3 @@ msgstr "No puede cargar documentos en este momento." #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Ha alcanzado su límite de documentos." - diff --git a/packages/lib/translations/es/marketing.po b/packages/lib/translations/es/marketing.po index ee41b740a..eb837380f 100644 --- a/packages/lib/translations/es/marketing.po +++ b/packages/lib/translations/es/marketing.po @@ -160,10 +160,6 @@ msgstr "Documentación" msgid "Easily embed Documenso into your product. Simply copy and paste our react widget into your application." msgstr "Incrusta fácilmente Documenso en tu producto. Simplemente copia y pega nuestro widget de react en tu aplicación." -#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:42 -#~ msgid "Easy Sharing (Soon)." -#~ msgstr "Easy Sharing (Soon)." - #: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:46 msgid "Easy Sharing." msgstr "Compartición fácil." @@ -377,18 +373,10 @@ msgstr "Nuestras plantillas personalizadas vienen con reglas inteligentes que pu msgid "Our Enterprise License is great for large organizations looking to switch to Documenso for all their signing needs. It's available for our cloud offering as well as self-hosted setups and offers a wide range of compliance and Adminstration Features." msgstr "Nuestra Licencia Empresarial es excelente para grandes organizaciones que buscan cambiar a Documenso para todas sus necesidades de firma. Está disponible para nuestra oferta en la nube, así como para configuraciones autoalojadas y ofrece una amplia gama de funciones de cumplimiento y administración." -#: apps/marketing/src/components/(marketing)/enterprise.tsx:20 -#~ msgid "Our Enterprise License is great large organizations looking to switch to Documenso for all their signing needs. It's availible for our cloud offering as well as self-hosted setups and offer a wide range of compliance and Adminstration Features." -#~ msgstr "Our Enterprise License is great large organizations looking to switch to Documenso for all their signing needs. It's availible for our cloud offering as well as self-hosted setups and offer a wide range of compliance and Adminstration Features." - #: apps/marketing/src/app/(marketing)/pricing/page.tsx:65 msgid "Our self-hosted option is great for small teams and individuals who need a simple solution. You can use our docker based setup to get started in minutes. Take control with full customizability and data ownership." msgstr "Nuestra opción de autoalojamiento es excelente para pequeños equipos e individuos que necesitan una solución simple. Puedes usar nuestra configuración basada en docker para empezar en minutos. Toma el control con total personalización y propiedad de los datos." -#: apps/marketing/src/app/(marketing)/open/data.ts:25 -#~ msgid "Part-Time" -#~ msgstr "Part-Time" - #: apps/marketing/src/components/(marketing)/pricing-table.tsx:151 msgid "Premium Profile Name" msgstr "Nombre de Perfil Premium" @@ -430,10 +418,6 @@ msgstr "Salario" msgid "Save $60 or $120" msgstr "Ahorra $60 o $120" -#: apps/marketing/src/components/(marketing)/i18n-switcher.tsx:47 -#~ msgid "Search languages..." -#~ msgstr "Search languages..." - #: apps/marketing/src/app/(marketing)/pricing/page.tsx:109 msgid "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us." msgstr "De manera segura. Nuestros centros de datos están ubicados en Frankfurt (Alemania), dándonos las mejores leyes de privacidad locales. Somos muy conscientes de la naturaleza sensible de nuestros datos y seguimos las mejores prácticas para garantizar la seguridad y la integridad de los datos que se nos confían." @@ -618,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 71b17a696..0bb509a84 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -137,7 +137,7 @@ msgstr "404 Plantilla no encontrada" msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." msgstr "Se ha enviado un correo electrónico de confirmación y debería llegar a tu bandeja de entrada en breve." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:193 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" msgstr "Se creará un documento borrador" @@ -250,10 +250,6 @@ msgstr "Agregar Campos" msgid "Add more" msgstr "Agregar más" -#: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:270 -#~ msgid "Add number" -#~ msgstr "Add number" - #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:146 #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:154 msgid "Add passkey" @@ -275,19 +271,11 @@ msgstr "Agregar Asunto" msgid "Add team email" msgstr "Agregar correo electrónico del equipo" -#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:256 -#~ msgid "Add text" -#~ msgstr "Add text" - -#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:272 -#~ msgid "Add Text" -#~ msgstr "Add Text" - #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 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:195 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Add the recipients to create the document with" msgstr "Agrega los destinatarios con los que crear el documento" @@ -380,7 +368,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:153 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 msgid "An error occurred while creating document from template." msgstr "Ocurrió un error al crear el documento a partir de la plantilla." @@ -561,7 +549,7 @@ msgstr "¿Estás seguro de que deseas eliminar este equipo?" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:98 #: apps/web/src/app/(dashboard)/settings/teams/team-email-usage.tsx:94 -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:453 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:455 #: apps/web/src/components/(teams)/dialogs/delete-team-member-dialog.tsx:81 #: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:81 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:116 @@ -660,7 +648,7 @@ msgstr "Al habilitar la 2FA, se requerirá ingresar un código de su aplicación #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:81 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:78 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:119 -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:470 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:472 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:71 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164 @@ -759,7 +747,7 @@ 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:304 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 #: 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 @@ -814,7 +802,7 @@ msgstr "Configurar ajustes generales para la plantilla." msgid "Configure template" msgstr "Configurar plantilla" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:479 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:481 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:460 msgid "Confirm" msgstr "Confirmar" @@ -900,11 +888,11 @@ 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:310 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 msgid "Create and send" msgstr "Crear y enviar" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:312 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 msgid "Create as draft" msgstr "Crear como borrador" @@ -916,7 +904,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:189 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 msgid "Create document from template" msgstr "Crear documento a partir de la plantilla" @@ -988,11 +976,6 @@ msgstr "Creado el" msgid "Created on {0}" msgstr "Creado el {0}" -#: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:89 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:94 -#~ msgid "Created on <0/>" -#~ msgstr "Created on <0/>" - #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 msgid "Created on{0}" msgstr "Creado el{0}" @@ -1107,10 +1090,6 @@ msgstr "Eliminado" msgid "Deleting account..." msgstr "Eliminando cuenta..." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:135 -#~ msgid "Deleting document" -#~ msgstr "Deleting document" - #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:75 msgid "Device" msgstr "Dispositivo" @@ -1215,7 +1194,7 @@ msgstr "Documento completado" msgid "Document Completed!" msgstr "¡Documento completado!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:142 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 msgid "Document created" msgstr "Documento creado" @@ -1246,7 +1225,7 @@ msgstr "ID del documento" msgid "Document inbox" msgstr "Bandeja de documentos" -#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:178 +#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:179 msgid "Document Limit Exceeded!" msgstr "¡Límite de documentos excedido!" @@ -1369,10 +1348,6 @@ msgstr "Documentos en borrador" msgid "Drafted Documents" msgstr "Documentos redactados" -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:245 -#~ msgid "Draw" -#~ msgstr "Draw" - #: apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx:121 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." @@ -1406,8 +1381,8 @@ msgstr "Editar webhook" #: 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:213 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:220 +#: 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/(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:376 @@ -1507,7 +1482,7 @@ msgstr "Ingresa tu texto aquí" #: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:230 #: 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:152 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 #: 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 @@ -1548,20 +1523,10 @@ msgstr "Tiempo de espera excedido" msgid "Expired" msgstr "Expirado" -#: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:73 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:106 -#~ msgid "Expires on" -#~ msgstr "Expires on" - #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 msgid "Expires on {0}" msgstr "Expira el {0}" -#: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 -#~ msgid "Expires on <0/>" -#~ msgstr "Expires on <0/>" - #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 msgid "Expires on{0}" msgstr "Expira el{0}" @@ -1663,10 +1628,6 @@ msgstr "Ocultar" msgid "Hide additional information" msgstr "Ocultar información adicional" -#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:40 -#~ 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" @@ -2010,8 +1971,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:235 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:242 +#: 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/(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 @@ -2162,7 +2123,7 @@ msgstr "O" msgid "Or continue with" msgstr "O continúa con" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:289 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 msgid "Otherwise, the document will be created as a draft." msgstr "De lo contrario, el documento se creará como un borrador." @@ -2302,7 +2263,7 @@ msgstr "Por favor, ingresa un nombre significativo para tu token. Esto te ayudar msgid "Please mark as viewed to complete" msgstr "Por favor, marca como visto para completar" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:457 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:459 msgid "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." msgstr "Por favor, ten en cuenta que proceder eliminará el destinatario de enlace directo y lo convertirá en un marcador de posición." @@ -2593,7 +2554,7 @@ msgstr "Rol" msgid "Roles" msgstr "Roles" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:444 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:446 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:336 #: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:342 msgid "Save" @@ -2662,7 +2623,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:273 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 msgid "Send document" msgstr "Enviar documento" @@ -2744,10 +2705,6 @@ msgstr "Firmar" msgid "Sign as {0} <0>({1})" msgstr "Firmar como {0} <0>({1})" -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:219 -#~ msgid "Sign as <0>{0} <1>({1})" -#~ msgstr "Sign as <0>{0} <1>({1})" - #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:183 msgid "Sign as<0>{0} <1>({1})" msgstr "Firmar como<0>{0} <1>({1})" @@ -3180,7 +3137,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:159 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 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." @@ -3188,7 +3145,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:281 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 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." @@ -3556,10 +3513,6 @@ msgstr "Escribe 'eliminar' para confirmar" msgid "Type a command or search..." msgstr "Escribe un comando o busca..." -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:275 -#~ msgid "Typed Signature" -#~ msgstr "Typed Signature" - #: apps/web/src/app/(unauthenticated)/verify-email/page.tsx:26 msgid "Uh oh! Looks like you're missing a token" msgstr "¡Oh no! Parece que te falta un token" @@ -3750,7 +3703,7 @@ msgstr "Usar Autenticador" msgid "Use Backup Code" msgstr "Usar Código de Respaldo" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:183 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 msgid "Use Template" msgstr "Usar Plantilla" @@ -4184,10 +4137,6 @@ msgstr "Estás a punto de revocar el acceso para el equipo <0>{0} ({1}) para msgid "You are currently on the <0>Free Plan." msgstr "Actualmente estás en el <0>Plan Gratuito." -#: apps/web/src/app/(dashboard)/settings/billing/page.tsx:92 -#~ msgid "You are currently subscribed to <0>{0}" -#~ msgstr "You are currently subscribed to <0>{0}" - #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:148 msgid "You are currently updating <0>{teamMemberName}." msgstr "Actualmente estás actualizando <0>{teamMemberName}." @@ -4232,10 +4181,6 @@ msgstr "No puedes modificar a un miembro del equipo que tenga un rol más alto q msgid "You cannot upload encrypted PDFs" msgstr "No puedes subir PDFs encriptados" -#: apps/web/src/app/(dashboard)/settings/billing/page.tsx:97 -#~ msgid "You currently have an active plan" -#~ msgstr "You currently have an active plan" - #: apps/web/src/app/(dashboard)/settings/billing/billing-portal-button.tsx:45 msgid "You do not currently have a customer record, this should not happen. Please contact support for assistance." msgstr "Actualmente no tienes un registro de cliente, esto no debería suceder. Por favor contacta a soporte para obtener asistencia." @@ -4282,7 +4227,7 @@ msgstr "Has alcanzado el límite máximo de {0} plantillas directas. <0>¡Actual msgid "You have reached your document limit." msgstr "Has alcanzado tu límite de documentos." -#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:181 +#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:182 msgid "You have reached your document limit. <0>Upgrade your account to continue!" msgstr "Has alcanzado tu límite de documentos. <0>¡Actualiza tu cuenta para continuar!" @@ -4316,10 +4261,6 @@ msgstr "Has verificado tu dirección de correo electrónico para <0>{0}." msgid "You must be an admin of this team to manage billing." msgstr "Debes ser un administrador de este equipo para gestionar la facturación." -#: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:80 -#~ msgid "You must enter '{confirmTransferMessage}' to proceed" -#~ msgstr "You must enter '{confirmTransferMessage}' to proceed" - #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:60 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:58 #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:54 @@ -4382,7 +4323,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:143 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 msgid "Your document has been created from the template successfully." msgstr "Tu documento se ha creado exitosamente a partir de la plantilla." @@ -4497,4 +4438,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 97de3075d..f01cbd54d 100644 --- a/packages/lib/translations/fr/common.po +++ b/packages/lib/translations/fr/common.po @@ -157,10 +157,6 @@ msgstr "Annuler" msgid "Cannot remove signer" msgstr "Impossible de retirer le signataire" -#: packages/ui/primitives/document-flow/add-signers.tsx:221 -#~ msgid "Cannot update signer because they have already signed a field" -#~ msgstr "Cannot update signer because they have already signed a field" - #: packages/lib/constants/recipient-roles.ts:17 msgid "Cc" msgstr "Cc" @@ -374,10 +370,6 @@ msgstr "Je suis un approuveur de ce document" msgid "I am required to receive a copy of this document" msgstr "Je dois recevoir une copie de ce document" -#: packages/lib/constants/recipient-roles.ts:74 -#~ msgid "I am required to recieve a copy of this document" -#~ msgstr "I am required to recieve a copy of this document" - #: packages/ui/components/recipient/recipient-action-auth-select.tsx:29 #: packages/ui/components/recipient/recipient-action-auth-select.tsx:87 msgid "Inherit authentication method" @@ -729,10 +721,6 @@ msgstr "Ce champ ne peut pas être modifié ou supprimé. Lorsque vous partagez msgid "This recipient can no longer be modified as they have signed a field, or completed the document." msgstr "Ce destinataire ne peut plus être modifié car il a signé un champ ou complété le document." -#: packages/ui/primitives/document-flow/add-signers.tsx:165 -#~ msgid "This signer has already received the document." -#~ msgstr "This signer has already received the document." - #: packages/ui/primitives/document-flow/add-signers.tsx:194 msgid "This signer has already signed the document." msgstr "Ce signataire a déjà signé le document." @@ -797,10 +785,6 @@ msgstr "Visiteur" msgid "Viewing" msgstr "Visionnage" -#: packages/ui/primitives/signature-pad/signature-pad.tsx:280 -#~ msgid "White" -#~ msgstr "White" - #: 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 ?" @@ -816,4 +800,3 @@ msgstr "Vous ne pouvez pas télécharger de documents pour le moment." #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Vous avez atteint votre limite de documents." - diff --git a/packages/lib/translations/fr/marketing.po b/packages/lib/translations/fr/marketing.po index 80e21c206..315d5f73f 100644 --- a/packages/lib/translations/fr/marketing.po +++ b/packages/lib/translations/fr/marketing.po @@ -160,10 +160,6 @@ msgstr "Documentation" msgid "Easily embed Documenso into your product. Simply copy and paste our react widget into your application." msgstr "Intégrez facilement Documenso dans votre produit. Il vous suffit de copier et coller notre widget React dans votre application." -#: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:42 -#~ msgid "Easy Sharing (Soon)." -#~ msgstr "Easy Sharing (Soon)." - #: apps/marketing/src/components/(marketing)/share-connect-paid-widget-bento.tsx:46 msgid "Easy Sharing." msgstr "Partage facile." @@ -377,18 +373,10 @@ msgstr "Nos modèles personnalisés sont dotés de règles intelligentes qui peu msgid "Our Enterprise License is great for large organizations looking to switch to Documenso for all their signing needs. It's available for our cloud offering as well as self-hosted setups and offers a wide range of compliance and Adminstration Features." msgstr "Notre licence entreprise est idéale pour les grandes organisations cherchant à passer à Documenso pour tous leurs besoins de signature. Elle est disponible pour notre offre cloud ainsi que pour des configurations auto-hébergées et propose un large éventail de fonctionnalités de conformité et d'administration." -#: apps/marketing/src/components/(marketing)/enterprise.tsx:20 -#~ msgid "Our Enterprise License is great large organizations looking to switch to Documenso for all their signing needs. It's availible for our cloud offering as well as self-hosted setups and offer a wide range of compliance and Adminstration Features." -#~ msgstr "Our Enterprise License is great large organizations looking to switch to Documenso for all their signing needs. It's availible for our cloud offering as well as self-hosted setups and offer a wide range of compliance and Adminstration Features." - #: apps/marketing/src/app/(marketing)/pricing/page.tsx:65 msgid "Our self-hosted option is great for small teams and individuals who need a simple solution. You can use our docker based setup to get started in minutes. Take control with full customizability and data ownership." msgstr "Notre option auto-hébergée est idéale pour les petites équipes et les individus qui ont besoin d'une solution simple. Vous pouvez utiliser notre configuration basée sur Docker pour commencer en quelques minutes. Prenez le contrôle avec une personnalisation complète et une propriété des données." -#: apps/marketing/src/app/(marketing)/open/data.ts:25 -#~ msgid "Part-Time" -#~ msgstr "Part-Time" - #: apps/marketing/src/components/(marketing)/pricing-table.tsx:151 msgid "Premium Profile Name" msgstr "Nom de profil premium" @@ -430,10 +418,6 @@ msgstr "Salaire" msgid "Save $60 or $120" msgstr "Économisez 60 $ ou 120 $" -#: apps/marketing/src/components/(marketing)/i18n-switcher.tsx:47 -#~ msgid "Search languages..." -#~ msgstr "Search languages..." - #: apps/marketing/src/app/(marketing)/pricing/page.tsx:109 msgid "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us." msgstr "De manière sécurisée. Nos centres de données sont situés à Francfort (Allemagne), ce qui nous permet de bénéficier des meilleures lois locales sur la confidentialité. Nous sommes très conscients de la nature sensible de nos données et suivons les meilleures pratiques pour garantir la sécurité et l'intégrité des données qui nous sont confiées." @@ -618,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 59780dd28..8ba329c44 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -137,7 +137,7 @@ msgstr "404 Modèle non trouvé" msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." msgstr "Un e-mail de confirmation a été envoyé et devrait arriver dans votre boîte de réception sous peu." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:193 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" msgstr "Un document brouillon sera créé" @@ -250,10 +250,6 @@ msgstr "Ajouter des champs" msgid "Add more" msgstr "Ajouter davantage" -#: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:270 -#~ msgid "Add number" -#~ msgstr "Add number" - #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:146 #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:154 msgid "Add passkey" @@ -275,19 +271,11 @@ msgstr "Ajouter un sujet" msgid "Add team email" msgstr "Ajouter un e-mail d'équipe" -#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:256 -#~ msgid "Add text" -#~ msgstr "Add text" - -#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:272 -#~ msgid "Add Text" -#~ msgstr "Add Text" - #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 msgid "Add the people who will sign the document." msgstr "Ajouter les personnes qui signeront le document." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:195 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Add the recipients to create the document with" msgstr "Ajouter les destinataires pour créer le document avec" @@ -380,7 +368,7 @@ msgstr "Une erreur est survenue lors de l'ajout de signataires." msgid "An error occurred while adding the fields." msgstr "Une erreur est survenue lors de l'ajout des champs." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:153 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 msgid "An error occurred while creating document from template." msgstr "Une erreur est survenue lors de la création du document à partir d'un modèle." @@ -561,7 +549,7 @@ msgstr "Êtes-vous sûr de vouloir supprimer cette équipe ?" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:98 #: apps/web/src/app/(dashboard)/settings/teams/team-email-usage.tsx:94 -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:453 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:455 #: apps/web/src/components/(teams)/dialogs/delete-team-member-dialog.tsx:81 #: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:81 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:116 @@ -660,7 +648,7 @@ msgstr "En activant l'authentification à deux facteurs (2FA), vous devrez entre #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:81 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:78 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:119 -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:470 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:472 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:71 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164 @@ -759,7 +747,7 @@ msgid "Click to insert field" msgstr "Cliquez pour insérer le champ" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:126 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:304 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 #: 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 @@ -814,7 +802,7 @@ msgstr "Configurer les paramètres généraux pour le modèle." msgid "Configure template" msgstr "Configurer le modèle" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:479 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:481 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:460 msgid "Confirm" msgstr "Confirmer" @@ -900,11 +888,11 @@ msgstr "Créer une équipe pour collaborer avec vos membres." msgid "Create account" msgstr "Créer un compte" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:310 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 msgid "Create and send" msgstr "Créer et envoyer" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:312 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 msgid "Create as draft" msgstr "Créer en tant que brouillon" @@ -916,7 +904,7 @@ msgstr "Créer un lien direct" msgid "Create Direct Signing Link" msgstr "Créer un lien de signature directe" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:189 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 msgid "Create document from template" msgstr "Créer un document à partir du modèle" @@ -988,11 +976,6 @@ msgstr "Créé le" msgid "Created on {0}" msgstr "Créé le {0}" -#: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:89 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:94 -#~ msgid "Created on <0/>" -#~ msgstr "Created on <0/>" - #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 msgid "Created on{0}" msgstr "Créé le{0}" @@ -1107,10 +1090,6 @@ msgstr "Supprimé" msgid "Deleting account..." msgstr "Suppression du compte..." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:135 -#~ msgid "Deleting document" -#~ msgstr "Deleting document" - #: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:75 msgid "Device" msgstr "Appareil" @@ -1215,7 +1194,7 @@ msgstr "Document complété" msgid "Document Completed!" msgstr "Document Complété !" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:142 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 msgid "Document created" msgstr "Document créé" @@ -1246,7 +1225,7 @@ msgstr "ID du document" msgid "Document inbox" msgstr "Boîte de réception des documents" -#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:178 +#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:179 msgid "Document Limit Exceeded!" msgstr "Limite de documents dépassée !" @@ -1369,10 +1348,6 @@ msgstr "Documents en brouillon" msgid "Drafted Documents" msgstr "Documents brouillon" -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:245 -#~ msgid "Draw" -#~ msgstr "Draw" - #: apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx:121 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." @@ -1406,8 +1381,8 @@ msgstr "Modifier le webhook" #: 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:213 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:220 +#: 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/(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:376 @@ -1507,7 +1482,7 @@ msgstr "Entrez votre texte ici" #: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:230 #: 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:152 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 #: 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 @@ -1548,20 +1523,10 @@ msgstr "Délai dépassé" msgid "Expired" msgstr "Expiré" -#: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:73 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:106 -#~ msgid "Expires on" -#~ msgstr "Expires on" - #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 msgid "Expires on {0}" msgstr "Expire le {0}" -#: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 -#~ msgid "Expires on <0/>" -#~ msgstr "Expires on <0/>" - #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 msgid "Expires on{0}" msgstr "Expire le{0}" @@ -1663,10 +1628,6 @@ msgstr "Cacher" msgid "Hide additional information" msgstr "Cacher des informations supplémentaires" -#: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:40 -#~ 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" @@ -2010,8 +1971,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:235 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:242 +#: 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/(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 @@ -2162,7 +2123,7 @@ msgstr "Ou" msgid "Or continue with" msgstr "Ou continuez avec" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:289 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 msgid "Otherwise, the document will be created as a draft." msgstr "Sinon, le document sera créé sous forme de brouillon." @@ -2302,7 +2263,7 @@ msgstr "Veuillez entrer un nom significatif pour votre jeton. Cela vous aidera msgid "Please mark as viewed to complete" msgstr "Veuillez marquer comme vu pour terminer" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:457 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:459 msgid "Please note that proceeding will remove direct linking recipient and turn it into a placeholder." msgstr "Veuillez noter que la poursuite supprimera le destinataire de lien direct et le transformera en espace réservé." @@ -2593,7 +2554,7 @@ msgstr "Rôle" msgid "Roles" msgstr "Rôles" -#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:444 +#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:446 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:336 #: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:342 msgid "Save" @@ -2662,7 +2623,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:273 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 msgid "Send document" msgstr "Envoyer le document" @@ -2744,10 +2705,6 @@ msgstr "Signer" msgid "Sign as {0} <0>({1})" msgstr "Signer comme {0} <0>({1})" -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:219 -#~ msgid "Sign as <0>{0} <1>({1})" -#~ msgstr "Sign as <0>{0} <1>({1})" - #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:183 msgid "Sign as<0>{0} <1>({1})" msgstr "Signer comme<0>{0} <1>({1})" @@ -3180,7 +3137,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:159 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 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." @@ -3188,7 +3145,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:281 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 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é." @@ -3556,10 +3513,6 @@ msgstr "Tapez 'supprimer' pour confirmer" msgid "Type a command or search..." msgstr "Tapez une commande ou recherchez..." -#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:275 -#~ msgid "Typed Signature" -#~ msgstr "Typed Signature" - #: apps/web/src/app/(unauthenticated)/verify-email/page.tsx:26 msgid "Uh oh! Looks like you're missing a token" msgstr "Oh oh ! On dirait que vous manquez un jeton" @@ -3750,7 +3703,7 @@ msgstr "Utiliser l'authentificateur" msgid "Use Backup Code" msgstr "Utiliser le code de secours" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:183 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 msgid "Use Template" msgstr "Utiliser le modèle" @@ -4184,10 +4137,6 @@ msgstr "Vous êtes sur le point de révoquer l'accès de l'équipe <0>{0} ({ msgid "You are currently on the <0>Free Plan." msgstr "Vous êtes actuellement sur le <0>Plan Gratuit." -#: apps/web/src/app/(dashboard)/settings/billing/page.tsx:92 -#~ msgid "You are currently subscribed to <0>{0}" -#~ msgstr "You are currently subscribed to <0>{0}" - #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:148 msgid "You are currently updating <0>{teamMemberName}." msgstr "Vous mettez à jour actuellement <0>{teamMemberName}." @@ -4232,10 +4181,6 @@ msgstr "Vous ne pouvez pas modifier un membre de l'équipe qui a un rôle plus msgid "You cannot upload encrypted PDFs" msgstr "Vous ne pouvez pas télécharger de PDF cryptés" -#: apps/web/src/app/(dashboard)/settings/billing/page.tsx:97 -#~ msgid "You currently have an active plan" -#~ msgstr "You currently have an active plan" - #: apps/web/src/app/(dashboard)/settings/billing/billing-portal-button.tsx:45 msgid "You do not currently have a customer record, this should not happen. Please contact support for assistance." msgstr "Vous n'avez actuellement pas de dossier client, cela ne devrait pas se produire. Veuillez contacter le support pour obtenir de l'aide." @@ -4282,7 +4227,7 @@ msgstr "Vous avez atteint la limite maximale de {0} modèles directs. <0>Mettez msgid "You have reached your document limit." msgstr "Vous avez atteint votre limite de documents." -#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:181 +#: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:182 msgid "You have reached your document limit. <0>Upgrade your account to continue!" msgstr "Vous avez atteint votre limite de documents. <0>Mettez à niveau votre compte pour continuer !" @@ -4316,10 +4261,6 @@ msgstr "Vous avez vérifié votre adresse e-mail pour <0>{0}." msgid "You must be an admin of this team to manage billing." msgstr "Vous devez être un administrateur de cette équipe pour gérer la facturation." -#: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:80 -#~ msgid "You must enter '{confirmTransferMessage}' to proceed" -#~ msgstr "You must enter '{confirmTransferMessage}' to proceed" - #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:60 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:58 #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:54 @@ -4382,7 +4323,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:143 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 msgid "Your document has been created from the template successfully." msgstr "Votre document a été créé à partir du modèle avec succès." @@ -4497,4 +4438,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." - From 7fc497a642416980b28b7ef832f78cee283a9b73 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 29 Oct 2024 19:55:49 +0900 Subject: [PATCH 04/17] fix: translation upload token (#1423) --- .github/workflows/translations-upload.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/translations-upload.yml b/.github/workflows/translations-upload.yml index 65fd276f6..8a8564c29 100644 --- a/.github/workflows/translations-upload.yml +++ b/.github/workflows/translations-upload.yml @@ -22,6 +22,7 @@ jobs: uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.ref }} + token: ${{ secrets.GH_PAT }} - uses: ./.github/actions/node-install From 634b30aa54572710179ac636565e0706446d8d0f Mon Sep 17 00:00:00 2001 From: Mythie Date: Wed, 30 Oct 2024 14:30:28 +1100 Subject: [PATCH 05/17] fix: signature flickering during embed --- apps/web/src/app/embed/direct/[[...url]]/client.tsx | 8 ++++++-- apps/web/src/app/embed/sign/[[...url]]/client.tsx | 8 ++++++-- packages/lib/translations/de/web.po | 12 ++++++------ packages/lib/translations/en/web.po | 12 ++++++------ packages/lib/translations/es/web.po | 12 ++++++------ packages/lib/translations/fr/web.po | 12 ++++++------ 6 files changed, 36 insertions(+), 28 deletions(-) diff --git a/apps/web/src/app/embed/direct/[[...url]]/client.tsx b/apps/web/src/app/embed/direct/[[...url]]/client.tsx index 189e9f1ca..1bec0ac6b 100644 --- a/apps/web/src/app/embed/direct/[[...url]]/client.tsx +++ b/apps/web/src/app/embed/direct/[[...url]]/client.tsx @@ -367,7 +367,7 @@ export const EmbedDirectTemplateClientPage = ({ className="bg-background mt-2" disabled={isNameLocked} value={fullName} - onChange={(e) => !isNameLocked && setFullName(e.target.value.trim())} + onChange={(e) => !isNameLocked && setFullName(e.target.value)} /> @@ -394,13 +394,17 @@ export const EmbedDirectTemplateClientPage = ({ { setSignature(value); }} + allowTypedSignature={Boolean( + metadata && + 'typedSignatureEnabled' in metadata && + metadata.typedSignatureEnabled, + )} /> diff --git a/apps/web/src/app/embed/sign/[[...url]]/client.tsx b/apps/web/src/app/embed/sign/[[...url]]/client.tsx index 08f479004..8682b3c19 100644 --- a/apps/web/src/app/embed/sign/[[...url]]/client.tsx +++ b/apps/web/src/app/embed/sign/[[...url]]/client.tsx @@ -247,7 +247,7 @@ export const EmbedSignDocumentClientPage = ({ className="bg-background mt-2" disabled={isNameLocked} value={fullName} - onChange={(e) => !isNameLocked && setFullName(e.target.value.trim())} + onChange={(e) => !isNameLocked && setFullName(e.target.value)} /> @@ -273,13 +273,17 @@ export const EmbedSignDocumentClientPage = ({ { setSignature(value); }} + allowTypedSignature={Boolean( + metadata && + 'typedSignatureEnabled' in metadata && + metadata.typedSignatureEnabled, + )} /> diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index 4c8bb1161..e5135d844 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -741,8 +741,8 @@ msgstr "Klicken Sie, um den Signatur-Link zu kopieren, um ihn an den Empfänger #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:115 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:435 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:314 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:439 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:318 msgid "Click to insert field" msgstr "Klicken Sie, um das Feld einzufügen" @@ -759,8 +759,8 @@ msgid "Close" msgstr "Schließen" #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:425 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:304 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:429 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:308 #: apps/web/src/components/forms/v2/signup.tsx:534 msgid "Complete" msgstr "Vollständig" @@ -2002,8 +2002,8 @@ msgstr "Neuer Teamowner" msgid "New Template" msgstr "Neue Vorlage" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:416 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:295 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:420 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:299 #: apps/web/src/components/forms/v2/signup.tsx:521 msgid "Next" msgstr "Nächster" diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index 557ffdb6b..265235238 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -736,8 +736,8 @@ msgstr "Click to copy signing link for sending to recipient" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:115 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:435 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:314 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:439 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:318 msgid "Click to insert field" msgstr "Click to insert field" @@ -754,8 +754,8 @@ msgid "Close" msgstr "Close" #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:425 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:304 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:429 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:308 #: apps/web/src/components/forms/v2/signup.tsx:534 msgid "Complete" msgstr "Complete" @@ -1997,8 +1997,8 @@ msgstr "New team owner" msgid "New Template" msgstr "New Template" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:416 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:295 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:420 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:299 #: apps/web/src/components/forms/v2/signup.tsx:521 msgid "Next" msgstr "Next" diff --git a/packages/lib/translations/es/web.po b/packages/lib/translations/es/web.po index 0bb509a84..865ce1490 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -741,8 +741,8 @@ msgstr "Haga clic para copiar el enlace de firma para enviar al destinatario" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:115 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:435 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:314 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:439 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:318 msgid "Click to insert field" msgstr "Haga clic para insertar campo" @@ -759,8 +759,8 @@ msgid "Close" msgstr "Cerrar" #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:425 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:304 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:429 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:308 #: apps/web/src/components/forms/v2/signup.tsx:534 msgid "Complete" msgstr "Completo" @@ -2002,8 +2002,8 @@ msgstr "Nuevo propietario del equipo" msgid "New Template" msgstr "Nueva plantilla" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:416 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:295 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:420 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:299 #: apps/web/src/components/forms/v2/signup.tsx:521 msgid "Next" msgstr "Siguiente" diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po index 8ba329c44..d247d0b8f 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -741,8 +741,8 @@ msgstr "Cliquez pour copier le lien de signature à envoyer au destinataire" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:115 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:435 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:314 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:439 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:318 msgid "Click to insert field" msgstr "Cliquez pour insérer le champ" @@ -759,8 +759,8 @@ msgid "Close" msgstr "Fermer" #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:425 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:304 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:429 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:308 #: apps/web/src/components/forms/v2/signup.tsx:534 msgid "Complete" msgstr "Compléter" @@ -2002,8 +2002,8 @@ msgstr "Nouveau propriétaire d'équipe" msgid "New Template" msgstr "Nouveau modèle" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:416 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:295 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:420 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:299 #: apps/web/src/components/forms/v2/signup.tsx:521 msgid "Next" msgstr "Suivant" From 60203367924cc0741cecfeac70c6ad9ad1be190a Mon Sep 17 00:00:00 2001 From: Mythie Date: Wed, 30 Oct 2024 14:37:50 +1100 Subject: [PATCH 06/17] v1.7.2-rc.2 --- apps/marketing/package.json | 2 +- apps/web/package.json | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/marketing/package.json b/apps/marketing/package.json index 907f74698..5ddc81cc4 100644 --- a/apps/marketing/package.json +++ b/apps/marketing/package.json @@ -1,6 +1,6 @@ { "name": "@documenso/marketing", - "version": "1.7.2-rc.1", + "version": "1.7.2-rc.2", "private": true, "license": "AGPL-3.0", "scripts": { diff --git a/apps/web/package.json b/apps/web/package.json index 314f39723..275e25c93 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@documenso/web", - "version": "1.7.2-rc.1", + "version": "1.7.2-rc.2", "private": true, "license": "AGPL-3.0", "scripts": { diff --git a/package-lock.json b/package-lock.json index 0432c882d..ccd158928 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@documenso/root", - "version": "1.7.2-rc.1", + "version": "1.7.2-rc.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@documenso/root", - "version": "1.7.2-rc.1", + "version": "1.7.2-rc.2", "workspaces": [ "apps/*", "packages/*" @@ -80,7 +80,7 @@ }, "apps/marketing": { "name": "@documenso/marketing", - "version": "1.7.2-rc.1", + "version": "1.7.2-rc.2", "license": "AGPL-3.0", "dependencies": { "@documenso/assets": "*", @@ -441,7 +441,7 @@ }, "apps/web": { "name": "@documenso/web", - "version": "1.7.2-rc.1", + "version": "1.7.2-rc.2", "license": "AGPL-3.0", "dependencies": { "@documenso/api": "*", diff --git a/package.json b/package.json index 2f0e6d146..c71093bf7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.7.2-rc.1", + "version": "1.7.2-rc.2", "scripts": { "build": "turbo run build", "build:web": "turbo run build --filter=@documenso/web", From f76f87ff1ccf354fc0edb4819842270ac4272345 Mon Sep 17 00:00:00 2001 From: Mythie Date: Thu, 31 Oct 2024 15:31:40 +1100 Subject: [PATCH 07/17] fix: use key for expansion on embeds --- apps/web/src/app/embed/direct/[[...url]]/client.tsx | 1 + apps/web/src/app/embed/sign/[[...url]]/client.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/apps/web/src/app/embed/direct/[[...url]]/client.tsx b/apps/web/src/app/embed/direct/[[...url]]/client.tsx index 1bec0ac6b..0f71c0e89 100644 --- a/apps/web/src/app/embed/direct/[[...url]]/client.tsx +++ b/apps/web/src/app/embed/direct/[[...url]]/client.tsx @@ -318,6 +318,7 @@ export const EmbedDirectTemplateClientPage = ({ {/* Widget */}
diff --git a/apps/web/src/app/embed/sign/[[...url]]/client.tsx b/apps/web/src/app/embed/sign/[[...url]]/client.tsx index 8682b3c19..e10f4745c 100644 --- a/apps/web/src/app/embed/sign/[[...url]]/client.tsx +++ b/apps/web/src/app/embed/sign/[[...url]]/client.tsx @@ -198,6 +198,7 @@ export const EmbedSignDocumentClientPage = ({ {/* Widget */}
From 0cee07aed35a5ee87c007f277231f9a193723a6b Mon Sep 17 00:00:00 2001 From: Mythie Date: Thu, 31 Oct 2024 15:33:03 +1100 Subject: [PATCH 08/17] v1.7.2-rc.3 --- apps/marketing/package.json | 2 +- apps/web/package.json | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/marketing/package.json b/apps/marketing/package.json index 5ddc81cc4..a890c8374 100644 --- a/apps/marketing/package.json +++ b/apps/marketing/package.json @@ -1,6 +1,6 @@ { "name": "@documenso/marketing", - "version": "1.7.2-rc.2", + "version": "1.7.2-rc.3", "private": true, "license": "AGPL-3.0", "scripts": { diff --git a/apps/web/package.json b/apps/web/package.json index 275e25c93..722e028d6 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@documenso/web", - "version": "1.7.2-rc.2", + "version": "1.7.2-rc.3", "private": true, "license": "AGPL-3.0", "scripts": { diff --git a/package-lock.json b/package-lock.json index ccd158928..27f0b5f26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@documenso/root", - "version": "1.7.2-rc.2", + "version": "1.7.2-rc.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@documenso/root", - "version": "1.7.2-rc.2", + "version": "1.7.2-rc.3", "workspaces": [ "apps/*", "packages/*" @@ -80,7 +80,7 @@ }, "apps/marketing": { "name": "@documenso/marketing", - "version": "1.7.2-rc.2", + "version": "1.7.2-rc.3", "license": "AGPL-3.0", "dependencies": { "@documenso/assets": "*", @@ -441,7 +441,7 @@ }, "apps/web": { "name": "@documenso/web", - "version": "1.7.2-rc.2", + "version": "1.7.2-rc.3", "license": "AGPL-3.0", "dependencies": { "@documenso/api": "*", diff --git a/package.json b/package.json index c71093bf7..1aedb4fba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.7.2-rc.2", + "version": "1.7.2-rc.3", "scripts": { "build": "turbo run build", "build:web": "turbo run build --filter=@documenso/web", From f199183c78f3bb8f06a2857431eb2b329d2b406a Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Fri, 1 Nov 2024 08:57:32 +0900 Subject: [PATCH 09/17] feat: improve translation coverage (#1427) Improves translation coverage across the app. --- .../documents/delete-document-dialog.tsx | 2 +- .../documents/move-document-dialog.tsx | 4 +- .../d/[token]/configure-direct-template.tsx | 4 +- .../(signing)/sign/[token]/complete/page.tsx | 2 +- .../src/app/(signing)/sign/[token]/form.tsx | 18 +- .../(signing)/sign/[token]/initials-field.tsx | 13 +- .../articles/signature-disclosure/page.tsx | 169 ++++--- .../document-search/document-search.tsx | 8 +- .../(dashboard)/settings/token/contants.ts | 12 +- .../settings/token/delete-token-dialog.tsx | 2 +- .../webhooks/delete-webhook-dialog.tsx | 2 +- .../(teams)/dialogs/delete-team-dialog.tsx | 2 +- .../(teams)/dialogs/transfer-team-dialog.tsx | 2 +- .../tables/current-user-teams-data-table.tsx | 2 +- .../tables/team-members-data-table.tsx | 2 +- .../document/document-read-only-fields.tsx | 8 +- apps/web/src/components/forms/token.tsx | 2 +- .../components/general/signing-disclosure.tsx | 32 +- .../lib/client-only/providers/i18n.server.tsx | 12 +- packages/lib/constants/recipient-roles.ts | 4 + packages/lib/translations/de/common.po | 159 ++++-- packages/lib/translations/de/web.po | 452 +++++++++++++----- packages/lib/translations/en/common.po | 161 +++++-- packages/lib/translations/en/web.po | 206 +++++++- packages/lib/translations/es/common.po | 161 +++++-- packages/lib/translations/es/web.po | 206 +++++++- packages/lib/translations/fr/common.po | 161 +++++-- packages/lib/translations/fr/web.po | 206 +++++++- packages/lib/utils/i18n.ts | 18 +- .../document/document-share-button.tsx | 14 +- .../primitives/document-flow/add-fields.tsx | 18 +- .../document-flow/add-signature.types.ts | 5 +- .../primitives/document-flow/add-signers.tsx | 2 +- .../document-flow/add-signers.types.ts | 8 +- .../document-flow/show-field-item.tsx | 6 +- packages/ui/primitives/document-flow/types.ts | 25 +- .../ui/primitives/form/form-error-message.tsx | 12 +- packages/ui/primitives/form/form.tsx | 11 +- packages/ui/primitives/lazy-pdf-viewer.tsx | 5 +- packages/ui/primitives/pdf-viewer.tsx | 31 +- .../template-flow/add-template-fields.tsx | 16 +- 41 files changed, 1746 insertions(+), 439 deletions(-) diff --git a/apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx b/apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx index fdf3f4fa5..912de8f11 100644 --- a/apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx +++ b/apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx @@ -87,7 +87,7 @@ export const DeleteDocumentDialog = ({ const onInputChange = (event: React.ChangeEvent) => { setInputValue(event.target.value); - setIsDeleteEnabled(event.target.value === 'delete'); + setIsDeleteEnabled(event.target.value === _(msg`delete`)); }; return ( diff --git a/apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx b/apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx index bf84d3e81..8de33f8c2 100644 --- a/apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx +++ b/apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx @@ -117,10 +117,10 @@ export const MoveDocumentDialog = ({ documentId, open, onOpenChange }: MoveDocum diff --git a/apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx b/apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx index 40118260c..649099717 100644 --- a/apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx +++ b/apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx @@ -1,7 +1,7 @@ 'use client'; import { zodResolver } from '@hookform/resolvers/zod'; -import { Trans } from '@lingui/macro'; +import { Trans, msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; import { useSession } from 'next-auth/react'; import { useForm } from 'react-hook-form'; @@ -77,7 +77,7 @@ export const ConfigureDirectTemplateFormPartial = ({ if (template.Recipient.map((recipient) => recipient.email).includes(items.email)) { ctx.addIssue({ code: z.ZodIssueCode.custom, - message: 'Email cannot already exist in the template', + message: _(msg`Email cannot already exist in the template`), path: ['email'], }); } diff --git a/apps/web/src/app/(signing)/sign/[token]/complete/page.tsx b/apps/web/src/app/(signing)/sign/[token]/complete/page.tsx index 01fa9dc9e..a234375c2 100644 --- a/apps/web/src/app/(signing)/sign/[token]/complete/page.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/complete/page.tsx @@ -222,7 +222,7 @@ export default async function CompletedSigningPage({ )} {isLoggedIn && ( - + Go Back Home )} diff --git a/apps/web/src/app/(signing)/sign/[token]/form.tsx b/apps/web/src/app/(signing)/sign/[token]/form.tsx index b3f3a0587..8085234db 100644 --- a/apps/web/src/app/(signing)/sign/[token]/form.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/form.tsx @@ -124,9 +124,9 @@ export const SigningForm = ({ >

- {recipient.role === RecipientRole.VIEWER && 'View Document'} - {recipient.role === RecipientRole.SIGNER && 'Sign Document'} - {recipient.role === RecipientRole.APPROVER && 'Approve Document'} + {recipient.role === RecipientRole.VIEWER && View Document} + {recipient.role === RecipientRole.SIGNER && Sign Document} + {recipient.role === RecipientRole.APPROVER && Approve Document}

{recipient.role === RecipientRole.VIEWER ? ( @@ -166,7 +166,7 @@ export const SigningForm = ({ ) : ( <>

- Please review the document before signing. + Please review the document before signing.


@@ -174,7 +174,9 @@ export const SigningForm = ({
- +
- + @@ -213,7 +217,7 @@ export const SigningForm = ({ disabled={typeof window !== 'undefined' && window.history.length <= 1} onClick={() => router.back()} > - Cancel + Cancel { const router = useRouter(); const { toast } = useToast(); + const { _ } = useLingui(); const { fullName } = useRequiredSigningContext(); const initials = extractInitials(fullName); @@ -83,8 +86,8 @@ export const InitialsField = ({ console.error(err); toast({ - title: 'Error', - description: 'An error occurred while signing the document.', + title: _(msg`Error`), + description: _(msg`An error occurred while signing the document.`), variant: 'destructive', }); } @@ -109,8 +112,8 @@ export const InitialsField = ({ console.error(err); toast({ - title: 'Error', - description: 'An error occurred while removing the signature.', + title: _(msg`Error`), + description: _(msg`An error occurred while removing the field.`), variant: 'destructive', }); } @@ -126,7 +129,7 @@ export const InitialsField = ({ {!field.inserted && (

- Initials + Initials

)} diff --git a/apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx b/apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx index 8c79071b9..3ac77e01a 100644 --- a/apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx +++ b/apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx @@ -5,101 +5,156 @@ import { Trans } from '@lingui/macro'; import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; import { Button } from '@documenso/ui/primitives/button'; +const SUPPORT_EMAIL = 'support@documenso.com'; + export default function SignatureDisclosure() { setupI18nSSR(); return (
-

Electronic Signature Disclosure

+

+ Electronic Signature Disclosure +

-

Welcome

+

+ Welcome +

- Thank you for using Documenso to perform your electronic document signing. The purpose of - this disclosure is to inform you about the process, legality, and your rights regarding - the use of electronic signatures on our platform. By opting to use an electronic - signature, you are agreeing to the terms and conditions outlined below. + + Thank you for using Documenso to perform your electronic document signing. The purpose + of this disclosure is to inform you about the process, legality, and your rights + regarding the use of electronic signatures on our platform. By opting to use an + electronic signature, you are agreeing to the terms and conditions outlined below. +

-

Acceptance and Consent

+

+ Acceptance and Consent +

- When you use our platform to affix your electronic signature to documents, you are - consenting to do so under the Electronic Signatures in Global and National Commerce Act - (E-Sign Act) and other applicable laws. This action indicates your agreement to use - electronic means to sign documents and receive notifications. + + When you use our platform to affix your electronic signature to documents, you are + consenting to do so under the Electronic Signatures in Global and National Commerce Act + (E-Sign Act) and other applicable laws. This action indicates your agreement to use + electronic means to sign documents and receive notifications. +

-

Legality of Electronic Signatures

+

+ Legality of Electronic Signatures +

- An electronic signature provided by you on our platform, achieved through clicking through - to a document and entering your name, or any other electronic signing method we provide, - is legally binding. It carries the same weight and enforceability as a manual signature - written with ink on paper. + + An electronic signature provided by you on our platform, achieved through clicking + through to a document and entering your name, or any other electronic signing method we + provide, is legally binding. It carries the same weight and enforceability as a manual + signature written with ink on paper. +

-

System Requirements

-

To use our electronic signature service, you must have access to:

+

+ System Requirements +

+

+ To use our electronic signature service, you must have access to: +

    -
  • A stable internet connection
  • -
  • An email account
  • -
  • A device capable of accessing, opening, and reading documents
  • -
  • A means to print or download documents for your records
  • +
  • + A stable internet connection +
  • +
  • + An email account +
  • +
  • + A device capable of accessing, opening, and reading documents +
  • +
  • + A means to print or download documents for your records +
-

Electronic Delivery of Documents

+

+ Electronic Delivery of Documents +

- All documents related to the electronic signing process will be provided to you - electronically through our platform or via email. It is your responsibility to ensure that - your email address is current and that you can receive and open our emails. + + All documents related to the electronic signing process will be provided to you + electronically through our platform or via email. It is your responsibility to ensure + that your email address is current and that you can receive and open our emails. +

-

Consent to Electronic Transactions

+

+ Consent to Electronic Transactions +

- By using the electronic signature feature, you are consenting to conduct transactions and - receive disclosures electronically. You acknowledge that your electronic signature on - documents is binding and that you accept the terms outlined in the documents you are - signing. + + By using the electronic signature feature, you are consenting to conduct transactions + and receive disclosures electronically. You acknowledge that your electronic signature + on documents is binding and that you accept the terms outlined in the documents you are + signing. +

-

Withdrawing Consent

+

+ Withdrawing Consent +

- You have the right to withdraw your consent to use electronic signatures at any time - before completing the signing process. To withdraw your consent, please contact the sender - of the document. In failing to contact the sender you may reach out to{' '} - support@documenso.com for assistance. Be aware - that withdrawing consent may delay or halt the completion of the related transaction or - service. + + You have the right to withdraw your consent to use electronic signatures at any time + before completing the signing process. To withdraw your consent, please contact the + sender of the document. In failing to contact the sender you may reach out to{' '} + {SUPPORT_EMAIL} for assistance. Be aware that + withdrawing consent may delay or halt the completion of the related transaction or + service. +

-

Updating Your Information

+

+ Updating Your Information +

- 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. + + 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. +

-

Retention of Documents

+

+ Retention of Documents +

- After signing a document electronically, you will be provided the opportunity to view, - download, and print the document for your records. It is highly recommended that you - retain a copy of all electronically signed documents for your personal records. We will - also retain a copy of the signed document for our records however we may not be able to - provide you with a copy of the signed document after a certain period of time. + + After signing a document electronically, you will be provided the opportunity to view, + download, and print the document for your records. It is highly recommended that you + retain a copy of all electronically signed documents for your personal records. We will + also retain a copy of the signed document for our records however we may not be able to + provide you with a copy of the signed document after a certain period of time. +

-

Acknowledgment

+

+ Acknowledgment +

- By proceeding to use the electronic signature service provided by Documenso, you affirm - that you have read and understood this disclosure. You agree to all terms and conditions - related to the use of electronic signatures and electronic transactions as outlined - herein. + + By proceeding to use the electronic signature service provided by Documenso, you affirm + that you have read and understood this disclosure. You agree to all terms and conditions + related to the use of electronic signatures and electronic transactions as outlined + herein. +

-

Contact Information

+

+ Contact Information +

- For any questions regarding this disclosure, electronic signatures, or any related - process, please contact us at:{' '} - support@documenso.com + + For any questions regarding this disclosure, electronic signatures, or any related + process, please contact us at: {SUPPORT_EMAIL} +

diff --git a/apps/web/src/components/(dashboard)/document-search/document-search.tsx b/apps/web/src/components/(dashboard)/document-search/document-search.tsx index dbfad6775..966452152 100644 --- a/apps/web/src/components/(dashboard)/document-search/document-search.tsx +++ b/apps/web/src/components/(dashboard)/document-search/document-search.tsx @@ -4,12 +4,18 @@ import { useCallback, useEffect, useState } from 'react'; import { useRouter, useSearchParams } from 'next/navigation'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; + import { useDebouncedValue } from '@documenso/lib/client-only/hooks/use-debounced-value'; import { Input } from '@documenso/ui/primitives/input'; export const DocumentSearch = ({ initialValue = '' }: { initialValue?: string }) => { + const { _ } = useLingui(); + const router = useRouter(); const searchParams = useSearchParams(); + const [searchTerm, setSearchTerm] = useState(initialValue); const debouncedSearchTerm = useDebouncedValue(searchTerm, 500); @@ -33,7 +39,7 @@ export const DocumentSearch = ({ initialValue = '' }: { initialValue?: string }) return ( setSearchTerm(e.target.value)} /> diff --git a/apps/web/src/components/(dashboard)/settings/token/contants.ts b/apps/web/src/components/(dashboard)/settings/token/contants.ts index 232c37644..414425b25 100644 --- a/apps/web/src/components/(dashboard)/settings/token/contants.ts +++ b/apps/web/src/components/(dashboard)/settings/token/contants.ts @@ -1,7 +1,9 @@ +import { msg } from '@lingui/macro'; + export const EXPIRATION_DATES = { - ONE_WEEK: '7 days', - ONE_MONTH: '1 month', - THREE_MONTHS: '3 months', - SIX_MONTHS: '6 months', - ONE_YEAR: '12 months', + ONE_WEEK: msg`7 days`, + ONE_MONTH: msg`1 month`, + THREE_MONTHS: msg`3 months`, + SIX_MONTHS: msg`6 months`, + ONE_YEAR: msg`12 months`, } as const; diff --git a/apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx b/apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx index 428470dce..adaac05b0 100644 --- a/apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx +++ b/apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx @@ -53,7 +53,7 @@ export default function DeleteTokenDialog({ const [isOpen, setIsOpen] = useState(false); - const deleteMessage = `delete ${token.name}`; + const deleteMessage = _(msg`delete ${token.name}`); const ZDeleteTokenDialogSchema = z.object({ tokenName: z.literal(deleteMessage, { diff --git a/apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx b/apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx index 3ba291132..62d9df9bc 100644 --- a/apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx +++ b/apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx @@ -51,7 +51,7 @@ export const DeleteWebhookDialog = ({ webhook, children }: DeleteWebhookDialogPr const [open, setOpen] = useState(false); - const deleteMessage = `delete ${webhook.webhookUrl}`; + const deleteMessage = _(msg`delete ${webhook.webhookUrl}`); const ZDeleteWebhookFormSchema = z.object({ webhookUrl: z.literal(deleteMessage, { diff --git a/apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx b/apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx index ee974a25b..3377bc989 100644 --- a/apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx +++ b/apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx @@ -47,7 +47,7 @@ export const DeleteTeamDialog = ({ trigger, teamId, teamName }: DeleteTeamDialog const { _ } = useLingui(); const { toast } = useToast(); - const deleteMessage = `delete ${teamName}`; + const deleteMessage = _(msg`delete ${teamName}`); const ZDeleteTeamFormSchema = z.object({ teamName: z.literal(deleteMessage, { diff --git a/apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx b/apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx index 0859945dc..2fb5f31bf 100644 --- a/apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx +++ b/apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx @@ -73,7 +73,7 @@ export const TransferTeamDialog = ({ teamId, }); - const confirmTransferMessage = `transfer ${teamName}`; + const confirmTransferMessage = _(msg`transfer ${teamName}`); const ZTransferTeamFormSchema = z.object({ teamName: z.literal(confirmTransferMessage, { diff --git a/apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx b/apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx index 5579535c6..a86281007 100644 --- a/apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx +++ b/apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx @@ -83,7 +83,7 @@ export const CurrentUserTeamsDataTable = () => { accessorKey: 'role', cell: ({ row }) => row.original.ownerUserId === row.original.currentTeamMember.userId - ? 'Owner' + ? _(msg`Owner`) : _(TEAM_MEMBER_ROLE_MAP[row.original.currentTeamMember.role]), }, { diff --git a/apps/web/src/components/(teams)/tables/team-members-data-table.tsx b/apps/web/src/components/(teams)/tables/team-members-data-table.tsx index fc8e28598..195c839dc 100644 --- a/apps/web/src/components/(teams)/tables/team-members-data-table.tsx +++ b/apps/web/src/components/(teams)/tables/team-members-data-table.tsx @@ -106,7 +106,7 @@ export const TeamMembersDataTable = ({ accessorKey: 'role', cell: ({ row }) => teamOwnerUserId === row.original.userId - ? 'Owner' + ? _(msg`Owner`) : _(TEAM_MEMBER_ROLE_MAP[row.original.role]), }, { 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 84b77e0d5..9c534ca35 100644 --- a/apps/web/src/components/document/document-read-only-fields.tsx +++ b/apps/web/src/components/document/document-read-only-fields.tsx @@ -2,6 +2,7 @@ import { useState } from 'react'; +import { useLingui } from '@lingui/react'; import { EyeOffIcon } from 'lucide-react'; import { P, match } from 'ts-pattern'; @@ -12,6 +13,7 @@ import { import { PDF_VIEWER_PAGE_SELECTOR } from '@documenso/lib/constants/pdf-viewer'; import { DEFAULT_DOCUMENT_TIME_ZONE } from '@documenso/lib/constants/time-zones'; import type { DocumentField } from '@documenso/lib/server-only/field/get-fields-for-document'; +import { parseMessageDescriptor } from '@documenso/lib/utils/i18n'; import { extractInitials } from '@documenso/lib/utils/recipient-formatter'; import type { DocumentMeta } from '@documenso/prisma/client'; import { FieldType, SigningStatus } from '@documenso/prisma/client'; @@ -28,6 +30,8 @@ export type DocumentReadOnlyFieldsProps = { }; export const DocumentReadOnlyFields = ({ documentMeta, fields }: DocumentReadOnlyFieldsProps) => { + const { _ } = useLingui(); + const [hiddenFieldIds, setHiddenFieldIds] = useState>({}); const handleHideField = (fieldId: string) => { @@ -59,7 +63,7 @@ export const DocumentReadOnlyFields = ({ documentMeta, fields }: DocumentReadOnl >

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

@@ -127,7 +131,7 @@ export const DocumentReadOnlyFields = ({ documentMeta, fields }: DocumentReadOnl field.type === FieldType.FREE_SIGNATURE, })} > - {FRIENDLY_FIELD_TYPE[field.type]} + {parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[field.type])}

)}
diff --git a/apps/web/src/components/forms/token.tsx b/apps/web/src/components/forms/token.tsx index b042bd937..a28aa21e0 100644 --- a/apps/web/src/components/forms/token.tsx +++ b/apps/web/src/components/forms/token.tsx @@ -202,7 +202,7 @@ export const ApiTokenForm = ({ className, teamId, tokens }: ApiTokenFormProps) = {Object.entries(EXPIRATION_DATES).map(([key, date]) => ( - {date} + {_(date)} ))} diff --git a/apps/web/src/components/general/signing-disclosure.tsx b/apps/web/src/components/general/signing-disclosure.tsx index bd1ef9707..a6257d35f 100644 --- a/apps/web/src/components/general/signing-disclosure.tsx +++ b/apps/web/src/components/general/signing-disclosure.tsx @@ -2,6 +2,8 @@ import type { HTMLAttributes } from 'react'; import Link from 'next/link'; +import { Trans } from '@lingui/macro'; + import { cn } from '@documenso/ui/lib/utils'; export type SigningDisclosureProps = HTMLAttributes; @@ -9,20 +11,24 @@ export type SigningDisclosureProps = HTMLAttributes; export const SigningDisclosure = ({ className, ...props }: SigningDisclosureProps) => { return (

- By proceeding with your electronic signature, you acknowledge and consent that it will be used - to sign the given document and holds the same legal validity as a handwritten signature. By - completing the electronic signing process, you affirm your understanding and acceptance of - these conditions. + + By proceeding with your electronic signature, you acknowledge and consent that it will be + used to sign the given document and holds the same legal validity as a handwritten + signature. By completing the electronic signing process, you affirm your understanding and + acceptance of these conditions. + - Read the full{' '} - - signature disclosure - - . + + Read the full{' '} + + signature disclosure + + . +

); diff --git a/packages/lib/client-only/providers/i18n.server.tsx b/packages/lib/client-only/providers/i18n.server.tsx index 8ee89f3de..b5f193072 100644 --- a/packages/lib/client-only/providers/i18n.server.tsx +++ b/packages/lib/client-only/providers/i18n.server.tsx @@ -18,7 +18,17 @@ async function loadCatalog(lang: SupportedLanguages): Promise<{ const extension = process.env.NODE_ENV === 'development' ? 'po' : 'js'; const context = IS_APP_WEB ? 'web' : 'marketing'; - const { messages } = await import(`../../translations/${lang}/${context}.${extension}`); + let { messages } = await import(`../../translations/${lang}/${context}.${extension}`); + + // Dirty way to load common messages for development since it's not compiled. + if (process.env.NODE_ENV === 'development') { + const commonMessages = await import(`../../translations/${lang}/common.${extension}`); + + messages = { + ...messages, + ...commonMessages.messages, + }; + } return { [lang]: messages, diff --git a/packages/lib/constants/recipient-roles.ts b/packages/lib/constants/recipient-roles.ts index ba099ceea..7dfe3c7fc 100644 --- a/packages/lib/constants/recipient-roles.ts +++ b/packages/lib/constants/recipient-roles.ts @@ -41,24 +41,28 @@ export const RECIPIENT_ROLES_DESCRIPTION_ENG = { actioned: `Approved`, progressiveVerb: `Approving`, roleName: `Approver`, + roleNamePlural: msg`Approvers`, }, [RecipientRole.CC]: { actionVerb: `CC`, actioned: `CC'd`, progressiveVerb: `CC`, roleName: `Cc`, + roleNamePlural: msg`Ccers`, }, [RecipientRole.SIGNER]: { actionVerb: `Sign`, actioned: `Signed`, progressiveVerb: `Signing`, roleName: `Signer`, + roleNamePlural: msg`Signers`, }, [RecipientRole.VIEWER]: { actionVerb: `View`, actioned: `Viewed`, progressiveVerb: `Viewing`, roleName: `Viewer`, + roleNamePlural: msg`Viewers`, }, } satisfies Record; diff --git a/packages/lib/translations/de/common.po b/packages/lib/translations/de/common.po index c4a4a0cd5..8aaf6650f 100644 --- a/packages/lib/translations/de/common.po +++ b/packages/lib/translations/de/common.po @@ -115,8 +115,8 @@ msgstr "Admin" msgid "Advanced Options" msgstr "Erweiterte Optionen" -#: packages/ui/primitives/document-flow/add-fields.tsx:570 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:402 +#: packages/ui/primitives/document-flow/add-fields.tsx:573 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:406 msgid "Advanced settings" msgstr "Erweiterte Einstellungen" @@ -124,6 +124,10 @@ msgstr "Erweiterte Einstellungen" msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." msgstr "Nach der Übermittlung wird ein Dokument automatisch generiert und zu Ihrer Dokumentenseite hinzugefügt. Sie erhalten außerdem eine Benachrichtigung per E-Mail." +#: packages/ui/primitives/pdf-viewer.tsx:167 +msgid "An error occurred while loading the document." +msgstr "" + #: packages/lib/constants/recipient-roles.ts:8 msgid "Approve" msgstr "Genehmigen" @@ -136,6 +140,10 @@ msgstr "Genehmigt" msgid "Approver" msgstr "Genehmiger" +#: packages/lib/constants/recipient-roles.ts:44 +msgid "Approvers" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:10 msgid "Approving" msgstr "Genehmigung" @@ -170,15 +178,14 @@ msgstr "CC" msgid "CC'd" msgstr "CC'd" +#: packages/lib/constants/recipient-roles.ts:51 +msgid "Ccers" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86 msgid "Character Limit" msgstr "Zeichenbeschränkung" -#: packages/ui/primitives/document-flow/add-fields.tsx:1026 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:788 -msgid "Checkbox" -msgstr "Checkbox" - #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197 msgid "Checkbox values" msgstr "Checkbox-Werte" @@ -203,8 +210,8 @@ msgstr "Schließen" msgid "Configure Direct Recipient" msgstr "Direkten Empfänger konfigurieren" -#: packages/ui/primitives/document-flow/add-fields.tsx:571 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:403 +#: packages/ui/primitives/document-flow/add-fields.tsx:574 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:407 msgid "Configure the {0} field" msgstr "Konfigurieren Sie das Feld {0}" @@ -216,12 +223,17 @@ msgstr "Fortsetzen" msgid "Copied to clipboard" msgstr "In die Zwischenablage kopiert" +#: packages/ui/components/document/document-share-button.tsx:194 +msgid "Copy Link" +msgstr "" + #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" msgstr "Benutzerdefinierter Text" -#: packages/ui/primitives/document-flow/add-fields.tsx:922 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:684 +#: packages/ui/primitives/document-flow/add-fields.tsx:927 +#: packages/ui/primitives/document-flow/types.ts:53 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:690 msgid "Date" msgstr "Datum" @@ -252,8 +264,8 @@ msgstr "Herunterladen" msgid "Drag & drop your PDF here." msgstr "Ziehen Sie Ihr PDF hierher." -#: packages/ui/primitives/document-flow/add-fields.tsx:1052 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:814 +#: packages/ui/primitives/document-flow/add-fields.tsx:1058 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:820 msgid "Dropdown" msgstr "Dropdown" @@ -261,20 +273,26 @@ msgstr "Dropdown" msgid "Dropdown options" msgstr "Dropdown-Optionen" -#: packages/ui/primitives/document-flow/add-fields.tsx:870 +#: packages/ui/primitives/document-flow/add-fields.tsx:875 #: packages/ui/primitives/document-flow/add-signature.tsx:272 #: packages/ui/primitives/document-flow/add-signers.tsx:500 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:632 +#: packages/ui/primitives/document-flow/add-signers.tsx:507 +#: packages/ui/primitives/document-flow/types.ts:54 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:638 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:463 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:470 msgid "Email" msgstr "E-Mail" +#: packages/ui/primitives/document-flow/add-signature.types.ts:7 +msgid "Email is required" +msgstr "" + #: packages/ui/primitives/template-flow/add-template-settings.tsx:184 msgid "Email Options" msgstr "E-Mail-Optionen" -#: packages/ui/primitives/document-flow/add-fields.tsx:1117 +#: packages/ui/primitives/document-flow/add-fields.tsx:1123 msgid "Empty field" msgstr "Leeres Feld" @@ -287,7 +305,7 @@ msgstr "Direktlink-Signierung aktivieren" msgid "Enable signing order" msgstr "Aktiviere die Signaturreihenfolge" -#: packages/ui/primitives/document-flow/add-fields.tsx:790 +#: packages/ui/primitives/document-flow/add-fields.tsx:795 msgid "Enable Typed Signatures" msgstr "Aktivieren Sie getippte Unterschriften" @@ -296,6 +314,7 @@ msgid "Enter password" msgstr "Passwort eingeben" #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257 +#: packages/ui/primitives/pdf-viewer.tsx:166 msgid "Error" msgstr "Fehler" @@ -342,6 +361,10 @@ msgstr "Feldplatzhalter" msgid "Font Size" msgstr "Schriftgröße" +#: packages/ui/primitives/document-flow/types.ts:50 +msgid "Free Signature" +msgstr "" + #: packages/ui/components/document/document-global-auth-action-select.tsx:64 msgid "Global recipient action authentication" msgstr "Globale Empfängerauthentifizierung" @@ -354,19 +377,19 @@ msgstr "Zurück" msgid "Green" msgstr "Grün" -#: packages/lib/constants/recipient-roles.ts:72 +#: packages/lib/constants/recipient-roles.ts:76 msgid "I am a signer of this document" msgstr "Ich bin ein Unterzeichner dieses Dokuments" -#: packages/lib/constants/recipient-roles.ts:75 +#: packages/lib/constants/recipient-roles.ts:79 msgid "I am a viewer of this document" msgstr "Ich bin ein Betrachter dieses Dokuments" -#: packages/lib/constants/recipient-roles.ts:73 +#: packages/lib/constants/recipient-roles.ts:77 msgid "I am an approver of this document" msgstr "Ich bin ein Genehmiger dieses Dokuments" -#: packages/lib/constants/recipient-roles.ts:74 +#: packages/lib/constants/recipient-roles.ts:78 msgid "I am required to receive a copy of this document" msgstr "Ich bin verpflichtet, eine Kopie dieses Dokuments zu erhalten" @@ -375,12 +398,29 @@ msgstr "Ich bin verpflichtet, eine Kopie dieses Dokuments zu erhalten" msgid "Inherit authentication method" msgstr "Authentifizierungsmethode erben" +#: packages/ui/primitives/document-flow/types.ts:51 +msgid "Initials" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signers.types.ts:17 +msgid "Invalid email" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signature.types.ts:8 +msgid "Invalid email address" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48 msgid "Label" msgstr "Beschriftung" +#: packages/ui/primitives/lazy-pdf-viewer.tsx:15 +#: packages/ui/primitives/pdf-viewer.tsx:44 +msgid "Loading document..." +msgstr "" + #: packages/lib/constants/teams.ts:11 msgid "Manager" msgstr "Manager" @@ -402,11 +442,12 @@ msgstr "Nachricht <0>(Optional)" msgid "Min" msgstr "Min" -#: packages/ui/primitives/document-flow/add-fields.tsx:896 +#: packages/ui/primitives/document-flow/add-fields.tsx:901 #: packages/ui/primitives/document-flow/add-signature.tsx:298 #: packages/ui/primitives/document-flow/add-signers.tsx:535 #: packages/ui/primitives/document-flow/add-signers.tsx:541 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:658 +#: packages/ui/primitives/document-flow/types.ts:55 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:664 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:498 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:504 msgid "Name" @@ -424,13 +465,13 @@ msgstr "Muss unterzeichnen" msgid "Needs to view" msgstr "Muss sehen" -#: packages/ui/primitives/document-flow/add-fields.tsx:680 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:497 +#: packages/ui/primitives/document-flow/add-fields.tsx:686 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:504 msgid "No recipient matching this description was found." msgstr "Kein passender Empfänger mit dieser Beschreibung gefunden." -#: packages/ui/primitives/document-flow/add-fields.tsx:696 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:513 +#: packages/ui/primitives/document-flow/add-fields.tsx:701 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:519 msgid "No recipients with this role" msgstr "Keine Empfänger mit dieser Rolle" @@ -454,8 +495,9 @@ msgstr "Kein Unterschriftsfeld gefunden" msgid "No value found." msgstr "Kein Wert gefunden." -#: packages/ui/primitives/document-flow/add-fields.tsx:974 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:736 +#: packages/ui/primitives/document-flow/add-fields.tsx:979 +#: packages/ui/primitives/document-flow/types.ts:56 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:742 msgid "Number" msgstr "Nummer" @@ -475,6 +517,10 @@ msgstr "Sobald Ihre Vorlage eingerichtet ist, teilen Sie den Link überall, wo S msgid "Page {0} of {1}" msgstr "Seite {0} von {1}" +#: packages/ui/primitives/pdf-viewer.tsx:259 +msgid "Page {0} of {numPages}" +msgstr "" + #: packages/ui/primitives/document-password-dialog.tsx:62 msgid "Password Required" msgstr "Passwort erforderlich" @@ -489,8 +535,12 @@ msgstr "Wählen Sie eine Zahl" msgid "Placeholder" msgstr "Platzhalter" -#: packages/ui/primitives/document-flow/add-fields.tsx:1000 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:762 +#: packages/ui/primitives/pdf-viewer.tsx:223 +#: packages/ui/primitives/pdf-viewer.tsx:238 +msgid "Please try again or contact our support." +msgstr "" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx:768 msgid "Radio" msgstr "Radio" @@ -525,7 +575,7 @@ msgstr "Rot" msgid "Redirect URL" msgstr "Weiterleitungs-URL" -#: packages/ui/primitives/document-flow/add-fields.tsx:1104 +#: packages/ui/primitives/document-flow/add-fields.tsx:1110 msgid "Remove" msgstr "Entfernen" @@ -537,6 +587,10 @@ msgstr "Entfernen" msgid "Required field" msgstr "Pflichtfeld" +#: packages/ui/components/document/document-share-button.tsx:147 +msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" +msgstr "" + #: packages/ui/primitives/data-table-pagination.tsx:55 msgid "Rows per page" msgstr "Zeilen pro Seite" @@ -545,7 +599,7 @@ msgstr "Zeilen pro Seite" msgid "Save" msgstr "Speichern" -#: packages/ui/primitives/template-flow/add-template-fields.tsx:848 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:854 msgid "Save Template" msgstr "Vorlage speichern" @@ -587,6 +641,10 @@ msgstr "Unterschriftenkarte teilen" msgid "Share the Link" msgstr "Link teilen" +#: packages/ui/components/document/document-share-button.tsx:143 +msgid "Share your signing experience!" +msgstr "" + #: packages/ui/primitives/document-flow/add-signers.tsx:680 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:655 msgid "Show advanced settings" @@ -596,10 +654,11 @@ msgstr "Erweiterte Einstellungen anzeigen" msgid "Sign" msgstr "Unterschreiben" -#: packages/ui/primitives/document-flow/add-fields.tsx:818 +#: packages/ui/primitives/document-flow/add-fields.tsx:823 #: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/field-icon.tsx:52 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:580 +#: packages/ui/primitives/document-flow/types.ts:49 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:586 msgid "Signature" msgstr "Unterschrift" @@ -611,6 +670,14 @@ msgstr "Unterzeichnet" msgid "Signer" msgstr "Unterzeichner" +#: packages/lib/constants/recipient-roles.ts:58 +msgid "Signers" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signers.types.ts:36 +msgid "Signers must have unique emails" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:22 msgid "Signing" msgstr "Unterzeichnung" @@ -623,6 +690,11 @@ msgstr "Einige Unterzeichner haben noch kein Unterschriftsfeld zugewiesen bekomm msgid "Something went wrong" msgstr "Etwas ist schief gelaufen" +#: packages/ui/primitives/pdf-viewer.tsx:220 +#: packages/ui/primitives/pdf-viewer.tsx:235 +msgid "Something went wrong while loading the document." +msgstr "" + #: packages/ui/primitives/data-table.tsx:136 msgid "Something went wrong." msgstr "Etwas ist schief gelaufen." @@ -644,8 +716,9 @@ msgstr "Einreichen" msgid "Template title" msgstr "Vorlagentitel" -#: packages/ui/primitives/document-flow/add-fields.tsx:948 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:710 +#: packages/ui/primitives/document-flow/add-fields.tsx:953 +#: packages/ui/primitives/document-flow/types.ts:52 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:716 msgid "Text" msgstr "Text" @@ -705,7 +778,7 @@ msgstr "Der Name des Unterzeichners" msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step." msgstr "Dies kann überschrieben werden, indem die Authentifizierungsanforderungen im nächsten Schritt direkt für jeden Empfänger festgelegt werden." -#: packages/ui/primitives/document-flow/add-fields.tsx:752 +#: packages/ui/primitives/document-flow/add-fields.tsx:757 msgid "This document has already been sent to this recipient. You can no longer edit this recipient." msgstr "Dieses Dokument wurde bereits an diesen Empfänger gesendet. Sie können diesen Empfänger nicht mehr bearbeiten." @@ -717,7 +790,7 @@ msgstr "Dieses Dokument ist durch ein Passwort geschützt. Bitte geben Sie das P msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." msgstr "Dieses Feld kann nicht geändert oder gelöscht werden. Wenn Sie den direkten Link dieser Vorlage teilen oder zu Ihrem öffentlichen Profil hinzufügen, kann jeder, der darauf zugreift, seinen Namen und seine E-Mail-Adresse eingeben und die ihm zugewiesenen Felder ausfüllen." -#: packages/ui/primitives/document-flow/add-fields.tsx:1084 +#: packages/ui/primitives/document-flow/add-fields.tsx:1090 msgid "This recipient can no longer be modified as they have signed a field, or completed the document." msgstr "Dieser Empfänger kann nicht mehr bearbeitet werden, da er ein Feld unterschrieben oder das Dokument abgeschlossen hat." @@ -738,8 +811,8 @@ msgstr "Zeitzone" msgid "Title" msgstr "Titel" -#: packages/ui/primitives/document-flow/add-fields.tsx:1067 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:828 +#: packages/ui/primitives/document-flow/add-fields.tsx:1073 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:834 msgid "To proceed further, please set at least one value for the {0} field." msgstr "Um fortzufahren, legen Sie bitte mindestens einen Wert für das Feld {0} fest." @@ -781,6 +854,10 @@ msgstr "Betrachtet" msgid "Viewer" msgstr "Betrachter" +#: packages/lib/constants/recipient-roles.ts:65 +msgid "Viewers" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" msgstr "Betrachten" diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index e5135d844..aab337fde 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -86,7 +86,7 @@ msgstr "{0} von {1} Dokumenten verbleibend in diesem Monat." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:165 msgid "{0} Recipient(s)" -msgstr "{0} Empfänger(in) / -n" +msgstr "{0} Empfänger(in)" #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:67 msgid "{0} the document to complete the process." @@ -117,6 +117,18 @@ msgstr "<0>\"{0}\" steht nicht mehr zur Unterschrift zur Verfügung" msgid "<0>Sender: All" msgstr "<0>Absender: Alle" +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:5 +msgid "1 month" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:8 +msgid "12 months" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:6 +msgid "3 months" +msgstr "" + #: apps/web/src/components/partials/not-found.tsx:45 msgid "404 Page not found" msgstr "404 Seite nicht gefunden" @@ -133,14 +145,30 @@ msgstr "404 Team nicht gefunden" msgid "404 Template not found" msgstr "404 Vorlage nicht gefunden" +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:7 +msgid "6 months" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:4 +msgid "7 days" +msgstr "" + #: apps/web/src/components/forms/send-confirmation-email.tsx:55 msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." msgstr "Eine Bestätigungs-E-Mail wurde gesendet, und sie sollte in Kürze in deinem Posteingang ankommen." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:70 +msgid "A device capable of accessing, opening, and reading documents" +msgstr "" + #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" msgstr "Ein Entwurf wird erstellt" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:73 +msgid "A means to print or download documents for your records" +msgstr "" + #: apps/web/src/components/forms/token.tsx:127 msgid "A new token was created successfully." msgstr "Ein neuer Token wurde erfolgreich erstellt." @@ -163,6 +191,10 @@ msgstr "Ein Geheimnis, das an deine URL gesendet wird, damit du überprüfen kan msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." msgstr "Ein Geheimnis, das an deine URL gesendet wird, damit du überprüfen kannst, dass die Anfrage von Documenso gesendet wurde." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:64 +msgid "A stable internet connection" +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:198 msgid "A unique URL to access your profile" msgstr "Eine eindeutige URL, um auf dein Profil zuzugreifen" @@ -180,6 +212,10 @@ msgstr "Eine Bestätigungs-E-Mail wird an die angegebene E-Mail-Adresse gesendet msgid "Accept" msgstr "Akzeptieren" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:33 +msgid "Acceptance and Consent" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:26 msgid "Accepted team invitation" msgstr "Team-Einladung akzeptiert" @@ -189,6 +225,10 @@ msgstr "Team-Einladung akzeptiert" msgid "Account deleted" msgstr "Konto gelöscht" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 +msgid "Acknowledgment" +msgstr "" + #: 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 @@ -295,6 +335,10 @@ msgstr "Admin-Aktionen" msgid "Admin panel" msgstr "Admin-Panel" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:129 +msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." +msgstr "" + #: apps/web/src/components/formatter/document-status.tsx:46 msgid "All" msgstr "Alle" @@ -307,6 +351,10 @@ msgstr "Alle Dokumente" msgid "All documents have been processed. Any new documents that are sent or received will show here." msgstr "Alle Dokumente wurden verarbeitet. Alle neuen Dokumente, die gesendet oder empfangen werden, werden hier angezeigt." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:81 +msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:145 msgid "All inserted signatures will be voided" msgstr "Alle eingefügten Unterschriften werden annulliert" @@ -335,6 +383,14 @@ msgstr "Hast du bereits ein Konto? <0>Stattdessen anmelden" msgid "Amount" msgstr "Betrag" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:48 +msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:67 +msgid "An email account" +msgstr "" + #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:262 msgid "An email containing an invitation will be sent to each member." msgstr "Eine E-Mail mit einer Einladung wird an jedes Mitglied gesendet." @@ -407,6 +463,10 @@ msgstr "Ein Fehler ist aufgetreten, während das Dokument verschoben wurde." msgid "An error occurred while moving the template." msgstr "Ein Fehler ist aufgetreten, während die Vorlage verschoben wurde." +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:116 +msgid "An error occurred while removing the field." +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:152 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:126 #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:137 @@ -434,6 +494,7 @@ msgstr "Beim Senden Ihrer Bestätigungs-E-Mail ist ein Fehler aufgetreten" #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:100 #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:106 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:84 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:90 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:150 #: apps/web/src/app/(signing)/sign/[token]/radio-field.tsx:102 @@ -531,6 +592,10 @@ msgstr "App-Version" msgid "Approve" msgstr "Genehmigen" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:129 +msgid "Approve Document" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 msgid "Approved" msgstr "Genehmigt" @@ -588,7 +653,7 @@ msgstr "Warte auf E-Mail-Bestätigung" msgid "Back" msgstr "Zurück" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:109 +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:164 msgid "Back to Documents" msgstr "Zurück zu Dokumenten" @@ -638,9 +703,22 @@ msgstr "Durch das Löschen dieses Dokuments wird Folgendes passieren:" msgid "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in." msgstr "Durch die Aktivierung von 2FA müssen Sie jedes Mal, wenn Sie sich anmelden, einen Code aus Ihrer Authenticator-App eingeben." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:142 +msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." +msgstr "" + +#: apps/web/src/components/general/signing-disclosure.tsx:14 +msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:92 +msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:186 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:190 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:108 +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:120 #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:248 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:157 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:198 @@ -654,6 +732,7 @@ msgstr "Durch die Aktivierung von 2FA müssen Sie jedes Mal, wenn Sie sich anmel #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:189 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:151 +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:220 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:215 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:327 #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:113 @@ -832,6 +911,14 @@ msgstr "E-Mail bestätigen" msgid "Confirmation email sent" msgstr "Bestätigungs-E-Mail gesendet" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:89 +msgid "Consent to Electronic Transactions" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:151 +msgid "Contact Information" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 msgid "Content" msgstr "Inhalt" @@ -978,7 +1065,7 @@ msgstr "Erstellt am {0}" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 msgid "Created on{0}" -msgstr ">>>>>>> 4ca18b99 (fix: refactor dates)" +msgstr "" #: apps/web/src/components/forms/password.tsx:107 msgid "Current Password" @@ -1013,6 +1100,10 @@ msgstr "Ablehnen" msgid "Declined team invitation" msgstr "Team-Einladung abgelehnt" +#: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:90 +msgid "delete" +msgstr "" + #: 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/delete-document-dialog.tsx:200 @@ -1031,6 +1122,15 @@ msgstr "Team-Einladung abgelehnt" msgid "Delete" msgstr "Löschen" +#: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:56 +#: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:54 +msgid "delete {0}" +msgstr "" + +#: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:50 +msgid "delete {teamName}" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:137 msgid "Delete account" msgstr "Konto löschen" @@ -1378,6 +1478,14 @@ msgstr "Bearbeiten" msgid "Edit webhook" msgstr "Webhook bearbeiten" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:78 +msgid "Electronic Delivery of Documents" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:17 +msgid "Electronic Signature Disclosure" +msgstr "" + #: 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 @@ -1406,6 +1514,10 @@ msgstr "E-Mail-Adresse" msgid "Email Address" msgstr "E-Mail-Adresse" +#: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:80 +msgid "Email cannot already exist in the template" +msgstr "" + #: apps/web/src/app/(unauthenticated)/verify-email/[token]/client.tsx:36 msgid "Email Confirmed!" msgstr "E-Mail bestätigt!" @@ -1492,6 +1604,8 @@ msgstr "Geben Sie hier Ihren Text ein" #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:136 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:83 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:109 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:89 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:115 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:121 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:147 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:149 @@ -1525,7 +1639,7 @@ msgstr "Abgelaufen" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 msgid "Expires on {0}" -msgstr ">>>>>>> 4ca18b99 (fix: refactor dates)" +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 msgid "Expires on{0}" @@ -1552,12 +1666,21 @@ msgstr "Felder" msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgstr "Die Datei darf nicht größer als {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB sein" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:154 +msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:152 +#~ msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" +#~ msgstr "" + #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 msgid "Forgot your password?" msgstr "Haben Sie Ihr Passwort vergessen?" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:326 +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241 @@ -1661,6 +1784,10 @@ msgstr "Posteingang Dokumente" msgid "Information" msgstr "Information" +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:132 +msgid "Initials" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:78 msgid "Inserted" msgstr "Eingefügt" @@ -1727,6 +1854,10 @@ msgstr "Eingeladen am" msgid "Invoice" msgstr "Rechnung" +#: 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 "" + #: apps/web/src/app/(profile)/p/[url]/page.tsx:134 msgid "It looks like {0} hasn't added any documents to their profile yet." msgstr "Es sieht so aus, als ob {0} noch keine Dokumente zu ihrem Profil hinzugefügt hat." @@ -1788,6 +1919,10 @@ msgstr "Verlassen" msgid "Leave team" msgstr "Team verlassen" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:45 +msgid "Legality of Electronic Signatures" +msgstr "" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:264 msgid "Light Mode" msgstr "Lichtmodus" @@ -1941,6 +2076,7 @@ msgstr "Monatlich aktive Benutzer: Benutzer, die mindestens ein Dokument erstell msgid "Monthly Active Users: Users that had at least one of their documents completed" msgstr "Monatlich aktive Benutzer: Benutzer, die mindestens eines ihrer Dokumente abgeschlossen haben" +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:123 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:122 msgid "Move" msgstr "Verschieben" @@ -1958,6 +2094,7 @@ msgstr "Vorlage in Team verschieben" msgid "Move to Team" msgstr "In Team verschieben" +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:123 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:122 msgid "Moving..." msgstr "Verschieben..." @@ -2129,6 +2266,8 @@ msgstr "Andernfalls wird das Dokument als Entwurf erstellt." #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:86 #: 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 msgid "Owner" msgstr "Besitzer" @@ -2299,6 +2438,10 @@ msgstr "Bitte geben Sie ein Token von der Authentifizierungs-App oder einen Back msgid "Please provide a token from your authenticator, or a backup code." msgstr "Bitte geben Sie ein Token von Ihrem Authentifizierer oder einen Backup-Code an." +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:169 +msgid "Please review the document before signing." +msgstr "" + #: apps/web/src/components/forms/send-confirmation-email.tsx:64 msgid "Please try again and make sure you enter the correct email address." msgstr "Bitte versuchen Sie es erneut und stellen Sie sicher, dass Sie die korrekte E-Mail-Adresse eingeben." @@ -2381,6 +2524,10 @@ msgstr "Öffentliche Vorlagen sind mit Ihrem öffentlichen Profil verbunden. Än msgid "Read only field" msgstr "Nur-Lese-Feld" +#: apps/web/src/components/general/signing-disclosure.tsx:21 +msgid "Read the full <0>signature disclosure." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 msgid "Ready" msgstr "Bereit" @@ -2508,6 +2655,10 @@ msgstr "Zahlung klären" msgid "Resolve payment" msgstr "Zahlung klären" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:126 +msgid "Retention of Documents" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:168 msgid "Retry" msgstr "Wiederholen" @@ -2575,6 +2726,10 @@ msgstr "Nach Dokumenttitel suchen" msgid "Search by name or email" msgstr "Nach Name oder E-Mail suchen" +#: apps/web/src/components/(dashboard)/document-search/document-search.tsx:42 +msgid "Search documents..." +msgstr "" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:189 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:217 msgid "Secret" @@ -2714,6 +2869,10 @@ msgstr "Unterzeichnen als<0>{0} <1>({1})" msgid "Sign document" msgstr "Dokument unterschreiben" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:128 +msgid "Sign Document" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:59 msgid "Sign field" msgstr "Unterzeichnen-Feld" @@ -2763,6 +2922,7 @@ msgstr "Registrieren mit OIDC" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88 #: 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 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391 @@ -2939,6 +3099,10 @@ msgstr "Erfolg" msgid "Successfully created passkey" msgstr "Passkey erfolgreich erstellt" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:57 +msgid "System Requirements" +msgstr "" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:266 msgid "System Theme" msgstr "Systemthema" @@ -3115,6 +3279,10 @@ msgstr "Text" msgid "Text Color" msgstr "Textfarbe" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:24 +msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." msgstr "Das Konto wurde erfolgreich gelöscht." @@ -3143,471 +3311,479 @@ msgstr "Das Dokument wurde erstellt, konnte aber nicht an die Empfänger versend #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:161 msgid "The document will be hidden from your account" -msgstr "The document will be hidden from your account" +msgstr "" #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 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." +msgstr "" #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:175 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:179 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:203 msgid "The events that will trigger a webhook to be sent to your URL." -msgstr "The events that will trigger a webhook to be sent to your URL." +msgstr "" #: apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx:114 msgid "The ownership of team <0>{0} has been successfully transferred to you." -msgstr "The ownership of team <0>{0} has been successfully transferred to you." +msgstr "" #: apps/web/src/components/partials/not-found.tsx:53 msgid "The page you are looking for was moved, removed, renamed or might never have existed." -msgstr "The page you are looking for was moved, removed, renamed or might never have existed." +msgstr "" #: apps/web/src/components/forms/public-profile-form.tsx:118 msgid "The profile link has been copied to your clipboard" -msgstr "The profile link has been copied to your clipboard" +msgstr "" #: apps/web/src/app/(profile)/p/[url]/not-found.tsx:23 msgid "The profile you are looking for could not be found." -msgstr "The profile you are looking for could not be found." +msgstr "" #: apps/web/src/components/templates/manage-public-template-dialog.tsx:380 msgid "The public description that will be displayed with this template" -msgstr "The public description that will be displayed with this template" +msgstr "" #: apps/web/src/components/templates/manage-public-template-dialog.tsx:358 msgid "The public name for your template" -msgstr "The public name for your template" +msgstr "" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:119 msgid "The recipient has been updated successfully" -msgstr "The recipient has been updated successfully" +msgstr "" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:267 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" +msgstr "" #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:41 msgid "The signing link has been copied to your clipboard." -msgstr "The signing link has been copied to your clipboard." +msgstr "" #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:105 msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." -msgstr "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:45 msgid "The team transfer invitation has been successfully deleted." -msgstr "The team transfer invitation has been successfully deleted." +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:86 msgid "The team transfer request to <0>{0} has expired." -msgstr "The team transfer request to <0>{0} has expired." +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/not-found.tsx:23 msgid "The team you are looking for may have been removed, renamed or may have never existed." -msgstr "The team you are looking for may have been removed, renamed or may have never existed." +msgstr "" #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:49 msgid "The template has been successfully moved to the selected team." -msgstr "The template has been successfully moved to the selected team." +msgstr "" #: apps/web/src/components/templates/manage-public-template-dialog.tsx:443 msgid "The template will be removed from your profile" -msgstr "The template will be removed from your profile" +msgstr "" #: apps/web/src/app/(recipient)/d/[token]/not-found.tsx:23 msgid "The template you are looking for may have been disabled, deleted or may have never existed." -msgstr "The template you are looking for may have been disabled, deleted or may have never existed." +msgstr "" #: apps/web/src/components/forms/token.tsx:106 msgid "The token was copied to your clipboard." -msgstr "The token was copied to your clipboard." +msgstr "" #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:88 msgid "The token was deleted successfully." -msgstr "The token was deleted successfully." +msgstr "" #: apps/web/src/app/(unauthenticated)/reset-password/page.tsx:24 msgid "The token you have used to reset your password is either expired or it never existed. If you have still forgotten your password, please request a new reset link." -msgstr "The token you have used to reset your password is either expired or it never existed. If you have still forgotten your password, please request a new reset link." +msgstr "" #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:124 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:128 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:152 msgid "The URL for Documenso to send webhook events to." -msgstr "The URL for Documenso to send webhook events to." +msgstr "" #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:79 msgid "The webhook has been successfully deleted." -msgstr "The webhook has been successfully deleted." +msgstr "" #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:75 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:81 msgid "The webhook has been updated successfully." -msgstr "The webhook has been updated successfully." +msgstr "" #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:93 msgid "The webhook was successfully created." -msgstr "The webhook was successfully created." +msgstr "" #: apps/web/src/app/(dashboard)/documents/empty-state.tsx:25 msgid "There are no active drafts at the current moment. You can upload a document to start drafting." -msgstr "There are no active drafts at the current moment. You can upload a document to start drafting." +msgstr "" #: apps/web/src/app/(dashboard)/documents/empty-state.tsx:20 msgid "There are no completed documents yet. Documents that you have created or received will appear here once completed." -msgstr "There are no completed documents yet. Documents that you have created or received will appear here once completed." +msgstr "" #: apps/web/src/app/(dashboard)/settings/teams/team-email-usage.tsx:70 msgid "They have permission on your behalf to:" -msgstr "They have permission on your behalf to:" +msgstr "" #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:110 #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:110 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:109 msgid "This action is not reversible. Please be certain." -msgstr "This action is not reversible. Please be certain." +msgstr "" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:81 msgid "This document could not be deleted at this time. Please try again." -msgstr "This document could not be deleted at this time. Please try again." +msgstr "" #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:73 msgid "This document could not be duplicated at this time. Please try again." -msgstr "This document could not be duplicated at this time. Please try again." +msgstr "" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:106 msgid "This document could not be re-sent at this time. Please try again." -msgstr "This document could not be re-sent at this time. Please try again." +msgstr "" #: apps/web/src/app/(signing)/sign/[token]/complete/page.tsx:180 msgid "This document has been cancelled by the owner and is no longer available for others to sign." -msgstr "This document has been cancelled by the owner and is no longer available for others to sign." +msgstr "" #: apps/web/src/app/(signing)/sign/[token]/no-longer-available.tsx:52 msgid "This document has been cancelled by the owner." -msgstr "This document has been cancelled by the owner." +msgstr "" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:219 msgid "This document has been signed by all recipients" -msgstr "This document has been signed by all recipients" +msgstr "" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:222 msgid "This document is currently a draft and has not been sent" -msgstr "This document is currently a draft and has not been sent" +msgstr "" #: 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." +msgstr "" #: apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx:40 msgid "This link is invalid or has expired. Please contact your team to resend a transfer request." -msgstr "This link is invalid or has expired. Please contact your team to resend a transfer request." +msgstr "" #: apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx:37 msgid "This link is invalid or has expired. Please contact your team to resend a verification." -msgstr "This link is invalid or has expired. Please contact your team to resend a verification." +msgstr "" #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:208 msgid "This passkey has already been registered." -msgstr "This passkey has already been registered." +msgstr "" #: apps/web/src/components/forms/signin.tsx:200 msgid "This passkey is not configured for this application. Please login and add one in the user settings." -msgstr "This passkey is not configured for this application. Please login and add one in the user settings." +msgstr "" #: apps/web/src/components/(teams)/dialogs/create-team-checkout-dialog.tsx:148 msgid "This price includes minimum 5 seats." -msgstr "This price includes minimum 5 seats." +msgstr "" #: apps/web/src/components/forms/signin.tsx:202 msgid "This session has expired. Please try again." -msgstr "This session has expired. Please try again." +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:195 msgid "This team, and any associated data excluding billing invoices will be permanently deleted." -msgstr "This team, and any associated data excluding billing invoices will be permanently deleted." +msgstr "" #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:51 msgid "This template could not be deleted at this time. Please try again." -msgstr "This template could not be deleted at this time. Please try again." +msgstr "" #: apps/web/src/app/(unauthenticated)/team/decline/[token]/page.tsx:43 msgid "This token is invalid or has expired. No action is needed." -msgstr "This token is invalid or has expired. No action is needed." +msgstr "" #: apps/web/src/app/(unauthenticated)/team/invite/[token]/page.tsx:43 msgid "This token is invalid or has expired. Please contact your team for a new invitation." -msgstr "This token is invalid or has expired. Please contact your team for a new invitation." +msgstr "" #: apps/web/src/components/(teams)/dialogs/create-team-dialog.tsx:98 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:87 msgid "This URL is already in use." -msgstr "This URL is already in use." +msgstr "" #: apps/web/src/components/forms/v2/signup.tsx:145 msgid "This username has already been taken" -msgstr "This username has already been taken" +msgstr "" #: apps/web/src/components/forms/public-profile-claim-dialog.tsx:98 msgid "This username is already taken" -msgstr "This username is already taken" +msgstr "" #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:77 msgid "Time" -msgstr "Time" +msgstr "" #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:97 msgid "Time zone" -msgstr "Time zone" +msgstr "" #: 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/data-table-templates.tsx:61 msgid "Title" -msgstr "Title" +msgstr "" #: apps/web/src/app/(unauthenticated)/team/invite/[token]/page.tsx:106 msgid "To accept this invitation you must create an account." -msgstr "To accept this invitation you must create an account." +msgstr "" #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:125 msgid "To change the email you must remove and add a new email address." -msgstr "To change the email you must remove and add a new email address." +msgstr "" #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:117 msgid "To confirm, please enter the accounts email address <0/>({0})." -msgstr "To confirm, please enter the accounts email address <0/>({0})." +msgstr "" #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:117 msgid "To confirm, please enter the reason" -msgstr "To confirm, please enter the reason" +msgstr "" #: apps/web/src/app/(unauthenticated)/team/decline/[token]/page.tsx:101 msgid "To decline this invitation you must create an account." -msgstr "To decline this invitation you must create an account." +msgstr "" #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:197 msgid "To enable two-factor authentication, scan the following QR code using your authenticator app." -msgstr "To enable two-factor authentication, scan the following QR code using your authenticator app." +msgstr "" #: apps/web/src/app/(unauthenticated)/unverified-account/page.tsx:23 msgid "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox." -msgstr "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox." +msgstr "" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:54 msgid "To mark this document as viewed, you need to be logged in as <0>{0}" -msgstr "To mark this document as viewed, you need to be logged in as <0>{0}" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:60 +msgid "To use our electronic signature service, you must have access to:" +msgstr "" #: apps/web/src/app/embed/authenticate.tsx:21 msgid "To view this document you need to be signed into your account, please sign in to continue." -msgstr "Um dieses Dokument anzuzeigen, müssen Sie in Ihr Konto eingeloggt sein. Bitte melden Sie sich an, um fortzufahren." +msgstr "" #: apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx:178 msgid "Toggle the switch to hide your profile from the public." -msgstr "Toggle the switch to hide your profile from the public." +msgstr "" #: apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx:190 msgid "Toggle the switch to show your profile to the public." -msgstr "Toggle the switch to show your profile to the public." +msgstr "" #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:236 msgid "Token" -msgstr "Token" +msgstr "" #: apps/web/src/components/forms/token.tsx:105 msgid "Token copied to clipboard" -msgstr "Token copied to clipboard" +msgstr "" #: apps/web/src/components/forms/token.tsx:126 msgid "Token created" -msgstr "Token created" +msgstr "" #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:87 msgid "Token deleted" -msgstr "Token deleted" +msgstr "" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:114 msgid "Token doesn't have an expiration date" -msgstr "Token doesn't have an expiration date" +msgstr "" #: apps/web/src/components/forms/token.tsx:193 msgid "Token expiration date" -msgstr "Token expiration date" +msgstr "" #: apps/web/src/components/forms/token.tsx:165 msgid "Token name" -msgstr "Token name" +msgstr "" #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:65 msgid "Total Documents" -msgstr "Total Documents" +msgstr "" #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:108 msgid "Total Recipients" -msgstr "Total Recipients" +msgstr "" #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:150 msgid "Total Signers that Signed Up" -msgstr "Total Signers that Signed Up" +msgstr "" #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:64 msgid "Total Users" -msgstr "Total Users" +msgstr "" + +#: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:76 +msgid "transfer {teamName}" +msgstr "" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:160 msgid "Transfer ownership of this team to a selected team member." -msgstr "Transfer ownership of this team to a selected team member." +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:169 #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:147 #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:156 msgid "Transfer team" -msgstr "Transfer team" +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:173 msgid "Transfer the ownership of the team to another team member." -msgstr "Transfer the ownership of the team to another team member." +msgstr "" #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:163 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:167 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:191 msgid "Triggers" -msgstr "Triggers" +msgstr "" #: apps/web/src/app/(dashboard)/settings/security/page.tsx:52 msgid "Two factor authentication" -msgstr "Two factor authentication" +msgstr "" #: apps/web/src/app/(dashboard)/settings/security/page.tsx:88 msgid "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app." -msgstr "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app." +msgstr "" #: apps/web/src/components/forms/signin.tsx:448 msgid "Two-Factor Authentication" -msgstr "Two-Factor Authentication" +msgstr "" #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:90 msgid "Two-factor authentication disabled" -msgstr "Two-factor authentication disabled" +msgstr "" #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:94 msgid "Two-factor authentication enabled" -msgstr "Two-factor authentication enabled" +msgstr "" #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:92 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." +msgstr "" #: 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" -msgstr "Type" +msgstr "" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:184 msgid "Type 'delete' to confirm" -msgstr "Type 'delete' to confirm" +msgstr "" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:186 msgid "Type a command or search..." -msgstr "Type a command or search..." +msgstr "" #: apps/web/src/app/(unauthenticated)/verify-email/page.tsx:26 msgid "Uh oh! Looks like you're missing a token" -msgstr "Uh oh! Looks like you're missing a token" +msgstr "" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:303 msgid "Unable to change the language at this time. Please try again later." -msgstr "Derzeit kann die Sprache nicht geändert werden. Bitte versuchen Sie es später erneut." +msgstr "" #: apps/web/src/components/forms/2fa/recovery-code-list.tsx:31 msgid "Unable to copy recovery code" -msgstr "Unable to copy recovery code" +msgstr "" #: apps/web/src/components/forms/token.tsx:110 msgid "Unable to copy token" -msgstr "Unable to copy token" +msgstr "" #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:105 msgid "Unable to create direct template access. Please try again later." -msgstr "Unable to create direct template access. Please try again later." +msgstr "" #: apps/web/src/app/(dashboard)/settings/teams/decline-team-invitation-button.tsx:33 msgid "Unable to decline this team invitation at this time." -msgstr "Unable to decline this team invitation at this time." +msgstr "" #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:86 msgid "Unable to delete invitation. Please try again." -msgstr "Unable to delete invitation. Please try again." +msgstr "" #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:94 msgid "Unable to delete team" -msgstr "Unable to delete team" +msgstr "" #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:103 msgid "Unable to disable two-factor authentication" -msgstr "Unable to disable two-factor authentication" +msgstr "" #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:33 msgid "Unable to join this team at this time." -msgstr "Unable to join this team at this time." +msgstr "" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:72 #: apps/web/src/components/document/document-history-sheet.tsx:127 msgid "Unable to load document history" -msgstr "Unable to load document history" +msgstr "" #: 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" +msgstr "" #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:84 msgid "Unable to remove email verification at this time. Please try again." -msgstr "Unable to remove email verification at this time. Please try again." +msgstr "" #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:65 msgid "Unable to remove team email at this time. Please try again." -msgstr "Unable to remove team email at this time. Please try again." +msgstr "" #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:69 msgid "Unable to resend invitation. Please try again." -msgstr "Unable to resend invitation. Please try again." +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:40 msgid "Unable to resend verification at this time. Please try again." -msgstr "Unable to resend verification at this time. Please try again." +msgstr "" #: apps/web/src/app/(unauthenticated)/reset-password/page.tsx:20 msgid "Unable to reset password" -msgstr "Unable to reset password" +msgstr "" #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:68 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:101 msgid "Unable to setup two-factor authentication" -msgstr "Unable to setup two-factor authentication" +msgstr "" #: apps/web/src/components/forms/signin.tsx:247 #: apps/web/src/components/forms/signin.tsx:255 msgid "Unable to sign in" -msgstr "Unable to sign in" +msgstr "" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:166 #: apps/web/src/app/(teams)/t/[teamUrl]/error.tsx:27 msgid "Unauthorized" -msgstr "Unauthorized" +msgstr "" #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:116 msgid "Uncompleted" -msgstr "Uncompleted" +msgstr "" #: apps/web/src/app/(teams)/t/[teamUrl]/error.tsx:23 msgid "Unknown error" -msgstr "Unknown error" +msgstr "" #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:79 msgid "Unpaid" -msgstr "Unpaid" +msgstr "" #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:181 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:162 @@ -3616,35 +3792,35 @@ msgstr "Unpaid" #: apps/web/src/components/forms/public-profile-form.tsx:279 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:428 msgid "Update" -msgstr "Update" +msgstr "" #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:211 msgid "Update Banner" -msgstr "Update Banner" +msgstr "" #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:118 msgid "Update passkey" -msgstr "Update passkey" +msgstr "" #: apps/web/src/components/forms/password.tsx:152 msgid "Update password" -msgstr "Update password" +msgstr "" #: apps/web/src/components/forms/profile.tsx:150 msgid "Update profile" -msgstr "Update profile" +msgstr "" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:180 msgid "Update Recipient" -msgstr "Update Recipient" +msgstr "" #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:146 msgid "Update role" -msgstr "Update role" +msgstr "" #: apps/web/src/components/(teams)/forms/update-team-form.tsx:176 msgid "Update team" -msgstr "Update team" +msgstr "" #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:113 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:121 @@ -3673,6 +3849,10 @@ msgstr "Passwort wird aktualisiert..." msgid "Updating profile..." msgstr "Profil wird aktualisiert..." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:115 +msgid "Updating Your Information" +msgstr "" + #: apps/web/src/components/forms/avatar-image.tsx:182 msgid "Upload Avatar" msgstr "Avatar hochladen" @@ -3784,6 +3964,10 @@ msgstr "Sehen Sie sich alle Sicherheitsaktivitäten in Ihrem Konto an." msgid "View Codes" msgstr "Codes ansehen" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:127 +msgid "View Document" +msgstr "" + #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:150 msgid "View documents associated with this email" msgstr "Dokumente ansehen, die mit dieser E-Mail verknüpft sind" @@ -4061,6 +4245,10 @@ msgstr "Webhooks" msgid "Weekly" msgstr "Wöchentlich" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:21 +msgid "Welcome" +msgstr "" + #: apps/web/src/app/(unauthenticated)/signin/page.tsx:33 msgid "Welcome back, we are lucky to have you." msgstr "Willkommen zurück, wir freuen uns, Sie zu haben." @@ -4073,6 +4261,10 @@ msgstr "Hast du stattdessen versucht, dieses Dokument zu bearbeiten?" msgid "When you click continue, you will be prompted to add the first available authenticator on your system." msgstr "Wenn Sie auf Fortfahren klicken, werden Sie aufgefordert, den ersten verfügbaren Authenticator auf Ihrem System hinzuzufügen." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:36 +msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." +msgstr "" + #: apps/web/src/app/(profile)/p/[url]/page.tsx:139 msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." msgstr "Während Sie darauf warten, können Sie Ihr eigenes Documenso-Konto erstellen und sofort mit der Dokumentenunterzeichnung beginnen." @@ -4081,6 +4273,10 @@ msgstr "Während Sie darauf warten, können Sie Ihr eigenes Documenso-Konto erst msgid "Who do you want to remind?" msgstr "Wen möchten Sie erinnern?" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:101 +msgid "Withdrawing Consent" +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:223 msgid "Write about the team" msgstr "Schreiben Sie über das Team" @@ -4249,6 +4445,14 @@ msgstr "Sie haben diesen Benutzer erfolgreich aus dem Team entfernt." msgid "You have successfully revoked access." msgstr "Sie haben den Zugriff erfolgreich widerrufen." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:104 +msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:102 +#~ msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +#~ msgstr "" + #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." msgstr "Sie haben {teamMemberName} aktualisiert." diff --git a/packages/lib/translations/en/common.po b/packages/lib/translations/en/common.po index f5e621d35..e2ec7c7c2 100644 --- a/packages/lib/translations/en/common.po +++ b/packages/lib/translations/en/common.po @@ -110,8 +110,8 @@ msgstr "Admin" msgid "Advanced Options" msgstr "Advanced Options" -#: packages/ui/primitives/document-flow/add-fields.tsx:570 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:402 +#: packages/ui/primitives/document-flow/add-fields.tsx:573 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:406 msgid "Advanced settings" msgstr "Advanced settings" @@ -119,6 +119,10 @@ msgstr "Advanced settings" msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." msgstr "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." +#: packages/ui/primitives/pdf-viewer.tsx:167 +msgid "An error occurred while loading the document." +msgstr "An error occurred while loading the document." + #: packages/lib/constants/recipient-roles.ts:8 msgid "Approve" msgstr "Approve" @@ -131,6 +135,10 @@ msgstr "Approved" msgid "Approver" msgstr "Approver" +#: packages/lib/constants/recipient-roles.ts:44 +msgid "Approvers" +msgstr "Approvers" + #: packages/lib/constants/recipient-roles.ts:10 msgid "Approving" msgstr "Approving" @@ -165,14 +173,17 @@ msgstr "CC" msgid "CC'd" msgstr "CC'd" +#: packages/lib/constants/recipient-roles.ts:51 +msgid "Ccers" +msgstr "Ccers" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86 msgid "Character Limit" msgstr "Character Limit" -#: packages/ui/primitives/document-flow/add-fields.tsx:1026 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:788 -msgid "Checkbox" -msgstr "Checkbox" +#: packages/ui/primitives/template-flow/add-template-fields.tsx:794 +#~ msgid "Checkbox" +#~ msgstr "Checkbox" #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197 msgid "Checkbox values" @@ -198,8 +209,8 @@ msgstr "Close" msgid "Configure Direct Recipient" msgstr "Configure Direct Recipient" -#: packages/ui/primitives/document-flow/add-fields.tsx:571 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:403 +#: packages/ui/primitives/document-flow/add-fields.tsx:574 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:407 msgid "Configure the {0} field" msgstr "Configure the {0} field" @@ -211,12 +222,17 @@ msgstr "Continue" msgid "Copied to clipboard" msgstr "Copied to clipboard" +#: packages/ui/components/document/document-share-button.tsx:194 +msgid "Copy Link" +msgstr "Copy Link" + #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" msgstr "Custom Text" -#: packages/ui/primitives/document-flow/add-fields.tsx:922 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:684 +#: packages/ui/primitives/document-flow/add-fields.tsx:927 +#: packages/ui/primitives/document-flow/types.ts:53 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:690 msgid "Date" msgstr "Date" @@ -247,8 +263,8 @@ msgstr "Download" msgid "Drag & drop your PDF here." msgstr "Drag & drop your PDF here." -#: packages/ui/primitives/document-flow/add-fields.tsx:1052 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:814 +#: packages/ui/primitives/document-flow/add-fields.tsx:1058 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:820 msgid "Dropdown" msgstr "Dropdown" @@ -256,20 +272,26 @@ msgstr "Dropdown" msgid "Dropdown options" msgstr "Dropdown options" -#: packages/ui/primitives/document-flow/add-fields.tsx:870 +#: packages/ui/primitives/document-flow/add-fields.tsx:875 #: packages/ui/primitives/document-flow/add-signature.tsx:272 #: packages/ui/primitives/document-flow/add-signers.tsx:500 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:632 +#: packages/ui/primitives/document-flow/add-signers.tsx:507 +#: packages/ui/primitives/document-flow/types.ts:54 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:638 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:463 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:470 msgid "Email" msgstr "Email" +#: packages/ui/primitives/document-flow/add-signature.types.ts:7 +msgid "Email is required" +msgstr "Email is required" + #: packages/ui/primitives/template-flow/add-template-settings.tsx:184 msgid "Email Options" msgstr "Email Options" -#: packages/ui/primitives/document-flow/add-fields.tsx:1117 +#: packages/ui/primitives/document-flow/add-fields.tsx:1123 msgid "Empty field" msgstr "Empty field" @@ -282,7 +304,7 @@ msgstr "Enable Direct Link Signing" msgid "Enable signing order" msgstr "Enable signing order" -#: packages/ui/primitives/document-flow/add-fields.tsx:790 +#: packages/ui/primitives/document-flow/add-fields.tsx:795 msgid "Enable Typed Signatures" msgstr "Enable Typed Signatures" @@ -291,6 +313,7 @@ msgid "Enter password" msgstr "Enter password" #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257 +#: packages/ui/primitives/pdf-viewer.tsx:166 msgid "Error" msgstr "Error" @@ -337,6 +360,10 @@ msgstr "Field placeholder" msgid "Font Size" msgstr "Font Size" +#: packages/ui/primitives/document-flow/types.ts:50 +msgid "Free Signature" +msgstr "Free Signature" + #: packages/ui/components/document/document-global-auth-action-select.tsx:64 msgid "Global recipient action authentication" msgstr "Global recipient action authentication" @@ -349,19 +376,19 @@ msgstr "Go Back" msgid "Green" msgstr "Green" -#: packages/lib/constants/recipient-roles.ts:72 +#: packages/lib/constants/recipient-roles.ts:76 msgid "I am a signer of this document" msgstr "I am a signer of this document" -#: packages/lib/constants/recipient-roles.ts:75 +#: packages/lib/constants/recipient-roles.ts:79 msgid "I am a viewer of this document" msgstr "I am a viewer of this document" -#: packages/lib/constants/recipient-roles.ts:73 +#: packages/lib/constants/recipient-roles.ts:77 msgid "I am an approver of this document" msgstr "I am an approver of this document" -#: packages/lib/constants/recipient-roles.ts:74 +#: packages/lib/constants/recipient-roles.ts:78 msgid "I am required to receive a copy of this document" msgstr "I am required to receive a copy of this document" @@ -370,12 +397,29 @@ msgstr "I am required to receive a copy of this document" msgid "Inherit authentication method" msgstr "Inherit authentication method" +#: packages/ui/primitives/document-flow/types.ts:51 +msgid "Initials" +msgstr "Initials" + +#: packages/ui/primitives/document-flow/add-signers.types.ts:17 +msgid "Invalid email" +msgstr "Invalid email" + +#: packages/ui/primitives/document-flow/add-signature.types.ts:8 +msgid "Invalid email address" +msgstr "Invalid email address" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48 msgid "Label" msgstr "Label" +#: packages/ui/primitives/lazy-pdf-viewer.tsx:15 +#: packages/ui/primitives/pdf-viewer.tsx:44 +msgid "Loading document..." +msgstr "Loading document..." + #: packages/lib/constants/teams.ts:11 msgid "Manager" msgstr "Manager" @@ -397,11 +441,12 @@ msgstr "Message <0>(Optional)" msgid "Min" msgstr "Min" -#: packages/ui/primitives/document-flow/add-fields.tsx:896 +#: packages/ui/primitives/document-flow/add-fields.tsx:901 #: packages/ui/primitives/document-flow/add-signature.tsx:298 #: packages/ui/primitives/document-flow/add-signers.tsx:535 #: packages/ui/primitives/document-flow/add-signers.tsx:541 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:658 +#: packages/ui/primitives/document-flow/types.ts:55 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:664 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:498 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:504 msgid "Name" @@ -419,13 +464,13 @@ msgstr "Needs to sign" msgid "Needs to view" msgstr "Needs to view" -#: packages/ui/primitives/document-flow/add-fields.tsx:680 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:497 +#: packages/ui/primitives/document-flow/add-fields.tsx:686 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:504 msgid "No recipient matching this description was found." msgstr "No recipient matching this description was found." -#: packages/ui/primitives/document-flow/add-fields.tsx:696 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:513 +#: packages/ui/primitives/document-flow/add-fields.tsx:701 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:519 msgid "No recipients with this role" msgstr "No recipients with this role" @@ -449,8 +494,9 @@ msgstr "No signature field found" msgid "No value found." msgstr "No value found." -#: packages/ui/primitives/document-flow/add-fields.tsx:974 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:736 +#: packages/ui/primitives/document-flow/add-fields.tsx:979 +#: packages/ui/primitives/document-flow/types.ts:56 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:742 msgid "Number" msgstr "Number" @@ -470,6 +516,10 @@ msgstr "Once your template is set up, share the link anywhere you want. The pers msgid "Page {0} of {1}" msgstr "Page {0} of {1}" +#: packages/ui/primitives/pdf-viewer.tsx:259 +msgid "Page {0} of {numPages}" +msgstr "Page {0} of {numPages}" + #: packages/ui/primitives/document-password-dialog.tsx:62 msgid "Password Required" msgstr "Password Required" @@ -484,8 +534,12 @@ msgstr "Pick a number" msgid "Placeholder" msgstr "Placeholder" -#: packages/ui/primitives/document-flow/add-fields.tsx:1000 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:762 +#: packages/ui/primitives/pdf-viewer.tsx:223 +#: packages/ui/primitives/pdf-viewer.tsx:238 +msgid "Please try again or contact our support." +msgstr "Please try again or contact our support." + +#: packages/ui/primitives/template-flow/add-template-fields.tsx:768 msgid "Radio" msgstr "Radio" @@ -520,7 +574,7 @@ msgstr "Red" msgid "Redirect URL" msgstr "Redirect URL" -#: packages/ui/primitives/document-flow/add-fields.tsx:1104 +#: packages/ui/primitives/document-flow/add-fields.tsx:1110 msgid "Remove" msgstr "Remove" @@ -532,6 +586,10 @@ msgstr "Remove" msgid "Required field" msgstr "Required field" +#: packages/ui/components/document/document-share-button.tsx:147 +msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" +msgstr "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" + #: packages/ui/primitives/data-table-pagination.tsx:55 msgid "Rows per page" msgstr "Rows per page" @@ -540,7 +598,7 @@ msgstr "Rows per page" msgid "Save" msgstr "Save" -#: packages/ui/primitives/template-flow/add-template-fields.tsx:848 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:854 msgid "Save Template" msgstr "Save Template" @@ -582,6 +640,10 @@ msgstr "Share Signature Card" msgid "Share the Link" msgstr "Share the Link" +#: packages/ui/components/document/document-share-button.tsx:143 +msgid "Share your signing experience!" +msgstr "Share your signing experience!" + #: packages/ui/primitives/document-flow/add-signers.tsx:680 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:655 msgid "Show advanced settings" @@ -591,10 +653,11 @@ msgstr "Show advanced settings" msgid "Sign" msgstr "Sign" -#: packages/ui/primitives/document-flow/add-fields.tsx:818 +#: packages/ui/primitives/document-flow/add-fields.tsx:823 #: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/field-icon.tsx:52 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:580 +#: packages/ui/primitives/document-flow/types.ts:49 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:586 msgid "Signature" msgstr "Signature" @@ -606,6 +669,14 @@ msgstr "Signed" msgid "Signer" msgstr "Signer" +#: packages/lib/constants/recipient-roles.ts:58 +msgid "Signers" +msgstr "Signers" + +#: packages/ui/primitives/document-flow/add-signers.types.ts:36 +msgid "Signers must have unique emails" +msgstr "Signers must have unique emails" + #: packages/lib/constants/recipient-roles.ts:22 msgid "Signing" msgstr "Signing" @@ -618,6 +689,11 @@ msgstr "Some signers have not been assigned a signature field. Please assign at msgid "Something went wrong" msgstr "Something went wrong" +#: packages/ui/primitives/pdf-viewer.tsx:220 +#: packages/ui/primitives/pdf-viewer.tsx:235 +msgid "Something went wrong while loading the document." +msgstr "Something went wrong while loading the document." + #: packages/ui/primitives/data-table.tsx:136 msgid "Something went wrong." msgstr "Something went wrong." @@ -639,8 +715,9 @@ msgstr "Submit" msgid "Template title" msgstr "Template title" -#: packages/ui/primitives/document-flow/add-fields.tsx:948 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:710 +#: packages/ui/primitives/document-flow/add-fields.tsx:953 +#: packages/ui/primitives/document-flow/types.ts:52 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:716 msgid "Text" msgstr "Text" @@ -700,7 +777,7 @@ msgstr "The signer's name" msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step." msgstr "This can be overriden by setting the authentication requirements directly on each recipient in the next step." -#: packages/ui/primitives/document-flow/add-fields.tsx:752 +#: packages/ui/primitives/document-flow/add-fields.tsx:757 msgid "This document has already been sent to this recipient. You can no longer edit this recipient." msgstr "This document has already been sent to this recipient. You can no longer edit this recipient." @@ -712,7 +789,7 @@ msgstr "This document is password protected. Please enter the password to view t msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." msgstr "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." -#: packages/ui/primitives/document-flow/add-fields.tsx:1084 +#: packages/ui/primitives/document-flow/add-fields.tsx:1090 msgid "This recipient can no longer be modified as they have signed a field, or completed the document." msgstr "This recipient can no longer be modified as they have signed a field, or completed the document." @@ -733,8 +810,8 @@ msgstr "Time Zone" msgid "Title" msgstr "Title" -#: packages/ui/primitives/document-flow/add-fields.tsx:1067 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:828 +#: packages/ui/primitives/document-flow/add-fields.tsx:1073 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:834 msgid "To proceed further, please set at least one value for the {0} field." msgstr "To proceed further, please set at least one value for the {0} field." @@ -776,6 +853,10 @@ msgstr "Viewed" msgid "Viewer" msgstr "Viewer" +#: packages/lib/constants/recipient-roles.ts:65 +msgid "Viewers" +msgstr "Viewers" + #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" msgstr "Viewing" diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index 265235238..23f7bef13 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -112,6 +112,18 @@ msgstr "<0>\"{0}\"is no longer available to sign" msgid "<0>Sender: All" msgstr "<0>Sender: All" +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:5 +msgid "1 month" +msgstr "1 month" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:8 +msgid "12 months" +msgstr "12 months" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:6 +msgid "3 months" +msgstr "3 months" + #: apps/web/src/components/partials/not-found.tsx:45 msgid "404 Page not found" msgstr "404 Page not found" @@ -128,14 +140,30 @@ msgstr "404 Team not found" msgid "404 Template not found" msgstr "404 Template not found" +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:7 +msgid "6 months" +msgstr "6 months" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:4 +msgid "7 days" +msgstr "7 days" + #: apps/web/src/components/forms/send-confirmation-email.tsx:55 msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." msgstr "A confirmation email has been sent, and it should arrive in your inbox shortly." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:70 +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 msgid "A draft document will be created" msgstr "A draft document will be created" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:73 +msgid "A means to print or download documents for your records" +msgstr "A means to print or download documents for your records" + #: apps/web/src/components/forms/token.tsx:127 msgid "A new token was created successfully." msgstr "A new token was created successfully." @@ -158,6 +186,10 @@ msgstr "A secret that will be sent to your URL so you can verify that the reques msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." msgstr "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:64 +msgid "A stable internet connection" +msgstr "A stable internet connection" + #: apps/web/src/components/forms/public-profile-form.tsx:198 msgid "A unique URL to access your profile" msgstr "A unique URL to access your profile" @@ -175,6 +207,10 @@ msgstr "A verification email will be sent to the provided email." msgid "Accept" msgstr "Accept" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:33 +msgid "Acceptance and Consent" +msgstr "Acceptance and Consent" + #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:26 msgid "Accepted team invitation" msgstr "Accepted team invitation" @@ -184,6 +220,10 @@ msgstr "Accepted team invitation" msgid "Account deleted" msgstr "Account deleted" +#: 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 @@ -290,6 +330,10 @@ msgstr "Admin Actions" msgid "Admin panel" msgstr "Admin panel" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:129 +msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." +msgstr "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." + #: apps/web/src/components/formatter/document-status.tsx:46 msgid "All" msgstr "All" @@ -302,6 +346,10 @@ msgstr "All documents" msgid "All documents have been processed. Any new documents that are sent or received will show here." msgstr "All documents have been processed. Any new documents that are sent or received will show here." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:81 +msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." +msgstr "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." + #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:145 msgid "All inserted signatures will be voided" msgstr "All inserted signatures will be voided" @@ -330,6 +378,14 @@ msgstr "Already have an account? <0>Sign in instead" msgid "Amount" msgstr "Amount" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:48 +msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." +msgstr "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:67 +msgid "An email account" +msgstr "An email account" + #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:262 msgid "An email containing an invitation will be sent to each member." msgstr "An email containing an invitation will be sent to each member." @@ -402,6 +458,10 @@ msgstr "An error occurred while moving the document." msgid "An error occurred while moving the template." msgstr "An error occurred while moving the template." +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:116 +msgid "An error occurred while removing the field." +msgstr "An error occurred while removing the field." + #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:152 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:126 #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:137 @@ -429,6 +489,7 @@ msgstr "An error occurred while sending your confirmation email" #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:100 #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:106 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:84 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:90 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:150 #: apps/web/src/app/(signing)/sign/[token]/radio-field.tsx:102 @@ -526,6 +587,10 @@ msgstr "App Version" msgid "Approve" msgstr "Approve" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:129 +msgid "Approve Document" +msgstr "Approve Document" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 msgid "Approved" msgstr "Approved" @@ -583,7 +648,7 @@ msgstr "Awaiting email confirmation" msgid "Back" msgstr "Back" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:109 +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:164 msgid "Back to Documents" msgstr "Back to Documents" @@ -633,9 +698,22 @@ msgstr "By deleting this document, the following will occur:" msgid "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in." msgstr "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:142 +msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." +msgstr "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." + +#: apps/web/src/components/general/signing-disclosure.tsx:14 +msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." +msgstr "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:92 +msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." +msgstr "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." + #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:186 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:190 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:108 +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:120 #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:248 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:157 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:198 @@ -649,6 +727,7 @@ msgstr "By enabling 2FA, you will be required to enter a code from your authenti #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:189 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:151 +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:220 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:215 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:327 #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:113 @@ -827,6 +906,14 @@ msgstr "Confirm email" msgid "Confirmation email sent" msgstr "Confirmation email sent" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:89 +msgid "Consent to Electronic Transactions" +msgstr "Consent to Electronic Transactions" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:151 +msgid "Contact Information" +msgstr "Contact Information" + #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 msgid "Content" msgstr "Content" @@ -1008,6 +1095,10 @@ msgstr "Decline" msgid "Declined team invitation" msgstr "Declined team invitation" +#: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:90 +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/delete-document-dialog.tsx:200 @@ -1026,6 +1117,15 @@ msgstr "Declined team invitation" msgid "Delete" msgstr "Delete" +#: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:56 +#: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:54 +msgid "delete {0}" +msgstr "delete {0}" + +#: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:50 +msgid "delete {teamName}" +msgstr "delete {teamName}" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:137 msgid "Delete account" msgstr "Delete account" @@ -1373,6 +1473,14 @@ msgstr "Edit" msgid "Edit webhook" msgstr "Edit webhook" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:78 +msgid "Electronic Delivery of Documents" +msgstr "Electronic Delivery of Documents" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:17 +msgid "Electronic Signature Disclosure" +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 @@ -1401,6 +1509,10 @@ msgstr "Email address" msgid "Email Address" msgstr "Email Address" +#: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:80 +msgid "Email cannot already exist in the template" +msgstr "Email cannot already exist in the template" + #: apps/web/src/app/(unauthenticated)/verify-email/[token]/client.tsx:36 msgid "Email Confirmed!" msgstr "Email Confirmed!" @@ -1487,6 +1599,8 @@ msgstr "Enter your text here" #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:136 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:83 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:109 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:89 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:115 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:121 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:147 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:149 @@ -1547,12 +1661,21 @@ msgstr "Fields" msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgstr "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:154 +msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" +msgstr "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:152 +#~ msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" +#~ msgstr "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" + #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 msgid "Forgot your password?" msgstr "Forgot your password?" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:326 +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241 @@ -1656,6 +1779,10 @@ msgstr "Inbox documents" msgid "Information" msgstr "Information" +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:132 +msgid "Initials" +msgstr "Initials" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:78 msgid "Inserted" msgstr "Inserted" @@ -1722,6 +1849,10 @@ msgstr "Invited At" msgid "Invoice" msgstr "Invoice" +#: 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." + #: apps/web/src/app/(profile)/p/[url]/page.tsx:134 msgid "It looks like {0} hasn't added any documents to their profile yet." msgstr "It looks like {0} hasn't added any documents to their profile yet." @@ -1783,6 +1914,10 @@ msgstr "Leave" msgid "Leave team" msgstr "Leave team" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:45 +msgid "Legality of Electronic Signatures" +msgstr "Legality of Electronic Signatures" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:264 msgid "Light Mode" msgstr "Light Mode" @@ -1936,6 +2071,7 @@ msgstr "Monthly Active Users: Users that created at least one Document" msgid "Monthly Active Users: Users that had at least one of their documents completed" msgstr "Monthly Active Users: Users that had at least one of their documents completed" +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:123 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:122 msgid "Move" msgstr "Move" @@ -1953,6 +2089,7 @@ msgstr "Move Template to Team" msgid "Move to Team" msgstr "Move to Team" +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:123 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:122 msgid "Moving..." msgstr "Moving..." @@ -2124,6 +2261,8 @@ msgstr "Otherwise, the document will be created as a draft." #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:86 #: 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 msgid "Owner" msgstr "Owner" @@ -2294,6 +2433,10 @@ msgstr "Please provide a token from the authenticator, or a backup code. If you msgid "Please provide a token from your authenticator, or a backup code." msgstr "Please provide a token from your authenticator, or a backup code." +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:169 +msgid "Please review the document before signing." +msgstr "Please review the document before signing." + #: apps/web/src/components/forms/send-confirmation-email.tsx:64 msgid "Please try again and make sure you enter the correct email address." msgstr "Please try again and make sure you enter the correct email address." @@ -2376,6 +2519,10 @@ msgstr "Public templates are connected to your public profile. Any modifications msgid "Read only field" msgstr "Read only field" +#: apps/web/src/components/general/signing-disclosure.tsx:21 +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 msgid "Ready" msgstr "Ready" @@ -2503,6 +2650,10 @@ msgstr "Resolve" msgid "Resolve payment" msgstr "Resolve payment" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:126 +msgid "Retention of Documents" +msgstr "Retention of Documents" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:168 msgid "Retry" msgstr "Retry" @@ -2570,6 +2721,10 @@ msgstr "Search by document title" msgid "Search by name or email" msgstr "Search by name or email" +#: apps/web/src/components/(dashboard)/document-search/document-search.tsx:42 +msgid "Search documents..." +msgstr "Search documents..." + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:189 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:217 msgid "Secret" @@ -2709,6 +2864,10 @@ msgstr "Sign as<0>{0} <1>({1})" msgid "Sign document" msgstr "Sign document" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:128 +msgid "Sign Document" +msgstr "Sign Document" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:59 msgid "Sign field" msgstr "Sign field" @@ -2758,6 +2917,7 @@ msgstr "Sign Up with OIDC" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88 #: 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 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391 @@ -2934,6 +3094,10 @@ msgstr "Success" msgid "Successfully created passkey" msgstr "Successfully created passkey" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:57 +msgid "System Requirements" +msgstr "System Requirements" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:266 msgid "System Theme" msgstr "System Theme" @@ -3110,6 +3274,10 @@ msgstr "Text" msgid "Text Color" msgstr "Text Color" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:24 +msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." +msgstr "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." msgstr "The account has been deleted successfully." @@ -3394,6 +3562,10 @@ msgstr "To gain access to your account, please confirm your email address by cli msgid "To mark this document as viewed, you need to be logged in as <0>{0}" msgstr "To mark this document as viewed, you need to be logged in as <0>{0}" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:60 +msgid "To use our electronic signature service, you must have access to:" +msgstr "To use our electronic signature service, you must have access to:" + #: apps/web/src/app/embed/authenticate.tsx:21 msgid "To view this document you need to be signed into your account, please sign in to continue." msgstr "To view this document you need to be signed into your account, please sign in to continue." @@ -3451,6 +3623,10 @@ msgstr "Total Signers that Signed Up" msgid "Total Users" msgstr "Total Users" +#: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:76 +msgid "transfer {teamName}" +msgstr "transfer {teamName}" + #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:160 msgid "Transfer ownership of this team to a selected team member." msgstr "Transfer ownership of this team to a selected team member." @@ -3668,6 +3844,10 @@ msgstr "Updating password..." msgid "Updating profile..." msgstr "Updating profile..." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:115 +msgid "Updating Your Information" +msgstr "Updating Your Information" + #: apps/web/src/components/forms/avatar-image.tsx:182 msgid "Upload Avatar" msgstr "Upload Avatar" @@ -3779,6 +3959,10 @@ msgstr "View all security activity related to your account." msgid "View Codes" msgstr "View Codes" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:127 +msgid "View Document" +msgstr "View Document" + #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:150 msgid "View documents associated with this email" msgstr "View documents associated with this email" @@ -4056,6 +4240,10 @@ msgstr "Webhooks" msgid "Weekly" msgstr "Weekly" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:21 +msgid "Welcome" +msgstr "Welcome" + #: apps/web/src/app/(unauthenticated)/signin/page.tsx:33 msgid "Welcome back, we are lucky to have you." msgstr "Welcome back, we are lucky to have you." @@ -4068,6 +4256,10 @@ msgstr "Were you trying to edit this document instead?" msgid "When you click continue, you will be prompted to add the first available authenticator on your system." msgstr "When you click continue, you will be prompted to add the first available authenticator on your system." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:36 +msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." +msgstr "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." + #: apps/web/src/app/(profile)/p/[url]/page.tsx:139 msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." msgstr "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." @@ -4076,6 +4268,10 @@ msgstr "While waiting for them to do so you can create your own Documenso accoun msgid "Who do you want to remind?" msgstr "Who do you want to remind?" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:101 +msgid "Withdrawing Consent" +msgstr "Withdrawing Consent" + #: apps/web/src/components/forms/public-profile-form.tsx:223 msgid "Write about the team" msgstr "Write about the team" @@ -4244,6 +4440,14 @@ msgstr "You have successfully removed this user from the team." msgid "You have successfully revoked access." msgstr "You have successfully revoked access." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:104 +msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +msgstr "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:102 +#~ msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +#~ msgstr "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." + #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." msgstr "You have updated {teamMemberName}." diff --git a/packages/lib/translations/es/common.po b/packages/lib/translations/es/common.po index ec1f27b97..8b6ff9230 100644 --- a/packages/lib/translations/es/common.po +++ b/packages/lib/translations/es/common.po @@ -115,8 +115,8 @@ msgstr "Admin" msgid "Advanced Options" msgstr "Opciones avanzadas" -#: packages/ui/primitives/document-flow/add-fields.tsx:570 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:402 +#: packages/ui/primitives/document-flow/add-fields.tsx:573 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:406 msgid "Advanced settings" msgstr "Configuraciones avanzadas" @@ -124,6 +124,10 @@ msgstr "Configuraciones avanzadas" msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." msgstr "Después de la presentación, se generará automáticamente un documento y se agregará a su página de documentos. También recibirá una notificación por correo electrónico." +#: packages/ui/primitives/pdf-viewer.tsx:167 +msgid "An error occurred while loading the document." +msgstr "" + #: packages/lib/constants/recipient-roles.ts:8 msgid "Approve" msgstr "Aprobar" @@ -136,6 +140,10 @@ msgstr "Aprobado" msgid "Approver" msgstr "Aprobador" +#: packages/lib/constants/recipient-roles.ts:44 +msgid "Approvers" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:10 msgid "Approving" msgstr "Aprobando" @@ -170,14 +178,17 @@ msgstr "CC" msgid "CC'd" msgstr "CC'd" +#: packages/lib/constants/recipient-roles.ts:51 +msgid "Ccers" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86 msgid "Character Limit" msgstr "Límite de caracteres" -#: packages/ui/primitives/document-flow/add-fields.tsx:1026 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:788 -msgid "Checkbox" -msgstr "Caja de verificación" +#: packages/ui/primitives/template-flow/add-template-fields.tsx:794 +#~ msgid "Checkbox" +#~ msgstr "Caja de verificación" #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197 msgid "Checkbox values" @@ -203,8 +214,8 @@ msgstr "Cerrar" msgid "Configure Direct Recipient" msgstr "Configurar destinatario directo" -#: packages/ui/primitives/document-flow/add-fields.tsx:571 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:403 +#: packages/ui/primitives/document-flow/add-fields.tsx:574 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:407 msgid "Configure the {0} field" msgstr "Configurar el campo {0}" @@ -216,12 +227,17 @@ msgstr "Continuar" msgid "Copied to clipboard" msgstr "Copiado al portapapeles" +#: packages/ui/components/document/document-share-button.tsx:194 +msgid "Copy Link" +msgstr "" + #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" msgstr "Texto personalizado" -#: packages/ui/primitives/document-flow/add-fields.tsx:922 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:684 +#: packages/ui/primitives/document-flow/add-fields.tsx:927 +#: packages/ui/primitives/document-flow/types.ts:53 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:690 msgid "Date" msgstr "Fecha" @@ -252,8 +268,8 @@ msgstr "Descargar" msgid "Drag & drop your PDF here." msgstr "Arrastre y suelte su PDF aquí." -#: packages/ui/primitives/document-flow/add-fields.tsx:1052 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:814 +#: packages/ui/primitives/document-flow/add-fields.tsx:1058 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:820 msgid "Dropdown" msgstr "Menú desplegable" @@ -261,20 +277,26 @@ msgstr "Menú desplegable" msgid "Dropdown options" msgstr "Opciones de menú desplegable" -#: packages/ui/primitives/document-flow/add-fields.tsx:870 +#: packages/ui/primitives/document-flow/add-fields.tsx:875 #: packages/ui/primitives/document-flow/add-signature.tsx:272 #: packages/ui/primitives/document-flow/add-signers.tsx:500 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:632 +#: packages/ui/primitives/document-flow/add-signers.tsx:507 +#: packages/ui/primitives/document-flow/types.ts:54 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:638 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:463 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:470 msgid "Email" msgstr "Correo electrónico" +#: packages/ui/primitives/document-flow/add-signature.types.ts:7 +msgid "Email is required" +msgstr "" + #: packages/ui/primitives/template-flow/add-template-settings.tsx:184 msgid "Email Options" msgstr "Opciones de correo electrónico" -#: packages/ui/primitives/document-flow/add-fields.tsx:1117 +#: packages/ui/primitives/document-flow/add-fields.tsx:1123 msgid "Empty field" msgstr "Campo vacío" @@ -287,7 +309,7 @@ msgstr "Habilitar firma de enlace directo" msgid "Enable signing order" msgstr "Habilitar orden de firma" -#: packages/ui/primitives/document-flow/add-fields.tsx:790 +#: packages/ui/primitives/document-flow/add-fields.tsx:795 msgid "Enable Typed Signatures" msgstr "Habilitar firmas escritas" @@ -296,6 +318,7 @@ msgid "Enter password" msgstr "Ingrese la contraseña" #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257 +#: packages/ui/primitives/pdf-viewer.tsx:166 msgid "Error" msgstr "Error" @@ -342,6 +365,10 @@ msgstr "Marcador de posición de campo" msgid "Font Size" msgstr "Tamaño de fuente" +#: packages/ui/primitives/document-flow/types.ts:50 +msgid "Free Signature" +msgstr "" + #: packages/ui/components/document/document-global-auth-action-select.tsx:64 msgid "Global recipient action authentication" msgstr "Autenticación de acción de destinatario global" @@ -354,19 +381,19 @@ msgstr "Regresar" msgid "Green" msgstr "Verde" -#: packages/lib/constants/recipient-roles.ts:72 +#: packages/lib/constants/recipient-roles.ts:76 msgid "I am a signer of this document" msgstr "Soy un firmante de este documento" -#: packages/lib/constants/recipient-roles.ts:75 +#: packages/lib/constants/recipient-roles.ts:79 msgid "I am a viewer of this document" msgstr "Soy un visualizador de este documento" -#: packages/lib/constants/recipient-roles.ts:73 +#: packages/lib/constants/recipient-roles.ts:77 msgid "I am an approver of this document" msgstr "Soy un aprobador de este documento" -#: packages/lib/constants/recipient-roles.ts:74 +#: packages/lib/constants/recipient-roles.ts:78 msgid "I am required to receive a copy of this document" msgstr "Se me requiere recibir una copia de este documento" @@ -375,12 +402,29 @@ msgstr "Se me requiere recibir una copia de este documento" msgid "Inherit authentication method" msgstr "Heredar método de autenticación" +#: packages/ui/primitives/document-flow/types.ts:51 +msgid "Initials" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signers.types.ts:17 +msgid "Invalid email" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signature.types.ts:8 +msgid "Invalid email address" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48 msgid "Label" msgstr "Etiqueta" +#: packages/ui/primitives/lazy-pdf-viewer.tsx:15 +#: packages/ui/primitives/pdf-viewer.tsx:44 +msgid "Loading document..." +msgstr "" + #: packages/lib/constants/teams.ts:11 msgid "Manager" msgstr "Gerente" @@ -402,11 +446,12 @@ msgstr "Mensaje <0>(Opcional)" msgid "Min" msgstr "Mín" -#: packages/ui/primitives/document-flow/add-fields.tsx:896 +#: packages/ui/primitives/document-flow/add-fields.tsx:901 #: packages/ui/primitives/document-flow/add-signature.tsx:298 #: packages/ui/primitives/document-flow/add-signers.tsx:535 #: packages/ui/primitives/document-flow/add-signers.tsx:541 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:658 +#: packages/ui/primitives/document-flow/types.ts:55 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:664 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:498 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:504 msgid "Name" @@ -424,13 +469,13 @@ msgstr "Necesita firmar" msgid "Needs to view" msgstr "Necesita ver" -#: packages/ui/primitives/document-flow/add-fields.tsx:680 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:497 +#: packages/ui/primitives/document-flow/add-fields.tsx:686 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:504 msgid "No recipient matching this description was found." msgstr "No se encontró ningún destinatario que coincidiera con esta descripción." -#: packages/ui/primitives/document-flow/add-fields.tsx:696 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:513 +#: packages/ui/primitives/document-flow/add-fields.tsx:701 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:519 msgid "No recipients with this role" msgstr "No hay destinatarios con este rol" @@ -454,8 +499,9 @@ msgstr "No se encontró campo de firma" msgid "No value found." msgstr "No se encontró valor." -#: packages/ui/primitives/document-flow/add-fields.tsx:974 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:736 +#: packages/ui/primitives/document-flow/add-fields.tsx:979 +#: packages/ui/primitives/document-flow/types.ts:56 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:742 msgid "Number" msgstr "Número" @@ -475,6 +521,10 @@ msgstr "Una vez que su plantilla esté configurada, comparta el enlace donde des msgid "Page {0} of {1}" msgstr "Página {0} de {1}" +#: packages/ui/primitives/pdf-viewer.tsx:259 +msgid "Page {0} of {numPages}" +msgstr "" + #: packages/ui/primitives/document-password-dialog.tsx:62 msgid "Password Required" msgstr "Se requiere contraseña" @@ -489,8 +539,12 @@ msgstr "Seleccione un número" msgid "Placeholder" msgstr "Marcador de posición" -#: packages/ui/primitives/document-flow/add-fields.tsx:1000 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:762 +#: packages/ui/primitives/pdf-viewer.tsx:223 +#: packages/ui/primitives/pdf-viewer.tsx:238 +msgid "Please try again or contact our support." +msgstr "" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx:768 msgid "Radio" msgstr "Radio" @@ -525,7 +579,7 @@ msgstr "Rojo" msgid "Redirect URL" msgstr "URL de redirección" -#: packages/ui/primitives/document-flow/add-fields.tsx:1104 +#: packages/ui/primitives/document-flow/add-fields.tsx:1110 msgid "Remove" msgstr "Eliminar" @@ -537,6 +591,10 @@ msgstr "Eliminar" msgid "Required field" msgstr "Campo obligatorio" +#: packages/ui/components/document/document-share-button.tsx:147 +msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" +msgstr "" + #: packages/ui/primitives/data-table-pagination.tsx:55 msgid "Rows per page" msgstr "Filas por página" @@ -545,7 +603,7 @@ msgstr "Filas por página" msgid "Save" msgstr "Guardar" -#: packages/ui/primitives/template-flow/add-template-fields.tsx:848 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:854 msgid "Save Template" msgstr "Guardar plantilla" @@ -587,6 +645,10 @@ msgstr "Compartir tarjeta de firma" msgid "Share the Link" msgstr "Compartir el enlace" +#: packages/ui/components/document/document-share-button.tsx:143 +msgid "Share your signing experience!" +msgstr "" + #: packages/ui/primitives/document-flow/add-signers.tsx:680 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:655 msgid "Show advanced settings" @@ -596,10 +658,11 @@ msgstr "Mostrar configuraciones avanzadas" msgid "Sign" msgstr "Firmar" -#: packages/ui/primitives/document-flow/add-fields.tsx:818 +#: packages/ui/primitives/document-flow/add-fields.tsx:823 #: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/field-icon.tsx:52 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:580 +#: packages/ui/primitives/document-flow/types.ts:49 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:586 msgid "Signature" msgstr "Firma" @@ -611,6 +674,14 @@ msgstr "Firmado" msgid "Signer" msgstr "Firmante" +#: packages/lib/constants/recipient-roles.ts:58 +msgid "Signers" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signers.types.ts:36 +msgid "Signers must have unique emails" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:22 msgid "Signing" msgstr "Firmando" @@ -623,6 +694,11 @@ msgstr "Algunos firmantes no han sido asignados a un campo de firma. Asigne al m msgid "Something went wrong" msgstr "Algo salió mal" +#: packages/ui/primitives/pdf-viewer.tsx:220 +#: packages/ui/primitives/pdf-viewer.tsx:235 +msgid "Something went wrong while loading the document." +msgstr "" + #: packages/ui/primitives/data-table.tsx:136 msgid "Something went wrong." msgstr "Algo salió mal." @@ -644,8 +720,9 @@ msgstr "Enviar" msgid "Template title" msgstr "Título de plantilla" -#: packages/ui/primitives/document-flow/add-fields.tsx:948 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:710 +#: packages/ui/primitives/document-flow/add-fields.tsx:953 +#: packages/ui/primitives/document-flow/types.ts:52 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:716 msgid "Text" msgstr "Texto" @@ -705,7 +782,7 @@ msgstr "El nombre del firmante" msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step." msgstr "Esto se puede anular configurando los requisitos de autenticación directamente en cada destinatario en el siguiente paso." -#: packages/ui/primitives/document-flow/add-fields.tsx:752 +#: packages/ui/primitives/document-flow/add-fields.tsx:757 msgid "This document has already been sent to this recipient. You can no longer edit this recipient." msgstr "Este documento ya ha sido enviado a este destinatario. Ya no puede editar a este destinatario." @@ -717,7 +794,7 @@ msgstr "Este documento está protegido por contraseña. Por favor ingrese la con msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." msgstr "Este campo no se puede modificar ni eliminar. Cuando comparta el enlace directo de esta plantilla o lo agregue a su perfil público, cualquiera que acceda podrá ingresar su nombre y correo electrónico, y completar los campos que se le hayan asignado." -#: packages/ui/primitives/document-flow/add-fields.tsx:1084 +#: packages/ui/primitives/document-flow/add-fields.tsx:1090 msgid "This recipient can no longer be modified as they have signed a field, or completed the document." msgstr "Este destinatario ya no puede ser modificado ya que ha firmado un campo o completado el documento." @@ -738,8 +815,8 @@ msgstr "Zona horaria" msgid "Title" msgstr "Título" -#: packages/ui/primitives/document-flow/add-fields.tsx:1067 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:828 +#: packages/ui/primitives/document-flow/add-fields.tsx:1073 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:834 msgid "To proceed further, please set at least one value for the {0} field." msgstr "Para continuar, por favor establezca al menos un valor para el campo {0}." @@ -781,6 +858,10 @@ msgstr "Visto" msgid "Viewer" msgstr "Visor" +#: packages/lib/constants/recipient-roles.ts:65 +msgid "Viewers" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" msgstr "Viendo" diff --git a/packages/lib/translations/es/web.po b/packages/lib/translations/es/web.po index 865ce1490..5c6fe014f 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -117,6 +117,18 @@ msgstr "<0>\"{0}\" ya no está disponible para firmar" msgid "<0>Sender: All" msgstr "<0>Remitente: Todos" +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:5 +msgid "1 month" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:8 +msgid "12 months" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:6 +msgid "3 months" +msgstr "" + #: apps/web/src/components/partials/not-found.tsx:45 msgid "404 Page not found" msgstr "404 Página no encontrada" @@ -133,14 +145,30 @@ msgstr "404 Equipo no encontrado" msgid "404 Template not found" msgstr "404 Plantilla no encontrada" +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:7 +msgid "6 months" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:4 +msgid "7 days" +msgstr "" + #: apps/web/src/components/forms/send-confirmation-email.tsx:55 msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." msgstr "Se ha enviado un correo electrónico de confirmación y debería llegar a tu bandeja de entrada en breve." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:70 +msgid "A device capable of accessing, opening, and reading documents" +msgstr "" + #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" msgstr "Se creará un documento borrador" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:73 +msgid "A means to print or download documents for your records" +msgstr "" + #: apps/web/src/components/forms/token.tsx:127 msgid "A new token was created successfully." msgstr "Un nuevo token se ha creado con éxito." @@ -163,6 +191,10 @@ msgstr "Un secreto que se enviará a tu URL para que puedas verificar que la sol msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." msgstr "Un secreto que se enviará a tu URL para que puedas verificar que la solicitud ha sido enviada por Documenso." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:64 +msgid "A stable internet connection" +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:198 msgid "A unique URL to access your profile" msgstr "Una URL única para acceder a tu perfil" @@ -180,6 +212,10 @@ msgstr "Se enviará un correo electrónico de verificación a la dirección prop msgid "Accept" msgstr "Aceptar" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:33 +msgid "Acceptance and Consent" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:26 msgid "Accepted team invitation" msgstr "Invitación de equipo aceptada" @@ -189,6 +225,10 @@ msgstr "Invitación de equipo aceptada" msgid "Account deleted" msgstr "Cuenta eliminada" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 +msgid "Acknowledgment" +msgstr "" + #: 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 @@ -295,6 +335,10 @@ msgstr "Acciones Administrativas" msgid "Admin panel" msgstr "Panel administrativo" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:129 +msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." +msgstr "" + #: apps/web/src/components/formatter/document-status.tsx:46 msgid "All" msgstr "Todos" @@ -307,6 +351,10 @@ msgstr "Todos los documentos" msgid "All documents have been processed. Any new documents that are sent or received will show here." msgstr "Todos los documentos han sido procesados. Cualquier nuevo documento que se envíe o reciba aparecerá aquí." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:81 +msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:145 msgid "All inserted signatures will be voided" msgstr "Todas las firmas insertadas serán anuladas" @@ -335,6 +383,14 @@ msgstr "¿Ya tienes una cuenta? <0>Iniciar sesión en su lugar" msgid "Amount" msgstr "Cantidad" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:48 +msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:67 +msgid "An email account" +msgstr "" + #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:262 msgid "An email containing an invitation will be sent to each member." msgstr "Un correo electrónico que contiene una invitación se enviará a cada miembro." @@ -407,6 +463,10 @@ msgstr "Ocurrió un error al mover el documento." msgid "An error occurred while moving the template." msgstr "Ocurrió un error al mover la plantilla." +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:116 +msgid "An error occurred while removing the field." +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:152 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:126 #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:137 @@ -434,6 +494,7 @@ msgstr "Ocurrió un error al enviar tu correo electrónico de confirmación" #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:100 #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:106 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:84 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:90 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:150 #: apps/web/src/app/(signing)/sign/[token]/radio-field.tsx:102 @@ -531,6 +592,10 @@ msgstr "Versión de la Aplicación" msgid "Approve" msgstr "Aprobar" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:129 +msgid "Approve Document" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 msgid "Approved" msgstr "Aprobado" @@ -588,7 +653,7 @@ msgstr "Esperando confirmación de correo electrónico" msgid "Back" msgstr "Atrás" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:109 +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:164 msgid "Back to Documents" msgstr "Volver a Documentos" @@ -638,9 +703,22 @@ msgstr "Al eliminar este documento, ocurrirá lo siguiente:" msgid "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in." msgstr "Al habilitar la 2FA, se requerirá ingresar un código de su aplicación de autenticación cada vez que inicie sesión." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:142 +msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." +msgstr "" + +#: apps/web/src/components/general/signing-disclosure.tsx:14 +msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:92 +msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:186 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:190 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:108 +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:120 #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:248 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:157 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:198 @@ -654,6 +732,7 @@ msgstr "Al habilitar la 2FA, se requerirá ingresar un código de su aplicación #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:189 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:151 +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:220 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:215 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:327 #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:113 @@ -832,6 +911,14 @@ msgstr "Confirmar correo electrónico" msgid "Confirmation email sent" msgstr "Correo electrónico de confirmación enviado" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:89 +msgid "Consent to Electronic Transactions" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:151 +msgid "Contact Information" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 msgid "Content" msgstr "Contenido" @@ -1013,6 +1100,10 @@ msgstr "Rechazar" msgid "Declined team invitation" msgstr "Invitación de equipo rechazada" +#: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:90 +msgid "delete" +msgstr "" + #: 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/delete-document-dialog.tsx:200 @@ -1031,6 +1122,15 @@ msgstr "Invitación de equipo rechazada" msgid "Delete" msgstr "Eliminar" +#: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:56 +#: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:54 +msgid "delete {0}" +msgstr "" + +#: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:50 +msgid "delete {teamName}" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:137 msgid "Delete account" msgstr "Eliminar cuenta" @@ -1378,6 +1478,14 @@ msgstr "Editar" msgid "Edit webhook" msgstr "Editar webhook" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:78 +msgid "Electronic Delivery of Documents" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:17 +msgid "Electronic Signature Disclosure" +msgstr "" + #: 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 @@ -1406,6 +1514,10 @@ msgstr "Dirección de correo electrónico" msgid "Email Address" msgstr "Dirección de correo electrónico" +#: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:80 +msgid "Email cannot already exist in the template" +msgstr "" + #: apps/web/src/app/(unauthenticated)/verify-email/[token]/client.tsx:36 msgid "Email Confirmed!" msgstr "¡Correo electrónico confirmado!" @@ -1492,6 +1604,8 @@ msgstr "Ingresa tu texto aquí" #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:136 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:83 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:109 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:89 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:115 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:121 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:147 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:149 @@ -1552,12 +1666,21 @@ msgstr "Campos" msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgstr "El archivo no puede ser mayor a {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:154 +msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:152 +#~ msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" +#~ msgstr "" + #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 msgid "Forgot your password?" msgstr "¿Olvidaste tu contraseña?" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:326 +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241 @@ -1661,6 +1784,10 @@ msgstr "Documentos en bandeja de entrada" msgid "Information" msgstr "Información" +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:132 +msgid "Initials" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:78 msgid "Inserted" msgstr "Insertado" @@ -1727,6 +1854,10 @@ msgstr "Invitado el" msgid "Invoice" msgstr "Factura" +#: 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 "" + #: apps/web/src/app/(profile)/p/[url]/page.tsx:134 msgid "It looks like {0} hasn't added any documents to their profile yet." msgstr "Parece que {0} aún no ha agregado documentos a su perfil." @@ -1788,6 +1919,10 @@ msgstr "Salir" msgid "Leave team" msgstr "Salir del equipo" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:45 +msgid "Legality of Electronic Signatures" +msgstr "" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:264 msgid "Light Mode" msgstr "Modo claro" @@ -1941,6 +2076,7 @@ msgstr "Usuarios activos mensuales: Usuarios que crearon al menos un documento" msgid "Monthly Active Users: Users that had at least one of their documents completed" msgstr "Usuarios activos mensuales: Usuarios que completaron al menos uno de sus documentos" +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:123 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:122 msgid "Move" msgstr "Mover" @@ -1958,6 +2094,7 @@ msgstr "Mover plantilla al equipo" msgid "Move to Team" msgstr "Mover al equipo" +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:123 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:122 msgid "Moving..." msgstr "Moviendo..." @@ -2129,6 +2266,8 @@ 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/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 msgid "Owner" msgstr "Propietario" @@ -2299,6 +2438,10 @@ msgstr "Por favor, proporciona un token del autenticador o un código de respald msgid "Please provide a token from your authenticator, or a backup code." msgstr "Por favor, proporciona un token de tu autenticador, o un código de respaldo." +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:169 +msgid "Please review the document before signing." +msgstr "" + #: apps/web/src/components/forms/send-confirmation-email.tsx:64 msgid "Please try again and make sure you enter the correct email address." msgstr "Por favor, intenta de nuevo y asegúrate de ingresar la dirección de correo electrónico correcta." @@ -2381,6 +2524,10 @@ msgstr "Las plantillas públicas están conectadas a tu perfil público. Cualqui msgid "Read only field" msgstr "Campo de solo lectura" +#: apps/web/src/components/general/signing-disclosure.tsx:21 +msgid "Read the full <0>signature disclosure." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 msgid "Ready" msgstr "Listo" @@ -2508,6 +2655,10 @@ msgstr "Resolver" msgid "Resolve payment" msgstr "Resolver pago" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:126 +msgid "Retention of Documents" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:168 msgid "Retry" msgstr "Reintentar" @@ -2575,6 +2726,10 @@ msgstr "Buscar por título del documento" msgid "Search by name or email" msgstr "Buscar por nombre o correo electrónico" +#: apps/web/src/components/(dashboard)/document-search/document-search.tsx:42 +msgid "Search documents..." +msgstr "" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:189 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:217 msgid "Secret" @@ -2714,6 +2869,10 @@ msgstr "Firmar como<0>{0} <1>({1})" msgid "Sign document" msgstr "Firmar documento" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:128 +msgid "Sign Document" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:59 msgid "Sign field" msgstr "Campo de firma" @@ -2763,6 +2922,7 @@ msgstr "Regístrate con OIDC" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88 #: 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 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391 @@ -2939,6 +3099,10 @@ msgstr "Éxito" msgid "Successfully created passkey" msgstr "Clave de acceso creada con éxito" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:57 +msgid "System Requirements" +msgstr "" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:266 msgid "System Theme" msgstr "Tema del sistema" @@ -3115,6 +3279,10 @@ msgstr "Texto" msgid "Text Color" msgstr "Color de texto" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:24 +msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." msgstr "La cuenta ha sido eliminada con éxito." @@ -3399,6 +3567,10 @@ msgstr "Para acceder a tu cuenta, por favor confirma tu dirección de correo ele msgid "To mark this document as viewed, you need to be logged in as <0>{0}" msgstr "Para marcar este documento como visto, debes iniciar sesión como <0>{0}" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:60 +msgid "To use our electronic signature service, you must have access to:" +msgstr "" + #: apps/web/src/app/embed/authenticate.tsx:21 msgid "To view this document you need to be signed into your account, please sign in to continue." msgstr "Para ver este documento debes iniciar sesión en tu cuenta, por favor inicia sesión para continuar." @@ -3456,6 +3628,10 @@ msgstr "Total de firmantes que se registraron" msgid "Total Users" msgstr "Total de usuarios" +#: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:76 +msgid "transfer {teamName}" +msgstr "" + #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:160 msgid "Transfer ownership of this team to a selected team member." msgstr "Transferir la propiedad de este equipo a un miembro del equipo seleccionado." @@ -3673,6 +3849,10 @@ msgstr "Actualizando contraseña..." msgid "Updating profile..." msgstr "Actualizando perfil..." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:115 +msgid "Updating Your Information" +msgstr "" + #: apps/web/src/components/forms/avatar-image.tsx:182 msgid "Upload Avatar" msgstr "Subir avatar" @@ -3784,6 +3964,10 @@ msgstr "Ver toda la actividad de seguridad relacionada con tu cuenta." msgid "View Codes" msgstr "Ver Códigos" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:127 +msgid "View Document" +msgstr "" + #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:150 msgid "View documents associated with this email" msgstr "Ver documentos asociados con este correo electrónico" @@ -4061,6 +4245,10 @@ msgstr "Webhooks" msgid "Weekly" msgstr "Semanal" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:21 +msgid "Welcome" +msgstr "" + #: apps/web/src/app/(unauthenticated)/signin/page.tsx:33 msgid "Welcome back, we are lucky to have you." msgstr "Bienvenido de nuevo, somos afortunados de tenerte." @@ -4073,6 +4261,10 @@ msgstr "¿Estabas intentando editar este documento en su lugar?" msgid "When you click continue, you will be prompted to add the first available authenticator on your system." msgstr "Cuando haces clic en continuar, se te pedirá que añadas el primer autenticador disponible en tu sistema." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:36 +msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." +msgstr "" + #: apps/web/src/app/(profile)/p/[url]/page.tsx:139 msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." msgstr "Mientras esperas a que ellos lo hagan, puedes crear tu propia cuenta de Documenso y comenzar a firmar documentos de inmediato." @@ -4081,6 +4273,10 @@ msgstr "Mientras esperas a que ellos lo hagan, puedes crear tu propia cuenta de msgid "Who do you want to remind?" msgstr "¿A quién deseas recordar?" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:101 +msgid "Withdrawing Consent" +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:223 msgid "Write about the team" msgstr "Escribe sobre el equipo" @@ -4249,6 +4445,14 @@ msgstr "Has eliminado a este usuario del equipo con éxito." msgid "You have successfully revoked access." msgstr "Has revocado el acceso con éxito." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:104 +msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:102 +#~ msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +#~ msgstr "" + #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." msgstr "Has actualizado a {teamMemberName}." diff --git a/packages/lib/translations/fr/common.po b/packages/lib/translations/fr/common.po index f01cbd54d..9d6d3be72 100644 --- a/packages/lib/translations/fr/common.po +++ b/packages/lib/translations/fr/common.po @@ -115,8 +115,8 @@ msgstr "Administrateur" msgid "Advanced Options" msgstr "Options avancées" -#: packages/ui/primitives/document-flow/add-fields.tsx:570 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:402 +#: packages/ui/primitives/document-flow/add-fields.tsx:573 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:406 msgid "Advanced settings" msgstr "Paramètres avancés" @@ -124,6 +124,10 @@ msgstr "Paramètres avancés" msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." msgstr "Après soumission, un document sera automatiquement généré et ajouté à votre page de documents. Vous recevrez également une notification par email." +#: packages/ui/primitives/pdf-viewer.tsx:167 +msgid "An error occurred while loading the document." +msgstr "" + #: packages/lib/constants/recipient-roles.ts:8 msgid "Approve" msgstr "Approuver" @@ -136,6 +140,10 @@ msgstr "Approuvé" msgid "Approver" msgstr "Approuveur" +#: packages/lib/constants/recipient-roles.ts:44 +msgid "Approvers" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:10 msgid "Approving" msgstr "En attente d'approbation" @@ -170,14 +178,17 @@ msgstr "CC" msgid "CC'd" msgstr "CC'd" +#: packages/lib/constants/recipient-roles.ts:51 +msgid "Ccers" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86 msgid "Character Limit" msgstr "Limite de caractères" -#: packages/ui/primitives/document-flow/add-fields.tsx:1026 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:788 -msgid "Checkbox" -msgstr "Case à cocher" +#: packages/ui/primitives/template-flow/add-template-fields.tsx:794 +#~ msgid "Checkbox" +#~ msgstr "Case à cocher" #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197 msgid "Checkbox values" @@ -203,8 +214,8 @@ msgstr "Fermer" msgid "Configure Direct Recipient" msgstr "Configurer le destinataire direct" -#: packages/ui/primitives/document-flow/add-fields.tsx:571 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:403 +#: packages/ui/primitives/document-flow/add-fields.tsx:574 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:407 msgid "Configure the {0} field" msgstr "Configurer le champ {0}" @@ -216,12 +227,17 @@ msgstr "Continuer" msgid "Copied to clipboard" msgstr "Copié dans le presse-papiers" +#: packages/ui/components/document/document-share-button.tsx:194 +msgid "Copy Link" +msgstr "" + #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" msgstr "Texte personnalisé" -#: packages/ui/primitives/document-flow/add-fields.tsx:922 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:684 +#: packages/ui/primitives/document-flow/add-fields.tsx:927 +#: packages/ui/primitives/document-flow/types.ts:53 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:690 msgid "Date" msgstr "Date" @@ -252,8 +268,8 @@ msgstr "Télécharger" msgid "Drag & drop your PDF here." msgstr "Faites glisser et déposez votre PDF ici." -#: packages/ui/primitives/document-flow/add-fields.tsx:1052 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:814 +#: packages/ui/primitives/document-flow/add-fields.tsx:1058 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:820 msgid "Dropdown" msgstr "Liste déroulante" @@ -261,20 +277,26 @@ msgstr "Liste déroulante" msgid "Dropdown options" msgstr "Options de liste déroulante" -#: packages/ui/primitives/document-flow/add-fields.tsx:870 +#: packages/ui/primitives/document-flow/add-fields.tsx:875 #: packages/ui/primitives/document-flow/add-signature.tsx:272 #: packages/ui/primitives/document-flow/add-signers.tsx:500 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:632 +#: packages/ui/primitives/document-flow/add-signers.tsx:507 +#: packages/ui/primitives/document-flow/types.ts:54 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:638 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:463 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:470 msgid "Email" msgstr "Email" +#: packages/ui/primitives/document-flow/add-signature.types.ts:7 +msgid "Email is required" +msgstr "" + #: packages/ui/primitives/template-flow/add-template-settings.tsx:184 msgid "Email Options" msgstr "Options d'email" -#: packages/ui/primitives/document-flow/add-fields.tsx:1117 +#: packages/ui/primitives/document-flow/add-fields.tsx:1123 msgid "Empty field" msgstr "Champ vide" @@ -287,7 +309,7 @@ msgstr "Activer la signature de lien direct" msgid "Enable signing order" msgstr "Activer l'ordre de signature" -#: packages/ui/primitives/document-flow/add-fields.tsx:790 +#: packages/ui/primitives/document-flow/add-fields.tsx:795 msgid "Enable Typed Signatures" msgstr "Activer les signatures tapées" @@ -296,6 +318,7 @@ msgid "Enter password" msgstr "Entrez le mot de passe" #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257 +#: packages/ui/primitives/pdf-viewer.tsx:166 msgid "Error" msgstr "Erreur" @@ -342,6 +365,10 @@ msgstr "Espace réservé du champ" msgid "Font Size" msgstr "Taille de Police" +#: packages/ui/primitives/document-flow/types.ts:50 +msgid "Free Signature" +msgstr "" + #: packages/ui/components/document/document-global-auth-action-select.tsx:64 msgid "Global recipient action authentication" msgstr "Authentification d'action de destinataire globale" @@ -354,19 +381,19 @@ msgstr "Retourner" msgid "Green" msgstr "Vert" -#: packages/lib/constants/recipient-roles.ts:72 +#: packages/lib/constants/recipient-roles.ts:76 msgid "I am a signer of this document" msgstr "Je suis un signataire de ce document" -#: packages/lib/constants/recipient-roles.ts:75 +#: packages/lib/constants/recipient-roles.ts:79 msgid "I am a viewer of this document" msgstr "Je suis un visualiseur de ce document" -#: packages/lib/constants/recipient-roles.ts:73 +#: packages/lib/constants/recipient-roles.ts:77 msgid "I am an approver of this document" msgstr "Je suis un approuveur de ce document" -#: packages/lib/constants/recipient-roles.ts:74 +#: packages/lib/constants/recipient-roles.ts:78 msgid "I am required to receive a copy of this document" msgstr "Je dois recevoir une copie de ce document" @@ -375,12 +402,29 @@ msgstr "Je dois recevoir une copie de ce document" msgid "Inherit authentication method" msgstr "Hériter de la méthode d'authentification" +#: packages/ui/primitives/document-flow/types.ts:51 +msgid "Initials" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signers.types.ts:17 +msgid "Invalid email" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signature.types.ts:8 +msgid "Invalid email address" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48 msgid "Label" msgstr "Étiquette" +#: packages/ui/primitives/lazy-pdf-viewer.tsx:15 +#: packages/ui/primitives/pdf-viewer.tsx:44 +msgid "Loading document..." +msgstr "" + #: packages/lib/constants/teams.ts:11 msgid "Manager" msgstr "Gestionnaire" @@ -402,11 +446,12 @@ msgstr "Message <0>(Optionnel)" msgid "Min" msgstr "Min" -#: packages/ui/primitives/document-flow/add-fields.tsx:896 +#: packages/ui/primitives/document-flow/add-fields.tsx:901 #: packages/ui/primitives/document-flow/add-signature.tsx:298 #: packages/ui/primitives/document-flow/add-signers.tsx:535 #: packages/ui/primitives/document-flow/add-signers.tsx:541 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:658 +#: packages/ui/primitives/document-flow/types.ts:55 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:664 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:498 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:504 msgid "Name" @@ -424,13 +469,13 @@ msgstr "Nécessite une signature" msgid "Needs to view" msgstr "Nécessite une visualisation" -#: packages/ui/primitives/document-flow/add-fields.tsx:680 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:497 +#: packages/ui/primitives/document-flow/add-fields.tsx:686 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:504 msgid "No recipient matching this description was found." msgstr "Aucun destinataire correspondant à cette description n'a été trouvé." -#: packages/ui/primitives/document-flow/add-fields.tsx:696 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:513 +#: packages/ui/primitives/document-flow/add-fields.tsx:701 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:519 msgid "No recipients with this role" msgstr "Aucun destinataire avec ce rôle" @@ -454,8 +499,9 @@ msgstr "Aucun champ de signature trouvé" msgid "No value found." msgstr "Aucune valeur trouvée." -#: packages/ui/primitives/document-flow/add-fields.tsx:974 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:736 +#: packages/ui/primitives/document-flow/add-fields.tsx:979 +#: packages/ui/primitives/document-flow/types.ts:56 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:742 msgid "Number" msgstr "Numéro" @@ -475,6 +521,10 @@ msgstr "Une fois votre modèle configuré, partagez le lien où vous le souhaite msgid "Page {0} of {1}" msgstr "Page {0} sur {1}" +#: packages/ui/primitives/pdf-viewer.tsx:259 +msgid "Page {0} of {numPages}" +msgstr "" + #: packages/ui/primitives/document-password-dialog.tsx:62 msgid "Password Required" msgstr "Mot de passe requis" @@ -489,8 +539,12 @@ msgstr "Choisissez un numéro" msgid "Placeholder" msgstr "Espace réservé" -#: packages/ui/primitives/document-flow/add-fields.tsx:1000 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:762 +#: packages/ui/primitives/pdf-viewer.tsx:223 +#: packages/ui/primitives/pdf-viewer.tsx:238 +msgid "Please try again or contact our support." +msgstr "" + +#: packages/ui/primitives/template-flow/add-template-fields.tsx:768 msgid "Radio" msgstr "Radio" @@ -525,7 +579,7 @@ msgstr "Rouge" msgid "Redirect URL" msgstr "URL de redirection" -#: packages/ui/primitives/document-flow/add-fields.tsx:1104 +#: packages/ui/primitives/document-flow/add-fields.tsx:1110 msgid "Remove" msgstr "Retirer" @@ -537,6 +591,10 @@ msgstr "Retirer" msgid "Required field" msgstr "Champ requis" +#: packages/ui/components/document/document-share-button.tsx:147 +msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" +msgstr "" + #: packages/ui/primitives/data-table-pagination.tsx:55 msgid "Rows per page" msgstr "Lignes par page" @@ -545,7 +603,7 @@ msgstr "Lignes par page" msgid "Save" msgstr "Sauvegarder" -#: packages/ui/primitives/template-flow/add-template-fields.tsx:848 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:854 msgid "Save Template" msgstr "Sauvegarder le modèle" @@ -587,6 +645,10 @@ msgstr "Partager la carte de signature" msgid "Share the Link" msgstr "Partager le lien" +#: packages/ui/components/document/document-share-button.tsx:143 +msgid "Share your signing experience!" +msgstr "" + #: packages/ui/primitives/document-flow/add-signers.tsx:680 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:655 msgid "Show advanced settings" @@ -596,10 +658,11 @@ msgstr "Afficher les paramètres avancés" msgid "Sign" msgstr "Signer" -#: packages/ui/primitives/document-flow/add-fields.tsx:818 +#: packages/ui/primitives/document-flow/add-fields.tsx:823 #: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/field-icon.tsx:52 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:580 +#: packages/ui/primitives/document-flow/types.ts:49 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:586 msgid "Signature" msgstr "Signature" @@ -611,6 +674,14 @@ msgstr "Signé" msgid "Signer" msgstr "Signataire" +#: packages/lib/constants/recipient-roles.ts:58 +msgid "Signers" +msgstr "" + +#: packages/ui/primitives/document-flow/add-signers.types.ts:36 +msgid "Signers must have unique emails" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:22 msgid "Signing" msgstr "Signature en cours" @@ -623,6 +694,11 @@ msgstr "Certains signataires n'ont pas été assignés à un champ de signature. msgid "Something went wrong" msgstr "Quelque chose a mal tourné" +#: packages/ui/primitives/pdf-viewer.tsx:220 +#: packages/ui/primitives/pdf-viewer.tsx:235 +msgid "Something went wrong while loading the document." +msgstr "" + #: packages/ui/primitives/data-table.tsx:136 msgid "Something went wrong." msgstr "Quelque chose a mal tourné." @@ -644,8 +720,9 @@ msgstr "Soumettre" msgid "Template title" msgstr "Titre du modèle" -#: packages/ui/primitives/document-flow/add-fields.tsx:948 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:710 +#: packages/ui/primitives/document-flow/add-fields.tsx:953 +#: packages/ui/primitives/document-flow/types.ts:52 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:716 msgid "Text" msgstr "Texte" @@ -705,7 +782,7 @@ msgstr "Le nom du signataire" msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step." msgstr "Cela peut être remplacé par le paramétrage direct des exigences d'authentification pour chaque destinataire à l'étape suivante." -#: packages/ui/primitives/document-flow/add-fields.tsx:752 +#: packages/ui/primitives/document-flow/add-fields.tsx:757 msgid "This document has already been sent to this recipient. You can no longer edit this recipient." msgstr "Ce document a déjà été envoyé à ce destinataire. Vous ne pouvez plus modifier ce destinataire." @@ -717,7 +794,7 @@ msgstr "Ce document est protégé par mot de passe. Veuillez entrer le mot de pa msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." msgstr "Ce champ ne peut pas être modifié ou supprimé. Lorsque vous partagez le lien direct de ce modèle ou l'ajoutez à votre profil public, toute personne qui y accède peut saisir son nom et son email, et remplir les champs qui lui sont attribués." -#: packages/ui/primitives/document-flow/add-fields.tsx:1084 +#: packages/ui/primitives/document-flow/add-fields.tsx:1090 msgid "This recipient can no longer be modified as they have signed a field, or completed the document." msgstr "Ce destinataire ne peut plus être modifié car il a signé un champ ou complété le document." @@ -738,8 +815,8 @@ msgstr "Fuseau horaire" msgid "Title" msgstr "Titre" -#: packages/ui/primitives/document-flow/add-fields.tsx:1067 -#: packages/ui/primitives/template-flow/add-template-fields.tsx:828 +#: packages/ui/primitives/document-flow/add-fields.tsx:1073 +#: packages/ui/primitives/template-flow/add-template-fields.tsx:834 msgid "To proceed further, please set at least one value for the {0} field." msgstr "Pour continuer, veuillez définir au moins une valeur pour le champ {0}." @@ -781,6 +858,10 @@ msgstr "Vu" msgid "Viewer" msgstr "Visiteur" +#: packages/lib/constants/recipient-roles.ts:65 +msgid "Viewers" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" msgstr "Visionnage" diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po index d247d0b8f..7ba885755 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -117,6 +117,18 @@ msgstr "<0>\"{0}\" n'est plus disponible pour signer" msgid "<0>Sender: All" msgstr "<0>Expéditeur : Tous" +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:5 +msgid "1 month" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:8 +msgid "12 months" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:6 +msgid "3 months" +msgstr "" + #: apps/web/src/components/partials/not-found.tsx:45 msgid "404 Page not found" msgstr "404 Page non trouvée" @@ -133,14 +145,30 @@ msgstr "404 Équipe non trouvée" msgid "404 Template not found" msgstr "404 Modèle non trouvé" +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:7 +msgid "6 months" +msgstr "" + +#: apps/web/src/components/(dashboard)/settings/token/contants.ts:4 +msgid "7 days" +msgstr "" + #: apps/web/src/components/forms/send-confirmation-email.tsx:55 msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." msgstr "Un e-mail de confirmation a été envoyé et devrait arriver dans votre boîte de réception sous peu." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:70 +msgid "A device capable of accessing, opening, and reading documents" +msgstr "" + #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" msgstr "Un document brouillon sera créé" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:73 +msgid "A means to print or download documents for your records" +msgstr "" + #: apps/web/src/components/forms/token.tsx:127 msgid "A new token was created successfully." msgstr "Un nouveau jeton a été créé avec succès." @@ -163,6 +191,10 @@ msgstr "Un secret qui sera envoyé à votre URL afin que vous puissiez vérifier msgid "A secret that will be sent to your URL so you can verify that the request has been sent by Documenso." msgstr "Un secret qui sera envoyé à votre URL afin que vous puissiez vérifier que la demande a été envoyée par Documenso." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:64 +msgid "A stable internet connection" +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:198 msgid "A unique URL to access your profile" msgstr "Une URL unique pour accéder à votre profil" @@ -180,6 +212,10 @@ msgstr "Un e-mail de vérification sera envoyé à l'adresse e-mail fournie." msgid "Accept" msgstr "Accepter" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:33 +msgid "Acceptance and Consent" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:26 msgid "Accepted team invitation" msgstr "Invitation d'équipe acceptée" @@ -189,6 +225,10 @@ msgstr "Invitation d'équipe acceptée" msgid "Account deleted" msgstr "Compte supprimé" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 +msgid "Acknowledgment" +msgstr "" + #: 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 @@ -295,6 +335,10 @@ msgstr "Actions administratives" msgid "Admin panel" msgstr "Panneau d'administration" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:129 +msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." +msgstr "" + #: apps/web/src/components/formatter/document-status.tsx:46 msgid "All" msgstr "Tout" @@ -307,6 +351,10 @@ msgstr "Tous les documents" msgid "All documents have been processed. Any new documents that are sent or received will show here." msgstr "Tous les documents ont été traités. Tous nouveaux documents envoyés ou reçus s'afficheront ici." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:81 +msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:145 msgid "All inserted signatures will be voided" msgstr "Toutes les signatures insérées seront annulées" @@ -335,6 +383,14 @@ msgstr "Vous avez déjà un compte ? <0>Connectez-vous plutôt" msgid "Amount" msgstr "Montant" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:48 +msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:67 +msgid "An email account" +msgstr "" + #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:262 msgid "An email containing an invitation will be sent to each member." msgstr "Un e-mail contenant une invitation sera envoyé à chaque membre." @@ -407,6 +463,10 @@ msgstr "Une erreur est survenue lors du déplacement du document." msgid "An error occurred while moving the template." msgstr "Une erreur est survenue lors du déplacement du modèle." +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:116 +msgid "An error occurred while removing the field." +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:152 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:126 #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:137 @@ -434,6 +494,7 @@ msgstr "Une erreur est survenue lors de l'envoi de votre e-mail de confirmation" #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:100 #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:106 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:84 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:90 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:150 #: apps/web/src/app/(signing)/sign/[token]/radio-field.tsx:102 @@ -531,6 +592,10 @@ msgstr "Version de l'application" msgid "Approve" msgstr "Approuver" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:129 +msgid "Approve Document" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 msgid "Approved" msgstr "Approuvé" @@ -588,7 +653,7 @@ msgstr "En attente de confirmation par e-mail" msgid "Back" msgstr "Retour" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:109 +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:164 msgid "Back to Documents" msgstr "Retour aux documents" @@ -638,9 +703,22 @@ msgstr "En supprimant ce document, les éléments suivants se produiront :" msgid "By enabling 2FA, you will be required to enter a code from your authenticator app every time you sign in." msgstr "En activant l'authentification à deux facteurs (2FA), vous devrez entrer un code provenant de votre application d'authentification chaque fois que vous vous connectez." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:142 +msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." +msgstr "" + +#: apps/web/src/components/general/signing-disclosure.tsx:14 +msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:92 +msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:186 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:190 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:108 +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:120 #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:248 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:157 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:198 @@ -654,6 +732,7 @@ msgstr "En activant l'authentification à deux facteurs (2FA), vous devrez entre #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:189 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:151 +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:220 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:215 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:327 #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:113 @@ -832,6 +911,14 @@ msgstr "Confirmer l'email" msgid "Confirmation email sent" msgstr "Email de confirmation envoyé" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:89 +msgid "Consent to Electronic Transactions" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:151 +msgid "Contact Information" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 msgid "Content" msgstr "Contenu" @@ -1013,6 +1100,10 @@ msgstr "Décliner" msgid "Declined team invitation" msgstr "Invitation d'équipe refusée" +#: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:90 +msgid "delete" +msgstr "" + #: 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/delete-document-dialog.tsx:200 @@ -1031,6 +1122,15 @@ msgstr "Invitation d'équipe refusée" msgid "Delete" msgstr "Supprimer" +#: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:56 +#: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:54 +msgid "delete {0}" +msgstr "" + +#: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:50 +msgid "delete {teamName}" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:137 msgid "Delete account" msgstr "Supprimer le compte" @@ -1378,6 +1478,14 @@ msgstr "Modifier" msgid "Edit webhook" msgstr "Modifier le webhook" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:78 +msgid "Electronic Delivery of Documents" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:17 +msgid "Electronic Signature Disclosure" +msgstr "" + #: 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 @@ -1406,6 +1514,10 @@ msgstr "Adresse email" msgid "Email Address" msgstr "Adresse e-mail" +#: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:80 +msgid "Email cannot already exist in the template" +msgstr "" + #: apps/web/src/app/(unauthenticated)/verify-email/[token]/client.tsx:36 msgid "Email Confirmed!" msgstr "Email confirmé !" @@ -1492,6 +1604,8 @@ msgstr "Entrez votre texte ici" #: apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx:136 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:83 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:109 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:89 +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:115 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:121 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:147 #: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:149 @@ -1552,12 +1666,21 @@ msgstr "Champs" msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgstr "Le fichier ne peut pas dépasser {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} Mo" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:154 +msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:152 +#~ msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" +#~ msgstr "" + #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 msgid "Forgot your password?" msgstr "Mot de passe oublié ?" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:326 +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241 @@ -1661,6 +1784,10 @@ msgstr "Documents de la boîte de réception" msgid "Information" msgstr "Information" +#: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:132 +msgid "Initials" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:78 msgid "Inserted" msgstr "Inséré" @@ -1727,6 +1854,10 @@ msgstr "Invité à" msgid "Invoice" msgstr "Facture" +#: 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 "" + #: apps/web/src/app/(profile)/p/[url]/page.tsx:134 msgid "It looks like {0} hasn't added any documents to their profile yet." msgstr "Il semble que {0} n'ait pas encore ajouté de documents à son profil." @@ -1788,6 +1919,10 @@ msgstr "Quitter" msgid "Leave team" msgstr "Quitter l'équipe" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:45 +msgid "Legality of Electronic Signatures" +msgstr "" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:264 msgid "Light Mode" msgstr "Mode clair" @@ -1941,6 +2076,7 @@ msgstr "Utilisateurs actifs mensuels : utilisateurs ayant créé au moins un doc msgid "Monthly Active Users: Users that had at least one of their documents completed" msgstr "Utilisateurs actifs mensuels : utilisateurs ayant terminé au moins un de leurs documents" +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:123 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:122 msgid "Move" msgstr "Déplacer" @@ -1958,6 +2094,7 @@ msgstr "Déplacer le modèle vers l'équipe" msgid "Move to Team" msgstr "Déplacer vers l'équipe" +#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:123 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:122 msgid "Moving..." msgstr "Déplacement..." @@ -2129,6 +2266,8 @@ msgstr "Sinon, le document sera créé sous forme de brouillon." #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:86 #: 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 msgid "Owner" msgstr "Propriétaire" @@ -2299,6 +2438,10 @@ msgstr "Veuillez fournir un jeton de l'authentificateur, ou un code de secours. msgid "Please provide a token from your authenticator, or a backup code." msgstr "Veuillez fournir un jeton de votre authentificateur, ou un code de secours." +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:169 +msgid "Please review the document before signing." +msgstr "" + #: apps/web/src/components/forms/send-confirmation-email.tsx:64 msgid "Please try again and make sure you enter the correct email address." msgstr "Veuillez réessayer et assurez-vous d'entrer la bonne adresse email." @@ -2381,6 +2524,10 @@ msgstr "Les modèles publics sont connectés à votre profil public. Toute modif msgid "Read only field" msgstr "Champ en lecture seule" +#: apps/web/src/components/general/signing-disclosure.tsx:21 +msgid "Read the full <0>signature disclosure." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 msgid "Ready" msgstr "Prêt" @@ -2508,6 +2655,10 @@ msgstr "Résoudre" msgid "Resolve payment" msgstr "Résoudre le paiement" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:126 +msgid "Retention of Documents" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:168 msgid "Retry" msgstr "Réessayer" @@ -2575,6 +2726,10 @@ msgstr "Recherche par titre de document" msgid "Search by name or email" msgstr "Recherche par nom ou e-mail" +#: apps/web/src/components/(dashboard)/document-search/document-search.tsx:42 +msgid "Search documents..." +msgstr "" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:189 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:217 msgid "Secret" @@ -2714,6 +2869,10 @@ msgstr "Signer comme<0>{0} <1>({1})" msgid "Sign document" msgstr "Signer le document" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:128 +msgid "Sign Document" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:59 msgid "Sign field" msgstr "Champ de signature" @@ -2763,6 +2922,7 @@ msgstr "S'inscrire avec OIDC" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88 #: 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 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391 @@ -2939,6 +3099,10 @@ msgstr "Succès" msgid "Successfully created passkey" msgstr "Clé d'authentification créée avec succès" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:57 +msgid "System Requirements" +msgstr "" + #: apps/web/src/components/(dashboard)/common/command-menu.tsx:266 msgid "System Theme" msgstr "Thème système" @@ -3115,6 +3279,10 @@ msgstr "Texte" msgid "Text Color" msgstr "Couleur du texte" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:24 +msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." msgstr "Le compte a été supprimé avec succès." @@ -3399,6 +3567,10 @@ msgstr "Pour accéder à votre compte, veuillez confirmer votre adresse e-mail e msgid "To mark this document as viewed, you need to be logged in as <0>{0}" msgstr "Pour marquer ce document comme consulté, vous devez être connecté en tant que <0>{0}" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:60 +msgid "To use our electronic signature service, you must have access to:" +msgstr "" + #: apps/web/src/app/embed/authenticate.tsx:21 msgid "To view this document you need to be signed into your account, please sign in to continue." msgstr "Pour afficher ce document, vous devez être connecté à votre compte, veuillez vous connecter pour continuer." @@ -3456,6 +3628,10 @@ msgstr "Total des signataires qui se sont inscrits" msgid "Total Users" msgstr "Total des utilisateurs" +#: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:76 +msgid "transfer {teamName}" +msgstr "" + #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:160 msgid "Transfer ownership of this team to a selected team member." msgstr "Transférer la propriété de cette équipe à un membre d'équipe sélectionné." @@ -3673,6 +3849,10 @@ msgstr "Mise à jour du mot de passe..." msgid "Updating profile..." msgstr "Mise à jour du profil..." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:115 +msgid "Updating Your Information" +msgstr "" + #: apps/web/src/components/forms/avatar-image.tsx:182 msgid "Upload Avatar" msgstr "Télécharger un avatar" @@ -3784,6 +3964,10 @@ msgstr "Voir toute l'activité de sécurité liée à votre compte." msgid "View Codes" msgstr "Voir les codes" +#: apps/web/src/app/(signing)/sign/[token]/form.tsx:127 +msgid "View Document" +msgstr "" + #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:150 msgid "View documents associated with this email" msgstr "Voir les documents associés à cet e-mail" @@ -4061,6 +4245,10 @@ msgstr "Webhooks" msgid "Weekly" msgstr "Hebdomadaire" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:21 +msgid "Welcome" +msgstr "" + #: apps/web/src/app/(unauthenticated)/signin/page.tsx:33 msgid "Welcome back, we are lucky to have you." msgstr "Contentieux, nous avons de la chance de vous avoir." @@ -4073,6 +4261,10 @@ msgstr "Essayiez-vous d'éditer ce document à la place ?" msgid "When you click continue, you will be prompted to add the first available authenticator on your system." msgstr "Lorsque vous cliquez sur continuer, vous serez invité à ajouter le premier authentificateur disponible sur votre système." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:36 +msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." +msgstr "" + #: apps/web/src/app/(profile)/p/[url]/page.tsx:139 msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." msgstr "En attendant qu'ils le fassent, vous pouvez créer votre propre compte Documenso et commencer à signer des documents dès maintenant." @@ -4081,6 +4273,10 @@ msgstr "En attendant qu'ils le fassent, vous pouvez créer votre propre compte D msgid "Who do you want to remind?" msgstr "Qui voulez-vous rappeler ?" +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:101 +msgid "Withdrawing Consent" +msgstr "" + #: apps/web/src/components/forms/public-profile-form.tsx:223 msgid "Write about the team" msgstr "Écrivez sur l'équipe" @@ -4249,6 +4445,14 @@ msgstr "Vous avez retiré cet utilisateur de l'équipe avec succès." msgid "You have successfully revoked access." msgstr "Vous avez révoqué l'accès avec succès." +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:104 +msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +msgstr "" + +#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:102 +#~ msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." +#~ msgstr "" + #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." msgstr "Vous avez mis à jour {teamMemberName}." diff --git a/packages/lib/utils/i18n.ts b/packages/lib/utils/i18n.ts index 7c4f494a4..d568f1df0 100644 --- a/packages/lib/utils/i18n.ts +++ b/packages/lib/utils/i18n.ts @@ -1,6 +1,6 @@ import type { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adapters/request-cookies'; -import type { I18n } from '@lingui/core'; +import type { I18n, MessageDescriptor } from '@lingui/core'; import { IS_APP_WEB, IS_APP_WEB_I18N_ENABLED } from '../constants/app'; import type { I18nLocaleData, SupportedLanguageCodes } from '../constants/i18n'; @@ -10,7 +10,17 @@ export async function dynamicActivate(i18nInstance: I18n, locale: string) { const extension = process.env.NODE_ENV === 'development' ? 'po' : 'js'; const context = IS_APP_WEB ? 'web' : 'marketing'; - const { messages } = await import(`../translations/${locale}/${context}.${extension}`); + let { messages } = await import(`../translations/${locale}/${context}.${extension}`); + + // Dirty way to load common messages for development since it's not compiled. + if (process.env.NODE_ENV === 'development') { + const commonMessages = await import(`../translations/${locale}/common.${extension}`); + + messages = { + ...messages, + ...commonMessages.messages, + }; + } i18nInstance.loadAndActivate({ locale, messages }); } @@ -106,3 +116,7 @@ export const extractLocaleData = ({ locales, }; }; + +export const parseMessageDescriptor = (_: I18n['_'], value: string | MessageDescriptor) => { + return typeof value === 'string' ? value : _(value); +}; diff --git a/packages/ui/components/document/document-share-button.tsx b/packages/ui/components/document/document-share-button.tsx index bcf888838..bfaeb6afd 100644 --- a/packages/ui/components/document/document-share-button.tsx +++ b/packages/ui/components/document/document-share-button.tsx @@ -139,12 +139,16 @@ export const DocumentShareButton = ({ - Share your signing experience! + + Share your signing experience! + - Rest assured, your document is strictly confidential and will never be shared. Only your - signing experience will be highlighted. Share your personalized signing card to showcase - your signature! + + Rest assured, your document is strictly confidential and will never be shared. Only + your signing experience will be highlighted. Share your personalized signing card to + showcase your signature! + @@ -187,7 +191,7 @@ export const DocumentShareButton = ({
diff --git a/packages/ui/primitives/document-flow/add-fields.tsx b/packages/ui/primitives/document-flow/add-fields.tsx index a7903f2e8..3adb96b5e 100644 --- a/packages/ui/primitives/document-flow/add-fields.tsx +++ b/packages/ui/primitives/document-flow/add-fields.tsx @@ -5,6 +5,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { Caveat } from 'next/font/google'; import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; import { Prisma } from '@prisma/client'; import { CalendarDays, @@ -34,6 +35,7 @@ import { } from '@documenso/lib/types/field-meta'; import { nanoid } from '@documenso/lib/universal/id'; import { validateFieldsUninserted } from '@documenso/lib/utils/fields'; +import { parseMessageDescriptor } from '@documenso/lib/utils/i18n'; import { canRecipientBeModified, canRecipientFieldsBeModified, @@ -114,6 +116,7 @@ export const AddFieldsFormPartial = ({ teamId, }: AddFieldsFormProps) => { const { toast } = useToast(); + const { _ } = useLingui(); const [isMissingSignatureDialogVisible, setIsMissingSignatureDialogVisible] = useState(false); @@ -568,7 +571,10 @@ export const AddFieldsFormPartial = ({ {showAdvancedSettings && currentField ? ( - {FRIENDLY_FIELD_TYPE[selectedField]} + {parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[selectedField])}
)} @@ -684,8 +690,7 @@ export const AddFieldsFormPartial = ({ {recipientsByRoleToDisplay.map(([role, roleRecipients], roleIndex) => (
- {/* Todo: Translations - Add plural translations. */} - {`${RECIPIENT_ROLES_DESCRIPTION_ENG[role].roleName}s`} + {_(RECIPIENT_ROLES_DESCRIPTION_ENG[role].roleNamePlural)}
{roleRecipients.length === 0 && ( @@ -997,7 +1002,7 @@ export const AddFieldsFormPartial = ({ )} > - Radio + Radio

@@ -1023,7 +1028,8 @@ export const AddFieldsFormPartial = ({ )} > - Checkbox + {/* Not translated on purpose. */} + Checkbox

diff --git a/packages/ui/primitives/document-flow/add-signature.types.ts b/packages/ui/primitives/document-flow/add-signature.types.ts index 29c505a66..1439a4bb0 100644 --- a/packages/ui/primitives/document-flow/add-signature.types.ts +++ b/packages/ui/primitives/document-flow/add-signature.types.ts @@ -1,10 +1,11 @@ +import { msg } from '@lingui/macro'; import { z } from 'zod'; export const ZAddSignatureFormSchema = z.object({ email: z .string() - .min(1, { message: 'Email is required' }) - .email({ message: 'Invalid email address' }), + .min(1, { message: msg`Email is required`.id }) + .email({ message: msg`Invalid email address`.id }), name: z.string(), customText: z.string(), number: z.number().optional(), diff --git a/packages/ui/primitives/document-flow/add-signers.tsx b/packages/ui/primitives/document-flow/add-signers.tsx index 7c3d2a96e..9c94fcc7a 100644 --- a/packages/ui/primitives/document-flow/add-signers.tsx +++ b/packages/ui/primitives/document-flow/add-signers.tsx @@ -504,7 +504,7 @@ export const AddSignersFormPartial = ({ ; diff --git a/packages/ui/primitives/document-flow/show-field-item.tsx b/packages/ui/primitives/document-flow/show-field-item.tsx index 5cc2885d6..ced978e7c 100644 --- a/packages/ui/primitives/document-flow/show-field-item.tsx +++ b/packages/ui/primitives/document-flow/show-field-item.tsx @@ -2,10 +2,12 @@ import { Caveat } from 'next/font/google'; +import { useLingui } from '@lingui/react'; import type { Prisma } from '@prisma/client'; import { createPortal } from 'react-dom'; import { useFieldPageCoords } from '@documenso/lib/client-only/hooks/use-field-page-coords'; +import { parseMessageDescriptor } from '@documenso/lib/utils/i18n'; import { FieldType } from '@documenso/prisma/client'; import { cn } from '../../lib/utils'; @@ -25,6 +27,8 @@ export type ShowFieldItemProps = { }; export const ShowFieldItem = ({ field, recipients }: ShowFieldItemProps) => { + const { _ } = useLingui(); + const coords = useFieldPageCoords(field); const signerEmail = @@ -47,7 +51,7 @@ export const ShowFieldItem = ({ field, recipients }: ShowFieldItemProps) => { field.type === FieldType.SIGNATURE && fontCaveat.className, )} > - {FRIENDLY_FIELD_TYPE[field.type]} + {parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[field.type])}

{signerEmail} diff --git a/packages/ui/primitives/document-flow/types.ts b/packages/ui/primitives/document-flow/types.ts index c98d71434..ca43ae2fc 100644 --- a/packages/ui/primitives/document-flow/types.ts +++ b/packages/ui/primitives/document-flow/types.ts @@ -1,4 +1,5 @@ import type { MessageDescriptor } from '@lingui/core'; +import { msg } from '@lingui/macro'; import { z } from 'zod'; import { ZFieldMetaSchema } from '@documenso/lib/types/field-meta'; @@ -44,18 +45,18 @@ export const ZDocumentFlowFormSchema = z.object({ export type TDocumentFlowFormSchema = z.infer; -export const FRIENDLY_FIELD_TYPE: Record = { - [FieldType.SIGNATURE]: 'Signature', - [FieldType.FREE_SIGNATURE]: 'Free Signature', - [FieldType.INITIALS]: 'Initials', - [FieldType.TEXT]: 'Text', - [FieldType.DATE]: 'Date', - [FieldType.EMAIL]: 'Email', - [FieldType.NAME]: 'Name', - [FieldType.NUMBER]: 'Number', - [FieldType.RADIO]: 'Radio', - [FieldType.CHECKBOX]: 'Checkbox', - [FieldType.DROPDOWN]: 'Select', +export const FRIENDLY_FIELD_TYPE: Record = { + [FieldType.SIGNATURE]: msg`Signature`, + [FieldType.FREE_SIGNATURE]: msg`Free Signature`, + [FieldType.INITIALS]: msg`Initials`, + [FieldType.TEXT]: msg`Text`, + [FieldType.DATE]: msg`Date`, + [FieldType.EMAIL]: msg`Email`, + [FieldType.NAME]: msg`Name`, + [FieldType.NUMBER]: msg`Number`, + [FieldType.RADIO]: `Radio`, + [FieldType.CHECKBOX]: `Checkbox`, + [FieldType.DROPDOWN]: `Select`, }; export interface DocumentFlowStep { diff --git a/packages/ui/primitives/form/form-error-message.tsx b/packages/ui/primitives/form/form-error-message.tsx index e429799da..7de28b585 100644 --- a/packages/ui/primitives/form/form-error-message.tsx +++ b/packages/ui/primitives/form/form-error-message.tsx @@ -1,3 +1,4 @@ +import { useLingui } from '@lingui/react'; import { AnimatePresence, motion } from 'framer-motion'; import { cn } from '../../lib/utils'; @@ -12,6 +13,15 @@ const isErrorWithMessage = (error: unknown): error is { message?: string } => { }; export const FormErrorMessage = ({ error, className }: FormErrorMessageProps) => { + const { i18n } = useLingui(); + + let errorMessage = isErrorWithMessage(error) ? error.message : ''; + + // Checks to see if there's a translation for the string, since we're passing IDs for Zod errors. + if (typeof errorMessage === 'string' && i18n.t(errorMessage)) { + errorMessage = i18n.t(errorMessage); + } + return ( {isErrorWithMessage(error) && ( @@ -30,7 +40,7 @@ export const FormErrorMessage = ({ error, className }: FormErrorMessageProps) => }} className={cn('text-xs text-red-500', className)} > - {error.message} + {errorMessage} )} diff --git a/packages/ui/primitives/form/form.tsx b/packages/ui/primitives/form/form.tsx index f500accae..6614fccbe 100644 --- a/packages/ui/primitives/form/form.tsx +++ b/packages/ui/primitives/form/form.tsx @@ -1,5 +1,6 @@ import * as React from 'react'; +import { useLingui } from '@lingui/react'; import type * as LabelPrimitive from '@radix-ui/react-label'; import { Slot } from '@radix-ui/react-slot'; import { AnimatePresence, motion } from 'framer-motion'; @@ -136,13 +137,21 @@ const FormMessage = React.forwardRef< HTMLParagraphElement, React.HTMLAttributes >(({ className, children, ...props }, ref) => { + const { i18n } = useLingui(); + const { error, formMessageId } = useFormField(); - const body = error ? String(error?.message) : children; + + let body = error ? String(error?.message) : children; if (!body) { return null; } + // Checks to see if there's a translation for the string, since we're passing IDs for Zod errors. + if (typeof body === 'string' && i18n.t(body)) { + body = i18n.t(body); + } + return ( import('./pdf-viewer'), { @@ -10,7 +11,9 @@ export const LazyPDFViewer = dynamic(async () => import('./pdf-viewer'), {

-

Loading document...

+

+ Loading document... +

), }); diff --git a/packages/ui/primitives/pdf-viewer.tsx b/packages/ui/primitives/pdf-viewer.tsx index a1bce432d..95a380eb5 100644 --- a/packages/ui/primitives/pdf-viewer.tsx +++ b/packages/ui/primitives/pdf-viewer.tsx @@ -2,6 +2,8 @@ import React, { useEffect, useMemo, useRef, useState } from 'react'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; import { Loader } from 'lucide-react'; import { type PDFDocumentProxy, PasswordResponses } from 'pdfjs-dist'; import { Document as PDFDocument, Page as PDFPage, pdfjs } from 'react-pdf'; @@ -38,7 +40,9 @@ const PDFLoader = () => ( <> -

Loading document...

+

+ Loading document... +

); @@ -61,6 +65,7 @@ export const PDFViewer = ({ onPageClick, ...props }: PDFViewerProps) => { + const { _ } = useLingui(); const { toast } = useToast(); const $el = useRef(null); @@ -158,8 +163,8 @@ export const PDFViewer = ({ console.error(err); toast({ - title: 'Error', - description: 'An error occurred while loading the document.', + title: _(msg`Error`), + description: _(msg`An error occurred while loading the document.`), variant: 'destructive', }); } @@ -211,8 +216,12 @@ export const PDFViewer = ({
{pdfError ? (
-

Something went wrong while loading the document.

-

Please try again or contact our support.

+

+ Something went wrong while loading the document. +

+

+ Please try again or contact our support. +

) : ( @@ -222,8 +231,12 @@ export const PDFViewer = ({ error={
-

Something went wrong while loading the document.

-

Please try again or contact our support.

+

+ Something went wrong while loading the document. +

+

+ Please try again or contact our support. +

} @@ -243,7 +256,9 @@ export const PDFViewer = ({ />

- Page {i + 1} of {numPages} + + Page {i + 1} of {numPages} +

))} diff --git a/packages/ui/primitives/template-flow/add-template-fields.tsx b/packages/ui/primitives/template-flow/add-template-fields.tsx index 4070c0932..ec5bcef07 100644 --- a/packages/ui/primitives/template-flow/add-template-fields.tsx +++ b/packages/ui/primitives/template-flow/add-template-fields.tsx @@ -5,6 +5,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { Caveat } from 'next/font/google'; import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; import { CalendarDays, CheckSquare, @@ -28,6 +29,7 @@ import { ZFieldMetaSchema, } from '@documenso/lib/types/field-meta'; import { nanoid } from '@documenso/lib/universal/id'; +import { parseMessageDescriptor } from '@documenso/lib/utils/i18n'; import type { Field, Recipient } from '@documenso/prisma/client'; import { FieldType, RecipientRole } from '@documenso/prisma/client'; import { cn } from '@documenso/ui/lib/utils'; @@ -85,6 +87,8 @@ export const AddTemplateFieldsFormPartial = ({ onSubmit, teamId, }: AddTemplateFieldsFormProps) => { + const { _ } = useLingui(); + const { isWithinPageBounds, getFieldPosition, getPage } = useDocumentElement(); const { currentStep, totalSteps, previousStep } = useStep(); const [showAdvancedSettings, setShowAdvancedSettings] = useState(false); @@ -400,7 +404,10 @@ export const AddTemplateFieldsFormPartial = ({ {showAdvancedSettings && currentField ? ( - {FRIENDLY_FIELD_TYPE[selectedField]} + {parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[selectedField])}
)} @@ -501,8 +508,7 @@ export const AddTemplateFieldsFormPartial = ({ {recipientsByRoleToDisplay.map(([role, roleRecipients], roleIndex) => (
- {/* Todo: Translations - Add plural translations. */} - {`${RECIPIENT_ROLES_DESCRIPTION_ENG[role].roleName}s`} + {_(RECIPIENT_ROLES_DESCRIPTION_ENG[role].roleNamePlural)}
{roleRecipients.length === 0 && ( @@ -785,7 +791,7 @@ export const AddTemplateFieldsFormPartial = ({ )} > - Checkbox + Checkbox

From 88eaec91c944d39c3be3573491a015be8cb3e711 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Fri, 1 Nov 2024 11:27:09 +0900 Subject: [PATCH 10/17] chore: extract translations --- packages/lib/translations/de/web.po | 32 ++++++++++++++--------------- packages/lib/translations/en/web.po | 32 ++++++++++++++--------------- packages/lib/translations/es/web.po | 32 ++++++++++++++--------------- packages/lib/translations/fr/web.po | 32 ++++++++++++++--------------- 4 files changed, 64 insertions(+), 64 deletions(-) diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index aab337fde..f88442e79 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -820,8 +820,8 @@ msgstr "Klicken Sie, um den Signatur-Link zu kopieren, um ihn an den Empfänger #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:115 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:439 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:318 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:440 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:319 msgid "Click to insert field" msgstr "Klicken Sie, um das Feld einzufügen" @@ -838,8 +838,8 @@ msgid "Close" msgstr "Schließen" #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:429 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:308 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:430 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:309 #: apps/web/src/components/forms/v2/signup.tsx:534 msgid "Complete" msgstr "Vollständig" @@ -1493,8 +1493,8 @@ msgstr "" #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 #: 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:376 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:256 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:257 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:169 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153 #: apps/web/src/components/forms/forgot-password.tsx:81 @@ -1682,8 +1682,8 @@ msgstr "Haben Sie Ihr Passwort vergessen?" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:326 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:362 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:242 #: apps/web/src/components/forms/profile.tsx:110 #: apps/web/src/components/forms/v2/signup.tsx:312 msgid "Full Name" @@ -2139,8 +2139,8 @@ msgstr "Neuer Teamowner" msgid "New Template" msgstr "Neue Vorlage" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:420 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:299 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:421 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:300 #: apps/web/src/components/forms/v2/signup.tsx:521 msgid "Next" msgstr "Nächster" @@ -2864,8 +2864,8 @@ msgstr "Unterzeichnen als {0} <0>({1})" msgid "Sign as<0>{0} <1>({1})" msgstr "Unterzeichnen als<0>{0} <1>({1})" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:329 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:209 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:330 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:210 msgid "Sign document" msgstr "Dokument unterschreiben" @@ -2897,8 +2897,8 @@ msgstr "Melden Sie sich bei Ihrem Konto an" msgid "Sign Out" msgstr "Ausloggen" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:350 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:230 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:351 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:231 msgid "Sign the document to complete the process." msgstr "Unterschreiben Sie das Dokument, um den Vorgang abzuschließen." @@ -2925,8 +2925,8 @@ msgstr "Registrieren mit OIDC" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:270 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:392 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:271 #: apps/web/src/components/forms/profile.tsx:132 msgid "Signature" msgstr "Unterschrift" diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index 23f7bef13..d34d13ac6 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -815,8 +815,8 @@ msgstr "Click to copy signing link for sending to recipient" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:115 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:439 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:318 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:440 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:319 msgid "Click to insert field" msgstr "Click to insert field" @@ -833,8 +833,8 @@ msgid "Close" msgstr "Close" #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:429 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:308 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:430 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:309 #: apps/web/src/components/forms/v2/signup.tsx:534 msgid "Complete" msgstr "Complete" @@ -1488,8 +1488,8 @@ msgstr "Electronic Signature Disclosure" #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 #: 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:376 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:256 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:257 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:169 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153 #: apps/web/src/components/forms/forgot-password.tsx:81 @@ -1677,8 +1677,8 @@ msgstr "Forgot your password?" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:326 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:362 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:242 #: apps/web/src/components/forms/profile.tsx:110 #: apps/web/src/components/forms/v2/signup.tsx:312 msgid "Full Name" @@ -2134,8 +2134,8 @@ msgstr "New team owner" msgid "New Template" msgstr "New Template" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:420 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:299 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:421 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:300 #: apps/web/src/components/forms/v2/signup.tsx:521 msgid "Next" msgstr "Next" @@ -2859,8 +2859,8 @@ msgstr "Sign as {0} <0>({1})" msgid "Sign as<0>{0} <1>({1})" msgstr "Sign as<0>{0} <1>({1})" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:329 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:209 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:330 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:210 msgid "Sign document" msgstr "Sign document" @@ -2892,8 +2892,8 @@ msgstr "Sign in to your account" msgid "Sign Out" msgstr "Sign Out" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:350 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:230 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:351 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:231 msgid "Sign the document to complete the process." msgstr "Sign the document to complete the process." @@ -2920,8 +2920,8 @@ msgstr "Sign Up with OIDC" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:270 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:392 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:271 #: apps/web/src/components/forms/profile.tsx:132 msgid "Signature" msgstr "Signature" diff --git a/packages/lib/translations/es/web.po b/packages/lib/translations/es/web.po index 5c6fe014f..bda803f3c 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -820,8 +820,8 @@ msgstr "Haga clic para copiar el enlace de firma para enviar al destinatario" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:115 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:439 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:318 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:440 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:319 msgid "Click to insert field" msgstr "Haga clic para insertar campo" @@ -838,8 +838,8 @@ msgid "Close" msgstr "Cerrar" #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:429 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:308 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:430 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:309 #: apps/web/src/components/forms/v2/signup.tsx:534 msgid "Complete" msgstr "Completo" @@ -1493,8 +1493,8 @@ msgstr "" #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 #: 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:376 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:256 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:257 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:169 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153 #: apps/web/src/components/forms/forgot-password.tsx:81 @@ -1682,8 +1682,8 @@ msgstr "¿Olvidaste tu contraseña?" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:326 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:362 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:242 #: apps/web/src/components/forms/profile.tsx:110 #: apps/web/src/components/forms/v2/signup.tsx:312 msgid "Full Name" @@ -2139,8 +2139,8 @@ msgstr "Nuevo propietario del equipo" msgid "New Template" msgstr "Nueva plantilla" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:420 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:299 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:421 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:300 #: apps/web/src/components/forms/v2/signup.tsx:521 msgid "Next" msgstr "Siguiente" @@ -2864,8 +2864,8 @@ msgstr "Firmar como {0} <0>({1})" msgid "Sign as<0>{0} <1>({1})" msgstr "Firmar como<0>{0} <1>({1})" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:329 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:209 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:330 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:210 msgid "Sign document" msgstr "Firmar documento" @@ -2897,8 +2897,8 @@ msgstr "Inicia sesión en tu cuenta" msgid "Sign Out" msgstr "Cerrar sesión" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:350 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:230 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:351 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:231 msgid "Sign the document to complete the process." msgstr "Firma el documento para completar el proceso." @@ -2925,8 +2925,8 @@ msgstr "Regístrate con OIDC" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:270 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:392 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:271 #: apps/web/src/components/forms/profile.tsx:132 msgid "Signature" msgstr "Firma" diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po index 7ba885755..1b1c0864a 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -820,8 +820,8 @@ msgstr "Cliquez pour copier le lien de signature à envoyer au destinataire" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:115 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:439 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:318 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:440 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:319 msgid "Click to insert field" msgstr "Cliquez pour insérer le champ" @@ -838,8 +838,8 @@ msgid "Close" msgstr "Fermer" #: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:429 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:308 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:430 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:309 #: apps/web/src/components/forms/v2/signup.tsx:534 msgid "Complete" msgstr "Compléter" @@ -1493,8 +1493,8 @@ msgstr "" #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 #: 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:376 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:256 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:257 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:169 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153 #: apps/web/src/components/forms/forgot-password.tsx:81 @@ -1682,8 +1682,8 @@ msgstr "Mot de passe oublié ?" #: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:326 #: apps/web/src/app/(signing)/sign/[token]/form.tsx:178 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:362 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:242 #: apps/web/src/components/forms/profile.tsx:110 #: apps/web/src/components/forms/v2/signup.tsx:312 msgid "Full Name" @@ -2139,8 +2139,8 @@ msgstr "Nouveau propriétaire d'équipe" msgid "New Template" msgstr "Nouveau modèle" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:420 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:299 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:421 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:300 #: apps/web/src/components/forms/v2/signup.tsx:521 msgid "Next" msgstr "Suivant" @@ -2864,8 +2864,8 @@ msgstr "Signer comme {0} <0>({1})" msgid "Sign as<0>{0} <1>({1})" msgstr "Signer comme<0>{0} <1>({1})" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:329 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:209 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:330 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:210 msgid "Sign document" msgstr "Signer le document" @@ -2897,8 +2897,8 @@ msgstr "Connectez-vous à votre compte" msgid "Sign Out" msgstr "Déconnexion" -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:350 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:230 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:351 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:231 msgid "Sign the document to complete the process." msgstr "Signez le document pour terminer le processus." @@ -2925,8 +2925,8 @@ msgstr "S'inscrire avec OIDC" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:192 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195 #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225 -#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391 -#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:270 +#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:392 +#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:271 #: apps/web/src/components/forms/profile.tsx:132 msgid "Signature" msgstr "Signature" From f42e600e3fa7804435bcfcbe7beeca1c207c536b Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Fri, 1 Nov 2024 12:37:54 +0900 Subject: [PATCH 11/17] chore: update workflow --- .github/workflows/translations-upload.yml | 1 - .../app/(teams)/t/[teamUrl]/settings/tokens/page.tsx | 10 ++-------- packages/lib/translations/de/web.po | 10 +--------- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/.github/workflows/translations-upload.yml b/.github/workflows/translations-upload.yml index 8a8564c29..cb69d6338 100644 --- a/.github/workflows/translations-upload.yml +++ b/.github/workflows/translations-upload.yml @@ -21,7 +21,6 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: - ref: ${{ github.event.pull_request.head.ref }} token: ${{ secrets.GH_PAT }} - uses: ./.github/actions/node-install diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx index 1ff9c9afa..43b85483e 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx @@ -97,17 +97,11 @@ export default async function ApiTokensPage({ params }: ApiTokensPageProps) {
{token.name}

- - Created on - {i18n.date(token.createdAt, DateTime.DATETIME_FULL)} - + Created on {i18n.date(token.createdAt, DateTime.DATETIME_FULL)}

{token.expires ? (

- - Expires on - {i18n.date(token.expires, DateTime.DATETIME_FULL)} - + Expires on {i18n.date(token.expires, DateTime.DATETIME_FULL)}

) : (

diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index f88442e79..3fce8d693 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -1063,10 +1063,6 @@ msgstr "Erstellt am" msgid "Created on {0}" msgstr "Erstellt am {0}" -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 -msgid "Created on{0}" -msgstr "" - #: apps/web/src/components/forms/password.tsx:107 msgid "Current Password" msgstr "Aktuelles Passwort" @@ -1639,11 +1635,7 @@ msgstr "Abgelaufen" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 msgid "Expires on {0}" -msgstr "" - -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 -msgid "Expires on{0}" -msgstr "Läuft ab am{0}" +msgstr "Läuft ab am {0}" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:42 msgid "Failed to reseal document" From 378e515843e2731dbfff0e1ed208347d587f0d48 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Fri, 1 Nov 2024 12:56:07 +0900 Subject: [PATCH 12/17] chore: extract translations --- packages/lib/translations/de/web.po | 14 ++++---------- packages/lib/translations/en/common.po | 4 ---- packages/lib/translations/en/web.po | 22 ++++------------------ packages/lib/translations/es/common.po | 4 ---- packages/lib/translations/es/web.po | 22 ++++------------------ packages/lib/translations/fr/common.po | 4 ---- packages/lib/translations/fr/web.po | 22 ++++------------------ 7 files changed, 16 insertions(+), 76 deletions(-) diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index 3fce8d693..4f8e8bab0 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -1059,6 +1059,7 @@ msgstr "Erstellt am" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:67 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:88 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:93 msgid "Created on {0}" msgstr "Erstellt am {0}" @@ -1109,7 +1110,7 @@ msgstr "" #: 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/delete-template-dialog.tsx:90 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:122 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:121 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:109 @@ -1634,6 +1635,7 @@ msgid "Expired" msgstr "Abgelaufen" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:104 msgid "Expires on {0}" msgstr "Läuft ab am {0}" @@ -1662,10 +1664,6 @@ msgstr "Die Datei darf nicht größer als {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB se msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" msgstr "" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:152 -#~ msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" -#~ msgstr "" - #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 msgid "Forgot your password?" @@ -3592,7 +3590,7 @@ msgid "Token deleted" msgstr "" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:114 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 msgid "Token doesn't have an expiration date" msgstr "" @@ -4441,10 +4439,6 @@ msgstr "Sie haben den Zugriff erfolgreich widerrufen." msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." msgstr "" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:102 -#~ msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." -#~ msgstr "" - #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." msgstr "Sie haben {teamMemberName} aktualisiert." diff --git a/packages/lib/translations/en/common.po b/packages/lib/translations/en/common.po index e2ec7c7c2..37f959cf7 100644 --- a/packages/lib/translations/en/common.po +++ b/packages/lib/translations/en/common.po @@ -181,10 +181,6 @@ msgstr "Ccers" msgid "Character Limit" msgstr "Character Limit" -#: packages/ui/primitives/template-flow/add-template-fields.tsx:794 -#~ msgid "Checkbox" -#~ msgstr "Checkbox" - #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197 msgid "Checkbox values" msgstr "Checkbox values" diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index d34d13ac6..bcd28a642 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -1054,14 +1054,11 @@ msgstr "Created on" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:67 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:88 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:93 msgid "Created on {0}" msgstr "Created on {0}" -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 -msgid "Created on{0}" -msgstr "Created on{0}" - #: apps/web/src/components/forms/password.tsx:107 msgid "Current Password" msgstr "Current Password" @@ -1108,7 +1105,7 @@ msgstr "delete" #: 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/delete-template-dialog.tsx:90 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:122 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:121 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:109 @@ -1633,13 +1630,10 @@ msgid "Expired" msgstr "Expired" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:104 msgid "Expires on {0}" msgstr "Expires on {0}" -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 -msgid "Expires on{0}" -msgstr "Expires on{0}" - #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:42 msgid "Failed to reseal document" msgstr "Failed to reseal document" @@ -1665,10 +1659,6 @@ msgstr "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" msgstr "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:152 -#~ msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" -#~ msgstr "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" - #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 msgid "Forgot your password?" @@ -3595,7 +3585,7 @@ msgid "Token deleted" msgstr "Token deleted" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:114 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 msgid "Token doesn't have an expiration date" msgstr "Token doesn't have an expiration date" @@ -4444,10 +4434,6 @@ msgstr "You have successfully revoked access." msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." msgstr "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:102 -#~ msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." -#~ msgstr "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." - #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." msgstr "You have updated {teamMemberName}." diff --git a/packages/lib/translations/es/common.po b/packages/lib/translations/es/common.po index 8b6ff9230..5dad84e7e 100644 --- a/packages/lib/translations/es/common.po +++ b/packages/lib/translations/es/common.po @@ -186,10 +186,6 @@ msgstr "" msgid "Character Limit" msgstr "Límite de caracteres" -#: packages/ui/primitives/template-flow/add-template-fields.tsx:794 -#~ msgid "Checkbox" -#~ msgstr "Caja de verificación" - #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197 msgid "Checkbox values" msgstr "Valores de Checkbox" diff --git a/packages/lib/translations/es/web.po b/packages/lib/translations/es/web.po index bda803f3c..c6caf0154 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -1059,14 +1059,11 @@ msgstr "Creado el" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:67 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:88 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:93 msgid "Created on {0}" msgstr "Creado el {0}" -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 -msgid "Created on{0}" -msgstr "Creado el{0}" - #: apps/web/src/components/forms/password.tsx:107 msgid "Current Password" msgstr "Contraseña actual" @@ -1113,7 +1110,7 @@ msgstr "" #: 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/delete-template-dialog.tsx:90 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:122 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:121 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:109 @@ -1638,13 +1635,10 @@ msgid "Expired" msgstr "Expirado" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:104 msgid "Expires on {0}" msgstr "Expira el {0}" -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 -msgid "Expires on{0}" -msgstr "Expira el{0}" - #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:42 msgid "Failed to reseal document" msgstr "Falló al volver a sellar el documento" @@ -1670,10 +1664,6 @@ msgstr "El archivo no puede ser mayor a {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" msgstr "" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:152 -#~ msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" -#~ msgstr "" - #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 msgid "Forgot your password?" @@ -3600,7 +3590,7 @@ msgid "Token deleted" msgstr "Token eliminado" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:114 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 msgid "Token doesn't have an expiration date" msgstr "El token no tiene una fecha de expiración" @@ -4449,10 +4439,6 @@ msgstr "Has revocado el acceso con éxito." msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." msgstr "" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:102 -#~ msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." -#~ msgstr "" - #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." msgstr "Has actualizado a {teamMemberName}." diff --git a/packages/lib/translations/fr/common.po b/packages/lib/translations/fr/common.po index 9d6d3be72..6bf5539bd 100644 --- a/packages/lib/translations/fr/common.po +++ b/packages/lib/translations/fr/common.po @@ -186,10 +186,6 @@ msgstr "" msgid "Character Limit" msgstr "Limite de caractères" -#: packages/ui/primitives/template-flow/add-template-fields.tsx:794 -#~ msgid "Checkbox" -#~ msgstr "Case à cocher" - #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197 msgid "Checkbox values" msgstr "Valeurs de case à cocher" diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po index 1b1c0864a..f1c958309 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -1059,14 +1059,11 @@ msgstr "Créé le" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:67 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:88 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:93 msgid "Created on {0}" msgstr "Créé le {0}" -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:100 -msgid "Created on{0}" -msgstr "Créé le{0}" - #: apps/web/src/components/forms/password.tsx:107 msgid "Current Password" msgstr "Mot de passe actuel" @@ -1113,7 +1110,7 @@ msgstr "" #: 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/delete-template-dialog.tsx:90 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:122 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:121 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:109 @@ -1638,13 +1635,10 @@ msgid "Expired" msgstr "Expiré" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:71 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:104 msgid "Expires on {0}" msgstr "Expire le {0}" -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:107 -msgid "Expires on{0}" -msgstr "Expire le{0}" - #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:42 msgid "Failed to reseal document" msgstr "Échec du reseal du document" @@ -1670,10 +1664,6 @@ msgstr "Le fichier ne peut pas dépasser {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} Mo" msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" msgstr "" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:152 -#~ msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>support@documenso.com" -#~ msgstr "" - #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 msgid "Forgot your password?" @@ -3600,7 +3590,7 @@ msgid "Token deleted" msgstr "Jeton supprimé" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 -#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:114 +#: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 msgid "Token doesn't have an expiration date" msgstr "Le jeton n'a pas de date d'expiration" @@ -4449,10 +4439,6 @@ msgstr "Vous avez révoqué l'accès avec succès." msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." msgstr "" -#: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:102 -#~ msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>support@documenso.com for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." -#~ msgstr "" - #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." msgstr "Vous avez mis à jour {teamMemberName}." From 8aa6d8e602d0115f4673613589089c1d71f8a883 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Fri, 1 Nov 2024 15:22:51 +1100 Subject: [PATCH 13/17] chore: add translations (#1433) --- packages/lib/translations/de/common.po | 39 +-- packages/lib/translations/de/marketing.po | 3 +- packages/lib/translations/de/web.po | 335 +++++++++++----------- packages/lib/translations/es/common.po | 39 +-- packages/lib/translations/es/marketing.po | 3 +- packages/lib/translations/es/web.po | 95 +++--- packages/lib/translations/fr/common.po | 39 +-- packages/lib/translations/fr/marketing.po | 3 +- packages/lib/translations/fr/web.po | 95 +++--- 9 files changed, 330 insertions(+), 321 deletions(-) diff --git a/packages/lib/translations/de/common.po b/packages/lib/translations/de/common.po index 8aaf6650f..557739d1d 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-10-18 04:04\n" +"PO-Revision-Date: 2024-11-01 04:00\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -126,7 +126,7 @@ msgstr "Nach der Übermittlung wird ein Dokument automatisch generiert und zu Ih #: packages/ui/primitives/pdf-viewer.tsx:167 msgid "An error occurred while loading the document." -msgstr "" +msgstr "Ein Fehler ist beim Laden des Dokuments aufgetreten." #: packages/lib/constants/recipient-roles.ts:8 msgid "Approve" @@ -142,7 +142,7 @@ msgstr "Genehmiger" #: packages/lib/constants/recipient-roles.ts:44 msgid "Approvers" -msgstr "" +msgstr "Genehmigende" #: packages/lib/constants/recipient-roles.ts:10 msgid "Approving" @@ -180,7 +180,7 @@ msgstr "CC'd" #: packages/lib/constants/recipient-roles.ts:51 msgid "Ccers" -msgstr "" +msgstr "Ccers" #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86 msgid "Character Limit" @@ -225,7 +225,7 @@ msgstr "In die Zwischenablage kopiert" #: packages/ui/components/document/document-share-button.tsx:194 msgid "Copy Link" -msgstr "" +msgstr "Link kopieren" #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" @@ -286,7 +286,7 @@ msgstr "E-Mail" #: packages/ui/primitives/document-flow/add-signature.types.ts:7 msgid "Email is required" -msgstr "" +msgstr "E-Mail ist erforderlich" #: packages/ui/primitives/template-flow/add-template-settings.tsx:184 msgid "Email Options" @@ -363,7 +363,7 @@ msgstr "Schriftgröße" #: packages/ui/primitives/document-flow/types.ts:50 msgid "Free Signature" -msgstr "" +msgstr "Freie Unterschrift" #: packages/ui/components/document/document-global-auth-action-select.tsx:64 msgid "Global recipient action authentication" @@ -400,15 +400,15 @@ msgstr "Authentifizierungsmethode erben" #: packages/ui/primitives/document-flow/types.ts:51 msgid "Initials" -msgstr "" +msgstr "Initialen" #: packages/ui/primitives/document-flow/add-signers.types.ts:17 msgid "Invalid email" -msgstr "" +msgstr "Ungültige E-Mail" #: packages/ui/primitives/document-flow/add-signature.types.ts:8 msgid "Invalid email address" -msgstr "" +msgstr "Ungültige E-Mail-Adresse" #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 @@ -419,7 +419,7 @@ msgstr "Beschriftung" #: packages/ui/primitives/lazy-pdf-viewer.tsx:15 #: packages/ui/primitives/pdf-viewer.tsx:44 msgid "Loading document..." -msgstr "" +msgstr "Lade Dokument..." #: packages/lib/constants/teams.ts:11 msgid "Manager" @@ -519,7 +519,7 @@ msgstr "Seite {0} von {1}" #: packages/ui/primitives/pdf-viewer.tsx:259 msgid "Page {0} of {numPages}" -msgstr "" +msgstr "Seite {0} von {numPages}" #: packages/ui/primitives/document-password-dialog.tsx:62 msgid "Password Required" @@ -538,7 +538,7 @@ msgstr "Platzhalter" #: packages/ui/primitives/pdf-viewer.tsx:223 #: packages/ui/primitives/pdf-viewer.tsx:238 msgid "Please try again or contact our support." -msgstr "" +msgstr "Bitte versuchen Sie es erneut oder kontaktieren Sie unseren Support." #: packages/ui/primitives/template-flow/add-template-fields.tsx:768 msgid "Radio" @@ -589,7 +589,7 @@ msgstr "Pflichtfeld" #: packages/ui/components/document/document-share-button.tsx:147 msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" -msgstr "" +msgstr "Seien Sie versichert, Ihr Dokument ist streng vertraulich und wird niemals geteilt. Nur Ihre Unterzeichnungserfahrung wird hervorgehoben. Teilen Sie Ihre personalisierte Unterschriftkarte, um Ihre Unterschrift zu präsentieren!" #: packages/ui/primitives/data-table-pagination.tsx:55 msgid "Rows per page" @@ -643,7 +643,7 @@ msgstr "Link teilen" #: packages/ui/components/document/document-share-button.tsx:143 msgid "Share your signing experience!" -msgstr "" +msgstr "Teilen Sie Ihre Unterzeichnungserfahrung!" #: packages/ui/primitives/document-flow/add-signers.tsx:680 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:655 @@ -672,11 +672,11 @@ msgstr "Unterzeichner" #: packages/lib/constants/recipient-roles.ts:58 msgid "Signers" -msgstr "" +msgstr "Unterzeichner" #: packages/ui/primitives/document-flow/add-signers.types.ts:36 msgid "Signers must have unique emails" -msgstr "" +msgstr "Unterzeichner müssen eindeutige E-Mails haben" #: packages/lib/constants/recipient-roles.ts:22 msgid "Signing" @@ -693,7 +693,7 @@ msgstr "Etwas ist schief gelaufen" #: packages/ui/primitives/pdf-viewer.tsx:220 #: packages/ui/primitives/pdf-viewer.tsx:235 msgid "Something went wrong while loading the document." -msgstr "" +msgstr "Beim Laden des Dokuments ist ein Fehler aufgetreten." #: packages/ui/primitives/data-table.tsx:136 msgid "Something went wrong." @@ -856,7 +856,7 @@ msgstr "Betrachter" #: packages/lib/constants/recipient-roles.ts:65 msgid "Viewers" -msgstr "" +msgstr "Betrachter" #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" @@ -877,3 +877,4 @@ msgstr "Sie können derzeit keine Dokumente hochladen." #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Sie haben Ihr Dokumentenlimit erreicht." + diff --git a/packages/lib/translations/de/marketing.po b/packages/lib/translations/de/marketing.po index 0c3a69fe2..51b162dde 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-10-18 04:04\n" +"PO-Revision-Date: 2024-11-01 02:29\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -602,3 +602,4 @@ 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 4f8e8bab0..81d733570 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-10-18 04:04\n" +"PO-Revision-Date: 2024-11-01 04:20\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -119,15 +119,15 @@ msgstr "<0>Absender: Alle" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:5 msgid "1 month" -msgstr "" +msgstr "1 Monat" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:8 msgid "12 months" -msgstr "" +msgstr "12 Monate" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:6 msgid "3 months" -msgstr "" +msgstr "3 Monate" #: apps/web/src/components/partials/not-found.tsx:45 msgid "404 Page not found" @@ -147,11 +147,11 @@ msgstr "404 Vorlage nicht gefunden" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:7 msgid "6 months" -msgstr "" +msgstr "6 Monate" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:4 msgid "7 days" -msgstr "" +msgstr "7 Tage" #: apps/web/src/components/forms/send-confirmation-email.tsx:55 msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." @@ -159,7 +159,7 @@ msgstr "Eine Bestätigungs-E-Mail wurde gesendet, und sie sollte in Kürze in de #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:70 msgid "A device capable of accessing, opening, and reading documents" -msgstr "" +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 msgid "A draft document will be created" @@ -167,7 +167,7 @@ msgstr "Ein Entwurf wird erstellt" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:73 msgid "A means to print or download documents for your records" -msgstr "" +msgstr "Ein Mittel, um Dokumente für Ihre Unterlagen zu drucken oder herunterzuladen" #: apps/web/src/components/forms/token.tsx:127 msgid "A new token was created successfully." @@ -193,7 +193,7 @@ msgstr "Ein Geheimnis, das an deine URL gesendet wird, damit du überprüfen kan #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:64 msgid "A stable internet connection" -msgstr "" +msgstr "Eine stabile Internetverbindung" #: apps/web/src/components/forms/public-profile-form.tsx:198 msgid "A unique URL to access your profile" @@ -214,7 +214,7 @@ msgstr "Akzeptieren" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:33 msgid "Acceptance and Consent" -msgstr "" +msgstr "Zustimmung und Einverständnis" #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:26 msgid "Accepted team invitation" @@ -227,7 +227,7 @@ msgstr "Konto gelöscht" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 msgid "Acknowledgment" -msgstr "" +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 @@ -337,7 +337,7 @@ msgstr "Admin-Panel" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:129 msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." -msgstr "" +msgstr "Nach der elektronischen Unterzeichnung eines Dokuments haben Sie die Möglichkeit, das Dokument für Ihre Unterlagen anzusehen, herunterzuladen und auszudrucken. Es wird dringend empfohlen, eine Kopie aller elektronisch unterschriebenen Dokumente für Ihre persönlichen Unterlagen aufzubewahren. Wir werden ebenfalls eine Kopie des unterzeichneten Dokuments für unsere Unterlagen behalten, jedoch können wir Ihnen nach einer bestimmten Zeit möglicherweise keine Kopie des unterzeichneten Dokuments mehr zur Verfügung stellen." #: apps/web/src/components/formatter/document-status.tsx:46 msgid "All" @@ -353,7 +353,7 @@ msgstr "Alle Dokumente wurden verarbeitet. Alle neuen Dokumente, die gesendet od #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:81 msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." -msgstr "" +msgstr "Alle Dokumente, die mit dem elektronischen Unterzeichnungsprozess zusammenhängen, werden Ihnen elektronisch über unsere Plattform oder per E-Mail zur Verfügung gestellt. Es liegt in Ihrer Verantwortung, sicherzustellen, dass Ihre E-Mail-Adresse aktuell ist und dass Sie unsere E-Mails empfangen und öffnen können." #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:145 msgid "All inserted signatures will be voided" @@ -385,11 +385,11 @@ msgstr "Betrag" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:48 msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." -msgstr "" +msgstr "Eine elektronische Unterschrift, die Sie auf unserer Plattform bereitstellen, durch Klicken auf ein Dokument und Eingabe Ihres Namens oder einer anderen von uns bereitgestellten elektronischen Unterzeichnungsart, ist rechtlich bindend. Sie hat das gleiche Gewicht und die gleiche Durchsetzbarkeit wie eine handschriftliche Unterschrift auf Papier." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:67 msgid "An email account" -msgstr "" +msgstr "Ein E-Mail-Konto" #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:262 msgid "An email containing an invitation will be sent to each member." @@ -465,7 +465,7 @@ msgstr "Ein Fehler ist aufgetreten, während die Vorlage verschoben wurde." #: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:116 msgid "An error occurred while removing the field." -msgstr "" +msgstr "Ein Fehler ist beim Entfernen des Feldes aufgetreten." #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:152 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:126 @@ -594,7 +594,7 @@ msgstr "Genehmigen" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:129 msgid "Approve Document" -msgstr "" +msgstr "Dokument genehmigen" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 msgid "Approved" @@ -705,15 +705,15 @@ msgstr "Durch die Aktivierung von 2FA müssen Sie jedes Mal, wenn Sie sich anmel #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:142 msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." -msgstr "" +msgstr "Indem Sie den elektronischen Unterzeichnungsdienst von Documenso verwenden, bestätigen Sie, dass Sie diese Offenlegung gelesen und verstanden haben. Sie stimmen allen Bedingungen und Konditionen zu, die mit der Verwendung elektronischer Unterschriften und elektronischer Transaktionen verbunden sind, wie hierin dargelegt." #: apps/web/src/components/general/signing-disclosure.tsx:14 msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." -msgstr "" +msgstr "Indem Sie fortfahren, Ihre elektronische Unterschrift zu leisten, erkennen Sie an und stimmen zu, dass sie verwendet wird, um das gegebene Dokument zu unterzeichnen, und die gleiche rechtliche Gültigkeit wie eine handschriftliche Unterschrift hat. Durch den Abschluss des elektronischen Unterzeichnungsprozesses bestätigen Sie Ihr Verständnis und Ihre Akzeptanz dieser Bedingungen." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:92 msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." -msgstr "" +msgstr "Durch die Verwendung der elektronischen Unterschriftsfunktion stimmen Sie zu, Transaktionen durchzuführen und Offenlegungen elektronisch zu erhalten. Sie erkennen an, dass Ihre elektronische Unterschrift auf Dokumenten bindend ist und dass Sie die Bedingungen akzeptieren, die in den Dokumenten dargelegt sind, die Sie unterzeichnen." #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:186 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:190 @@ -913,11 +913,11 @@ msgstr "Bestätigungs-E-Mail gesendet" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:89 msgid "Consent to Electronic Transactions" -msgstr "" +msgstr "Zustimmung zu elektronischen Transaktionen" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:151 msgid "Contact Information" -msgstr "" +msgstr "Kontaktinformationen" #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 msgid "Content" @@ -1099,7 +1099,7 @@ msgstr "Team-Einladung abgelehnt" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:90 msgid "delete" -msgstr "" +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 @@ -1122,11 +1122,11 @@ msgstr "Löschen" #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:56 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:54 msgid "delete {0}" -msgstr "" +msgstr "löschen {0}" #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:50 msgid "delete {teamName}" -msgstr "" +msgstr "löschen {teamName}" #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:137 msgid "Delete account" @@ -1477,11 +1477,11 @@ msgstr "Webhook bearbeiten" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:78 msgid "Electronic Delivery of Documents" -msgstr "" +msgstr "Elektronische Zustellung von Dokumenten" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:17 msgid "Electronic Signature Disclosure" -msgstr "" +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 @@ -1513,7 +1513,7 @@ msgstr "E-Mail-Adresse" #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:80 msgid "Email cannot already exist in the template" -msgstr "" +msgstr "E-Mail darf nicht bereits in der Vorlage vorhanden sein" #: apps/web/src/app/(unauthenticated)/verify-email/[token]/client.tsx:36 msgid "Email Confirmed!" @@ -1662,7 +1662,7 @@ msgstr "Die Datei darf nicht größer als {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB se #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:154 msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" -msgstr "" +msgstr "Für Fragen zu dieser Offenlegung, elektronischen Unterschriften oder einem verwandten Verfahren kontaktieren Sie uns bitte unter: <0>{SUPPORT_EMAIL}" #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 @@ -1776,7 +1776,7 @@ msgstr "Information" #: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:132 msgid "Initials" -msgstr "" +msgstr "Inititalen" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:78 msgid "Inserted" @@ -1846,7 +1846,7 @@ msgstr "Rechnung" #: 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 "" +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." #: apps/web/src/app/(profile)/p/[url]/page.tsx:134 msgid "It looks like {0} hasn't added any documents to their profile yet." @@ -1911,7 +1911,7 @@ msgstr "Team verlassen" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:45 msgid "Legality of Electronic Signatures" -msgstr "" +msgstr "Rechtlichkeit elektronischer Unterschriften" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:264 msgid "Light Mode" @@ -2430,7 +2430,7 @@ msgstr "Bitte geben Sie ein Token von Ihrem Authentifizierer oder einen Backup-C #: apps/web/src/app/(signing)/sign/[token]/form.tsx:169 msgid "Please review the document before signing." -msgstr "" +msgstr "Bitte überprüfen Sie das Dokument vor der Unterzeichnung." #: apps/web/src/components/forms/send-confirmation-email.tsx:64 msgid "Please try again and make sure you enter the correct email address." @@ -2516,7 +2516,7 @@ msgstr "Nur-Lese-Feld" #: apps/web/src/components/general/signing-disclosure.tsx:21 msgid "Read the full <0>signature disclosure." -msgstr "" +msgstr "Lesen Sie die vollständige <0>Offenlegung der Unterschrift." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 msgid "Ready" @@ -2647,7 +2647,7 @@ msgstr "Zahlung klären" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:126 msgid "Retention of Documents" -msgstr "" +msgstr "Aufbewahrung von Dokumenten" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:168 msgid "Retry" @@ -2718,7 +2718,7 @@ msgstr "Nach Name oder E-Mail suchen" #: apps/web/src/components/(dashboard)/document-search/document-search.tsx:42 msgid "Search documents..." -msgstr "" +msgstr "Dokumente suchen..." #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:189 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:217 @@ -2861,7 +2861,7 @@ msgstr "Dokument unterschreiben" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:128 msgid "Sign Document" -msgstr "" +msgstr "Dokument unterzeichnen" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:59 msgid "Sign field" @@ -3091,7 +3091,7 @@ msgstr "Passkey erfolgreich erstellt" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:57 msgid "System Requirements" -msgstr "" +msgstr "Systemanforderungen" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:266 msgid "System Theme" @@ -3271,7 +3271,7 @@ msgstr "Textfarbe" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:24 msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." -msgstr "" +msgstr "Vielen Dank, dass Sie Documenso zur elektronischen Unterzeichnung Ihrer Dokumente verwenden. Der Zweck dieser Offenlegung besteht darin, Sie über den Prozess, die Rechtmäßigkeit und Ihre Rechte in Bezug auf die Verwendung elektronischer Unterschriften auf unserer Plattform zu informieren. Indem Sie sich entscheiden, eine elektronische Unterschrift zu verwenden, stimmen Sie den nachfolgend dargelegten Bedingungen zu." #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." @@ -3301,479 +3301,479 @@ msgstr "Das Dokument wurde erstellt, konnte aber nicht an die Empfänger versend #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:161 msgid "The document will be hidden from your account" -msgstr "" +msgstr "Das Dokument wird von Ihrem Konto verborgen werden" #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 msgid "The document will be immediately sent to recipients if this is checked." -msgstr "" +msgstr "Das Dokument wird sofort an die Empfänger gesendet, wenn dies angehakt ist." #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:175 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:179 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:203 msgid "The events that will trigger a webhook to be sent to your URL." -msgstr "" +msgstr "Die Ereignisse, die einen Webhook auslösen, der an Ihre URL gesendet wird." #: apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx:114 msgid "The ownership of team <0>{0} has been successfully transferred to you." -msgstr "" +msgstr "Die Inhaberschaft des Teams <0>{0} wurde erfolgreich auf Sie übertragen." #: apps/web/src/components/partials/not-found.tsx:53 msgid "The page you are looking for was moved, removed, renamed or might never have existed." -msgstr "" +msgstr "Die Seite, die Sie suchen, wurde verschoben, entfernt, umbenannt oder hat möglicherweise nie existiert." #: apps/web/src/components/forms/public-profile-form.tsx:118 msgid "The profile link has been copied to your clipboard" -msgstr "" +msgstr "Der Profil-Link wurde in die Zwischenablage kopiert" #: apps/web/src/app/(profile)/p/[url]/not-found.tsx:23 msgid "The profile you are looking for could not be found." -msgstr "" +msgstr "Das Profil, nach dem Sie suchen, konnte nicht gefunden werden." #: apps/web/src/components/templates/manage-public-template-dialog.tsx:380 msgid "The public description that will be displayed with this template" -msgstr "" +msgstr "Die öffentliche Beschreibung, die mit dieser Vorlage angezeigt wird" #: apps/web/src/components/templates/manage-public-template-dialog.tsx:358 msgid "The public name for your template" -msgstr "" +msgstr "Der öffentliche Name für Ihre Vorlage" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:119 msgid "The recipient has been updated successfully" -msgstr "" +msgstr "Der Empfänger wurde erfolgreich aktualisiert" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:267 msgid "The selected team member will receive an email which they must accept before the team is transferred" -msgstr "" +msgstr "Das ausgewählte Teammitglied erhält eine E-Mail, die es akzeptieren muss, bevor das Team übertragen wird" #: apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx:41 msgid "The signing link has been copied to your clipboard." -msgstr "" +msgstr "Der Signierlink wurde in die Zwischenablage kopiert." #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:105 msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." -msgstr "" +msgstr "Das Seitenbanner ist eine Nachricht, die oben auf der Seite angezeigt wird. Es kann verwendet werden, um Ihren Nutzern wichtige Informationen anzuzeigen." #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:45 msgid "The team transfer invitation has been successfully deleted." -msgstr "" +msgstr "Die Einladung zur Teamübertragung wurde erfolgreich gelöscht." #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:86 msgid "The team transfer request to <0>{0} has expired." -msgstr "" +msgstr "Die Teamübertragungsanfrage an <0>{0} ist abgelaufen." #: apps/web/src/app/(teams)/t/[teamUrl]/not-found.tsx:23 msgid "The team you are looking for may have been removed, renamed or may have never existed." -msgstr "" +msgstr "Das Team, das Sie suchen, wurde möglicherweise entfernt, umbenannt oder hat möglicherweise nie existiert." #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:49 msgid "The template has been successfully moved to the selected team." -msgstr "" +msgstr "Die Vorlage wurde erfolgreich in das ausgewählte Team verschoben." #: apps/web/src/components/templates/manage-public-template-dialog.tsx:443 msgid "The template will be removed from your profile" -msgstr "" +msgstr "Die Vorlage wird von Ihrem Profil entfernt" #: apps/web/src/app/(recipient)/d/[token]/not-found.tsx:23 msgid "The template you are looking for may have been disabled, deleted or may have never existed." -msgstr "" +msgstr "Die Vorlage, die Sie suchen, wurde möglicherweise deaktiviert, gelöscht oder hat möglicherweise nie existiert." #: apps/web/src/components/forms/token.tsx:106 msgid "The token was copied to your clipboard." -msgstr "" +msgstr "Der Token wurde in die Zwischenablage kopiert." #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:88 msgid "The token was deleted successfully." -msgstr "" +msgstr "Das Token wurde erfolgreich gelöscht." #: apps/web/src/app/(unauthenticated)/reset-password/page.tsx:24 msgid "The token you have used to reset your password is either expired or it never existed. If you have still forgotten your password, please request a new reset link." -msgstr "" +msgstr "Der Token, den Sie zur Zurücksetzung Ihres Passworts verwendet haben, ist entweder abgelaufen oder hat nie existiert. Wenn Sie Ihr Passwort immer noch vergessen haben, fordern Sie bitte einen neuen Zurücksetzungslink an." #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:124 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:128 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:152 msgid "The URL for Documenso to send webhook events to." -msgstr "" +msgstr "Die URL für Documenso, um Webhook-Ereignisse zu senden." #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:79 msgid "The webhook has been successfully deleted." -msgstr "" +msgstr "Das Webhook wurde erfolgreich gelöscht." #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:75 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:81 msgid "The webhook has been updated successfully." -msgstr "" +msgstr "Der Webhook wurde erfolgreich aktualisiert." #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:93 msgid "The webhook was successfully created." -msgstr "" +msgstr "Der Webhook wurde erfolgreich erstellt." #: apps/web/src/app/(dashboard)/documents/empty-state.tsx:25 msgid "There are no active drafts at the current moment. You can upload a document to start drafting." -msgstr "" +msgstr "Es gibt derzeit keine aktiven Entwürfe. Sie können ein Dokument hochladen, um mit dem Entwerfen zu beginnen." #: apps/web/src/app/(dashboard)/documents/empty-state.tsx:20 msgid "There are no completed documents yet. Documents that you have created or received will appear here once completed." -msgstr "" +msgstr "Es gibt noch keine abgeschlossenen Dokumente. Dokumente, die Sie erstellt oder erhalten haben, werden hier angezeigt, sobald sie abgeschlossen sind." #: apps/web/src/app/(dashboard)/settings/teams/team-email-usage.tsx:70 msgid "They have permission on your behalf to:" -msgstr "" +msgstr "Sie haben in Ihrem Namen die Erlaubnis, zu:" #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:110 #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:110 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:109 msgid "This action is not reversible. Please be certain." -msgstr "" +msgstr "Diese Aktion ist nicht umkehrbar. Bitte seien Sie sicher." #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:81 msgid "This document could not be deleted at this time. Please try again." -msgstr "" +msgstr "Dieses Dokument konnte derzeit nicht gelöscht werden. Bitte versuchen Sie es erneut." #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:73 msgid "This document could not be duplicated at this time. Please try again." -msgstr "" +msgstr "Dieses Dokument konnte derzeit nicht dupliziert werden. Bitte versuche es erneut." #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:106 msgid "This document could not be re-sent at this time. Please try again." -msgstr "" +msgstr "Dieses Dokument konnte zu diesem Zeitpunkt nicht erneut gesendet werden. Bitte versuchen Sie es erneut." #: apps/web/src/app/(signing)/sign/[token]/complete/page.tsx:180 msgid "This document has been cancelled by the owner and is no longer available for others to sign." -msgstr "" +msgstr "Dieses Dokument wurde vom Eigentümer storniert und steht anderen nicht mehr zur Unterzeichnung zur Verfügung." #: apps/web/src/app/(signing)/sign/[token]/no-longer-available.tsx:52 msgid "This document has been cancelled by the owner." -msgstr "" +msgstr "Dieses Dokument wurde vom Eigentümer storniert." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:219 msgid "This document has been signed by all recipients" -msgstr "" +msgstr "Dieses Dokument wurde von allen Empfängern unterschrieben" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:222 msgid "This document is currently a draft and has not been sent" -msgstr "" +msgstr "Dieses Dokument ist momentan ein Entwurf und wurde nicht gesendet" #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." -msgstr "" +msgstr "Diese E-Mail-Adresse wird bereits von einem anderen Team verwendet." #: apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx:40 msgid "This link is invalid or has expired. Please contact your team to resend a transfer request." -msgstr "" +msgstr "Dieser Link ist ungültig oder abgelaufen. Bitte kontaktieren Sie Ihr Team, um eine erneute Überweisungsanfrage zu senden." #: apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx:37 msgid "This link is invalid or has expired. Please contact your team to resend a verification." -msgstr "" +msgstr "Dieser Link ist ungültig oder abgelaufen. Bitte kontaktieren Sie Ihr Team, um eine neue Bestätigungsanfrage zu senden." #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:208 msgid "This passkey has already been registered." -msgstr "" +msgstr "Dieser Zugangsschlüssel wurde bereits registriert." #: apps/web/src/components/forms/signin.tsx:200 msgid "This passkey is not configured for this application. Please login and add one in the user settings." -msgstr "" +msgstr "Dieser Passkey ist für diese Anwendung nicht konfiguriert. Bitte melden Sie sich an und fügen Sie einen in den Benutzereinstellungen hinzu." #: apps/web/src/components/(teams)/dialogs/create-team-checkout-dialog.tsx:148 msgid "This price includes minimum 5 seats." -msgstr "" +msgstr "Dieser Preis beinhaltet mindestens 5 Plätze." #: apps/web/src/components/forms/signin.tsx:202 msgid "This session has expired. Please try again." -msgstr "" +msgstr "Diese Sitzung ist abgelaufen. Bitte versuchen Sie es erneut." #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:195 msgid "This team, and any associated data excluding billing invoices will be permanently deleted." -msgstr "" +msgstr "Dieses Team und alle zugehörigen Daten, ausgenommen Rechnungen, werden permanent gelöscht." #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:51 msgid "This template could not be deleted at this time. Please try again." -msgstr "" +msgstr "Diese Vorlage konnte derzeit nicht gelöscht werden. Bitte versuchen Sie es erneut." #: apps/web/src/app/(unauthenticated)/team/decline/[token]/page.tsx:43 msgid "This token is invalid or has expired. No action is needed." -msgstr "" +msgstr "Dieses Token ist ungültig oder abgelaufen. Es sind keine weiteren Maßnahmen erforderlich." #: apps/web/src/app/(unauthenticated)/team/invite/[token]/page.tsx:43 msgid "This token is invalid or has expired. Please contact your team for a new invitation." -msgstr "" +msgstr "Dieser Token ist ungültig oder abgelaufen. Bitte kontaktieren Sie Ihr Team für eine neue Einladung." #: apps/web/src/components/(teams)/dialogs/create-team-dialog.tsx:98 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:87 msgid "This URL is already in use." -msgstr "" +msgstr "Diese URL wird bereits verwendet." #: apps/web/src/components/forms/v2/signup.tsx:145 msgid "This username has already been taken" -msgstr "" +msgstr "Dieser Benutzername ist bereits vergeben" #: apps/web/src/components/forms/public-profile-claim-dialog.tsx:98 msgid "This username is already taken" -msgstr "" +msgstr "Dieser Benutzername ist bereits vergeben" #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:77 msgid "Time" -msgstr "" +msgstr "Zeit" #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:97 msgid "Time zone" -msgstr "" +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/data-table-templates.tsx:61 msgid "Title" -msgstr "" +msgstr "Titel" #: apps/web/src/app/(unauthenticated)/team/invite/[token]/page.tsx:106 msgid "To accept this invitation you must create an account." -msgstr "" +msgstr "Um diese Einladung anzunehmen, müssen Sie ein Konto erstellen." #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:125 msgid "To change the email you must remove and add a new email address." -msgstr "" +msgstr "Um die E-Mail zu ändern, müssen Sie die aktuelle entfernen und eine neue hinzufügen." #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:117 msgid "To confirm, please enter the accounts email address <0/>({0})." -msgstr "" +msgstr "Um zu bestätigen, geben Sie bitte die E-Mail-Adresse des Kontos <0/>({0}) ein." #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:117 msgid "To confirm, please enter the reason" -msgstr "" +msgstr "Um zu bestätigen, geben Sie bitte den Grund ein" #: apps/web/src/app/(unauthenticated)/team/decline/[token]/page.tsx:101 msgid "To decline this invitation you must create an account." -msgstr "" +msgstr "Um diese Einladung abzulehnen, müssen Sie ein Konto erstellen." #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:197 msgid "To enable two-factor authentication, scan the following QR code using your authenticator app." -msgstr "" +msgstr "Um die Zwei-Faktor-Authentifizierung zu aktivieren, scannen Sie den folgenden QR-Code mit Ihrer Authentifizierungs-App." #: apps/web/src/app/(unauthenticated)/unverified-account/page.tsx:23 msgid "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox." -msgstr "" +msgstr "Um Zugang zu Ihrem Konto zu erhalten, bestätigen Sie bitte Ihre E-Mail-Adresse, indem Sie auf den Bestätigungslink in Ihrem Posteingang klicken." #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:54 msgid "To mark this document as viewed, you need to be logged in as <0>{0}" -msgstr "" +msgstr "Um dieses Dokument als angesehen zu markieren, müssen Sie als <0>{0} angemeldet sein" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:60 msgid "To use our electronic signature service, you must have access to:" -msgstr "" +msgstr "Um unseren elektronischen Signaturdienst nutzen zu können, müssen Sie Zugriff auf Folgendes haben:" #: apps/web/src/app/embed/authenticate.tsx:21 msgid "To view this document you need to be signed into your account, please sign in to continue." -msgstr "" +msgstr "Um dieses Dokument anzusehen, müssen Sie in Ihr Konto eingeloggt sein. Bitte melden Sie sich an, um fortzufahren." #: apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx:178 msgid "Toggle the switch to hide your profile from the public." -msgstr "" +msgstr "Schalten Sie den Schalter um, um Ihr Profil vor der Öffentlichkeit zu verbergen." #: apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx:190 msgid "Toggle the switch to show your profile to the public." -msgstr "" +msgstr "Schalten Sie den Schalter um, um Ihr Profil der Öffentlichkeit anzuzeigen." #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:236 msgid "Token" -msgstr "" +msgstr "Token" #: apps/web/src/components/forms/token.tsx:105 msgid "Token copied to clipboard" -msgstr "" +msgstr "Token wurde in die Zwischenablage kopiert" #: apps/web/src/components/forms/token.tsx:126 msgid "Token created" -msgstr "" +msgstr "Token erstellt" #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:87 msgid "Token deleted" -msgstr "" +msgstr "Token gelöscht" #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:75 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:108 msgid "Token doesn't have an expiration date" -msgstr "" +msgstr "Token hat kein Ablaufdatum" #: apps/web/src/components/forms/token.tsx:193 msgid "Token expiration date" -msgstr "" +msgstr "Ablaufdatum des Tokens" #: apps/web/src/components/forms/token.tsx:165 msgid "Token name" -msgstr "" +msgstr "Token-Name" #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:65 msgid "Total Documents" -msgstr "" +msgstr "Gesamtdokumente" #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:108 msgid "Total Recipients" -msgstr "" +msgstr "Gesamtempfänger" #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:150 msgid "Total Signers that Signed Up" -msgstr "" +msgstr "Gesamtanzahl der Unterzeichner, die sich angemeldet haben" #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:64 msgid "Total Users" -msgstr "" +msgstr "Gesamtanzahl der Benutzer" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:76 msgid "transfer {teamName}" -msgstr "" +msgstr "übertragen {teamName}" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:160 msgid "Transfer ownership of this team to a selected team member." -msgstr "" +msgstr "Übertragen Sie die Inhaberschaft dieses Teams auf ein ausgewähltes Teammitglied." #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:169 #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:147 #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:156 msgid "Transfer team" -msgstr "" +msgstr "Team übertragen" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:173 msgid "Transfer the ownership of the team to another team member." -msgstr "" +msgstr "Übertragen Sie das Eigentum des Teams auf ein anderes Teammitglied." #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:163 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:167 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:191 msgid "Triggers" -msgstr "" +msgstr "Auslöser" #: apps/web/src/app/(dashboard)/settings/security/page.tsx:52 msgid "Two factor authentication" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung" #: apps/web/src/app/(dashboard)/settings/security/page.tsx:88 msgid "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app." -msgstr "" +msgstr "Wiederherstellungscodes für die Zwei-Faktor-Authentifizierung werden verwendet, um auf Ihr Konto zuzugreifen, falls Sie den Zugang zu Ihrer Authentifizierungs-App verlieren." #: apps/web/src/components/forms/signin.tsx:448 msgid "Two-Factor Authentication" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung" #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:90 msgid "Two-factor authentication disabled" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung deaktiviert" #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:94 msgid "Two-factor authentication enabled" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung aktiviert" #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:92 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 "" +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/(dashboard)/admin/documents/[id]/recipient-item.tsx:73 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:67 msgid "Type" -msgstr "" +msgstr "Typ" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:184 msgid "Type 'delete' to confirm" -msgstr "" +msgstr "Geben Sie 'delete' ein, um zu bestätigen" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:186 msgid "Type a command or search..." -msgstr "" +msgstr "Geben Sie einen Befehl ein oder suchen Sie..." #: apps/web/src/app/(unauthenticated)/verify-email/page.tsx:26 msgid "Uh oh! Looks like you're missing a token" -msgstr "" +msgstr "Oh oh! Es sieht so aus, als fehlt Ihnen ein Token" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:303 msgid "Unable to change the language at this time. Please try again later." -msgstr "" +msgstr "Zurzeit kann die Sprache nicht geändert werden. Bitte versuchen Sie es später noch einmal." #: apps/web/src/components/forms/2fa/recovery-code-list.tsx:31 msgid "Unable to copy recovery code" -msgstr "" +msgstr "Kann Code zur Wiederherstellung nicht kopieren" #: apps/web/src/components/forms/token.tsx:110 msgid "Unable to copy token" -msgstr "" +msgstr "Token kann nicht kopiert werden" #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:105 msgid "Unable to create direct template access. Please try again later." -msgstr "" +msgstr "Direkter Zugriff auf die Vorlage kann nicht erstellt werden. Bitte versuche es später noch einmal." #: apps/web/src/app/(dashboard)/settings/teams/decline-team-invitation-button.tsx:33 msgid "Unable to decline this team invitation at this time." -msgstr "" +msgstr "Zurzeit kann diese Teameinladung nicht abgelehnt werden." #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:86 msgid "Unable to delete invitation. Please try again." -msgstr "" +msgstr "Einladung kann nicht gelöscht werden. Bitte versuchen Sie es erneut." #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:94 msgid "Unable to delete team" -msgstr "" +msgstr "Team konnte nicht gelöscht werden" #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:103 msgid "Unable to disable two-factor authentication" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung kann nicht deaktiviert werden" #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:33 msgid "Unable to join this team at this time." -msgstr "" +msgstr "Zurzeit kann diesem Team nicht beigetreten werden." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:72 #: apps/web/src/components/document/document-history-sheet.tsx:127 msgid "Unable to load document history" -msgstr "" +msgstr "Kann den Dokumentverlauf nicht laden" #: 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 "" +msgstr "Derzeit können Ihre öffentlichen Profilvorlagen nicht geladen werden" #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:84 msgid "Unable to remove email verification at this time. Please try again." -msgstr "" +msgstr "Derzeit ist es nicht möglich, die E-Mail-Verifizierung zu entfernen. Bitte versuchen Sie es erneut." #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:65 msgid "Unable to remove team email at this time. Please try again." -msgstr "" +msgstr "Das Team-E-Mail kann zurzeit nicht entfernt werden. Bitte versuchen Sie es erneut." #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:69 msgid "Unable to resend invitation. Please try again." -msgstr "" +msgstr "Einladung kann nicht erneut gesendet werden. Bitte versuchen Sie es erneut." #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:40 msgid "Unable to resend verification at this time. Please try again." -msgstr "" +msgstr "Derzeit ist es nicht möglich, die Verifizierung erneut zu senden. Bitte versuchen Sie es erneut." #: apps/web/src/app/(unauthenticated)/reset-password/page.tsx:20 msgid "Unable to reset password" -msgstr "" +msgstr "Passwort kann nicht zurückgesetzt werden" #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:68 #: apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx:101 msgid "Unable to setup two-factor authentication" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung kann nicht eingerichtet werden" #: apps/web/src/components/forms/signin.tsx:247 #: apps/web/src/components/forms/signin.tsx:255 msgid "Unable to sign in" -msgstr "" +msgstr "Anmeldung nicht möglich" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:166 #: apps/web/src/app/(teams)/t/[teamUrl]/error.tsx:27 msgid "Unauthorized" -msgstr "" +msgstr "Nicht autorisiert" #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:116 msgid "Uncompleted" -msgstr "" +msgstr "Unvollendet" #: apps/web/src/app/(teams)/t/[teamUrl]/error.tsx:23 msgid "Unknown error" -msgstr "" +msgstr "Unbekannter Fehler" #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:79 msgid "Unpaid" -msgstr "" +msgstr "Unbezahlt" #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:181 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:162 @@ -3782,35 +3782,35 @@ msgstr "" #: apps/web/src/components/forms/public-profile-form.tsx:279 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:428 msgid "Update" -msgstr "" +msgstr "Aktualisieren" #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:211 msgid "Update Banner" -msgstr "" +msgstr "Banner aktualisieren" #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:118 msgid "Update passkey" -msgstr "" +msgstr "Passkey aktualisieren" #: apps/web/src/components/forms/password.tsx:152 msgid "Update password" -msgstr "" +msgstr "Passwort aktualisieren" #: apps/web/src/components/forms/profile.tsx:150 msgid "Update profile" -msgstr "" +msgstr "Profil aktualisieren" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:180 msgid "Update Recipient" -msgstr "" +msgstr "Empfänger aktualisieren" #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:146 msgid "Update role" -msgstr "" +msgstr "Rolle aktualisieren" #: apps/web/src/components/(teams)/forms/update-team-form.tsx:176 msgid "Update team" -msgstr "" +msgstr "Team aktualisieren" #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:113 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:121 @@ -3841,7 +3841,7 @@ msgstr "Profil wird aktualisiert..." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:115 msgid "Updating Your Information" -msgstr "" +msgstr "Aktualisierung Ihrer Informationen" #: apps/web/src/components/forms/avatar-image.tsx:182 msgid "Upload Avatar" @@ -3956,7 +3956,7 @@ msgstr "Codes ansehen" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:127 msgid "View Document" -msgstr "" +msgstr "Dokument anzeigen" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:150 msgid "View documents associated with this email" @@ -4237,7 +4237,7 @@ msgstr "Wöchentlich" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:21 msgid "Welcome" -msgstr "" +msgstr "Willkommen" #: apps/web/src/app/(unauthenticated)/signin/page.tsx:33 msgid "Welcome back, we are lucky to have you." @@ -4253,7 +4253,7 @@ msgstr "Wenn Sie auf Fortfahren klicken, werden Sie aufgefordert, den ersten ver #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:36 msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." -msgstr "" +msgstr "Wenn Sie unsere Plattform nutzen, um Ihre elektronische Unterschrift auf Dokumente anzubringen, stimmen Sie zu, dies unter dem Gesetz über elektronische Unterschriften im globalen und nationalen Handel (E-Sign-Gesetz) und anderen anwendbaren Gesetzen zu tun. Diese Handlung zeigt Ihre Zustimmung zur Verwendung elektronischer Mittel zum Unterzeichnen von Dokumenten und zum Empfang von Benachrichtigungen an." #: apps/web/src/app/(profile)/p/[url]/page.tsx:139 msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." @@ -4265,7 +4265,7 @@ msgstr "Wen möchten Sie erinnern?" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:101 msgid "Withdrawing Consent" -msgstr "" +msgstr "Zustimmung widerrufen" #: apps/web/src/components/forms/public-profile-form.tsx:223 msgid "Write about the team" @@ -4437,7 +4437,7 @@ msgstr "Sie haben den Zugriff erfolgreich widerrufen." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:104 msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." -msgstr "" +msgstr "Sie haben das Recht, Ihre Zustimmung zur Verwendung elektronischer Unterschriften jederzeit vor Abschluss des Unterzeichnungsprozesses zu widerrufen. Um Ihre Zustimmung zu widerrufen, kontaktieren Sie bitte den Absender des Dokuments. Sollten Sie den Absender nicht erreichen, können Sie sich für Unterstützung an <0>{SUPPORT_EMAIL} wenden. Seien Sie sich bewusst, dass der Widerruf der Zustimmung den Abschluss der zugehörigen Transaktion oder Dienstleistung verzögern oder stoppen kann." #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." @@ -4628,3 +4628,4 @@ 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/es/common.po b/packages/lib/translations/es/common.po index 5dad84e7e..4a8a9071f 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-10-22 02:25\n" +"PO-Revision-Date: 2024-11-01 04:00\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -126,7 +126,7 @@ msgstr "Después de la presentación, se generará automáticamente un documento #: packages/ui/primitives/pdf-viewer.tsx:167 msgid "An error occurred while loading the document." -msgstr "" +msgstr "Se produjo un error al cargar el documento." #: packages/lib/constants/recipient-roles.ts:8 msgid "Approve" @@ -142,7 +142,7 @@ msgstr "Aprobador" #: packages/lib/constants/recipient-roles.ts:44 msgid "Approvers" -msgstr "" +msgstr "Aprobadores" #: packages/lib/constants/recipient-roles.ts:10 msgid "Approving" @@ -180,7 +180,7 @@ msgstr "CC'd" #: packages/lib/constants/recipient-roles.ts:51 msgid "Ccers" -msgstr "" +msgstr "Ccers" #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86 msgid "Character Limit" @@ -225,7 +225,7 @@ msgstr "Copiado al portapapeles" #: packages/ui/components/document/document-share-button.tsx:194 msgid "Copy Link" -msgstr "" +msgstr "Copiar enlace" #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" @@ -286,7 +286,7 @@ msgstr "Correo electrónico" #: packages/ui/primitives/document-flow/add-signature.types.ts:7 msgid "Email is required" -msgstr "" +msgstr "Se requiere email" #: packages/ui/primitives/template-flow/add-template-settings.tsx:184 msgid "Email Options" @@ -363,7 +363,7 @@ msgstr "Tamaño de fuente" #: packages/ui/primitives/document-flow/types.ts:50 msgid "Free Signature" -msgstr "" +msgstr "Firma gratuita" #: packages/ui/components/document/document-global-auth-action-select.tsx:64 msgid "Global recipient action authentication" @@ -400,15 +400,15 @@ msgstr "Heredar método de autenticación" #: packages/ui/primitives/document-flow/types.ts:51 msgid "Initials" -msgstr "" +msgstr "Iniciales" #: packages/ui/primitives/document-flow/add-signers.types.ts:17 msgid "Invalid email" -msgstr "" +msgstr "Email inválido" #: packages/ui/primitives/document-flow/add-signature.types.ts:8 msgid "Invalid email address" -msgstr "" +msgstr "Dirección de email inválida" #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 @@ -419,7 +419,7 @@ msgstr "Etiqueta" #: packages/ui/primitives/lazy-pdf-viewer.tsx:15 #: packages/ui/primitives/pdf-viewer.tsx:44 msgid "Loading document..." -msgstr "" +msgstr "Cargando documento..." #: packages/lib/constants/teams.ts:11 msgid "Manager" @@ -519,7 +519,7 @@ msgstr "Página {0} de {1}" #: packages/ui/primitives/pdf-viewer.tsx:259 msgid "Page {0} of {numPages}" -msgstr "" +msgstr "Página {0} de {numPages}" #: packages/ui/primitives/document-password-dialog.tsx:62 msgid "Password Required" @@ -538,7 +538,7 @@ msgstr "Marcador de posición" #: packages/ui/primitives/pdf-viewer.tsx:223 #: packages/ui/primitives/pdf-viewer.tsx:238 msgid "Please try again or contact our support." -msgstr "" +msgstr "Por favor, inténtalo de nuevo o contacta a nuestro soporte." #: packages/ui/primitives/template-flow/add-template-fields.tsx:768 msgid "Radio" @@ -589,7 +589,7 @@ msgstr "Campo obligatorio" #: packages/ui/components/document/document-share-button.tsx:147 msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" -msgstr "" +msgstr "Ten la seguridad de que tu documento es estrictamente confidencial y nunca será compartido. Solo se destacará tu experiencia de firma. ¡Comparte tu tarjeta de firma personalizada para mostrar tu firma!" #: packages/ui/primitives/data-table-pagination.tsx:55 msgid "Rows per page" @@ -643,7 +643,7 @@ msgstr "Compartir el enlace" #: packages/ui/components/document/document-share-button.tsx:143 msgid "Share your signing experience!" -msgstr "" +msgstr "¡Comparte tu experiencia de firma!" #: packages/ui/primitives/document-flow/add-signers.tsx:680 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:655 @@ -672,11 +672,11 @@ msgstr "Firmante" #: packages/lib/constants/recipient-roles.ts:58 msgid "Signers" -msgstr "" +msgstr "Firmantes" #: packages/ui/primitives/document-flow/add-signers.types.ts:36 msgid "Signers must have unique emails" -msgstr "" +msgstr "Los firmantes deben tener correos electrónicos únicos" #: packages/lib/constants/recipient-roles.ts:22 msgid "Signing" @@ -693,7 +693,7 @@ msgstr "Algo salió mal" #: packages/ui/primitives/pdf-viewer.tsx:220 #: packages/ui/primitives/pdf-viewer.tsx:235 msgid "Something went wrong while loading the document." -msgstr "" +msgstr "Algo salió mal al cargar el documento." #: packages/ui/primitives/data-table.tsx:136 msgid "Something went wrong." @@ -856,7 +856,7 @@ msgstr "Visor" #: packages/lib/constants/recipient-roles.ts:65 msgid "Viewers" -msgstr "" +msgstr "Espectadores" #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" @@ -877,3 +877,4 @@ msgstr "No puede cargar documentos en este momento." #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Ha alcanzado su límite de documentos." + diff --git a/packages/lib/translations/es/marketing.po b/packages/lib/translations/es/marketing.po index eb837380f..34766aa42 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-10-22 02:25\n" +"PO-Revision-Date: 2024-11-01 02:29\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -602,3 +602,4 @@ 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 c6caf0154..33b35aafc 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-10-22 02:26\n" +"PO-Revision-Date: 2024-11-01 04:00\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -119,15 +119,15 @@ msgstr "<0>Remitente: Todos" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:5 msgid "1 month" -msgstr "" +msgstr "1 mes" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:8 msgid "12 months" -msgstr "" +msgstr "12 meses" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:6 msgid "3 months" -msgstr "" +msgstr "3 meses" #: apps/web/src/components/partials/not-found.tsx:45 msgid "404 Page not found" @@ -147,11 +147,11 @@ msgstr "404 Plantilla no encontrada" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:7 msgid "6 months" -msgstr "" +msgstr "6 meses" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:4 msgid "7 days" -msgstr "" +msgstr "7 días" #: apps/web/src/components/forms/send-confirmation-email.tsx:55 msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." @@ -159,7 +159,7 @@ msgstr "Se ha enviado un correo electrónico de confirmación y debería llegar #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:70 msgid "A device capable of accessing, opening, and reading documents" -msgstr "" +msgstr "Un dispositivo capaz de acceder, abrir y leer documentos" #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" @@ -167,7 +167,7 @@ msgstr "Se creará un documento borrador" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:73 msgid "A means to print or download documents for your records" -msgstr "" +msgstr "Un medio para imprimir o descargar documentos para sus registros" #: apps/web/src/components/forms/token.tsx:127 msgid "A new token was created successfully." @@ -193,7 +193,7 @@ msgstr "Un secreto que se enviará a tu URL para que puedas verificar que la sol #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:64 msgid "A stable internet connection" -msgstr "" +msgstr "Una conexión a Internet estable" #: apps/web/src/components/forms/public-profile-form.tsx:198 msgid "A unique URL to access your profile" @@ -214,7 +214,7 @@ msgstr "Aceptar" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:33 msgid "Acceptance and Consent" -msgstr "" +msgstr "Aceptación y Consentimiento" #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:26 msgid "Accepted team invitation" @@ -227,7 +227,7 @@ msgstr "Cuenta eliminada" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 msgid "Acknowledgment" -msgstr "" +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 @@ -337,7 +337,7 @@ msgstr "Panel administrativo" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:129 msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." -msgstr "" +msgstr "Después de firmar un documento electrónicamente, se le dará la oportunidad de ver, descargar e imprimir el documento para sus registros. Se recomienda encarecidamente que conserve una copia de todos los documentos firmados electrónicamente para sus registros personales. También mantendremos una copia del documento firmado para nuestros registros, sin embargo, es posible que no podamos proporcionarle una copia del documento firmado después de un cierto período de tiempo." #: apps/web/src/components/formatter/document-status.tsx:46 msgid "All" @@ -353,7 +353,7 @@ msgstr "Todos los documentos han sido procesados. Cualquier nuevo documento que #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:81 msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." -msgstr "" +msgstr "Todos los documentos relacionados con el proceso de firma electrónica se le proporcionarán electrónicamente a través de nuestra plataforma o por correo electrónico. Es su responsabilidad asegurarse de que su dirección de correo electrónico esté actualizada y que pueda recibir y abrir nuestros correos electrónicos." #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:145 msgid "All inserted signatures will be voided" @@ -385,11 +385,11 @@ msgstr "Cantidad" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:48 msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." -msgstr "" +msgstr "Una firma electrónica proporcionada por usted en nuestra plataforma, lograda mediante el clic en un documento e ingresando su nombre, o cualquier otro método de firma electrónica que proporcionemos, es legalmente vinculante. Tiene el mismo peso y exigibilidad que una firma manual escrita con tinta en papel." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:67 msgid "An email account" -msgstr "" +msgstr "Una cuenta de correo electrónico" #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:262 msgid "An email containing an invitation will be sent to each member." @@ -465,7 +465,7 @@ msgstr "Ocurrió un error al mover la plantilla." #: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:116 msgid "An error occurred while removing the field." -msgstr "" +msgstr "Ocurrió un error mientras se eliminaba el campo." #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:152 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:126 @@ -594,7 +594,7 @@ msgstr "Aprobar" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:129 msgid "Approve Document" -msgstr "" +msgstr "Aprobar Documento" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 msgid "Approved" @@ -705,15 +705,15 @@ msgstr "Al habilitar la 2FA, se requerirá ingresar un código de su aplicación #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:142 msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." -msgstr "" +msgstr "Al continuar utilizando el servicio de firma electrónica proporcionado por Documenso, usted afirma que ha leído y entendido esta divulgación. Acepta todos los términos y condiciones relacionados con el uso de firmas electrónicas y transacciones electrónicas según lo detallado aquí." #: apps/web/src/components/general/signing-disclosure.tsx:14 msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." -msgstr "" +msgstr "Al continuar con su firma electrónica, usted reconoce y consiente que se utilizará para firmar el documento dado y tiene la misma validez legal que una firma manuscrita. Al completar el proceso de firma electrónica, usted afirma su comprensión y aceptación de estas condiciones." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:92 msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." -msgstr "" +msgstr "Al utilizar la función de firma electrónica, usted está consintiendo realizar transacciones y recibir divulgaciones electrónicamente. Reconoce que su firma electrónica en los documentos es vinculante y que acepta los términos esbozados en los documentos que está firmando." #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:186 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:190 @@ -913,11 +913,11 @@ msgstr "Correo electrónico de confirmación enviado" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:89 msgid "Consent to Electronic Transactions" -msgstr "" +msgstr "Consentimiento para Transacciones Electrónicas" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:151 msgid "Contact Information" -msgstr "" +msgstr "Información de Contacto" #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 msgid "Content" @@ -1099,7 +1099,7 @@ msgstr "Invitación de equipo rechazada" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:90 msgid "delete" -msgstr "" +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 @@ -1122,11 +1122,11 @@ msgstr "Eliminar" #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:56 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:54 msgid "delete {0}" -msgstr "" +msgstr "eliminar {0}" #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:50 msgid "delete {teamName}" -msgstr "" +msgstr "eliminar {teamName}" #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:137 msgid "Delete account" @@ -1477,11 +1477,11 @@ msgstr "Editar webhook" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:78 msgid "Electronic Delivery of Documents" -msgstr "" +msgstr "Entrega Electrónica de Documentos" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:17 msgid "Electronic Signature Disclosure" -msgstr "" +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 @@ -1513,7 +1513,7 @@ msgstr "Dirección de correo electrónico" #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:80 msgid "Email cannot already exist in the template" -msgstr "" +msgstr "El correo electrónico no puede existir ya en la plantilla" #: apps/web/src/app/(unauthenticated)/verify-email/[token]/client.tsx:36 msgid "Email Confirmed!" @@ -1662,7 +1662,7 @@ msgstr "El archivo no puede ser mayor a {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:154 msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" -msgstr "" +msgstr "Si tiene alguna pregunta sobre esta divulgación, firmas electrónicas o cualquier proceso relacionado, comuníquese con nosotros en: <0>{SUPPORT_EMAIL}" #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 @@ -1776,7 +1776,7 @@ msgstr "Información" #: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:132 msgid "Initials" -msgstr "" +msgstr "Iniciales" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:78 msgid "Inserted" @@ -1846,7 +1846,7 @@ msgstr "Factura" #: 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 "" +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." #: apps/web/src/app/(profile)/p/[url]/page.tsx:134 msgid "It looks like {0} hasn't added any documents to their profile yet." @@ -1911,7 +1911,7 @@ msgstr "Salir del equipo" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:45 msgid "Legality of Electronic Signatures" -msgstr "" +msgstr "Legalidad de las Firmas Electrónicas" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:264 msgid "Light Mode" @@ -2430,7 +2430,7 @@ msgstr "Por favor, proporciona un token de tu autenticador, o un código de resp #: apps/web/src/app/(signing)/sign/[token]/form.tsx:169 msgid "Please review the document before signing." -msgstr "" +msgstr "Por favor, revise el documento antes de firmar." #: apps/web/src/components/forms/send-confirmation-email.tsx:64 msgid "Please try again and make sure you enter the correct email address." @@ -2516,7 +2516,7 @@ msgstr "Campo de solo lectura" #: apps/web/src/components/general/signing-disclosure.tsx:21 msgid "Read the full <0>signature disclosure." -msgstr "" +msgstr "Lea la <0>divulgación de firma completa." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 msgid "Ready" @@ -2647,7 +2647,7 @@ msgstr "Resolver pago" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:126 msgid "Retention of Documents" -msgstr "" +msgstr "Retención de Documentos" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:168 msgid "Retry" @@ -2718,7 +2718,7 @@ msgstr "Buscar por nombre o correo electrónico" #: apps/web/src/components/(dashboard)/document-search/document-search.tsx:42 msgid "Search documents..." -msgstr "" +msgstr "Buscar documentos..." #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:189 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:217 @@ -2861,7 +2861,7 @@ msgstr "Firmar documento" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:128 msgid "Sign Document" -msgstr "" +msgstr "Firmar Documento" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:59 msgid "Sign field" @@ -3091,7 +3091,7 @@ msgstr "Clave de acceso creada con éxito" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:57 msgid "System Requirements" -msgstr "" +msgstr "Requisitos del Sistema" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:266 msgid "System Theme" @@ -3271,7 +3271,7 @@ msgstr "Color de texto" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:24 msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." -msgstr "" +msgstr "Gracias por usar Documenso para realizar su firma electrónica de documentos. El propósito de esta divulgación es informarle sobre el proceso, la legalidad y sus derechos con respecto al uso de firmas electrónicas en nuestra plataforma. Al optar por usar una firma electrónica, usted está aceptando los términos y condiciones descritos a continuación." #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." @@ -3559,7 +3559,7 @@ msgstr "Para marcar este documento como visto, debes iniciar sesión como <0>{0} #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:60 msgid "To use our electronic signature service, you must have access to:" -msgstr "" +msgstr "Para usar nuestro servicio de firma electrónica, debe tener acceso a:" #: apps/web/src/app/embed/authenticate.tsx:21 msgid "To view this document you need to be signed into your account, please sign in to continue." @@ -3620,7 +3620,7 @@ msgstr "Total de usuarios" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:76 msgid "transfer {teamName}" -msgstr "" +msgstr "transferir {teamName}" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:160 msgid "Transfer ownership of this team to a selected team member." @@ -3841,7 +3841,7 @@ msgstr "Actualizando perfil..." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:115 msgid "Updating Your Information" -msgstr "" +msgstr "Actualizando Su Información" #: apps/web/src/components/forms/avatar-image.tsx:182 msgid "Upload Avatar" @@ -3956,7 +3956,7 @@ msgstr "Ver Códigos" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:127 msgid "View Document" -msgstr "" +msgstr "Ver Documento" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:150 msgid "View documents associated with this email" @@ -4237,7 +4237,7 @@ msgstr "Semanal" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:21 msgid "Welcome" -msgstr "" +msgstr "Bienvenido" #: apps/web/src/app/(unauthenticated)/signin/page.tsx:33 msgid "Welcome back, we are lucky to have you." @@ -4253,7 +4253,7 @@ msgstr "Cuando haces clic en continuar, se te pedirá que añadas el primer aute #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:36 msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." -msgstr "" +msgstr "Cuando utilice nuestra plataforma para colocar su firma electrónica en documentos, está consintiendo hacerlo bajo la Ley de Firmas Electrónicas en el Comercio Global y Nacional (Ley E-Sign) y otras leyes aplicables. Esta acción indica su aceptación de usar medios electrónicos para firmar documentos y recibir notificaciones." #: apps/web/src/app/(profile)/p/[url]/page.tsx:139 msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." @@ -4265,7 +4265,7 @@ msgstr "¿A quién deseas recordar?" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:101 msgid "Withdrawing Consent" -msgstr "" +msgstr "Retirar Consentimiento" #: apps/web/src/components/forms/public-profile-form.tsx:223 msgid "Write about the team" @@ -4437,7 +4437,7 @@ msgstr "Has revocado el acceso con éxito." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:104 msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." -msgstr "" +msgstr "Usted tiene el derecho de retirar su consentimiento para usar firmas electrónicas en cualquier momento antes de completar el proceso de firma. Para retirar su consentimiento, comuníquese con el remitente del documento. Si no se comunica con el remitente, puede comunicarse con <0>{SUPPORT_EMAIL} para obtener asistencia. Tenga en cuenta que retirar el consentimiento puede retrasar o detener la finalización de la transacción o servicio relacionado." #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." @@ -4628,3 +4628,4 @@ 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 6bf5539bd..d29872c63 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-10-18 04:04\n" +"PO-Revision-Date: 2024-11-01 04:00\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -126,7 +126,7 @@ msgstr "Après soumission, un document sera automatiquement généré et ajouté #: packages/ui/primitives/pdf-viewer.tsx:167 msgid "An error occurred while loading the document." -msgstr "" +msgstr "Une erreur s'est produite lors du chargement du document." #: packages/lib/constants/recipient-roles.ts:8 msgid "Approve" @@ -142,7 +142,7 @@ msgstr "Approuveur" #: packages/lib/constants/recipient-roles.ts:44 msgid "Approvers" -msgstr "" +msgstr "Approbateurs" #: packages/lib/constants/recipient-roles.ts:10 msgid "Approving" @@ -180,7 +180,7 @@ msgstr "CC'd" #: packages/lib/constants/recipient-roles.ts:51 msgid "Ccers" -msgstr "" +msgstr "Ccers" #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86 msgid "Character Limit" @@ -225,7 +225,7 @@ msgstr "Copié dans le presse-papiers" #: packages/ui/components/document/document-share-button.tsx:194 msgid "Copy Link" -msgstr "" +msgstr "Copier le lien" #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" @@ -286,7 +286,7 @@ msgstr "Email" #: packages/ui/primitives/document-flow/add-signature.types.ts:7 msgid "Email is required" -msgstr "" +msgstr "L'email est requis" #: packages/ui/primitives/template-flow/add-template-settings.tsx:184 msgid "Email Options" @@ -363,7 +363,7 @@ msgstr "Taille de Police" #: packages/ui/primitives/document-flow/types.ts:50 msgid "Free Signature" -msgstr "" +msgstr "Signature gratuite" #: packages/ui/components/document/document-global-auth-action-select.tsx:64 msgid "Global recipient action authentication" @@ -400,15 +400,15 @@ msgstr "Hériter de la méthode d'authentification" #: packages/ui/primitives/document-flow/types.ts:51 msgid "Initials" -msgstr "" +msgstr "Initiales" #: packages/ui/primitives/document-flow/add-signers.types.ts:17 msgid "Invalid email" -msgstr "" +msgstr "Email invalide" #: packages/ui/primitives/document-flow/add-signature.types.ts:8 msgid "Invalid email address" -msgstr "" +msgstr "Adresse email invalide" #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 @@ -419,7 +419,7 @@ msgstr "Étiquette" #: packages/ui/primitives/lazy-pdf-viewer.tsx:15 #: packages/ui/primitives/pdf-viewer.tsx:44 msgid "Loading document..." -msgstr "" +msgstr "Chargement du document..." #: packages/lib/constants/teams.ts:11 msgid "Manager" @@ -519,7 +519,7 @@ msgstr "Page {0} sur {1}" #: packages/ui/primitives/pdf-viewer.tsx:259 msgid "Page {0} of {numPages}" -msgstr "" +msgstr "Page {0} sur {numPages}" #: packages/ui/primitives/document-password-dialog.tsx:62 msgid "Password Required" @@ -538,7 +538,7 @@ msgstr "Espace réservé" #: packages/ui/primitives/pdf-viewer.tsx:223 #: packages/ui/primitives/pdf-viewer.tsx:238 msgid "Please try again or contact our support." -msgstr "" +msgstr "Veuillez réessayer ou contacter notre support." #: packages/ui/primitives/template-flow/add-template-fields.tsx:768 msgid "Radio" @@ -589,7 +589,7 @@ msgstr "Champ requis" #: packages/ui/components/document/document-share-button.tsx:147 msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" -msgstr "" +msgstr "Soyez assuré, votre document eststrictement confidentiel et ne sera jamais partagé. Seule votre expérience de signature sera mise en avant. Partagez votre carte de signature personnalisée pour mettre en valeur votre signature !" #: packages/ui/primitives/data-table-pagination.tsx:55 msgid "Rows per page" @@ -643,7 +643,7 @@ msgstr "Partager le lien" #: packages/ui/components/document/document-share-button.tsx:143 msgid "Share your signing experience!" -msgstr "" +msgstr "Partagez votre expérience de signature !" #: packages/ui/primitives/document-flow/add-signers.tsx:680 #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:655 @@ -672,11 +672,11 @@ msgstr "Signataire" #: packages/lib/constants/recipient-roles.ts:58 msgid "Signers" -msgstr "" +msgstr "Signataires" #: packages/ui/primitives/document-flow/add-signers.types.ts:36 msgid "Signers must have unique emails" -msgstr "" +msgstr "Les signataires doivent avoir des e-mails uniques" #: packages/lib/constants/recipient-roles.ts:22 msgid "Signing" @@ -693,7 +693,7 @@ msgstr "Quelque chose a mal tourné" #: packages/ui/primitives/pdf-viewer.tsx:220 #: packages/ui/primitives/pdf-viewer.tsx:235 msgid "Something went wrong while loading the document." -msgstr "" +msgstr "Une erreur s'est produite lors du chargement du document." #: packages/ui/primitives/data-table.tsx:136 msgid "Something went wrong." @@ -856,7 +856,7 @@ msgstr "Visiteur" #: packages/lib/constants/recipient-roles.ts:65 msgid "Viewers" -msgstr "" +msgstr "Spectateurs" #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" @@ -877,3 +877,4 @@ msgstr "Vous ne pouvez pas télécharger de documents pour le moment." #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Vous avez atteint votre limite de documents." + diff --git a/packages/lib/translations/fr/marketing.po b/packages/lib/translations/fr/marketing.po index 315d5f73f..825a8d817 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-10-18 04:04\n" +"PO-Revision-Date: 2024-11-01 02:29\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -602,3 +602,4 @@ 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 f1c958309..b8d3fc56a 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-10-18 04:04\n" +"PO-Revision-Date: 2024-11-01 04:00\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -119,15 +119,15 @@ msgstr "<0>Expéditeur : Tous" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:5 msgid "1 month" -msgstr "" +msgstr "1 mois" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:8 msgid "12 months" -msgstr "" +msgstr "12 mois" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:6 msgid "3 months" -msgstr "" +msgstr "3 mois" #: apps/web/src/components/partials/not-found.tsx:45 msgid "404 Page not found" @@ -147,11 +147,11 @@ msgstr "404 Modèle non trouvé" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:7 msgid "6 months" -msgstr "" +msgstr "6 mois" #: apps/web/src/components/(dashboard)/settings/token/contants.ts:4 msgid "7 days" -msgstr "" +msgstr "7 jours" #: apps/web/src/components/forms/send-confirmation-email.tsx:55 msgid "A confirmation email has been sent, and it should arrive in your inbox shortly." @@ -159,7 +159,7 @@ msgstr "Un e-mail de confirmation a été envoyé et devrait arriver dans votre #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:70 msgid "A device capable of accessing, opening, and reading documents" -msgstr "" +msgstr "Un appareil capable d'accéder, d'ouvrir et de lire des documents" #: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 msgid "A draft document will be created" @@ -167,7 +167,7 @@ msgstr "Un document brouillon sera créé" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:73 msgid "A means to print or download documents for your records" -msgstr "" +msgstr "Un moyen d'imprimer ou de télécharger des documents pour vos dossiers" #: apps/web/src/components/forms/token.tsx:127 msgid "A new token was created successfully." @@ -193,7 +193,7 @@ msgstr "Un secret qui sera envoyé à votre URL afin que vous puissiez vérifier #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:64 msgid "A stable internet connection" -msgstr "" +msgstr "Une connexion Internet stable" #: apps/web/src/components/forms/public-profile-form.tsx:198 msgid "A unique URL to access your profile" @@ -214,7 +214,7 @@ msgstr "Accepter" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:33 msgid "Acceptance and Consent" -msgstr "" +msgstr "Acceptation et consentement" #: apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx:26 msgid "Accepted team invitation" @@ -227,7 +227,7 @@ msgstr "Compte supprimé" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:139 msgid "Acknowledgment" -msgstr "" +msgstr "Reconnaissance" #: 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 @@ -337,7 +337,7 @@ msgstr "Panneau d'administration" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:129 msgid "After signing a document electronically, you will be provided the opportunity to view, download, and print the document for your records. It is highly recommended that you retain a copy of all electronically signed documents for your personal records. We will also retain a copy of the signed document for our records however we may not be able to provide you with a copy of the signed document after a certain period of time." -msgstr "" +msgstr "Après avoir signé un document électroniquement, vous aurez l'occasion de visualiser, télécharger et imprimer le document pour vos dossiers. Il est fortement recommandé de conserver une copie de tous les documents signés électroniquement pour vos dossiers personnels. Nous conserverons également une copie du document signé pour nos dossiers, mais nous pourrions ne pas être en mesure de vous fournir une copie du document signé après une certaine période." #: apps/web/src/components/formatter/document-status.tsx:46 msgid "All" @@ -353,7 +353,7 @@ msgstr "Tous les documents ont été traités. Tous nouveaux documents envoyés #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:81 msgid "All documents related to the electronic signing process will be provided to you electronically through our platform or via email. It is your responsibility to ensure that your email address is current and that you can receive and open our emails." -msgstr "" +msgstr "Tous les documents relatifs au processus de signature électronique vous seront fournis électroniquement via notre plateforme ou par e-mail. Il est de votre responsabilité de vous assurer que votre adresse e-mail est à jour et que vous pouvez recevoir et ouvrir nos e-mails." #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:145 msgid "All inserted signatures will be voided" @@ -385,11 +385,11 @@ msgstr "Montant" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:48 msgid "An electronic signature provided by you on our platform, achieved through clicking through to a document and entering your name, or any other electronic signing method we provide, is legally binding. It carries the same weight and enforceability as a manual signature written with ink on paper." -msgstr "" +msgstr "Une signature électronique fournie par vous sur notre plateforme, obtenue en cliquant sur un document et en saisissant votre nom, ou toute autre méthode de signature électronique que nous fournis, est juridiquement contraignante. Elle a le même poids et la même force exécutoire qu'une signature manuelle écrite à l'encre sur papier." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:67 msgid "An email account" -msgstr "" +msgstr "Un compte e-mail" #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:262 msgid "An email containing an invitation will be sent to each member." @@ -465,7 +465,7 @@ msgstr "Une erreur est survenue lors du déplacement du modèle." #: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:116 msgid "An error occurred while removing the field." -msgstr "" +msgstr "Une erreur est survenue lors de la suppression du champ." #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:152 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:126 @@ -594,7 +594,7 @@ msgstr "Approuver" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:129 msgid "Approve Document" -msgstr "" +msgstr "Approuver le document" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:78 msgid "Approved" @@ -705,15 +705,15 @@ msgstr "En activant l'authentification à deux facteurs (2FA), vous devrez entre #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:142 msgid "By proceeding to use the electronic signature service provided by Documenso, you affirm that you have read and understood this disclosure. You agree to all terms and conditions related to the use of electronic signatures and electronic transactions as outlined herein." -msgstr "" +msgstr "En procédant à l'utilisation du service de signature électronique fourni par Documenso, vous affirmez avoir lu et compris cette divulgation. Vous acceptez tous les termes et conditions liés à l'utilisation des signatures électroniques et des transactions électroniques comme décrit ici." #: apps/web/src/components/general/signing-disclosure.tsx:14 msgid "By proceeding with your electronic signature, you acknowledge and consent that it will be used to sign the given document and holds the same legal validity as a handwritten signature. By completing the electronic signing process, you affirm your understanding and acceptance of these conditions." -msgstr "" +msgstr "En procédant avec votre signature électronique, vous reconnaissez et consentez à ce qu'elle soit utilisée pour signer le document donné et a la même validité légale qu'une signature manuscrite. En complétant le processus de signature électronique, vous affirmez votre compréhension et votre acceptation de ces conditions." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:92 msgid "By using the electronic signature feature, you are consenting to conduct transactions and receive disclosures electronically. You acknowledge that your electronic signature on documents is binding and that you accept the terms outlined in the documents you are signing." -msgstr "" +msgstr "En utilisant la fonctionnalité de signature électronique, vous consentez à effectuer des transactions et à recevoir des divulgations électroniquement. Vous reconnaissez que votre signature électronique sur les documents est contraignante et que vous acceptez les termes énoncés dans les documents que vous signez." #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:186 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:190 @@ -913,11 +913,11 @@ msgstr "Email de confirmation envoyé" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:89 msgid "Consent to Electronic Transactions" -msgstr "" +msgstr "Consentement aux transactions électroniques" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:151 msgid "Contact Information" -msgstr "" +msgstr "Coordonnées" #: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 msgid "Content" @@ -1099,7 +1099,7 @@ msgstr "Invitation d'équipe refusée" #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:90 msgid "delete" -msgstr "" +msgstr "supprimer" #: 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 @@ -1122,11 +1122,11 @@ msgstr "Supprimer" #: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:56 #: apps/web/src/components/(dashboard)/settings/webhooks/delete-webhook-dialog.tsx:54 msgid "delete {0}" -msgstr "" +msgstr "supprimer {0}" #: apps/web/src/components/(teams)/dialogs/delete-team-dialog.tsx:50 msgid "delete {teamName}" -msgstr "" +msgstr "supprimer {teamName}" #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:137 msgid "Delete account" @@ -1477,11 +1477,11 @@ msgstr "Modifier le webhook" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:78 msgid "Electronic Delivery of Documents" -msgstr "" +msgstr "Remise électronique de documents" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:17 msgid "Electronic Signature Disclosure" -msgstr "" +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 @@ -1513,7 +1513,7 @@ msgstr "Adresse e-mail" #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:80 msgid "Email cannot already exist in the template" -msgstr "" +msgstr "L'e-mail ne peut déjà exister dans le modèle" #: apps/web/src/app/(unauthenticated)/verify-email/[token]/client.tsx:36 msgid "Email Confirmed!" @@ -1662,7 +1662,7 @@ msgstr "Le fichier ne peut pas dépasser {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} Mo" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:154 msgid "For any questions regarding this disclosure, electronic signatures, or any related process, please contact us at: <0>{SUPPORT_EMAIL}" -msgstr "" +msgstr "Pour toute question concernant cette divulgation, les signatures électroniques ou tout processus y afférent, veuillez nous contacter à : <0>{SUPPORT_EMAIL}" #: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21 #: apps/web/src/components/forms/signin.tsx:370 @@ -1776,7 +1776,7 @@ msgstr "Information" #: apps/web/src/app/(signing)/sign/[token]/initials-field.tsx:132 msgid "Initials" -msgstr "" +msgstr "Initiales" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:78 msgid "Inserted" @@ -1846,7 +1846,7 @@ msgstr "Facture" #: 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 "" +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." #: apps/web/src/app/(profile)/p/[url]/page.tsx:134 msgid "It looks like {0} hasn't added any documents to their profile yet." @@ -1911,7 +1911,7 @@ msgstr "Quitter l'équipe" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:45 msgid "Legality of Electronic Signatures" -msgstr "" +msgstr "Légalité des signatures électroniques" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:264 msgid "Light Mode" @@ -2430,7 +2430,7 @@ msgstr "Veuillez fournir un jeton de votre authentificateur, ou un code de secou #: apps/web/src/app/(signing)/sign/[token]/form.tsx:169 msgid "Please review the document before signing." -msgstr "" +msgstr "Veuillez examiner le document avant de signer." #: apps/web/src/components/forms/send-confirmation-email.tsx:64 msgid "Please try again and make sure you enter the correct email address." @@ -2516,7 +2516,7 @@ msgstr "Champ en lecture seule" #: apps/web/src/components/general/signing-disclosure.tsx:21 msgid "Read the full <0>signature disclosure." -msgstr "" +msgstr "Lisez l'intégralité de la <0>divulgation de signature." #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:90 msgid "Ready" @@ -2647,7 +2647,7 @@ msgstr "Résoudre le paiement" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:126 msgid "Retention of Documents" -msgstr "" +msgstr "Conservation des documents" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:168 msgid "Retry" @@ -2718,7 +2718,7 @@ msgstr "Recherche par nom ou e-mail" #: apps/web/src/components/(dashboard)/document-search/document-search.tsx:42 msgid "Search documents..." -msgstr "" +msgstr "Rechercher des documents..." #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:189 #: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:217 @@ -2861,7 +2861,7 @@ msgstr "Signer le document" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:128 msgid "Sign Document" -msgstr "" +msgstr "Signer le document" #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-dialog.tsx:59 msgid "Sign field" @@ -3091,7 +3091,7 @@ msgstr "Clé d'authentification créée avec succès" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:57 msgid "System Requirements" -msgstr "" +msgstr "Exigences du système" #: apps/web/src/components/(dashboard)/common/command-menu.tsx:266 msgid "System Theme" @@ -3271,7 +3271,7 @@ msgstr "Couleur du texte" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:24 msgid "Thank you for using Documenso to perform your electronic document signing. The purpose of this disclosure is to inform you about the process, legality, and your rights regarding the use of electronic signatures on our platform. By opting to use an electronic signature, you are agreeing to the terms and conditions outlined below." -msgstr "" +msgstr "Merci d'utiliser Documenso pour signer vos documents électroniquement. L'objectif de cette divulgation est de vous informer sur le processus, la légalité et vos droits concernant l'utilisation des signatures électroniques sur notre plateforme. En choisissant d'utiliser une signature électronique, vous acceptez les termes et conditions énoncés ci-dessous." #: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." @@ -3559,7 +3559,7 @@ msgstr "Pour marquer ce document comme consulté, vous devez être connecté en #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:60 msgid "To use our electronic signature service, you must have access to:" -msgstr "" +msgstr "Pour utiliser notre service de signature électronique, vous devez avoir accès à :" #: apps/web/src/app/embed/authenticate.tsx:21 msgid "To view this document you need to be signed into your account, please sign in to continue." @@ -3620,7 +3620,7 @@ msgstr "Total des utilisateurs" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:76 msgid "transfer {teamName}" -msgstr "" +msgstr "transférer {teamName}" #: apps/web/src/components/(teams)/dialogs/transfer-team-dialog.tsx:160 msgid "Transfer ownership of this team to a selected team member." @@ -3841,7 +3841,7 @@ msgstr "Mise à jour du profil..." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:115 msgid "Updating Your Information" -msgstr "" +msgstr "Mise à jour de vos informations" #: apps/web/src/components/forms/avatar-image.tsx:182 msgid "Upload Avatar" @@ -3956,7 +3956,7 @@ msgstr "Voir les codes" #: apps/web/src/app/(signing)/sign/[token]/form.tsx:127 msgid "View Document" -msgstr "" +msgstr "Voir le document" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx:150 msgid "View documents associated with this email" @@ -4237,7 +4237,7 @@ msgstr "Hebdomadaire" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:21 msgid "Welcome" -msgstr "" +msgstr "Bienvenue" #: apps/web/src/app/(unauthenticated)/signin/page.tsx:33 msgid "Welcome back, we are lucky to have you." @@ -4253,7 +4253,7 @@ msgstr "Lorsque vous cliquez sur continuer, vous serez invité à ajouter le pre #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:36 msgid "When you use our platform to affix your electronic signature to documents, you are consenting to do so under the Electronic Signatures in Global and National Commerce Act (E-Sign Act) and other applicable laws. This action indicates your agreement to use electronic means to sign documents and receive notifications." -msgstr "" +msgstr "Lorsque vous utilisez notre plateforme pour apposer votre signature électronique sur des documents, vous consentez à le faire conformément à la loi sur les signatures électroniques dans le commerce mondial et national (E-Sign Act) et aux autres lois applicables. Cette action indique votre accord à utiliser des moyens électroniques pour signer des documents et recevoir des notifications." #: apps/web/src/app/(profile)/p/[url]/page.tsx:139 msgid "While waiting for them to do so you can create your own Documenso account and get started with document signing right away." @@ -4265,7 +4265,7 @@ msgstr "Qui voulez-vous rappeler ?" #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:101 msgid "Withdrawing Consent" -msgstr "" +msgstr "Retrait du consentement" #: apps/web/src/components/forms/public-profile-form.tsx:223 msgid "Write about the team" @@ -4437,7 +4437,7 @@ msgstr "Vous avez révoqué l'accès avec succès." #: apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx:104 msgid "You have the right to withdraw your consent to use electronic signatures at any time before completing the signing process. To withdraw your consent, please contact the sender of the document. In failing to contact the sender you may reach out to <0>{SUPPORT_EMAIL} for assistance. Be aware that withdrawing consent may delay or halt the completion of the related transaction or service." -msgstr "" +msgstr "Vous avez le droit de retirer votre consentement à l'utilisation des signatures électroniques à tout moment avant de terminer le processus de signature. Pour retirer votre consentement, veuillez contacter l'expéditeur du document. Si vous ne contactez pas l'expéditeur, vous pouvez contacter <0>{SUPPORT_EMAIL} pour obtenir de l'aide. Sachez que le retrait de consentement peut retarder ou arrêter l'achèvement de la transaction ou du service associé." #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:93 msgid "You have updated {teamMemberName}." @@ -4628,3 +4628,4 @@ 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." + From 28514ba2e7ae73496af8d93c07b627649fd15b19 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Fri, 1 Nov 2024 19:29:38 +0900 Subject: [PATCH 14/17] fix: duplicate templates (#1434) --- .../lib/server-only/template/duplicate-template.ts | 13 ++++++++++++- .../template-flow/add-template-settings.tsx | 5 +---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/lib/server-only/template/duplicate-template.ts b/packages/lib/server-only/template/duplicate-template.ts index 963d78bde..9e22bf695 100644 --- a/packages/lib/server-only/template/duplicate-template.ts +++ b/packages/lib/server-only/template/duplicate-template.ts @@ -1,3 +1,5 @@ +import { omit } from 'remeda'; + import { nanoid } from '@documenso/lib/universal/id'; import { prisma } from '@documenso/prisma'; import type { Prisma } from '@documenso/prisma/client'; @@ -38,6 +40,7 @@ export const duplicateTemplate = async ({ Recipient: true, Field: true, templateDocumentData: true, + templateMeta: true, }, }); @@ -53,6 +56,14 @@ export const duplicateTemplate = async ({ }, }); + let templateMeta: Prisma.TemplateCreateArgs['data']['templateMeta'] | undefined = undefined; + + if (template.templateMeta) { + templateMeta = { + create: omit(template.templateMeta, ['id', 'templateId']), + }; + } + const duplicatedTemplate = await prisma.template.create({ data: { userId, @@ -66,8 +77,8 @@ export const duplicateTemplate = async ({ token: nanoid(), })), }, + templateMeta, }, - include: { Recipient: true, }, diff --git a/packages/ui/primitives/template-flow/add-template-settings.tsx b/packages/ui/primitives/template-flow/add-template-settings.tsx index 73302ae55..165802015 100644 --- a/packages/ui/primitives/template-flow/add-template-settings.tsx +++ b/packages/ui/primitives/template-flow/add-template-settings.tsx @@ -4,7 +4,6 @@ import { useEffect } from 'react'; import { zodResolver } from '@hookform/resolvers/zod'; import { Trans } from '@lingui/macro'; -import { useLingui } from '@lingui/react'; import { InfoIcon } from 'lucide-react'; import { useForm } from 'react-hook-form'; @@ -74,8 +73,6 @@ export const AddTemplateSettingsFormPartial = ({ template, onSubmit, }: AddTemplateSettingsFormProps) => { - const { _ } = useLingui(); - const { documentAuthOption } = extractDocumentAuthMethods({ documentAuth: template.authOptions, }); @@ -102,7 +99,7 @@ export const AddTemplateSettingsFormPartial = ({ // We almost always want to set the timezone to the user's local timezone to avoid confusion // when the document is signed. useEffect(() => { - if (!form.formState.touchedFields.meta?.timezone) { + if (!form.formState.touchedFields.meta?.timezone && !template.templateMeta?.timezone) { form.setValue('meta.timezone', Intl.DateTimeFormat().resolvedOptions().timeZone); } }, [form, form.setValue, form.formState.touchedFields.meta?.timezone]); From 885349ad941e735baddc25f3a8c3fb72e86da315 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Sun, 3 Nov 2024 20:17:41 +0900 Subject: [PATCH 15/17] fix: missing signing order when using templates (#1425) --- .../template/create-document-from-direct-template.ts | 5 +++++ .../server-only/template/create-document-from-template.ts | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/lib/server-only/template/create-document-from-direct-template.ts b/packages/lib/server-only/template/create-document-from-direct-template.ts index 2d90d4ff0..24fdc90ff 100644 --- a/packages/lib/server-only/template/create-document-from-direct-template.ts +++ b/packages/lib/server-only/template/create-document-from-direct-template.ts @@ -10,6 +10,7 @@ import { nanoid } from '@documenso/lib/universal/id'; import { prisma } from '@documenso/prisma'; import type { Field, Signature } from '@documenso/prisma/client'; import { + DocumentSigningOrder, DocumentSource, DocumentStatus, FieldType, @@ -142,6 +143,7 @@ export const createDocumentFromDirectTemplate = async ({ const metaDateFormat = template.templateMeta?.dateFormat || DEFAULT_DOCUMENT_DATE_FORMAT; const metaEmailMessage = template.templateMeta?.message || ''; const metaEmailSubject = template.templateMeta?.subject || ''; + const metaSigningOrder = template.templateMeta?.signingOrder || DocumentSigningOrder.PARALLEL; // Associate, validate and map to a query every direct template recipient field with the provided fields. const createDirectRecipientFieldArgs = await Promise.all( @@ -256,6 +258,7 @@ export const createDocumentFromDirectTemplate = async ({ recipient.role === RecipientRole.CC ? SigningStatus.SIGNED : SigningStatus.NOT_SIGNED, + signingOrder: recipient.signingOrder, token: nanoid(), }; }), @@ -267,6 +270,7 @@ export const createDocumentFromDirectTemplate = async ({ dateFormat: metaDateFormat, message: metaEmailMessage, subject: metaEmailSubject, + signingOrder: metaSigningOrder, }, }, }, @@ -330,6 +334,7 @@ export const createDocumentFromDirectTemplate = async ({ signingStatus: SigningStatus.SIGNED, sendStatus: SendStatus.SENT, signedAt: initialRequestTime, + signingOrder: directTemplateRecipient.signingOrder, Field: { createMany: { data: directTemplateNonSignatureFields.map(({ templateField, customText }) => ({ diff --git a/packages/lib/server-only/template/create-document-from-template.ts b/packages/lib/server-only/template/create-document-from-template.ts index 8cf2e59af..1c989fa5b 100644 --- a/packages/lib/server-only/template/create-document-from-template.ts +++ b/packages/lib/server-only/template/create-document-from-template.ts @@ -24,7 +24,10 @@ import { } from '../../utils/document-auth'; import { triggerWebhook } from '../webhooks/trigger/trigger-webhook'; -type FinalRecipient = Pick & { +type FinalRecipient = Pick< + Recipient, + 'name' | 'email' | 'role' | 'authOptions' | 'signingOrder' +> & { templateRecipientId: number; fields: Field[]; }; @@ -197,6 +200,7 @@ export const createDocumentFromTemplate = async ({ recipient.role === RecipientRole.CC ? SigningStatus.SIGNED : SigningStatus.NOT_SIGNED, + signingOrder: recipient.signingOrder, token: nanoid(), }; }), From 04b1ce1aab1049d3e4251d629388f20a2d2b4d7b Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Mon, 4 Nov 2024 22:09:52 +0900 Subject: [PATCH 16/17] fix: missing not found page for deleted documents (#1424) --- apps/web/src/app/(signing)/sign/[token]/page.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/web/src/app/(signing)/sign/[token]/page.tsx b/apps/web/src/app/(signing)/sign/[token]/page.tsx index 214b013ce..0a2c59520 100644 --- a/apps/web/src/app/(signing)/sign/[token]/page.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/page.tsx @@ -43,12 +43,6 @@ export default async function SigningPage({ params: { token } }: SigningPageProp const requestMetadata = extractNextHeaderRequestMetadata(requestHeaders); - const isRecipientsTurn = await getIsRecipientsTurnToSign({ token }); - - if (!isRecipientsTurn) { - return redirect(`/sign/${token}/waiting`); - } - const [document, fields, recipient, completedFields] = await Promise.all([ getDocumentAndSenderByToken({ token, @@ -69,6 +63,12 @@ export default async function SigningPage({ params: { token } }: SigningPageProp return notFound(); } + const isRecipientsTurn = await getIsRecipientsTurnToSign({ token }); + + if (!isRecipientsTurn) { + return redirect(`/sign/${token}/waiting`); + } + const { derivedRecipientAccessAuth } = extractDocumentAuthMethods({ documentAuth: document.authOptions, recipientAuth: recipient.authOptions, From 4dd95016b10c2c8545b046d012ed8226fc3cb2c2 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Tue, 5 Nov 2024 11:52:54 +1100 Subject: [PATCH 17/17] feat: i18n for emails (#1442) ## Description Support setting a document language that will control the language used for sending emails to recipients. Additional work has been done to convert all emails to using our i18n implementation so we can later add controls for sending other kinds of emails in a users target language. ## Related Issue N/A ## Changes Made - Added `` and `msg` macros to emails - Introduced a new `renderEmailWithI18N` utility in the lib package - Updated all emails to use the `` component at the top level due to rendering constraints - Updated the `i18n.server.tsx` file to not use a top level await ## Testing Performed - Configured document language and verified emails were sent in the expected language - Created a document from a template and verified that the templates language was transferred to the document --- .../src/app/(marketing)/[content]/page.tsx | 4 +- .../src/app/(marketing)/blog/[post]/page.tsx | 4 +- .../src/app/(marketing)/blog/page.tsx | 4 +- .../src/app/(marketing)/open/page.tsx | 5 +- apps/marketing/src/app/(marketing)/page.tsx | 2 +- .../src/app/(marketing)/pricing/page.tsx | 4 +- .../src/app/(marketing)/singleplayer/page.tsx | 4 +- apps/marketing/src/app/layout.tsx | 2 +- .../(dashboard)/admin/documents/[id]/page.tsx | 2 +- .../app/(dashboard)/admin/documents/page.tsx | 4 +- apps/web/src/app/(dashboard)/admin/layout.tsx | 2 +- .../(dashboard)/admin/site-settings/page.tsx | 2 +- .../src/app/(dashboard)/admin/stats/page.tsx | 2 +- .../(dashboard)/admin/subscriptions/page.tsx | 2 +- .../src/app/(dashboard)/admin/users/page.tsx | 2 +- .../documents/[id]/edit-document.tsx | 4 +- .../(dashboard)/documents/[id]/edit/page.tsx | 4 +- .../(dashboard)/documents/[id]/loading.tsx | 4 +- .../(dashboard)/documents/[id]/logs/page.tsx | 4 +- .../app/(dashboard)/documents/[id]/page.tsx | 4 +- .../(dashboard)/documents/[id]/sent/page.tsx | 4 +- .../src/app/(dashboard)/documents/page.tsx | 2 +- apps/web/src/app/(dashboard)/layout.tsx | 2 +- .../app/(dashboard)/settings/billing/page.tsx | 2 +- .../src/app/(dashboard)/settings/layout.tsx | 4 +- .../app/(dashboard)/settings/profile/page.tsx | 2 +- .../settings/public-profile/page.tsx | 2 +- .../settings/security/activity/page.tsx | 4 +- .../(dashboard)/settings/security/page.tsx | 2 +- .../settings/security/passkeys/page.tsx | 2 +- .../app/(dashboard)/settings/tokens/page.tsx | 2 +- .../templates/[id]/edit-template.tsx | 6 +- .../app/(dashboard)/templates/[id]/page.tsx | 4 +- .../src/app/(dashboard)/templates/page.tsx | 4 +- apps/web/src/app/(profile)/layout.tsx | 2 +- apps/web/src/app/(profile)/p/[url]/page.tsx | 2 +- .../src/app/(recipient)/d/[token]/page.tsx | 2 +- apps/web/src/app/(recipient)/layout.tsx | 2 +- .../sign/[token]/complete/layout.tsx | 4 +- .../(signing)/sign/[token]/complete/page.tsx | 2 +- .../src/app/(signing)/sign/[token]/layout.tsx | 2 +- .../src/app/(signing)/sign/[token]/page.tsx | 2 +- .../(signing)/sign/[token]/waiting/page.tsx | 2 +- .../t/[teamUrl]/documents/[id]/edit/page.tsx | 2 +- .../t/[teamUrl]/documents/[id]/logs/page.tsx | 2 +- .../t/[teamUrl]/documents/[id]/page.tsx | 2 +- .../(teams)/t/[teamUrl]/documents/page.tsx | 2 +- .../src/app/(teams)/t/[teamUrl]/layout.tsx | 2 +- .../t/[teamUrl]/settings/billing/page.tsx | 2 +- .../(teams)/t/[teamUrl]/settings/layout.tsx | 2 +- .../t/[teamUrl]/settings/members/page.tsx | 2 +- .../app/(teams)/t/[teamUrl]/settings/page.tsx | 2 +- .../settings/public-profile/page.tsx | 2 +- .../t/[teamUrl]/settings/tokens/page.tsx | 2 +- .../t/[teamUrl]/templates/[id]/page.tsx | 2 +- .../(teams)/t/[teamUrl]/templates/page.tsx | 2 +- .../articles/signature-disclosure/page.tsx | 4 +- .../(unauthenticated)/check-email/page.tsx | 4 +- .../forgot-password/page.tsx | 4 +- apps/web/src/app/(unauthenticated)/layout.tsx | 4 +- .../reset-password/[token]/page.tsx | 2 +- .../(unauthenticated)/reset-password/page.tsx | 4 +- .../src/app/(unauthenticated)/signin/page.tsx | 4 +- .../src/app/(unauthenticated)/signup/page.tsx | 4 +- .../team/decline/[token]/page.tsx | 2 +- .../team/invite/[token]/page.tsx | 2 +- .../team/verify/email/[token]/page.tsx | 2 +- .../team/verify/transfer/[token]/page.tsx | 2 +- .../unverified-account/page.tsx | 4 +- .../verify-email/[token]/page.tsx | 2 +- .../(unauthenticated)/verify-email/page.tsx | 4 +- apps/web/src/app/layout.tsx | 2 +- apps/web/src/app/not-found.tsx | 2 +- apps/web/src/app/page.tsx | 4 +- lingui.config.ts | 2 +- package-lock.json | 3 + packages/api/v1/implementation.ts | 1 + packages/api/v1/schema.ts | 4 + packages/email/render.ts | 1 - packages/email/render.tsx | 39 ++ .../template-confirmation-email.tsx | 19 +- .../template-document-cancel.tsx | 12 +- .../template-document-completed.tsx | 10 +- .../template-document-invite.tsx | 29 +- .../template-document-pending.tsx | 14 +- .../template-document-self-signed.tsx | 29 +- .../template-document-super-delete.tsx | 14 +- .../template-components/template-footer.tsx | 12 +- .../template-forgot-password.tsx | 8 +- .../template-reset-password.tsx | 7 +- packages/email/templates/confirm-email.tsx | 63 +-- .../email/templates/confirm-team-email.tsx | 148 +++--- packages/email/templates/document-cancel.tsx | 68 ++- .../email/templates/document-completed.tsx | 66 ++- .../document-created-from-direct-template.tsx | 100 ++-- packages/email/templates/document-invite.tsx | 125 ++--- packages/email/templates/document-pending.tsx | 56 +- .../email/templates/document-self-signed.tsx | 59 +-- .../email/templates/document-super-delete.tsx | 66 ++- packages/email/templates/forgot-password.tsx | 64 ++- .../recipient-removed-from-document.tsx | 81 ++- packages/email/templates/reset-password.tsx | 104 ++-- packages/email/templates/team-delete.tsx | 89 ++-- .../email/templates/team-email-removed.tsx | 87 ++-- packages/email/templates/team-invite.tsx | 130 +++-- packages/email/templates/team-join.tsx | 87 ++-- packages/email/templates/team-leave.tsx | 87 ++-- .../email/templates/team-transfer-request.tsx | 122 ++--- .../lib/client-only/providers/i18n.server.tsx | 72 ++- packages/lib/constants/i18n.ts | 3 + packages/lib/constants/recipient-roles.ts | 6 +- packages/lib/jobs/client/local.ts | 8 - .../definitions/emails/send-signing-email.ts | 40 +- .../emails/send-team-member-joined-email.ts | 18 +- .../emails/send-team-member-left-email.ts | 17 +- packages/lib/package.json | 3 + .../auth/send-confirmation-email.ts | 18 +- .../server-only/auth/send-forgot-password.ts | 18 +- .../server-only/auth/send-reset-password.ts | 11 +- .../document-meta/upsert-document-meta.ts | 6 + .../server-only/document/delete-document.ts | 11 +- .../server-only/document/resend-document.tsx | 47 +- .../document/send-completed-email.ts | 29 +- .../server-only/document/send-delete-email.ts | 18 +- .../document/send-pending-email.ts | 19 +- .../document/super-delete-document.ts | 18 +- .../recipient/set-recipients-for-document.ts | 19 +- .../team/accept-team-invitation.ts | 2 +- .../team/create-team-email-verification.ts | 20 +- .../team/create-team-member-invites.ts | 20 +- .../lib/server-only/team/delete-team-email.ts | 19 +- packages/lib/server-only/team/delete-team.ts | 11 +- .../team/request-team-ownership-transfer.ts | 21 +- .../create-document-from-direct-template.ts | 19 +- .../create-document-from-template-legacy.ts | 12 + .../template/create-document-from-template.ts | 3 + .../user/send-confirmation-token.ts | 3 +- packages/lib/translations/de/common.po | 477 ++++++++++++++++- packages/lib/translations/de/marketing.po | 33 +- packages/lib/translations/de/web.po | 65 ++- packages/lib/translations/en/common.po | 478 ++++++++++++++++- packages/lib/translations/en/marketing.po | 32 +- packages/lib/translations/en/web.po | 64 +-- packages/lib/translations/es/common.po | 477 ++++++++++++++++- packages/lib/translations/es/marketing.po | 33 +- packages/lib/translations/es/web.po | 65 ++- packages/lib/translations/fr/common.po | 485 +++++++++++++++++- packages/lib/translations/fr/marketing.po | 33 +- packages/lib/translations/fr/web.po | 65 ++- packages/lib/utils/is-valid-redirect-url.ts | 1 - packages/lib/utils/remember.ts | 18 + packages/lib/utils/render-email-with-i18n.tsx | 36 ++ .../migration.sql | 5 + packages/prisma/schema.prisma | 2 + .../trpc/server/document-router/router.ts | 1 + .../trpc/server/document-router/schema.ts | 2 + .../trpc/server/singleplayer-router/router.ts | 6 +- .../trpc/server/template-router/router.ts | 6 +- .../trpc/server/template-router/schema.ts | 6 + .../primitives/document-flow/add-settings.tsx | 42 ++ .../document-flow/add-settings.types.ts | 5 + .../template-flow/add-template-settings.tsx | 42 ++ .../add-template-settings.types.tsx | 5 + 163 files changed, 3549 insertions(+), 1461 deletions(-) delete mode 100644 packages/email/render.ts create mode 100644 packages/email/render.tsx create mode 100644 packages/lib/utils/remember.ts create mode 100644 packages/lib/utils/render-email-with-i18n.tsx create mode 100644 packages/prisma/migrations/20241101103425_add_language_column_for_documents_and_templates/migration.sql diff --git a/apps/marketing/src/app/(marketing)/[content]/page.tsx b/apps/marketing/src/app/(marketing)/[content]/page.tsx index 2e8327944..38200d984 100644 --- a/apps/marketing/src/app/(marketing)/[content]/page.tsx +++ b/apps/marketing/src/app/(marketing)/[content]/page.tsx @@ -30,8 +30,8 @@ const mdxComponents: MDXComponents = { * * Will render the document if it exists, otherwise will return a 404. */ -export default function ContentPage({ params }: { params: { content: string } }) { - setupI18nSSR(); +export default async function ContentPage({ params }: { params: { content: string } }) { + await setupI18nSSR(); const post = allDocuments.find((post) => post._raw.flattenedPath === params.content); diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx index 4f99126f3..324f742d1 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx @@ -48,8 +48,8 @@ const mdxComponents: MDXComponents = { ), }; -export default function BlogPostPage({ params }: { params: { post: string } }) { - setupI18nSSR(); +export default async function BlogPostPage({ params }: { params: { post: string } }) { + await setupI18nSSR(); const post = allBlogPosts.find((post) => post._raw.flattenedPath === `blog/${params.post}`); diff --git a/apps/marketing/src/app/(marketing)/blog/page.tsx b/apps/marketing/src/app/(marketing)/blog/page.tsx index 4974a2399..a762f4c2a 100644 --- a/apps/marketing/src/app/(marketing)/blog/page.tsx +++ b/apps/marketing/src/app/(marketing)/blog/page.tsx @@ -9,8 +9,8 @@ export const metadata: Metadata = { title: 'Blog', }; -export default function BlogPage() { - const { i18n } = setupI18nSSR(); +export default async function BlogPage() { + const { i18n } = await setupI18nSSR(); const blogPosts = allBlogPosts.sort((a, b) => { const dateA = new Date(a.date); diff --git a/apps/marketing/src/app/(marketing)/open/page.tsx b/apps/marketing/src/app/(marketing)/open/page.tsx index 676a352bb..035b4de38 100644 --- a/apps/marketing/src/app/(marketing)/open/page.tsx +++ b/apps/marketing/src/app/(marketing)/open/page.tsx @@ -1,7 +1,6 @@ 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'; @@ -131,9 +130,9 @@ const fetchEarlyAdopters = async () => { }; export default async function OpenPage() { - setupI18nSSR(); + const { i18n } = await setupI18nSSR(); - const { _ } = useLingui(); + const { _ } = i18n; const [ { forks_count: forksCount, stargazers_count: stargazersCount }, diff --git a/apps/marketing/src/app/(marketing)/page.tsx b/apps/marketing/src/app/(marketing)/page.tsx index 2f5dd14c8..816b1aaa1 100644 --- a/apps/marketing/src/app/(marketing)/page.tsx +++ b/apps/marketing/src/app/(marketing)/page.tsx @@ -26,7 +26,7 @@ const fontCaveat = Caveat({ }); export default async function IndexPage() { - setupI18nSSR(); + await setupI18nSSR(); const starCount = await fetch('https://api.github.com/repos/documenso/documenso', { headers: { diff --git a/apps/marketing/src/app/(marketing)/pricing/page.tsx b/apps/marketing/src/app/(marketing)/pricing/page.tsx index 61a802cb8..4c89490c0 100644 --- a/apps/marketing/src/app/(marketing)/pricing/page.tsx +++ b/apps/marketing/src/app/(marketing)/pricing/page.tsx @@ -30,8 +30,8 @@ export type PricingPageProps = { }; }; -export default function PricingPage() { - setupI18nSSR(); +export default async function PricingPage() { + await setupI18nSSR(); return (

diff --git a/apps/marketing/src/app/(marketing)/singleplayer/page.tsx b/apps/marketing/src/app/(marketing)/singleplayer/page.tsx index 1416067e4..16da4e6b9 100644 --- a/apps/marketing/src/app/(marketing)/singleplayer/page.tsx +++ b/apps/marketing/src/app/(marketing)/singleplayer/page.tsx @@ -14,8 +14,8 @@ export const dynamic = 'force-dynamic'; // !: This entire file is a hack to get around failed prerendering of // !: the Single Player Mode page. This regression was introduced during // !: the upgrade of Next.js to v13.5.x. -export default function SingleplayerPage() { - setupI18nSSR(); +export default async function SingleplayerPage() { + await setupI18nSSR(); return ; } diff --git a/apps/marketing/src/app/layout.tsx b/apps/marketing/src/app/layout.tsx index 544b5ceb4..ea879d89d 100644 --- a/apps/marketing/src/app/layout.tsx +++ b/apps/marketing/src/app/layout.tsx @@ -56,7 +56,7 @@ export function generateMetadata() { export default async function RootLayout({ children }: { children: React.ReactNode }) { const flags = await getAllAnonymousFlags(); - const { lang, locales, i18n } = setupI18nSSR(); + const { lang, locales, i18n } = await setupI18nSSR(); return ( diff --git a/apps/web/src/app/(dashboard)/admin/layout.tsx b/apps/web/src/app/(dashboard)/admin/layout.tsx index c489c34a1..964267872 100644 --- a/apps/web/src/app/(dashboard)/admin/layout.tsx +++ b/apps/web/src/app/(dashboard)/admin/layout.tsx @@ -13,7 +13,7 @@ export type AdminSectionLayoutProps = { }; export default async function AdminSectionLayout({ children }: AdminSectionLayoutProps) { - setupI18nSSR(); + await setupI18nSSR(); const { user } = await getRequiredServerComponentSession(); diff --git a/apps/web/src/app/(dashboard)/admin/site-settings/page.tsx b/apps/web/src/app/(dashboard)/admin/site-settings/page.tsx index a9d37caff..c78eb87ec 100644 --- a/apps/web/src/app/(dashboard)/admin/site-settings/page.tsx +++ b/apps/web/src/app/(dashboard)/admin/site-settings/page.tsx @@ -12,7 +12,7 @@ import { BannerForm } from './banner-form'; // import { BannerForm } from './banner-form'; export default async function AdminBannerPage() { - setupI18nSSR(); + await setupI18nSSR(); const { _ } = useLingui(); diff --git a/apps/web/src/app/(dashboard)/admin/stats/page.tsx b/apps/web/src/app/(dashboard)/admin/stats/page.tsx index 33be711e1..9ffbfb5dc 100644 --- a/apps/web/src/app/(dashboard)/admin/stats/page.tsx +++ b/apps/web/src/app/(dashboard)/admin/stats/page.tsx @@ -30,7 +30,7 @@ import { SignerConversionChart } from './signer-conversion-chart'; import { UserWithDocumentChart } from './user-with-document'; export default async function AdminStatsPage() { - setupI18nSSR(); + await setupI18nSSR(); const { _ } = useLingui(); diff --git a/apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx b/apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx index f31e9d13e..7940b6fb5 100644 --- a/apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx +++ b/apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx @@ -14,7 +14,7 @@ import { } from '@documenso/ui/primitives/table'; export default async function Subscriptions() { - setupI18nSSR(); + await setupI18nSSR(); const subscriptions = await findSubscriptions(); diff --git a/apps/web/src/app/(dashboard)/admin/users/page.tsx b/apps/web/src/app/(dashboard)/admin/users/page.tsx index 807fd45c9..55803f6f9 100644 --- a/apps/web/src/app/(dashboard)/admin/users/page.tsx +++ b/apps/web/src/app/(dashboard)/admin/users/page.tsx @@ -16,7 +16,7 @@ type AdminManageUsersProps = { }; export default async function AdminManageUsers({ searchParams = {} }: AdminManageUsersProps) { - setupI18nSSR(); + await setupI18nSSR(); const page = Number(searchParams.page) || 1; const perPage = Number(searchParams.perPage) || 10; diff --git a/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx b/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx index 571ca535f..5c659ad46 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx @@ -7,6 +7,7 @@ import { useRouter, useSearchParams } from 'next/navigation'; import { msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; +import { isValidLanguageCode } from '@documenso/lib/constants/i18n'; import { DO_NOT_INVALIDATE_QUERY_ON_MUTATION, SKIP_QUERY_BATCH_META, @@ -201,7 +202,7 @@ export const EditDocumentForm = ({ const onAddSettingsFormSubmit = async (data: TAddSettingsFormSchema) => { try { - const { timezone, dateFormat, redirectUrl } = data.meta; + const { timezone, dateFormat, redirectUrl, language } = data.meta; await setSettingsForDocument({ documentId: document.id, @@ -217,6 +218,7 @@ export const EditDocumentForm = ({ timezone, dateFormat, redirectUrl, + language: isValidLanguageCode(language) ? language : undefined, }, }); diff --git a/apps/web/src/app/(dashboard)/documents/[id]/edit/page.tsx b/apps/web/src/app/(dashboard)/documents/[id]/edit/page.tsx index b91bf4e9a..a20cc8469 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/edit/page.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/edit/page.tsx @@ -8,8 +8,8 @@ export type DocumentPageProps = { }; }; -export default function DocumentEditPage({ params }: DocumentPageProps) { - setupI18nSSR(); +export default async function DocumentEditPage({ params }: DocumentPageProps) { + await setupI18nSSR(); return ; } diff --git a/apps/web/src/app/(dashboard)/documents/[id]/loading.tsx b/apps/web/src/app/(dashboard)/documents/[id]/loading.tsx index 65d508482..b6165436b 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/loading.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/loading.tsx @@ -6,8 +6,8 @@ import { ChevronLeft, Loader } from 'lucide-react'; import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; import { Skeleton } from '@documenso/ui/primitives/skeleton'; -export default function Loading() { - setupI18nSSR(); +export default async function Loading() { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(dashboard)/documents/[id]/logs/page.tsx b/apps/web/src/app/(dashboard)/documents/[id]/logs/page.tsx index 7c91ac8fc..c7c489ef1 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/logs/page.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/logs/page.tsx @@ -8,8 +8,8 @@ export type DocumentsLogsPageProps = { }; }; -export default function DocumentsLogsPage({ params }: DocumentsLogsPageProps) { - setupI18nSSR(); +export default async function DocumentsLogsPage({ params }: DocumentsLogsPageProps) { + await setupI18nSSR(); return ; } diff --git a/apps/web/src/app/(dashboard)/documents/[id]/page.tsx b/apps/web/src/app/(dashboard)/documents/[id]/page.tsx index 101b707fb..4e570effe 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/page.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/page.tsx @@ -8,8 +8,8 @@ export type DocumentPageProps = { }; }; -export default function DocumentPage({ params }: DocumentPageProps) { - setupI18nSSR(); +export default async function DocumentPage({ params }: DocumentPageProps) { + await setupI18nSSR(); return ; } diff --git a/apps/web/src/app/(dashboard)/documents/[id]/sent/page.tsx b/apps/web/src/app/(dashboard)/documents/[id]/sent/page.tsx index b6938f154..9d6e20535 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/sent/page.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/sent/page.tsx @@ -5,8 +5,8 @@ import { ChevronLeft } from 'lucide-react'; import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; -export default function DocumentSentPage() { - setupI18nSSR(); +export default async function DocumentSentPage() { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(dashboard)/documents/page.tsx b/apps/web/src/app/(dashboard)/documents/page.tsx index 241bee6f0..41cbf3df9 100644 --- a/apps/web/src/app/(dashboard)/documents/page.tsx +++ b/apps/web/src/app/(dashboard)/documents/page.tsx @@ -16,7 +16,7 @@ export const metadata: Metadata = { }; export default async function DocumentsPage({ searchParams = {} }: DocumentsPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { user } = await getRequiredServerComponentSession(); diff --git a/apps/web/src/app/(dashboard)/layout.tsx b/apps/web/src/app/(dashboard)/layout.tsx index 92cbbfecb..90096b0e3 100644 --- a/apps/web/src/app/(dashboard)/layout.tsx +++ b/apps/web/src/app/(dashboard)/layout.tsx @@ -23,7 +23,7 @@ export type AuthenticatedDashboardLayoutProps = { export default async function AuthenticatedDashboardLayout({ children, }: AuthenticatedDashboardLayoutProps) { - setupI18nSSR(); + await setupI18nSSR(); const session = await getServerSession(NEXT_AUTH_OPTIONS); diff --git a/apps/web/src/app/(dashboard)/settings/billing/page.tsx b/apps/web/src/app/(dashboard)/settings/billing/page.tsx index 4f1e69334..e60698818 100644 --- a/apps/web/src/app/(dashboard)/settings/billing/page.tsx +++ b/apps/web/src/app/(dashboard)/settings/billing/page.tsx @@ -24,7 +24,7 @@ export const metadata: Metadata = { }; export default async function BillingSettingsPage() { - const { i18n } = setupI18nSSR(); + const { i18n } = await setupI18nSSR(); let { user } = await getRequiredServerComponentSession(); diff --git a/apps/web/src/app/(dashboard)/settings/layout.tsx b/apps/web/src/app/(dashboard)/settings/layout.tsx index 7d15d4874..9c472cf07 100644 --- a/apps/web/src/app/(dashboard)/settings/layout.tsx +++ b/apps/web/src/app/(dashboard)/settings/layout.tsx @@ -11,8 +11,8 @@ export type DashboardSettingsLayoutProps = { children: React.ReactNode; }; -export default function DashboardSettingsLayout({ children }: DashboardSettingsLayoutProps) { - setupI18nSSR(); +export default async function DashboardSettingsLayout({ children }: DashboardSettingsLayoutProps) { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(dashboard)/settings/profile/page.tsx b/apps/web/src/app/(dashboard)/settings/profile/page.tsx index a9c47f245..214f73ad2 100644 --- a/apps/web/src/app/(dashboard)/settings/profile/page.tsx +++ b/apps/web/src/app/(dashboard)/settings/profile/page.tsx @@ -17,7 +17,7 @@ export const metadata: Metadata = { }; export default async function ProfileSettingsPage() { - setupI18nSSR(); + await setupI18nSSR(); const { _ } = useLingui(); const { user } = await getRequiredServerComponentSession(); diff --git a/apps/web/src/app/(dashboard)/settings/public-profile/page.tsx b/apps/web/src/app/(dashboard)/settings/public-profile/page.tsx index 673fb9328..8fcf1bca2 100644 --- a/apps/web/src/app/(dashboard)/settings/public-profile/page.tsx +++ b/apps/web/src/app/(dashboard)/settings/public-profile/page.tsx @@ -5,7 +5,7 @@ import { getUserPublicProfile } from '@documenso/lib/server-only/user/get-user-p import { PublicProfilePageView } from './public-profile-page-view'; export default async function Page() { - setupI18nSSR(); + await setupI18nSSR(); const { user } = await getRequiredServerComponentSession(); diff --git a/apps/web/src/app/(dashboard)/settings/security/activity/page.tsx b/apps/web/src/app/(dashboard)/settings/security/activity/page.tsx index 2b46a653c..79563ffd5 100644 --- a/apps/web/src/app/(dashboard)/settings/security/activity/page.tsx +++ b/apps/web/src/app/(dashboard)/settings/security/activity/page.tsx @@ -14,8 +14,8 @@ export const metadata: Metadata = { title: 'Security activity', }; -export default function SettingsSecurityActivityPage() { - setupI18nSSR(); +export default async function SettingsSecurityActivityPage() { + await setupI18nSSR(); const { _ } = useLingui(); diff --git a/apps/web/src/app/(dashboard)/settings/security/page.tsx b/apps/web/src/app/(dashboard)/settings/security/page.tsx index cbe35d254..1f3d4de08 100644 --- a/apps/web/src/app/(dashboard)/settings/security/page.tsx +++ b/apps/web/src/app/(dashboard)/settings/security/page.tsx @@ -21,7 +21,7 @@ export const metadata: Metadata = { }; export default async function SecuritySettingsPage() { - setupI18nSSR(); + await setupI18nSSR(); const { _ } = useLingui(); const { user } = await getRequiredServerComponentSession(); diff --git a/apps/web/src/app/(dashboard)/settings/security/passkeys/page.tsx b/apps/web/src/app/(dashboard)/settings/security/passkeys/page.tsx index 106916b3c..c9ec4153a 100644 --- a/apps/web/src/app/(dashboard)/settings/security/passkeys/page.tsx +++ b/apps/web/src/app/(dashboard)/settings/security/passkeys/page.tsx @@ -17,7 +17,7 @@ export const metadata: Metadata = { }; export default async function SettingsManagePasskeysPage() { - setupI18nSSR(); + await setupI18nSSR(); const { _ } = useLingui(); const isPasskeyEnabled = await getServerComponentFlag('app_passkey'); diff --git a/apps/web/src/app/(dashboard)/settings/tokens/page.tsx b/apps/web/src/app/(dashboard)/settings/tokens/page.tsx index ae01e6802..ad90b54d5 100644 --- a/apps/web/src/app/(dashboard)/settings/tokens/page.tsx +++ b/apps/web/src/app/(dashboard)/settings/tokens/page.tsx @@ -10,7 +10,7 @@ import DeleteTokenDialog from '~/components/(dashboard)/settings/token/delete-to import { ApiTokenForm } from '~/components/forms/token'; export default async function ApiTokensPage() { - const { i18n } = setupI18nSSR(); + const { i18n } = await setupI18nSSR(); const { user } = await getRequiredServerComponentSession(); diff --git a/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx b/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx index 9efd6e3b9..766d45caa 100644 --- a/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx +++ b/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx @@ -7,6 +7,7 @@ import { useRouter } from 'next/navigation'; import { msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; +import { isValidLanguageCode } from '@documenso/lib/constants/i18n'; import { DO_NOT_INVALIDATE_QUERY_ON_MUTATION, SKIP_QUERY_BATCH_META, @@ -151,7 +152,10 @@ export const EditTemplateForm = ({ globalAccessAuth: data.globalAccessAuth ?? null, globalActionAuth: data.globalActionAuth ?? null, }, - meta: data.meta, + meta: { + ...data.meta, + language: isValidLanguageCode(data.meta.language) ? data.meta.language : undefined, + }, }); // Router refresh is here to clear the router cache for when navigating to /documents. diff --git a/apps/web/src/app/(dashboard)/templates/[id]/page.tsx b/apps/web/src/app/(dashboard)/templates/[id]/page.tsx index 5c5699c25..0deaf4ecb 100644 --- a/apps/web/src/app/(dashboard)/templates/[id]/page.tsx +++ b/apps/web/src/app/(dashboard)/templates/[id]/page.tsx @@ -7,8 +7,8 @@ import { TemplatePageView } from './template-page-view'; type TemplatePageProps = Pick; -export default function TemplatePage({ params }: TemplatePageProps) { - setupI18nSSR(); +export default async function TemplatePage({ params }: TemplatePageProps) { + await setupI18nSSR(); return ; } diff --git a/apps/web/src/app/(dashboard)/templates/page.tsx b/apps/web/src/app/(dashboard)/templates/page.tsx index 7f910efa5..886eba88e 100644 --- a/apps/web/src/app/(dashboard)/templates/page.tsx +++ b/apps/web/src/app/(dashboard)/templates/page.tsx @@ -15,8 +15,8 @@ export const metadata: Metadata = { title: 'Templates', }; -export default function TemplatesPage({ searchParams = {} }: TemplatesPageProps) { - setupI18nSSR(); +export default async function TemplatesPage({ searchParams = {} }: TemplatesPageProps) { + await setupI18nSSR(); return ; } diff --git a/apps/web/src/app/(profile)/layout.tsx b/apps/web/src/app/(profile)/layout.tsx index 43f263de7..d43e44172 100644 --- a/apps/web/src/app/(profile)/layout.tsx +++ b/apps/web/src/app/(profile)/layout.tsx @@ -14,7 +14,7 @@ type PublicProfileLayoutProps = { }; export default async function PublicProfileLayout({ children }: PublicProfileLayoutProps) { - setupI18nSSR(); + await setupI18nSSR(); const { user, session } = await getServerComponentSession(); diff --git a/apps/web/src/app/(profile)/p/[url]/page.tsx b/apps/web/src/app/(profile)/p/[url]/page.tsx index e276417d2..67226c5cb 100644 --- a/apps/web/src/app/(profile)/p/[url]/page.tsx +++ b/apps/web/src/app/(profile)/p/[url]/page.tsx @@ -42,7 +42,7 @@ const BADGE_DATA = { }; export default async function PublicProfilePage({ params }: PublicProfilePageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { url: profileUrl } = params; diff --git a/apps/web/src/app/(recipient)/d/[token]/page.tsx b/apps/web/src/app/(recipient)/d/[token]/page.tsx index 0cc3b1a2c..a2ace350c 100644 --- a/apps/web/src/app/(recipient)/d/[token]/page.tsx +++ b/apps/web/src/app/(recipient)/d/[token]/page.tsx @@ -24,7 +24,7 @@ export type TemplatesDirectPageProps = { }; export default async function TemplatesDirectPage({ params }: TemplatesDirectPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { token } = params; diff --git a/apps/web/src/app/(recipient)/layout.tsx b/apps/web/src/app/(recipient)/layout.tsx index e24c7d088..54477b458 100644 --- a/apps/web/src/app/(recipient)/layout.tsx +++ b/apps/web/src/app/(recipient)/layout.tsx @@ -19,7 +19,7 @@ type RecipientLayoutProps = { * Such as direct template access, or signing. */ export default async function RecipientLayout({ children }: RecipientLayoutProps) { - setupI18nSSR(); + await setupI18nSSR(); const { user, session } = await getServerComponentSession(); diff --git a/apps/web/src/app/(signing)/sign/[token]/complete/layout.tsx b/apps/web/src/app/(signing)/sign/[token]/complete/layout.tsx index 0798e5098..23a5f1278 100644 --- a/apps/web/src/app/(signing)/sign/[token]/complete/layout.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/complete/layout.tsx @@ -8,8 +8,8 @@ export type SigningLayoutProps = { children: React.ReactNode; }; -export default function SigningLayout({ children }: SigningLayoutProps) { - setupI18nSSR(); +export default async function SigningLayout({ children }: SigningLayoutProps) { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(signing)/sign/[token]/complete/page.tsx b/apps/web/src/app/(signing)/sign/[token]/complete/page.tsx index a234375c2..7e183da1d 100644 --- a/apps/web/src/app/(signing)/sign/[token]/complete/page.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/complete/page.tsx @@ -40,7 +40,7 @@ export type CompletedSigningPageProps = { export default async function CompletedSigningPage({ params: { token }, }: CompletedSigningPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { _ } = useLingui(); diff --git a/apps/web/src/app/(signing)/sign/[token]/layout.tsx b/apps/web/src/app/(signing)/sign/[token]/layout.tsx index c9be8130b..9ecb8487b 100644 --- a/apps/web/src/app/(signing)/sign/[token]/layout.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/layout.tsx @@ -13,7 +13,7 @@ export type SigningLayoutProps = { }; export default async function SigningLayout({ children }: SigningLayoutProps) { - setupI18nSSR(); + await setupI18nSSR(); const { user, session } = await getServerComponentSession(); diff --git a/apps/web/src/app/(signing)/sign/[token]/page.tsx b/apps/web/src/app/(signing)/sign/[token]/page.tsx index 0a2c59520..ca7afafa2 100644 --- a/apps/web/src/app/(signing)/sign/[token]/page.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/page.tsx @@ -31,7 +31,7 @@ export type SigningPageProps = { }; export default async function SigningPage({ params: { token } }: SigningPageProps) { - setupI18nSSR(); + await setupI18nSSR(); if (!token) { return notFound(); diff --git a/apps/web/src/app/(signing)/sign/[token]/waiting/page.tsx b/apps/web/src/app/(signing)/sign/[token]/waiting/page.tsx index bf5466215..f53c10e27 100644 --- a/apps/web/src/app/(signing)/sign/[token]/waiting/page.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/waiting/page.tsx @@ -21,7 +21,7 @@ type WaitingForTurnToSignPageProps = { export default async function WaitingForTurnToSignPage({ params: { token }, }: WaitingForTurnToSignPageProps) { - setupI18nSSR(); + await setupI18nSSR(); if (!token) { return notFound(); diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/edit/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/edit/page.tsx index c04779105..ea6351ad9 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/edit/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/edit/page.tsx @@ -12,7 +12,7 @@ export type DocumentPageProps = { }; export default async function TeamsDocumentEditPage({ params }: DocumentPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/logs/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/logs/page.tsx index effd426c5..9f83273e4 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/logs/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/logs/page.tsx @@ -12,7 +12,7 @@ export type TeamDocumentsLogsPageProps = { }; export default async function TeamsDocumentsLogsPage({ params }: TeamDocumentsLogsPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/page.tsx index 2d734d944..30bd93555 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/documents/[id]/page.tsx @@ -12,7 +12,7 @@ export type DocumentPageProps = { }; export default async function DocumentPage({ params }: DocumentPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/documents/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/documents/page.tsx index dba102909..0d5b9692f 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/documents/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/documents/page.tsx @@ -16,7 +16,7 @@ export default async function TeamsDocumentPage({ params, searchParams = {}, }: TeamsDocumentPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/layout.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/layout.tsx index cd1676591..f5d2a48d1 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/layout.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/layout.tsx @@ -27,7 +27,7 @@ export default async function AuthenticatedTeamsLayout({ children, params, }: AuthenticatedTeamsLayoutProps) { - setupI18nSSR(); + await setupI18nSSR(); const { session, user } = await getServerComponentSession(); diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/billing/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/billing/page.tsx index a12e02665..dc13b630c 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/billing/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/billing/page.tsx @@ -21,7 +21,7 @@ export type TeamsSettingsBillingPageProps = { }; export default async function TeamsSettingBillingPage({ params }: TeamsSettingsBillingPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { _ } = useLingui(); diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/layout.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/layout.tsx index 04ebe3e3f..c2fc3c39e 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/layout.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/layout.tsx @@ -24,7 +24,7 @@ export default async function TeamsSettingsLayout({ children, params: { teamUrl }, }: TeamSettingsLayoutProps) { - setupI18nSSR(); + await setupI18nSSR(); const session = await getRequiredServerComponentSession(); diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/members/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/members/page.tsx index 0ca35c8c9..cda20f9c0 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/members/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/members/page.tsx @@ -16,7 +16,7 @@ export type TeamsSettingsMembersPageProps = { }; export default async function TeamsSettingsMembersPage({ params }: TeamsSettingsMembersPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { _ } = useLingui(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx index b9ffc4e63..3a72cb255 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx @@ -28,7 +28,7 @@ export type TeamsSettingsPageProps = { }; export default async function TeamsSettingsPage({ params }: TeamsSettingsPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/public-profile/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/public-profile/page.tsx index b8e6f2cc5..d184f2845 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/public-profile/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/public-profile/page.tsx @@ -14,7 +14,7 @@ export type TeamsSettingsPublicProfilePageProps = { export default async function TeamsSettingsPublicProfilePage({ params, }: TeamsSettingsPublicProfilePageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx index 43b85483e..d3dd91b2c 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx @@ -21,7 +21,7 @@ type ApiTokensPageProps = { }; export default async function ApiTokensPage({ params }: ApiTokensPageProps) { - const { i18n } = setupI18nSSR(); + const { i18n } = await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/page.tsx index a4773e583..2efcf7c5e 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/page.tsx @@ -14,7 +14,7 @@ type TeamTemplatePageProps = { }; export default async function TeamTemplatePage({ params }: TeamTemplatePageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/templates/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/templates/page.tsx index 4bae127ef..784866148 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/templates/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/templates/page.tsx @@ -18,7 +18,7 @@ export default async function TeamTemplatesPage({ searchParams = {}, params, }: TeamTemplatesPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const { teamUrl } = params; diff --git a/apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx b/apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx index 3ac77e01a..160215df8 100644 --- a/apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx +++ b/apps/web/src/app/(unauthenticated)/articles/signature-disclosure/page.tsx @@ -7,8 +7,8 @@ import { Button } from '@documenso/ui/primitives/button'; const SUPPORT_EMAIL = 'support@documenso.com'; -export default function SignatureDisclosure() { - setupI18nSSR(); +export default async function SignatureDisclosure() { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(unauthenticated)/check-email/page.tsx b/apps/web/src/app/(unauthenticated)/check-email/page.tsx index a91a2f7a2..a0aa50fae 100644 --- a/apps/web/src/app/(unauthenticated)/check-email/page.tsx +++ b/apps/web/src/app/(unauthenticated)/check-email/page.tsx @@ -10,8 +10,8 @@ export const metadata: Metadata = { title: 'Forgot password', }; -export default function ForgotPasswordPage() { - setupI18nSSR(); +export default async function ForgotPasswordPage() { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(unauthenticated)/forgot-password/page.tsx b/apps/web/src/app/(unauthenticated)/forgot-password/page.tsx index 72a757732..0bb05587a 100644 --- a/apps/web/src/app/(unauthenticated)/forgot-password/page.tsx +++ b/apps/web/src/app/(unauthenticated)/forgot-password/page.tsx @@ -11,8 +11,8 @@ export const metadata: Metadata = { title: 'Forgot Password', }; -export default function ForgotPasswordPage() { - setupI18nSSR(); +export default async function ForgotPasswordPage() { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(unauthenticated)/layout.tsx b/apps/web/src/app/(unauthenticated)/layout.tsx index 994bb3ac2..2b70d2610 100644 --- a/apps/web/src/app/(unauthenticated)/layout.tsx +++ b/apps/web/src/app/(unauthenticated)/layout.tsx @@ -9,8 +9,8 @@ type UnauthenticatedLayoutProps = { children: React.ReactNode; }; -export default function UnauthenticatedLayout({ children }: UnauthenticatedLayoutProps) { - setupI18nSSR(); +export default async function UnauthenticatedLayout({ children }: UnauthenticatedLayoutProps) { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(unauthenticated)/reset-password/[token]/page.tsx b/apps/web/src/app/(unauthenticated)/reset-password/[token]/page.tsx index 7f594c0ed..1bbca3cfe 100644 --- a/apps/web/src/app/(unauthenticated)/reset-password/[token]/page.tsx +++ b/apps/web/src/app/(unauthenticated)/reset-password/[token]/page.tsx @@ -15,7 +15,7 @@ type ResetPasswordPageProps = { }; export default async function ResetPasswordPage({ params: { token } }: ResetPasswordPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const isValid = await getResetTokenValidity({ token }); diff --git a/apps/web/src/app/(unauthenticated)/reset-password/page.tsx b/apps/web/src/app/(unauthenticated)/reset-password/page.tsx index ad478a7bb..fc54aceec 100644 --- a/apps/web/src/app/(unauthenticated)/reset-password/page.tsx +++ b/apps/web/src/app/(unauthenticated)/reset-password/page.tsx @@ -10,8 +10,8 @@ export const metadata: Metadata = { title: 'Reset Password', }; -export default function ResetPasswordPage() { - setupI18nSSR(); +export default async function ResetPasswordPage() { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(unauthenticated)/signin/page.tsx b/apps/web/src/app/(unauthenticated)/signin/page.tsx index f7e62675b..9b041e22b 100644 --- a/apps/web/src/app/(unauthenticated)/signin/page.tsx +++ b/apps/web/src/app/(unauthenticated)/signin/page.tsx @@ -17,8 +17,8 @@ export const metadata: Metadata = { title: 'Sign In', }; -export default function SignInPage() { - setupI18nSSR(); +export default async function SignInPage() { + await setupI18nSSR(); const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP'); diff --git a/apps/web/src/app/(unauthenticated)/signup/page.tsx b/apps/web/src/app/(unauthenticated)/signup/page.tsx index bdcf9c37f..7686d2f70 100644 --- a/apps/web/src/app/(unauthenticated)/signup/page.tsx +++ b/apps/web/src/app/(unauthenticated)/signup/page.tsx @@ -12,8 +12,8 @@ export const metadata: Metadata = { title: 'Sign Up', }; -export default function SignUpPage() { - setupI18nSSR(); +export default async function SignUpPage() { + await setupI18nSSR(); const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP'); diff --git a/apps/web/src/app/(unauthenticated)/team/decline/[token]/page.tsx b/apps/web/src/app/(unauthenticated)/team/decline/[token]/page.tsx index 69d0cad8b..06c7dadc9 100644 --- a/apps/web/src/app/(unauthenticated)/team/decline/[token]/page.tsx +++ b/apps/web/src/app/(unauthenticated)/team/decline/[token]/page.tsx @@ -21,7 +21,7 @@ type DeclineInvitationPageProps = { export default async function DeclineInvitationPage({ params: { token }, }: DeclineInvitationPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const session = await getServerComponentSession(); diff --git a/apps/web/src/app/(unauthenticated)/team/invite/[token]/page.tsx b/apps/web/src/app/(unauthenticated)/team/invite/[token]/page.tsx index 5e76f8d65..3441dbed7 100644 --- a/apps/web/src/app/(unauthenticated)/team/invite/[token]/page.tsx +++ b/apps/web/src/app/(unauthenticated)/team/invite/[token]/page.tsx @@ -21,7 +21,7 @@ type AcceptInvitationPageProps = { export default async function AcceptInvitationPage({ params: { token }, }: AcceptInvitationPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const session = await getServerComponentSession(); diff --git a/apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx b/apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx index 0314646cb..b53fb5f71 100644 --- a/apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx +++ b/apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx @@ -14,7 +14,7 @@ type VerifyTeamEmailPageProps = { }; export default async function VerifyTeamEmailPage({ params: { token } }: VerifyTeamEmailPageProps) { - setupI18nSSR(); + await setupI18nSSR(); const teamEmailVerification = await prisma.teamEmailVerification.findUnique({ where: { diff --git a/apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx b/apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx index ae4e7e97f..8713aeecd 100644 --- a/apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx +++ b/apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx @@ -17,7 +17,7 @@ type VerifyTeamTransferPage = { export default async function VerifyTeamTransferPage({ params: { token }, }: VerifyTeamTransferPage) { - setupI18nSSR(); + await setupI18nSSR(); const teamTransferVerification = await prisma.teamTransferVerification.findUnique({ where: { diff --git a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx index 70b94c2cc..3c3588c1e 100644 --- a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx +++ b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx @@ -5,8 +5,8 @@ import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; import { SendConfirmationEmailForm } from '~/components/forms/send-confirmation-email'; -export default function UnverifiedAccount() { - setupI18nSSR(); +export default async function UnverifiedAccount() { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/(unauthenticated)/verify-email/[token]/page.tsx b/apps/web/src/app/(unauthenticated)/verify-email/[token]/page.tsx index b3edcb3c9..eb88538c4 100644 --- a/apps/web/src/app/(unauthenticated)/verify-email/[token]/page.tsx +++ b/apps/web/src/app/(unauthenticated)/verify-email/[token]/page.tsx @@ -23,7 +23,7 @@ export type PageProps = { }; export default async function VerifyEmailPage({ params: { token } }: PageProps) { - setupI18nSSR(); + await setupI18nSSR(); if (!token) { return ( diff --git a/apps/web/src/app/(unauthenticated)/verify-email/page.tsx b/apps/web/src/app/(unauthenticated)/verify-email/page.tsx index 6fcfaec9b..cd518a913 100644 --- a/apps/web/src/app/(unauthenticated)/verify-email/page.tsx +++ b/apps/web/src/app/(unauthenticated)/verify-email/page.tsx @@ -11,8 +11,8 @@ export const metadata: Metadata = { title: 'Verify Email', }; -export default function EmailVerificationWithoutTokenPage() { - setupI18nSSR(); +export default async function EmailVerificationWithoutTokenPage() { + await setupI18nSSR(); return (
diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index c4a6ffd3a..53d735200 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -56,7 +56,7 @@ export function generateMetadata() { export default async function RootLayout({ children }: { children: React.ReactNode }) { const flags = await getServerComponentAllFlags(); - const { i18n, lang, locales } = setupI18nSSR(); + const { i18n, lang, locales } = await setupI18nSSR(); return ( Documenso
; } diff --git a/lingui.config.ts b/lingui.config.ts index 855aaf7f5..8026d461f 100644 --- a/lingui.config.ts +++ b/lingui.config.ts @@ -19,7 +19,7 @@ const config: LinguiConfig = { }, { path: '/packages/lib/translations/{locale}/common', - include: ['packages/ui', 'packages/lib'], + include: ['packages/ui', 'packages/lib', 'packages/email'], exclude: ['**/node_modules/**'], }, ], diff --git a/package-lock.json b/package-lock.json index 27f0b5f26..956db402e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36774,6 +36774,9 @@ "@documenso/email": "*", "@documenso/prisma": "*", "@documenso/signing": "*", + "@lingui/core": "^4.11.3", + "@lingui/macro": "^4.11.3", + "@lingui/react": "^4.11.3", "@next-auth/prisma-adapter": "1.0.7", "@noble/ciphers": "0.4.0", "@noble/hashes": "1.3.2", diff --git a/packages/api/v1/implementation.ts b/packages/api/v1/implementation.ts index fc1aae04c..fda6ad1a4 100644 --- a/packages/api/v1/implementation.ts +++ b/packages/api/v1/implementation.ts @@ -301,6 +301,7 @@ export const ApiContractV1Implementation = createNextRoute(ApiContractV1, { dateFormat: dateFormat?.value, redirectUrl: body.meta.redirectUrl, signingOrder: body.meta.signingOrder, + language: body.meta.language, requestMetadata: extractNextApiRequestMetadata(args.req), }); diff --git a/packages/api/v1/schema.ts b/packages/api/v1/schema.ts index a6d4618ad..a4fab1089 100644 --- a/packages/api/v1/schema.ts +++ b/packages/api/v1/schema.ts @@ -2,6 +2,7 @@ import { extendZodWithOpenApi } from '@anatine/zod-openapi'; import { z } from 'zod'; import { DATE_FORMATS, DEFAULT_DOCUMENT_DATE_FORMAT } from '@documenso/lib/constants/date-formats'; +import { SUPPORTED_LANGUAGE_CODES } from '@documenso/lib/constants/i18n'; import '@documenso/lib/constants/time-zones'; import { DEFAULT_DOCUMENT_TIME_ZONE, TIME_ZONES } from '@documenso/lib/constants/time-zones'; import { ZUrlSchema } from '@documenso/lib/schemas/common'; @@ -127,6 +128,7 @@ export const ZCreateDocumentMutationSchema = z.object({ }), redirectUrl: z.string(), signingOrder: z.nativeEnum(DocumentSigningOrder).optional(), + language: z.enum(SUPPORTED_LANGUAGE_CODES).optional(), }) .partial(), authOptions: z @@ -181,6 +183,7 @@ export const ZCreateDocumentFromTemplateMutationSchema = z.object({ dateFormat: z.string(), redirectUrl: z.string(), signingOrder: z.nativeEnum(DocumentSigningOrder).optional(), + language: z.enum(SUPPORTED_LANGUAGE_CODES).optional(), }) .partial() .optional(), @@ -247,6 +250,7 @@ export const ZGenerateDocumentFromTemplateMutationSchema = z.object({ dateFormat: z.string(), redirectUrl: ZUrlSchema, signingOrder: z.nativeEnum(DocumentSigningOrder).optional(), + language: z.enum(SUPPORTED_LANGUAGE_CODES).optional(), }) .partial() .optional(), diff --git a/packages/email/render.ts b/packages/email/render.ts deleted file mode 100644 index 46f0d62a5..000000000 --- a/packages/email/render.ts +++ /dev/null @@ -1 +0,0 @@ -export { render, renderAsync } from '@react-email/render'; diff --git a/packages/email/render.tsx b/packages/email/render.tsx new file mode 100644 index 000000000..2a79c8252 --- /dev/null +++ b/packages/email/render.tsx @@ -0,0 +1,39 @@ +import * as reactEmail from '@react-email/render'; + +import config from '@documenso/tailwind-config'; + +import { Tailwind } from './components'; + +export const render: typeof reactEmail.render = (element, options) => { + return reactEmail.render( + + {element} + , + options, + ); +}; + +export const renderAsync: typeof reactEmail.renderAsync = async (element, options) => { + return reactEmail.renderAsync( + + {element} + , + options, + ); +}; diff --git a/packages/email/template-components/template-confirmation-email.tsx b/packages/email/template-components/template-confirmation-email.tsx index 1036faa3e..0c3c687ec 100644 --- a/packages/email/template-components/template-confirmation-email.tsx +++ b/packages/email/template-components/template-confirmation-email.tsx @@ -1,3 +1,6 @@ +import { Trans } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; + import { Button, Section, Text } from '../components'; import { TemplateDocumentImage } from './template-document-image'; @@ -10,17 +13,21 @@ export const TemplateConfirmationEmail = ({ confirmationLink, assetBaseUrl, }: TemplateConfirmationEmailProps) => { + const { _ } = useLingui(); + return ( <>
- Welcome to Documenso! + Welcome to Documenso! - Before you get started, please confirm your email address by clicking the button below: + + Before you get started, please confirm your email address by clicking the button below: +
@@ -28,11 +35,13 @@ export const TemplateConfirmationEmail = ({ className="bg-documenso-500 inline-flex items-center justify-center rounded-lg px-6 py-3 text-center text-sm font-medium text-black no-underline" href={confirmationLink} > - Confirm email + Confirm email - You can also copy and paste this link into your browser: {confirmationLink} (link - expires in 1 hour) + + You can also copy and paste this link into your browser: {confirmationLink} (link + expires in 1 hour) +
diff --git a/packages/email/template-components/template-document-cancel.tsx b/packages/email/template-components/template-document-cancel.tsx index dff275de2..d6e1b4221 100644 --- a/packages/email/template-components/template-document-cancel.tsx +++ b/packages/email/template-components/template-document-cancel.tsx @@ -1,3 +1,5 @@ +import { Trans } from '@lingui/macro'; + import { Section, Text } from '../components'; import { TemplateDocumentImage } from './template-document-image'; @@ -19,16 +21,18 @@ export const TemplateDocumentCancel = ({
- {inviterName} has cancelled the document -
"{documentName}" + + {inviterName} has cancelled the document +
"{documentName}" +
- All signatures have been voided. + All signatures have been voided. - You don't need to sign it anymore. + You don't need to sign it anymore.
diff --git a/packages/email/template-components/template-document-completed.tsx b/packages/email/template-components/template-document-completed.tsx index 8829c8d06..ed1dfc25e 100644 --- a/packages/email/template-components/template-document-completed.tsx +++ b/packages/email/template-components/template-document-completed.tsx @@ -1,3 +1,5 @@ +import { Trans } from '@lingui/macro'; + import { Button, Column, Img, Section, Text } from '../components'; import { TemplateDocumentImage } from './template-document-image'; @@ -30,17 +32,17 @@ export const TemplateDocumentCompleted = ({ src={getAssetUrl('/static/completed.png')} className="-mt-0.5 mr-2 inline h-7 w-7 align-middle" /> - Completed + Completed - {customBody ?? `“${documentName}” was signed by all signers`} + {customBody ?? `“${documentName}” was signed by all signers`} - Continue by downloading the document. + Continue by downloading the document.
@@ -59,7 +61,7 @@ export const TemplateDocumentCompleted = ({ src={getAssetUrl('/static/download.png')} className="mb-0.5 mr-2 inline h-5 w-5 align-middle" /> - Download + Download
diff --git a/packages/email/template-components/template-document-invite.tsx b/packages/email/template-components/template-document-invite.tsx index 62d049e13..6f59bab2c 100644 --- a/packages/email/template-components/template-document-invite.tsx +++ b/packages/email/template-components/template-document-invite.tsx @@ -1,3 +1,6 @@ +import { Trans } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; + import { RECIPIENT_ROLES_DESCRIPTION_ENG } from '@documenso/lib/constants/recipient-roles'; import type { RecipientRole } from '@documenso/prisma/client'; @@ -26,6 +29,8 @@ export const TemplateDocumentInvite = ({ isTeamInvite, teamName, }: TemplateDocumentInviteProps) => { + const { _ } = useLingui(); + const { actionVerb, progressiveVerb } = RECIPIENT_ROLES_DESCRIPTION_ENG[role]; return ( @@ -35,28 +40,30 @@ export const TemplateDocumentInvite = ({
{selfSigner ? ( - <> - {`Please ${actionVerb.toLowerCase()} your document`} + + {`Please ${_(actionVerb).toLowerCase()} your document`}
{`"${documentName}"`} - +
) : isTeamInvite ? ( - <> - {`${inviterName} on behalf of ${teamName} has invited you to ${actionVerb.toLowerCase()}`} + + {`${inviterName} on behalf of ${teamName} has invited you to ${_( + actionVerb, + ).toLowerCase()}`}
{`"${documentName}"`} - +
) : ( - <> - {`${inviterName} has invited you to ${actionVerb.toLowerCase()}`} + + {`${inviterName} has invited you to ${_(actionVerb).toLowerCase()}`}
{`"${documentName}"`} - +
)}
- Continue by {progressiveVerb.toLowerCase()} the document. + Continue by {_(progressiveVerb).toLowerCase()} the document.
@@ -64,7 +71,7 @@ export const TemplateDocumentInvite = ({ className="bg-documenso-500 inline-flex items-center justify-center rounded-lg px-6 py-3 text-center text-sm font-medium text-black no-underline" href={signDocumentLink} > - {actionVerb} Document + {_(actionVerb)} Document
diff --git a/packages/email/template-components/template-document-pending.tsx b/packages/email/template-components/template-document-pending.tsx index f03d7bdbb..161f519dc 100644 --- a/packages/email/template-components/template-document-pending.tsx +++ b/packages/email/template-components/template-document-pending.tsx @@ -1,3 +1,5 @@ +import { Trans } from '@lingui/macro'; + import { Column, Img, Section, Text } from '../components'; import { TemplateDocumentImage } from './template-document-image'; @@ -26,19 +28,21 @@ export const TemplateDocumentPending = ({ src={getAssetUrl('/static/clock.png')} className="-mt-0.5 mr-2 inline h-7 w-7 align-middle" /> - Waiting for others + Waiting for others - “{documentName}” has been signed + “{documentName}” has been signed - We're still waiting for other signers to sign this document. -
- We'll notify you as soon as it's ready. + + We're still waiting for other signers to sign this document. +
+ We'll notify you as soon as it's ready. +
diff --git a/packages/email/template-components/template-document-self-signed.tsx b/packages/email/template-components/template-document-self-signed.tsx index db16fb000..f62b3e650 100644 --- a/packages/email/template-components/template-document-self-signed.tsx +++ b/packages/email/template-components/template-document-self-signed.tsx @@ -1,3 +1,4 @@ +import { Trans } from '@lingui/macro'; import { env } from 'next-runtime-env'; import { Button, Column, Img, Link, Section, Text } from '../components'; @@ -32,25 +33,27 @@ export const TemplateDocumentSelfSigned = ({ src={getAssetUrl('/static/completed.png')} className="-mt-0.5 mr-2 inline h-7 w-7 align-middle" /> - Completed + Completed - You have signed “{documentName}” + You have signed “{documentName}” - Create a{' '} - - free account - {' '} - to access your signed documents at any time. + + Create a{' '} + + free account + {' '} + to access your signed documents at any time. +
@@ -62,7 +65,7 @@ export const TemplateDocumentSelfSigned = ({ src={getAssetUrl('/static/user-plus.png')} className="mb-0.5 mr-2 inline h-5 w-5 align-middle" /> - Create account + Create account
diff --git a/packages/email/template-components/template-document-super-delete.tsx b/packages/email/template-components/template-document-super-delete.tsx index 9cb0a9e71..b26a6f105 100644 --- a/packages/email/template-components/template-document-super-delete.tsx +++ b/packages/email/template-components/template-document-super-delete.tsx @@ -1,3 +1,5 @@ +import { Trans } from '@lingui/macro'; + import { Section, Text } from '../components'; import { TemplateDocumentImage } from './template-document-image'; @@ -18,20 +20,22 @@ export const TemplateDocumentDelete = ({
- Your document has been deleted by an admin! + Your document has been deleted by an admin! - "{documentName}" has been deleted by an admin. + "{documentName}" has been deleted by an admin. - This document can not be recovered, if you would like to dispute the reason for future - documents please contact support. + + This document can not be recovered, if you would like to dispute the reason for future + documents please contact support. + - The reason provided for deletion is the following: + The reason provided for deletion is the following: diff --git a/packages/email/template-components/template-footer.tsx b/packages/email/template-components/template-footer.tsx index 34cd4047e..36ecbb950 100644 --- a/packages/email/template-components/template-footer.tsx +++ b/packages/email/template-components/template-footer.tsx @@ -1,3 +1,5 @@ +import { Trans } from '@lingui/macro'; + import { Link, Section, Text } from '../components'; export type TemplateFooterProps = { @@ -9,10 +11,12 @@ export const TemplateFooter = ({ isDocument = true }: TemplateFooterProps) => {
{isDocument && ( - This document was sent using{' '} - - Documenso. - + + This document was sent using{' '} + + Documenso. + + )} diff --git a/packages/email/template-components/template-forgot-password.tsx b/packages/email/template-components/template-forgot-password.tsx index c8227b2bd..1ab319a43 100644 --- a/packages/email/template-components/template-forgot-password.tsx +++ b/packages/email/template-components/template-forgot-password.tsx @@ -1,3 +1,5 @@ +import { Trans } from '@lingui/macro'; + import { Button, Section, Text } from '../components'; import { TemplateDocumentImage } from './template-document-image'; @@ -16,11 +18,11 @@ export const TemplateForgotPassword = ({
- Forgot your password? + Forgot your password? - That's okay, it happens! Click the button below to reset your password. + That's okay, it happens! Click the button below to reset your password.
@@ -28,7 +30,7 @@ export const TemplateForgotPassword = ({ className="bg-documenso-500 inline-flex items-center justify-center rounded-lg px-6 py-3 text-center text-sm font-medium text-black no-underline" href={resetPasswordLink} > - Reset Password + Reset Password
diff --git a/packages/email/template-components/template-reset-password.tsx b/packages/email/template-components/template-reset-password.tsx index d05393c83..d264385e4 100644 --- a/packages/email/template-components/template-reset-password.tsx +++ b/packages/email/template-components/template-reset-password.tsx @@ -1,3 +1,4 @@ +import { Trans } from '@lingui/macro'; import { env } from 'next-runtime-env'; import { Button, Section, Text } from '../components'; @@ -18,11 +19,11 @@ export const TemplateResetPassword = ({ assetBaseUrl }: TemplateResetPasswordPro
- Password updated! + Password updated! - Your password has been updated. + Your password has been updated.
@@ -30,7 +31,7 @@ export const TemplateResetPassword = ({ assetBaseUrl }: TemplateResetPasswordPro className="bg-documenso-500 inline-flex items-center justify-center rounded-lg px-6 py-3 text-center text-sm font-medium text-black no-underline" href={`${NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000'}/signin`} > - Sign In + Sign In
diff --git a/packages/email/templates/confirm-email.tsx b/packages/email/templates/confirm-email.tsx index 59c7add10..4d39f12d6 100644 --- a/packages/email/templates/confirm-email.tsx +++ b/packages/email/templates/confirm-email.tsx @@ -1,6 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Html, Img, Preview, Section, Tailwind } from '../components'; +import { Body, Container, Head, Html, Img, Preview, Section } from '../components'; import type { TemplateConfirmationEmailProps } from '../template-components/template-confirmation-email'; import { TemplateConfirmationEmail } from '../template-components/template-confirmation-email'; import { TemplateFooter } from '../template-components/template-footer'; @@ -9,7 +10,9 @@ export const ConfirmEmailTemplate = ({ confirmationLink, assetBaseUrl = 'http://localhost:3002', }: TemplateConfirmationEmailProps) => { - const previewText = `Please confirm your email address`; + const { _ } = useLingui(); + + const previewText = msg`Please confirm your email address`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -18,40 +21,30 @@ export const ConfirmEmailTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} + +
+ +
+ Documenso Logo - -
-
-
+ +
+ +
- - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/confirm-team-email.tsx b/packages/email/templates/confirm-team-email.tsx index 552a079f8..8fa3afd3d 100644 --- a/packages/email/templates/confirm-team-email.tsx +++ b/packages/email/templates/confirm-team-email.tsx @@ -1,5 +1,7 @@ +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; + import { formatTeamUrl } from '@documenso/lib/utils/teams'; -import config from '@documenso/tailwind-config'; import { Body, @@ -11,7 +13,6 @@ import { Link, Preview, Section, - Tailwind, Text, } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; @@ -32,97 +33,90 @@ export const ConfirmTeamEmailTemplate = ({ teamUrl = 'demo', token = '', }: ConfirmTeamEmailProps) => { - const previewText = `Accept team email request for ${teamName} on Documenso`; + const { _ } = useLingui(); + + const previewText = msg`Accept team email request for ${teamName} on Documenso`; return ( - {previewText} - - -
- + {_(previewText)} + + +
+ + + +
+
-
- -
+
+ + Verify your team email address + -
- - Verify your team email address + + {teamName} has requested to use your email + address for their team on Documenso. + + +
+ {formatTeamUrl(teamUrl, baseUrl)} +
+ +
+ + By accepting this request, you will be granting {teamName} access + to: - - {teamName} has requested to use your email - address for their team on Documenso. +
    +
  • + View all documents sent to and from this email address +
  • +
  • + Allow document recipients to reply directly to this email address +
  • +
  • + Send documents on behalf of the team using the email address +
  • +
+ + + You can revoke access at any time in your team settings on Documenso{' '} + here. - -
- {formatTeamUrl(teamUrl, baseUrl)} -
- -
- - By accepting this request, you will be granting {teamName}{' '} - access to: - - -
    -
  • - View all documents sent to and from this email address -
  • -
  • - Allow document recipients to reply directly to this email address -
  • -
  • - Send documents on behalf of the team using the email address -
  • -
- - - You can revoke access at any time in your team settings on Documenso{' '} - here. - -
- -
- -
- Link expires in 1 hour. - +
+ +
+
-
+ Link expires in 1 hour. + - - - -
- - +
+ + + + +
+ ); }; diff --git a/packages/email/templates/document-cancel.tsx b/packages/email/templates/document-cancel.tsx index 66892bccc..edaec133b 100644 --- a/packages/email/templates/document-cancel.tsx +++ b/packages/email/templates/document-cancel.tsx @@ -1,6 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Hr, Html, Img, Preview, Section, Tailwind } from '../components'; +import { Body, Container, Head, Hr, Html, Img, Preview, Section } from '../components'; import type { TemplateDocumentCancelProps } from '../template-components/template-document-cancel'; import { TemplateDocumentCancel } from '../template-components/template-document-cancel'; import { TemplateFooter } from '../template-components/template-footer'; @@ -13,7 +14,9 @@ export const DocumentCancelTemplate = ({ documentName = 'Open Source Pledge.pdf', assetBaseUrl = 'http://localhost:3002', }: DocumentCancelEmailTemplateProps) => { - const previewText = `${inviterName} has cancelled the document ${documentName}, you don't need to sign it anymore.`; + const { _ } = useLingui(); + + const previewText = msg`${inviterName} has cancelled the document ${documentName}, you don't need to sign it anymore.`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -22,43 +25,34 @@ export const DocumentCancelTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - -
-
+ +
+ +
+ Documenso Logo -
+ +
+
- - - -
- - +
+ + + + +
+ ); }; diff --git a/packages/email/templates/document-completed.tsx b/packages/email/templates/document-completed.tsx index 5e23be873..b1ad6fc3a 100644 --- a/packages/email/templates/document-completed.tsx +++ b/packages/email/templates/document-completed.tsx @@ -1,6 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Html, Img, Preview, Section, Tailwind } from '../components'; +import { Body, Container, Head, Html, Img, Preview, Section } from '../components'; import type { TemplateDocumentCompletedProps } from '../template-components/template-document-completed'; import { TemplateDocumentCompleted } from '../template-components/template-document-completed'; import { TemplateFooter } from '../template-components/template-footer'; @@ -15,7 +16,9 @@ export const DocumentCompletedEmailTemplate = ({ assetBaseUrl = 'http://localhost:3002', customBody, }: DocumentCompletedEmailTemplateProps) => { - const previewText = `Completed Document`; + const { _ } = useLingui(); + + const previewText = msg`Completed Document`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -24,41 +27,32 @@ export const DocumentCompletedEmailTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - -
-
+ +
+ +
+ Documenso Logo - - - -
- - + +
+ + + + + +
+ ); }; diff --git a/packages/email/templates/document-created-from-direct-template.tsx b/packages/email/templates/document-created-from-direct-template.tsx index 68ad3363b..63d46c9b8 100644 --- a/packages/email/templates/document-created-from-direct-template.tsx +++ b/packages/email/templates/document-created-from-direct-template.tsx @@ -1,18 +1,9 @@ -import { RECIPIENT_ROLES_DESCRIPTION_ENG } from '@documenso/lib/constants/recipient-roles'; -import config from '@documenso/tailwind-config'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { - Body, - Button, - Container, - Head, - Html, - Img, - Preview, - Section, - Tailwind, - Text, -} from '../components'; +import { RECIPIENT_ROLES_DESCRIPTION_ENG } from '@documenso/lib/constants/recipient-roles'; + +import { Body, Button, Container, Head, Html, Img, Preview, Section, Text } from '../components'; import TemplateDocumentImage from '../template-components/template-document-image'; import { TemplateFooter } from '../template-components/template-footer'; import { RecipientRole } from '.prisma/client'; @@ -32,9 +23,11 @@ export const DocumentCreatedFromDirectTemplateEmailTemplate = ({ documentName = 'Open Source Pledge.pdf', assetBaseUrl = 'http://localhost:3002', }: DocumentCompletedEmailTemplateProps) => { - const action = RECIPIENT_ROLES_DESCRIPTION_ENG[recipientRole].actioned.toLowerCase(); + const { _ } = useLingui(); - const previewText = `Document created from direct template`; + const action = _(RECIPIENT_ROLES_DESCRIPTION_ENG[recipientRole].actioned).toLowerCase(); + + const previewText = msg`Document created from direct template`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -43,55 +36,48 @@ export const DocumentCreatedFromDirectTemplateEmailTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - + +
+ +
+ Documenso Logo -
- + + +
+ + {recipientName} {action} a document by using one of your direct links - + + -
- {documentName} -
+
+ {documentName} +
-
- -
+
+
- +
+ - - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/document-invite.tsx b/packages/email/templates/document-invite.tsx index 30c6ae960..edfd525f1 100644 --- a/packages/email/templates/document-invite.tsx +++ b/packages/email/templates/document-invite.tsx @@ -1,20 +1,10 @@ +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; + import { RECIPIENT_ROLES_DESCRIPTION_ENG } from '@documenso/lib/constants/recipient-roles'; import type { RecipientRole } from '@documenso/prisma/client'; -import config from '@documenso/tailwind-config'; -import { - Body, - Container, - Head, - Hr, - Html, - Img, - Link, - Preview, - Section, - Tailwind, - Text, -} from '../components'; +import { Body, Container, Head, Hr, Html, Img, Link, Preview, Section, Text } from '../components'; import type { TemplateDocumentInviteProps } from '../template-components/template-document-invite'; import { TemplateDocumentInvite } from '../template-components/template-document-invite'; import { TemplateFooter } from '../template-components/template-footer'; @@ -40,13 +30,15 @@ export const DocumentInviteEmailTemplate = ({ isTeamInvite = false, teamName, }: DocumentInviteEmailTemplateProps) => { - const action = RECIPIENT_ROLES_DESCRIPTION_ENG[role].actionVerb.toLowerCase(); + const { _ } = useLingui(); + + const action = _(RECIPIENT_ROLES_DESCRIPTION_ENG[role].actionVerb).toLowerCase(); const previewText = selfSigner - ? `Please ${action} your document ${documentName}` + ? msg`Please ${action} your document ${documentName}` : isTeamInvite - ? `${inviterName} on behalf of ${teamName} has invited you to ${action} ${documentName}` - : `${inviterName} has invited you to ${action} ${documentName}`; + ? msg`${inviterName} on behalf of ${teamName} has invited you to ${action} ${documentName}` + : msg`${inviterName} has invited you to ${action} ${documentName}`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -55,67 +47,62 @@ export const DocumentInviteEmailTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - -
-
+ +
+ +
+ Documenso Logo - -
- + +
+
+ + +
+ + {inviterName}{' '} ({inviterEmail}) - + + - - {customBody ? ( -
{customBody}
- ) : ( + + {customBody ? ( +
{customBody}
+ ) : ( + `${inviterName} has invited you to ${action} the document "${documentName}".` - )} -
-
-
+ + )} + +
+
-
+
- - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/document-pending.tsx b/packages/email/templates/document-pending.tsx index f14671e10..2073e491b 100644 --- a/packages/email/templates/document-pending.tsx +++ b/packages/email/templates/document-pending.tsx @@ -1,6 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Html, Img, Preview, Section, Tailwind } from '../components'; +import { Body, Container, Head, Html, Img, Preview, Section } from '../components'; import type { TemplateDocumentPendingProps } from '../template-components/template-document-pending'; import { TemplateDocumentPending } from '../template-components/template-document-pending'; import { TemplateFooter } from '../template-components/template-footer'; @@ -11,7 +12,9 @@ export const DocumentPendingEmailTemplate = ({ documentName = 'Open Source Pledge.pdf', assetBaseUrl = 'http://localhost:3002', }: DocumentPendingEmailTemplateProps) => { - const previewText = `Pending Document`; + const { _ } = useLingui(); + + const previewText = msg`Pending Document`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -20,36 +23,27 @@ export const DocumentPendingEmailTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - -
-
+ +
+ +
+ Documenso Logo - - - -
- - + +
+ + + + + +
+ ); }; diff --git a/packages/email/templates/document-self-signed.tsx b/packages/email/templates/document-self-signed.tsx index aa1c89b10..db9d44495 100644 --- a/packages/email/templates/document-self-signed.tsx +++ b/packages/email/templates/document-self-signed.tsx @@ -1,6 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Html, Img, Preview, Section, Tailwind } from '../components'; +import { Body, Container, Head, Html, Img, Preview, Section } from '../components'; import type { TemplateDocumentSelfSignedProps } from '../template-components/template-document-self-signed'; import { TemplateDocumentSelfSigned } from '../template-components/template-document-self-signed'; import { TemplateFooter } from '../template-components/template-footer'; @@ -11,7 +12,9 @@ export const DocumentSelfSignedEmailTemplate = ({ documentName = 'Open Source Pledge.pdf', assetBaseUrl = 'http://localhost:3002', }: DocumentSelfSignedTemplateProps) => { - const previewText = `Completed Document`; + const { _ } = useLingui(); + + const previewText = msg`Completed Document`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -20,39 +23,27 @@ export const DocumentSelfSignedEmailTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - -
-
+ +
+ +
+ Documenso Logo - - - -
- - + +
+ + + + + +
+ ); }; diff --git a/packages/email/templates/document-super-delete.tsx b/packages/email/templates/document-super-delete.tsx index 68384e119..bddc85dc4 100644 --- a/packages/email/templates/document-super-delete.tsx +++ b/packages/email/templates/document-super-delete.tsx @@ -1,6 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Hr, Html, Img, Preview, Section, Tailwind } from '../components'; +import { Body, Container, Head, Hr, Html, Img, Preview, Section } from '../components'; import { TemplateDocumentDelete, type TemplateDocumentDeleteProps, @@ -14,7 +15,9 @@ export const DocumentSuperDeleteEmailTemplate = ({ assetBaseUrl = 'http://localhost:3002', reason = 'Unknown', }: DocumentDeleteEmailTemplateProps) => { - const previewText = `An admin has deleted your document "${documentName}".`; + const { _ } = useLingui(); + + const previewText = msg`An admin has deleted your document "${documentName}".`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -23,42 +26,33 @@ export const DocumentSuperDeleteEmailTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - -
-
+ +
+ +
+ Documenso Logo -
+ +
+
- - - -
- - +
+ + + + +
+ ); }; diff --git a/packages/email/templates/forgot-password.tsx b/packages/email/templates/forgot-password.tsx index 7fe62cd20..531ec2ee6 100644 --- a/packages/email/templates/forgot-password.tsx +++ b/packages/email/templates/forgot-password.tsx @@ -1,6 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Html, Img, Preview, Section, Tailwind } from '../components'; +import { Body, Container, Head, Html, Img, Preview, Section } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; import type { TemplateForgotPasswordProps } from '../template-components/template-forgot-password'; import { TemplateForgotPassword } from '../template-components/template-forgot-password'; @@ -11,7 +12,9 @@ export const ForgotPasswordTemplate = ({ resetPasswordLink = 'https://documenso.com', assetBaseUrl = 'http://localhost:3002', }: ForgotPasswordTemplateProps) => { - const previewText = `Password Reset Requested`; + const { _ } = useLingui(); + + const previewText = msg`Password Reset Requested`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -20,41 +23,32 @@ export const ForgotPasswordTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - -
-
+ +
+ +
+ Documenso Logo -
+ +
+
- - - -
- - +
+ + + + +
+ ); }; diff --git a/packages/email/templates/recipient-removed-from-document.tsx b/packages/email/templates/recipient-removed-from-document.tsx index 4fa22a28e..2ba19dc03 100644 --- a/packages/email/templates/recipient-removed-from-document.tsx +++ b/packages/email/templates/recipient-removed-from-document.tsx @@ -1,17 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { - Body, - Container, - Head, - Hr, - Html, - Img, - Preview, - Section, - Tailwind, - Text, -} from '../components'; +import { Body, Container, Head, Hr, Html, Img, Preview, Section, Text } from '../components'; import type { TemplateDocumentCancelProps } from '../template-components/template-document-cancel'; import TemplateDocumentImage from '../template-components/template-document-image'; import { TemplateFooter } from '../template-components/template-footer'; @@ -23,7 +13,9 @@ export const RecipientRemovedFromDocumentTemplate = ({ documentName = 'Open Source Pledge.pdf', assetBaseUrl = 'http://localhost:3002', }: DocumentCancelEmailTemplateProps) => { - const previewText = `${inviterName} has removed you from the document ${documentName}.`; + const { _ } = useLingui(); + + const previewText = msg`${inviterName} has removed you from the document ${documentName}.`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -32,45 +24,36 @@ export const RecipientRemovedFromDocumentTemplate = ({ return ( - {previewText} - - -
- + {_(previewText)} + + +
+ +
+ Documenso Logo + + +
- Documenso Logo - - - -
- - {inviterName} has removed you from the document -
"{documentName}" -
-
+ + {inviterName} has removed you from the document +
"{documentName}" +
- +
+
-
+
- - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/reset-password.tsx b/packages/email/templates/reset-password.tsx index c6c1201c6..2c73e50b8 100644 --- a/packages/email/templates/reset-password.tsx +++ b/packages/email/templates/reset-password.tsx @@ -1,18 +1,7 @@ -import config from '@documenso/tailwind-config'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { - Body, - Container, - Head, - Hr, - Html, - Img, - Link, - Preview, - Section, - Tailwind, - Text, -} from '../components'; +import { Body, Container, Head, Hr, Html, Img, Link, Preview, Section, Text } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; import type { TemplateResetPasswordProps } from '../template-components/template-reset-password'; import { TemplateResetPassword } from '../template-components/template-reset-password'; @@ -24,7 +13,9 @@ export const ResetPasswordTemplate = ({ userEmail = 'lucas@documenso.com', assetBaseUrl = 'http://localhost:3002', }: ResetPasswordTemplateProps) => { - const previewText = `Password Reset Successful`; + const { _ } = useLingui(); + + const previewText = msg`Password Reset Successful`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -33,65 +24,62 @@ export const ResetPasswordTemplate = ({ return ( - {previewText} - - -
- -
- Documenso Logo + {_(previewText)} - -
-
+ +
+ +
+ Documenso Logo - -
- + +
+
+ + +
+ + Hi, {userName}{' '} ({userEmail}) - + + - + + We've changed your password as you asked. You can now sign in with your new password. - - + + + + Didn't request a password change? We are here to help you secure your account, just{' '} contact us. - -
-
+ + +
+
-
+
- - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/team-delete.tsx b/packages/email/templates/team-delete.tsx index 240757338..9f44f6724 100644 --- a/packages/email/templates/team-delete.tsx +++ b/packages/email/templates/team-delete.tsx @@ -1,7 +1,9 @@ -import { formatTeamUrl } from '@documenso/lib/utils/teams'; -import config from '@documenso/tailwind-config'; +import { msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Hr, Html, Preview, Section, Tailwind, Text } from '../components'; +import { formatTeamUrl } from '@documenso/lib/utils/teams'; + +import { Body, Container, Head, Hr, Html, Preview, Section, Text } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; import TemplateImage from '../template-components/template-image'; @@ -18,67 +20,60 @@ export const TeamDeleteEmailTemplate = ({ teamUrl = 'demo', isOwner = false, }: TeamDeleteEmailProps) => { + const { _ } = useLingui(); + const previewText = isOwner - ? 'Your team has been deleted' - : 'A team you were a part of has been deleted'; + ? msg`Your team has been deleted` + : msg`A team you were a part of has been deleted`; const title = isOwner - ? 'Your team has been deleted' - : 'A team you were a part of has been deleted'; + ? msg`Your team has been deleted` + : msg`A team you were a part of has been deleted`; const description = isOwner - ? 'The following team has been deleted by you' - : 'The following team has been deleted by its owner. You will no longer be able to access this team and its documents'; + ? msg`The following team has been deleted by you` + : msg`The following team has been deleted by its owner. You will no longer be able to access this team and its documents`; return ( - {previewText} - - -
- + {_(previewText)} + + +
+ + + +
+
-
- -
+
+ {_(title)} -
- {title} + {_(description)} - {description} +
+ {formatTeamUrl(teamUrl, baseUrl)} +
+
+ -
- {formatTeamUrl(teamUrl, baseUrl)} -
-
-
+
-
- - - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/team-email-removed.tsx b/packages/email/templates/team-email-removed.tsx index 0a143d1b9..c78de5a0b 100644 --- a/packages/email/templates/team-email-removed.tsx +++ b/packages/email/templates/team-email-removed.tsx @@ -1,7 +1,9 @@ -import { formatTeamUrl } from '@documenso/lib/utils/teams'; -import config from '@documenso/tailwind-config'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Hr, Html, Preview, Section, Tailwind, Text } from '../components'; +import { formatTeamUrl } from '@documenso/lib/utils/teams'; + +import { Body, Container, Head, Hr, Html, Preview, Section, Text } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; import TemplateImage from '../template-components/template-image'; @@ -20,62 +22,57 @@ export const TeamEmailRemovedTemplate = ({ teamName = 'Team Name', teamUrl = 'demo', }: TeamEmailRemovedTemplateProps) => { - const previewText = `Team email removed for ${teamName} on Documenso`; + const { _ } = useLingui(); + + const previewText = msg`Team email removed for ${teamName} on Documenso`; return ( - {previewText} - - -
- + {_(previewText)} + + +
+ + + +
+
-
- -
+
+ + Team email removed + -
- - Team email removed - - - + + The team email {teamEmail} has been removed from the following team - + + -
- {formatTeamUrl(teamUrl, baseUrl)} -
-
- +
+ {formatTeamUrl(teamUrl, baseUrl)} +
+
+
-
+
- - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/team-invite.tsx b/packages/email/templates/team-invite.tsx index 3c062c4c8..33bcd058a 100644 --- a/packages/email/templates/team-invite.tsx +++ b/packages/email/templates/team-invite.tsx @@ -1,18 +1,9 @@ -import { formatTeamUrl } from '@documenso/lib/utils/teams'; -import config from '@documenso/tailwind-config'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { - Body, - Button, - Container, - Head, - Hr, - Html, - Preview, - Section, - Tailwind, - Text, -} from '../components'; +import { formatTeamUrl } from '@documenso/lib/utils/teams'; + +import { Body, Button, Container, Head, Hr, Html, Preview, Section, Text } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; import TemplateImage from '../template-components/template-image'; @@ -33,80 +24,75 @@ export const TeamInviteEmailTemplate = ({ teamUrl = 'demo', token = '', }: TeamInviteEmailProps) => { - const previewText = `Accept invitation to join a team on Documenso`; + const { _ } = useLingui(); + + const previewText = msg`Accept invitation to join a team on Documenso`; return ( - {previewText} - - -
- + {_(previewText)} + + +
+ + + +
+
-
- -
+
+ + Join {teamName} on Documenso + -
- - Join {teamName} on Documenso - + + You have been invited to join the following team + - - You have been invited to join the following team - +
+ {formatTeamUrl(teamUrl, baseUrl)} +
-
- {formatTeamUrl(teamUrl, baseUrl)} -
- - + + by {senderName} - + + -
- - -
+
+ +
- +
+ -
+
- - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/team-join.tsx b/packages/email/templates/team-join.tsx index b3c1efc2f..ce463602a 100644 --- a/packages/email/templates/team-join.tsx +++ b/packages/email/templates/team-join.tsx @@ -1,7 +1,9 @@ -import { formatTeamUrl } from '@documenso/lib/utils/teams'; -import config from '@documenso/tailwind-config'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Hr, Html, Preview, Section, Tailwind, Text } from '../components'; +import { formatTeamUrl } from '@documenso/lib/utils/teams'; + +import { Body, Container, Head, Hr, Html, Preview, Section, Text } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; import TemplateImage from '../template-components/template-image'; @@ -22,61 +24,56 @@ export const TeamJoinEmailTemplate = ({ teamName = 'Team Name', teamUrl = 'demo', }: TeamJoinEmailProps) => { - const previewText = 'A team member has joined a team on Documenso'; + const { _ } = useLingui(); + + const previewText = msg`A team member has joined a team on Documenso`; return ( - {previewText} - - -
- + {_(previewText)} + + +
+ + + +
+
-
- -
- -
- +
+ + {memberName || memberEmail} joined the team {teamName} on Documenso - + + - - {memberEmail} joined the following team - + + {memberEmail} joined the following team + -
- {formatTeamUrl(teamUrl, baseUrl)} -
-
- +
+ {formatTeamUrl(teamUrl, baseUrl)} +
+
+
-
+
- - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/team-leave.tsx b/packages/email/templates/team-leave.tsx index 51b9aaab1..1cd18446e 100644 --- a/packages/email/templates/team-leave.tsx +++ b/packages/email/templates/team-leave.tsx @@ -1,7 +1,9 @@ -import { formatTeamUrl } from '@documenso/lib/utils/teams'; -import config from '@documenso/tailwind-config'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { Body, Container, Head, Hr, Html, Preview, Section, Tailwind, Text } from '../components'; +import { formatTeamUrl } from '@documenso/lib/utils/teams'; + +import { Body, Container, Head, Hr, Html, Preview, Section, Text } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; import TemplateImage from '../template-components/template-image'; @@ -22,61 +24,56 @@ export const TeamLeaveEmailTemplate = ({ teamName = 'Team Name', teamUrl = 'demo', }: TeamLeaveEmailProps) => { - const previewText = 'A team member has left a team on Documenso'; + const { _ } = useLingui(); + + const previewText = msg`A team member has left a team on Documenso`; return ( - {previewText} - - -
- + {_(previewText)} + + +
+ + + +
+
-
- -
- -
- +
+ + {memberName || memberEmail} left the team {teamName} on Documenso - + + - - {memberEmail} left the following team - + + {memberEmail} left the following team + -
- {formatTeamUrl(teamUrl, baseUrl)} -
-
- +
+ {formatTeamUrl(teamUrl, baseUrl)} +
+
+
-
+
- - - -
- - + + + +
+ ); }; diff --git a/packages/email/templates/team-transfer-request.tsx b/packages/email/templates/team-transfer-request.tsx index 82723226c..480274efb 100644 --- a/packages/email/templates/team-transfer-request.tsx +++ b/packages/email/templates/team-transfer-request.tsx @@ -1,18 +1,9 @@ -import { formatTeamUrl } from '@documenso/lib/utils/teams'; -import config from '@documenso/tailwind-config'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; -import { - Body, - Button, - Container, - Head, - Hr, - Html, - Preview, - Section, - Tailwind, - Text, -} from '../components'; +import { formatTeamUrl } from '@documenso/lib/utils/teams'; + +import { Body, Button, Container, Head, Hr, Html, Preview, Section, Text } from '../components'; import { TemplateFooter } from '../template-components/template-footer'; import TemplateImage from '../template-components/template-image'; @@ -33,78 +24,77 @@ export const TeamTransferRequestTemplate = ({ teamUrl = 'demo', token = '', }: TeamTransferRequestTemplateProps) => { - const previewText = 'Accept team transfer request on Documenso'; + const { _ } = useLingui(); + + const previewText = msg`Accept team transfer request on Documenso`; return ( - {previewText} - - -
- + {_(previewText)} + + +
+ + + +
+
-
- -
+
+ + {teamName} ownership transfer request + -
- - {teamName} ownership transfer request - - - + + {senderName} has requested that you take ownership of the following team - + + -
- {formatTeamUrl(teamUrl, baseUrl)} -
+
+ {formatTeamUrl(teamUrl, baseUrl)} +
- + + By accepting this request, you will take responsibility for any billing items associated with this team. - + + -
- -
+
+
+
- Link expires in 1 hour. - + + Link expires in 1 hour. + + -
+
- - - -
- - + + + +
+ ); }; diff --git a/packages/lib/client-only/providers/i18n.server.tsx b/packages/lib/client-only/providers/i18n.server.tsx index b5f193072..9acca3119 100644 --- a/packages/lib/client-only/providers/i18n.server.tsx +++ b/packages/lib/client-only/providers/i18n.server.tsx @@ -7,12 +7,17 @@ import { setupI18n } from '@lingui/core'; import { setI18n } from '@lingui/react/server'; import { IS_APP_WEB } from '../../constants/app'; -import { SUPPORTED_LANGUAGE_CODES } from '../../constants/i18n'; +import { + APP_I18N_OPTIONS, + SUPPORTED_LANGUAGE_CODES, + isValidLanguageCode, +} from '../../constants/i18n'; import { extractLocaleData } from '../../utils/i18n'; +import { remember } from '../../utils/remember'; type SupportedLanguages = (typeof SUPPORTED_LANGUAGE_CODES)[number]; -async function loadCatalog(lang: SupportedLanguages): Promise<{ +export async function loadCatalog(lang: SupportedLanguages): Promise<{ [k: string]: Messages; }> { const extension = process.env.NODE_ENV === 'development' ? 'po' : 'js'; @@ -20,14 +25,12 @@ async function loadCatalog(lang: SupportedLanguages): Promise<{ let { messages } = await import(`../../translations/${lang}/${context}.${extension}`); - // Dirty way to load common messages for development since it's not compiled. - if (process.env.NODE_ENV === 'development') { - const commonMessages = await import(`../../translations/${lang}/common.${extension}`); + if (extension === 'po') { + const { messages: commonMessages } = await import( + `../../translations/${lang}/common.${extension}` + ); - messages = { - ...messages, - ...commonMessages.messages, - }; + messages = { ...messages, ...commonMessages }; } return { @@ -35,40 +38,63 @@ async function loadCatalog(lang: SupportedLanguages): Promise<{ }; } -const catalogs = await Promise.all(SUPPORTED_LANGUAGE_CODES.map(loadCatalog)); +const catalogs = Promise.all(SUPPORTED_LANGUAGE_CODES.map(loadCatalog)); // transform array of catalogs into a single object -export const allMessages = catalogs.reduce((acc, oneCatalog) => { - return { ...acc, ...oneCatalog }; -}, {}); +const allMessages = async () => { + return await catalogs.then((catalogs) => + catalogs.reduce((acc, oneCatalog) => { + return { + ...acc, + ...oneCatalog, + }; + }, {}), + ); +}; type AllI18nInstances = { [K in SupportedLanguages]: I18n }; // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -export const allI18nInstances = SUPPORTED_LANGUAGE_CODES.reduce((acc, lang) => { - const messages = allMessages[lang] ?? {}; +export const allI18nInstances = remember('i18n.allI18nInstances', async () => { + const loadedMessages = await allMessages(); - const i18n = setupI18n({ - locale: lang, - messages: { [lang]: messages }, - }); + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + return SUPPORTED_LANGUAGE_CODES.reduce((acc, lang) => { + const messages = loadedMessages[lang] ?? {}; - return { ...acc, [lang]: i18n }; -}, {}) as AllI18nInstances; + const i18n = setupI18n({ + locale: lang, + messages: { [lang]: messages }, + }); + + return { ...acc, [lang]: i18n }; + }, {}) as AllI18nInstances; +}); + +// eslint-disable-next-line @typescript-eslint/ban-types +export const getI18nInstance = async (lang?: SupportedLanguages | (string & {})) => { + const instances = await allI18nInstances; + + if (!isValidLanguageCode(lang)) { + return instances[APP_I18N_OPTIONS.sourceLang]; + } + + return instances[lang] ?? instances[APP_I18N_OPTIONS.sourceLang]; +}; /** * This needs to be run in all layouts and page server components that require i18n. * * https://lingui.dev/tutorials/react-rsc#pages-layouts-and-lingui */ -export const setupI18nSSR = () => { +export const setupI18nSSR = async () => { const { lang, locales } = extractLocaleData({ cookies: cookies(), headers: headers(), }); // Get and set a ready-made i18n instance for the given language. - const i18n = allI18nInstances[lang]; + const i18n = await getI18nInstance(lang); // Reactivate the i18n instance with the locale for date and number formatting. i18n.activate(lang, locales); diff --git a/packages/lib/constants/i18n.ts b/packages/lib/constants/i18n.ts index a54990e09..b3c8a8954 100644 --- a/packages/lib/constants/i18n.ts +++ b/packages/lib/constants/i18n.ts @@ -47,3 +47,6 @@ export const SUPPORTED_LANGUAGES: Record = { short: 'es', }, } satisfies Record; + +export const isValidLanguageCode = (code: unknown): code is SupportedLanguageCodes => + SUPPORTED_LANGUAGE_CODES.includes(code as SupportedLanguageCodes); diff --git a/packages/lib/constants/recipient-roles.ts b/packages/lib/constants/recipient-roles.ts index 7dfe3c7fc..9a3eefe1c 100644 --- a/packages/lib/constants/recipient-roles.ts +++ b/packages/lib/constants/recipient-roles.ts @@ -67,9 +67,9 @@ export const RECIPIENT_ROLES_DESCRIPTION_ENG = { } satisfies Record; export const RECIPIENT_ROLE_TO_EMAIL_TYPE = { - [RecipientRole.SIGNER]: 'SIGNING_REQUEST', - [RecipientRole.VIEWER]: 'VIEW_REQUEST', - [RecipientRole.APPROVER]: 'APPROVE_REQUEST', + [RecipientRole.SIGNER]: `SIGNING_REQUEST`, + [RecipientRole.VIEWER]: `VIEW_REQUEST`, + [RecipientRole.APPROVER]: `APPROVE_REQUEST`, } as const; export const RECIPIENT_ROLE_SIGNING_REASONS = { diff --git a/packages/lib/jobs/client/local.ts b/packages/lib/jobs/client/local.ts index a0405dbf1..d5ba58f83 100644 --- a/packages/lib/jobs/client/local.ts +++ b/packages/lib/jobs/client/local.ts @@ -43,18 +43,10 @@ export class LocalJobProvider extends BaseJobProvider { } public async triggerJob(options: SimpleTriggerJobOptions) { - console.log({ jobDefinitions: this._jobDefinitions }); - const eligibleJobs = Object.values(this._jobDefinitions).filter( (job) => job.trigger.name === options.name, ); - console.log({ options }); - console.log( - 'Eligible jobs:', - eligibleJobs.map((job) => job.name), - ); - await Promise.all( eligibleJobs.map(async (job) => { // Ideally we will change this to a createMany with returning later once we upgrade Prisma diff --git a/packages/lib/jobs/definitions/emails/send-signing-email.ts b/packages/lib/jobs/definitions/emails/send-signing-email.ts index beab38cab..34d1a8422 100644 --- a/packages/lib/jobs/definitions/emails/send-signing-email.ts +++ b/packages/lib/jobs/definitions/emails/send-signing-email.ts @@ -1,9 +1,9 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; import { z } from 'zod'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import DocumentInviteEmailTemplate from '@documenso/email/templates/document-invite'; import { prisma } from '@documenso/prisma'; import { @@ -13,6 +13,7 @@ import { 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 { @@ -23,6 +24,7 @@ import { DOCUMENT_AUDIT_LOG_TYPE } from '../../../types/document-audit-logs'; import { ZRequestMetadataSchema } from '../../../universal/extract-request-metadata'; import { createDocumentAuditLogData } from '../../../utils/document-audit-logs'; import { renderCustomEmailTemplate } from '../../../utils/render-custom-email-template'; +import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; import { type JobDefinition } from '../../client/_internal/job'; const SEND_SIGNING_EMAIL_JOB_DEFINITION_ID = 'send.signing.requested.email'; @@ -90,22 +92,32 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = { const recipientActionVerb = RECIPIENT_ROLES_DESCRIPTION_ENG[recipient.role].actionVerb.toLowerCase(); + const i18n = await getI18nInstance(documentMeta?.language); + let emailMessage = customEmail?.message || ''; - let emailSubject = `Please ${recipientActionVerb} this document`; + let emailSubject = i18n._(msg`Please ${recipientActionVerb} this document`); if (selfSigner) { - emailMessage = `You have initiated the document ${`"${document.title}"`} that requires you to ${recipientActionVerb} it.`; - emailSubject = `Please ${recipientActionVerb} your document`; + emailMessage = i18n._( + msg`You have initiated the document ${`"${document.title}"`} that requires you to ${recipientActionVerb} it.`, + ); + emailSubject = i18n._(msg`Please ${recipientActionVerb} your document`); } if (isDirectTemplate) { - emailMessage = `A document was created by your direct template that requires you to ${recipientActionVerb} it.`; - emailSubject = `Please ${recipientActionVerb} this document created by your direct template`; + emailMessage = i18n._( + msg`A document was created by your direct template that requires you to ${recipientActionVerb} it.`, + ); + emailSubject = i18n._( + msg`Please ${recipientActionVerb} this document created by your direct template`, + ); } if (isTeamDocument && team) { - emailSubject = `${team.name} invited you to ${recipientActionVerb} a document`; - emailMessage = `${user.name} on behalf of ${team.name} has invited you to ${recipientActionVerb} the document "${document.title}".`; + 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}".`, + ); } const customEmailTemplate = { @@ -132,6 +144,14 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = { }); await io.runTask('send-signing-email', async () => { + const [html, text] = await Promise.all([ + renderEmailWithI18N(template, { lang: documentMeta?.language }), + renderEmailWithI18N(template, { + lang: documentMeta?.language, + plainText: true, + }), + ]); + await mailer.sendMail({ to: { name: recipient.name, @@ -145,8 +165,8 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = { documentMeta?.subject || emailSubject, customEmailTemplate, ), - html: render(template), - text: render(template, { plainText: true }), + html, + text, }); }); diff --git a/packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts b/packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts index c5afa1cd3..94362820e 100644 --- a/packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts +++ b/packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts @@ -1,13 +1,15 @@ +import { msg } from '@lingui/macro'; import { z } from 'zod'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import TeamJoinEmailTemplate from '@documenso/email/templates/team-join'; import { prisma } from '@documenso/prisma'; import { TeamMemberRole } from '@documenso/prisma/client'; +import { getI18nInstance } from '../../../client-only/providers/i18n.server'; import { WEBAPP_BASE_URL } from '../../../constants/app'; import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; +import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; import type { JobDefinition } from '../../client/_internal/job'; const SEND_TEAM_MEMBER_JOINED_EMAIL_JOB_DEFINITION_ID = 'send.team-member-joined.email'; @@ -71,15 +73,23 @@ export const SEND_TEAM_MEMBER_JOINED_EMAIL_JOB_DEFINITION = { teamUrl: team.url, }); + // !: Replace with the actual language of the recipient later + const [html, text] = await Promise.all([ + renderEmailWithI18N(emailContent), + renderEmailWithI18N(emailContent, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + await mailer.sendMail({ to: member.user.email, from: { name: FROM_NAME, address: FROM_ADDRESS, }, - subject: 'A new member has joined your team', - html: render(emailContent), - text: render(emailContent, { plainText: true }), + subject: i18n._(msg`A new member has joined your team`), + html, + text, }); }, ); diff --git a/packages/lib/jobs/definitions/emails/send-team-member-left-email.ts b/packages/lib/jobs/definitions/emails/send-team-member-left-email.ts index 55e5ab1e6..7e1b33d6f 100644 --- a/packages/lib/jobs/definitions/emails/send-team-member-left-email.ts +++ b/packages/lib/jobs/definitions/emails/send-team-member-left-email.ts @@ -1,13 +1,15 @@ +import { msg } from '@lingui/macro'; import { z } from 'zod'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import TeamJoinEmailTemplate from '@documenso/email/templates/team-join'; import { prisma } from '@documenso/prisma'; import { TeamMemberRole } from '@documenso/prisma/client'; +import { getI18nInstance } from '../../../client-only/providers/i18n.server'; import { WEBAPP_BASE_URL } from '../../../constants/app'; import { FROM_ADDRESS, FROM_NAME } from '../../../constants/email'; +import { renderEmailWithI18N } from '../../../utils/render-email-with-i18n'; import type { JobDefinition } from '../../client/_internal/job'; const SEND_TEAM_MEMBER_LEFT_EMAIL_JOB_DEFINITION_ID = 'send.team-member-left.email'; @@ -61,15 +63,22 @@ export const SEND_TEAM_MEMBER_LEFT_EMAIL_JOB_DEFINITION = { teamUrl: team.url, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(emailContent), + renderEmailWithI18N(emailContent, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + await mailer.sendMail({ to: member.user.email, from: { name: FROM_NAME, address: FROM_ADDRESS, }, - subject: `A team member has left ${team.name}`, - html: render(emailContent), - text: render(emailContent, { plainText: true }), + subject: i18n._(msg`A team member has left ${team.name}`), + html, + text, }); }); } diff --git a/packages/lib/package.json b/packages/lib/package.json index 5eabe4a26..0dc897f98 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -25,6 +25,9 @@ "@documenso/email": "*", "@documenso/prisma": "*", "@documenso/signing": "*", + "@lingui/core": "^4.11.3", + "@lingui/macro": "^4.11.3", + "@lingui/react": "^4.11.3", "@next-auth/prisma-adapter": "1.0.7", "@noble/ciphers": "0.4.0", "@noble/hashes": "1.3.2", diff --git a/packages/lib/server-only/auth/send-confirmation-email.ts b/packages/lib/server-only/auth/send-confirmation-email.ts index ddefa530a..5673d9603 100644 --- a/packages/lib/server-only/auth/send-confirmation-email.ts +++ b/packages/lib/server-only/auth/send-confirmation-email.ts @@ -1,11 +1,14 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { ConfirmEmailTemplate } from '@documenso/email/templates/confirm-email'; import { prisma } from '@documenso/prisma'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export interface SendConfirmationEmailProps { userId: number; @@ -45,6 +48,13 @@ export const sendConfirmationEmail = async ({ userId }: SendConfirmationEmailPro confirmationLink, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(confirmationTemplate), + renderEmailWithI18N(confirmationTemplate, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + return mailer.sendMail({ to: { address: user.email, @@ -54,8 +64,8 @@ export const sendConfirmationEmail = async ({ userId }: SendConfirmationEmailPro name: senderName, address: senderAddress, }, - subject: 'Please confirm your email', - html: render(confirmationTemplate), - text: render(confirmationTemplate, { plainText: true }), + subject: i18n._(msg`Please confirm your email`), + html, + text, }); }; diff --git a/packages/lib/server-only/auth/send-forgot-password.ts b/packages/lib/server-only/auth/send-forgot-password.ts index 6e3a582a8..fef1543c3 100644 --- a/packages/lib/server-only/auth/send-forgot-password.ts +++ b/packages/lib/server-only/auth/send-forgot-password.ts @@ -1,11 +1,14 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { ForgotPasswordTemplate } from '@documenso/email/templates/forgot-password'; import { prisma } from '@documenso/prisma'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export interface SendForgotPasswordOptions { userId: number; @@ -39,6 +42,13 @@ export const sendForgotPassword = async ({ userId }: SendForgotPasswordOptions) resetPasswordLink, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + return await mailer.sendMail({ to: { address: user.email, @@ -48,8 +58,8 @@ export const sendForgotPassword = async ({ userId }: SendForgotPasswordOptions) name: process.env.NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso', address: process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com', }, - subject: 'Forgot Password?', - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._(msg`Forgot Password?`), + html, + text, }); }; diff --git a/packages/lib/server-only/auth/send-reset-password.ts b/packages/lib/server-only/auth/send-reset-password.ts index 6bcd5820d..03165fcfc 100644 --- a/packages/lib/server-only/auth/send-reset-password.ts +++ b/packages/lib/server-only/auth/send-reset-password.ts @@ -1,11 +1,11 @@ import { createElement } from 'react'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { ResetPasswordTemplate } from '@documenso/email/templates/reset-password'; import { prisma } from '@documenso/prisma'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export interface SendResetPasswordOptions { userId: number; @@ -26,6 +26,11 @@ export const sendResetPassword = async ({ userId }: SendResetPasswordOptions) => userName: user.name || '', }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + return await mailer.sendMail({ to: { address: user.email, @@ -36,7 +41,7 @@ export const sendResetPassword = async ({ userId }: SendResetPasswordOptions) => address: process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com', }, subject: 'Password Reset Success!', - html: render(template), - text: render(template, { plainText: true }), + html, + text, }); }; diff --git a/packages/lib/server-only/document-meta/upsert-document-meta.ts b/packages/lib/server-only/document-meta/upsert-document-meta.ts index 99ca7f5da..daf8ec32c 100644 --- a/packages/lib/server-only/document-meta/upsert-document-meta.ts +++ b/packages/lib/server-only/document-meta/upsert-document-meta.ts @@ -9,6 +9,8 @@ import { import { prisma } from '@documenso/prisma'; import type { DocumentSigningOrder } from '@documenso/prisma/client'; +import type { SupportedLanguageCodes } from '../../constants/i18n'; + export type CreateDocumentMetaOptions = { documentId: number; subject?: string; @@ -19,6 +21,7 @@ export type CreateDocumentMetaOptions = { redirectUrl?: string; signingOrder?: DocumentSigningOrder; typedSignatureEnabled?: boolean; + language?: SupportedLanguageCodes; userId: number; requestMetadata: RequestMetadata; }; @@ -34,6 +37,7 @@ export const upsertDocumentMeta = async ({ redirectUrl, signingOrder, typedSignatureEnabled, + language, requestMetadata, }: CreateDocumentMetaOptions) => { const user = await prisma.user.findFirstOrThrow({ @@ -85,6 +89,7 @@ export const upsertDocumentMeta = async ({ redirectUrl, signingOrder, typedSignatureEnabled, + language, }, update: { subject, @@ -95,6 +100,7 @@ export const upsertDocumentMeta = async ({ redirectUrl, signingOrder, typedSignatureEnabled, + language, }, }); diff --git a/packages/lib/server-only/document/delete-document.ts b/packages/lib/server-only/document/delete-document.ts index 6ac8e1bd3..b43ed2cd3 100644 --- a/packages/lib/server-only/document/delete-document.ts +++ b/packages/lib/server-only/document/delete-document.ts @@ -3,7 +3,6 @@ import { createElement } from 'react'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import DocumentCancelTemplate from '@documenso/email/templates/document-cancel'; import { prisma } from '@documenso/prisma'; import type { Document, DocumentMeta, Recipient, User } from '@documenso/prisma/client'; @@ -14,6 +13,7 @@ import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import type { RequestMetadata } from '../../universal/extract-request-metadata'; import { createDocumentAuditLogData } from '../../utils/document-audit-logs'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export type DeleteDocumentOptions = { id: number; @@ -191,6 +191,11 @@ const handleDocumentOwnerDelete = async ({ assetBaseUrl, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + await mailer.sendMail({ to: { address: recipient.email, @@ -201,8 +206,8 @@ const handleDocumentOwnerDelete = async ({ address: FROM_ADDRESS, }, subject: 'Document Cancelled', - html: render(template), - text: render(template, { plainText: true }), + html, + text, }); }), ); diff --git a/packages/lib/server-only/document/resend-document.tsx b/packages/lib/server-only/document/resend-document.tsx index 30f104e92..e25b4b766 100644 --- a/packages/lib/server-only/document/resend-document.tsx +++ b/packages/lib/server-only/document/resend-document.tsx @@ -1,11 +1,12 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { DocumentInviteEmailTemplate } from '@documenso/email/templates/document-invite'; import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; import { - RECIPIENT_ROLES_DESCRIPTION_ENG, + RECIPIENT_ROLES_DESCRIPTION, RECIPIENT_ROLE_TO_EMAIL_TYPE, } from '@documenso/lib/constants/recipient-roles'; import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs'; @@ -16,7 +17,9 @@ import { prisma } from '@documenso/prisma'; import { DocumentStatus, RecipientRole, SigningStatus } from '@documenso/prisma/client'; import type { Prisma } from '@documenso/prisma/client'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; import { getDocumentWhereInput } from './get-document-by-id'; export type ResendDocumentOptions = { @@ -92,25 +95,28 @@ export const resendDocument = async ({ return; } + const i18n = await getI18nInstance(document.documentMeta?.language); + const recipientEmailType = RECIPIENT_ROLE_TO_EMAIL_TYPE[recipient.role]; const { email, name } = recipient; const selfSigner = email === user.email; - const recipientActionVerb = - RECIPIENT_ROLES_DESCRIPTION_ENG[recipient.role].actionVerb.toLowerCase(); + const recipientActionVerb = i18n + ._(RECIPIENT_ROLES_DESCRIPTION[recipient.role].actionVerb) + .toLowerCase(); - let emailMessage = customEmail?.message || ''; - let emailSubject = `Reminder: Please ${recipientActionVerb} this document`; + let emailMessage = msg`${customEmail?.message || ''}`; + let emailSubject = msg`Reminder: Please ${recipientActionVerb} this document`; if (selfSigner) { - emailMessage = `You have initiated the document ${`"${document.title}"`} that requires you to ${recipientActionVerb} it.`; - emailSubject = `Reminder: Please ${recipientActionVerb} your document`; + emailMessage = msg`You have initiated the document ${`"${document.title}"`} that requires you to ${recipientActionVerb} it.`; + emailSubject = msg`Reminder: Please ${recipientActionVerb} your document`; } if (isTeamDocument && document.team) { - emailSubject = `Reminder: ${document.team.name} invited you to ${recipientActionVerb} a document`; - emailMessage = `${user.name} on behalf of ${document.team.name} has invited you to ${recipientActionVerb} the document "${document.title}".`; + 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}".`; } const customEmailTemplate = { @@ -128,7 +134,7 @@ export const resendDocument = async ({ inviterEmail: isTeamDocument ? document.team?.teamEmail?.email || user.email : user.email, assetBaseUrl, signDocumentLink, - customBody: renderCustomEmailTemplate(emailMessage, customEmailTemplate), + customBody: renderCustomEmailTemplate(i18n._(emailMessage), customEmailTemplate), role: recipient.role, selfSigner, isTeamInvite: isTeamDocument, @@ -137,6 +143,14 @@ export const resendDocument = async ({ await prisma.$transaction( async (tx) => { + const [html, text] = await Promise.all([ + renderEmailWithI18N(template, { lang: document.documentMeta?.language }), + renderEmailWithI18N(template, { + lang: document.documentMeta?.language, + plainText: true, + }), + ]); + await mailer.sendMail({ to: { address: email, @@ -147,10 +161,13 @@ export const resendDocument = async ({ address: FROM_ADDRESS, }, subject: customEmail?.subject - ? renderCustomEmailTemplate(`Reminder: ${customEmail.subject}`, customEmailTemplate) - : emailSubject, - html: render(template), - text: render(template, { plainText: true }), + ? renderCustomEmailTemplate( + i18n._(msg`Reminder: ${customEmail.subject}`), + customEmailTemplate, + ) + : i18n._(emailSubject), + html, + text, }); await tx.documentAuditLog.create({ diff --git a/packages/lib/server-only/document/send-completed-email.ts b/packages/lib/server-only/document/send-completed-email.ts index cea9d5424..29413a3dd 100644 --- a/packages/lib/server-only/document/send-completed-email.ts +++ b/packages/lib/server-only/document/send-completed-email.ts @@ -1,17 +1,20 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { DocumentCompletedEmailTemplate } from '@documenso/email/templates/document-completed'; import { prisma } from '@documenso/prisma'; import { DocumentSource } from '@documenso/prisma/client'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import type { RequestMetadata } from '../../universal/extract-request-metadata'; import { getFile } from '../../universal/upload/get-file'; import { createDocumentAuditLogData } from '../../utils/document-audit-logs'; import { renderCustomEmailTemplate } from '../../utils/render-custom-email-template'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export interface SendDocumentOptions { documentId: number; @@ -61,6 +64,8 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo }`; } + const i18n = await getI18nInstance(document.documentMeta?.language); + // If the document owner is not a recipient then send the email to them separately if (!document.Recipient.find((recipient) => recipient.email === owner.email)) { const template = createElement(DocumentCompletedEmailTemplate, { @@ -69,6 +74,11 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo downloadLink: documentOwnerDownloadLink, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template, { lang: document.documentMeta?.language }), + renderEmailWithI18N(template, { lang: document.documentMeta?.language, plainText: true }), + ]); + await mailer.sendMail({ to: [ { @@ -80,9 +90,9 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo name: process.env.NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso', address: process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com', }, - subject: 'Signing Complete!', - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._(msg`Signing Complete!`), + html, + text, attachments: [ { filename: document.title.endsWith('.pdf') ? document.title : document.title + '.pdf', @@ -129,6 +139,11 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo : undefined, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template, { lang: document.documentMeta?.language }), + renderEmailWithI18N(template, { lang: document.documentMeta?.language, plainText: true }), + ]); + await mailer.sendMail({ to: [ { @@ -143,9 +158,9 @@ export const sendCompletedEmail = async ({ documentId, requestMetadata }: SendDo subject: isDirectTemplate && document.documentMeta?.subject ? renderCustomEmailTemplate(document.documentMeta.subject, customEmailTemplate) - : 'Signing Complete!', - html: render(template), - text: render(template, { plainText: true }), + : i18n._(msg`Signing Complete!`), + html, + text, attachments: [ { filename: document.title.endsWith('.pdf') ? document.title : document.title + '.pdf', diff --git a/packages/lib/server-only/document/send-delete-email.ts b/packages/lib/server-only/document/send-delete-email.ts index cc1101942..fa648de2b 100644 --- a/packages/lib/server-only/document/send-delete-email.ts +++ b/packages/lib/server-only/document/send-delete-email.ts @@ -1,11 +1,14 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { DocumentSuperDeleteEmailTemplate } from '@documenso/email/templates/document-super-delete'; import { prisma } from '@documenso/prisma'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export interface SendDeleteEmailOptions { documentId: number; @@ -36,6 +39,13 @@ export const sendDeleteEmail = async ({ documentId, reason }: SendDeleteEmailOpt assetBaseUrl, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + await mailer.sendMail({ to: { address: email, @@ -45,8 +55,8 @@ export const sendDeleteEmail = async ({ documentId, reason }: SendDeleteEmailOpt name: process.env.NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso', address: process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com', }, - subject: 'Document Deleted!', - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._(msg`Document Deleted!`), + html, + text, }); }; diff --git a/packages/lib/server-only/document/send-pending-email.ts b/packages/lib/server-only/document/send-pending-email.ts index 73e938a7d..997d8cdbd 100644 --- a/packages/lib/server-only/document/send-pending-email.ts +++ b/packages/lib/server-only/document/send-pending-email.ts @@ -1,11 +1,14 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { DocumentPendingEmailTemplate } from '@documenso/email/templates/document-pending'; import { prisma } from '@documenso/prisma'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export interface SendPendingEmailOptions { documentId: number; @@ -28,6 +31,7 @@ export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingE id: recipientId, }, }, + documentMeta: true, }, }); @@ -50,6 +54,13 @@ export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingE assetBaseUrl, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template, { lang: document.documentMeta?.language }), + renderEmailWithI18N(template, { lang: document.documentMeta?.language, plainText: true }), + ]); + + const i18n = await getI18nInstance(); + await mailer.sendMail({ to: { address: email, @@ -59,8 +70,8 @@ export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingE name: process.env.NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso', address: process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com', }, - subject: 'Waiting for others to complete signing.', - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._(msg`Waiting for others to complete signing.`), + html, + text, }); }; diff --git a/packages/lib/server-only/document/super-delete-document.ts b/packages/lib/server-only/document/super-delete-document.ts index 0dfc9c163..db72bb1fc 100644 --- a/packages/lib/server-only/document/super-delete-document.ts +++ b/packages/lib/server-only/document/super-delete-document.ts @@ -2,17 +2,20 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import DocumentCancelTemplate from '@documenso/email/templates/document-cancel'; import { prisma } from '@documenso/prisma'; 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'; import type { RequestMetadata } from '../../universal/extract-request-metadata'; import { createDocumentAuditLogData } from '../../utils/document-audit-logs'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export type SuperDeleteDocumentOptions = { id: number; @@ -53,6 +56,13 @@ export const superDeleteDocument = async ({ id, requestMetadata }: SuperDeleteDo assetBaseUrl, }); + const [html, text] = await Promise.all([ + 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, @@ -62,9 +72,9 @@ export const superDeleteDocument = async ({ id, requestMetadata }: SuperDeleteDo name: FROM_NAME, address: FROM_ADDRESS, }, - subject: 'Document Cancelled', - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._(msg`Document Cancelled`), + html, + text, }); }), ); diff --git a/packages/lib/server-only/recipient/set-recipients-for-document.ts b/packages/lib/server-only/recipient/set-recipients-for-document.ts index d5ab3c3d5..b9fc0e6af 100644 --- a/packages/lib/server-only/recipient/set-recipients-for-document.ts +++ b/packages/lib/server-only/recipient/set-recipients-for-document.ts @@ -1,8 +1,9 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import RecipientRemovedFromDocumentTemplate from '@documenso/email/templates/recipient-removed-from-document'; import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs'; import { @@ -21,10 +22,12 @@ import type { Recipient } from '@documenso/prisma/client'; import { RecipientRole } from '@documenso/prisma/client'; import { SendStatus, SigningStatus } 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 { AppError, AppErrorCode } from '../../errors/app-error'; import { canRecipientBeModified } from '../../utils/recipients'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export interface SetRecipientsForDocumentOptions { userId: number; @@ -62,6 +65,7 @@ export const setRecipientsForDocument = async ({ }, include: { Field: true, + documentMeta: true, }, }); @@ -291,6 +295,13 @@ export const setRecipientsForDocument = async ({ assetBaseUrl, }); + const [html, text] = await Promise.all([ + 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, @@ -300,9 +311,9 @@ export const setRecipientsForDocument = async ({ name: FROM_NAME, address: FROM_ADDRESS, }, - subject: 'You have been removed from a document', - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._(msg`You have been removed from a document`), + html, + text, }); }), ); diff --git a/packages/lib/server-only/team/accept-team-invitation.ts b/packages/lib/server-only/team/accept-team-invitation.ts index 0a7da6d15..1bf8611e4 100644 --- a/packages/lib/server-only/team/accept-team-invitation.ts +++ b/packages/lib/server-only/team/accept-team-invitation.ts @@ -81,7 +81,7 @@ export const acceptTeamInvitation = async ({ userId, teamId }: AcceptTeamInvitat await jobs.triggerJob({ name: 'send.team-member-joined.email', payload: { - teamId: team.id, + teamId: teamMember.teamId, memberId: teamMember.id, }, }); diff --git a/packages/lib/server-only/team/create-team-email-verification.ts b/packages/lib/server-only/team/create-team-email-verification.ts index 86cded7a9..f43eb9530 100644 --- a/packages/lib/server-only/team/create-team-email-verification.ts +++ b/packages/lib/server-only/team/create-team-email-verification.ts @@ -1,9 +1,9 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; import { z } from 'zod'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { ConfirmTeamEmailTemplate } from '@documenso/email/templates/confirm-team-email'; import { WEBAPP_BASE_URL } from '@documenso/lib/constants/app'; import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; @@ -13,6 +13,9 @@ import { createTokenVerification } from '@documenso/lib/utils/token-verification import { prisma } from '@documenso/prisma'; import { Prisma } from '@documenso/prisma/client'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; + export type CreateTeamEmailVerificationOptions = { userId: number; teamId: number; @@ -122,14 +125,23 @@ export const sendTeamEmailVerificationEmail = async ( token, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + await mailer.sendMail({ to: email, from: { name: FROM_NAME, address: FROM_ADDRESS, }, - subject: `A request to use your email has been initiated by ${teamName} on Documenso`, - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._( + msg`A request to use your email has been initiated by ${teamName} on Documenso`, + ), + html, + text, }); }; diff --git a/packages/lib/server-only/team/create-team-member-invites.ts b/packages/lib/server-only/team/create-team-member-invites.ts index f167d2112..c47401f56 100644 --- a/packages/lib/server-only/team/create-team-member-invites.ts +++ b/packages/lib/server-only/team/create-team-member-invites.ts @@ -1,9 +1,9 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; import { nanoid } from 'nanoid'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import type { TeamInviteEmailProps } from '@documenso/email/templates/team-invite'; import { TeamInviteEmailTemplate } from '@documenso/email/templates/team-invite'; import { WEBAPP_BASE_URL } from '@documenso/lib/constants/app'; @@ -15,6 +15,9 @@ import { prisma } from '@documenso/prisma'; import { TeamMemberInviteStatus } from '@documenso/prisma/client'; import type { TCreateTeamMemberInvitesMutationSchema } from '@documenso/trpc/server/team-router/schema'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; + export type CreateTeamMemberInvitesOptions = { userId: number; userName: string; @@ -148,14 +151,23 @@ export const sendTeamMemberInviteEmail = async ({ ...emailTemplateOptions, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + await mailer.sendMail({ to: email, from: { name: FROM_NAME, address: FROM_ADDRESS, }, - subject: `You have been invited to join ${emailTemplateOptions.teamName} on Documenso`, - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._( + msg`You have been invited to join ${emailTemplateOptions.teamName} on Documenso`, + ), + html, + text, }); }; diff --git a/packages/lib/server-only/team/delete-team-email.ts b/packages/lib/server-only/team/delete-team-email.ts index c5139a971..a3f6e906b 100644 --- a/packages/lib/server-only/team/delete-team-email.ts +++ b/packages/lib/server-only/team/delete-team-email.ts @@ -1,13 +1,17 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { TeamEmailRemovedTemplate } from '@documenso/email/templates/team-email-removed'; import { WEBAPP_BASE_URL } from '@documenso/lib/constants/app'; import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; import { TEAM_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/teams'; import { prisma } from '@documenso/prisma'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; + export type DeleteTeamEmailOptions = { userId: number; userEmail: string; @@ -73,6 +77,13 @@ export const deleteTeamEmail = async ({ userId, userEmail, teamId }: DeleteTeamE teamUrl: team.url, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + await mailer.sendMail({ to: { address: team.owner.email, @@ -82,9 +93,9 @@ export const deleteTeamEmail = async ({ userId, userEmail, teamId }: DeleteTeamE name: FROM_NAME, address: FROM_ADDRESS, }, - subject: `Team email has been revoked for ${team.name}`, - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._(msg`Team email has been revoked for ${team.name}`), + html, + text, }); } catch (e) { // Todo: Teams - Alert us. diff --git a/packages/lib/server-only/team/delete-team.ts b/packages/lib/server-only/team/delete-team.ts index 57c761e72..260344bd0 100644 --- a/packages/lib/server-only/team/delete-team.ts +++ b/packages/lib/server-only/team/delete-team.ts @@ -1,7 +1,6 @@ import { createElement } from 'react'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import type { TeamDeleteEmailProps } from '@documenso/email/templates/team-delete'; import { TeamDeleteEmailTemplate } from '@documenso/email/templates/team-delete'; import { WEBAPP_BASE_URL } from '@documenso/lib/constants/app'; @@ -11,6 +10,7 @@ import { stripe } from '@documenso/lib/server-only/stripe'; import { prisma } from '@documenso/prisma'; import { jobs } from '../../jobs/client'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; export type DeleteTeamOptions = { userId: number; @@ -95,6 +95,11 @@ export const sendTeamDeleteEmail = async ({ ...emailTemplateOptions, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + await mailer.sendMail({ to: email, from: { @@ -102,7 +107,7 @@ export const sendTeamDeleteEmail = async ({ address: FROM_ADDRESS, }, subject: `Team "${emailTemplateOptions.teamName}" has been deleted on Documenso`, - html: render(template), - text: render(template, { plainText: true }), + html, + text, }); }; diff --git a/packages/lib/server-only/team/request-team-ownership-transfer.ts b/packages/lib/server-only/team/request-team-ownership-transfer.ts index 92fd5b61e..5da2f6c5b 100644 --- a/packages/lib/server-only/team/request-team-ownership-transfer.ts +++ b/packages/lib/server-only/team/request-team-ownership-transfer.ts @@ -1,13 +1,17 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { TeamTransferRequestTemplate } from '@documenso/email/templates/team-transfer-request'; import { WEBAPP_BASE_URL } from '@documenso/lib/constants/app'; import { FROM_ADDRESS, FROM_NAME } from '@documenso/lib/constants/email'; import { createTokenVerification } from '@documenso/lib/utils/token-verification'; import { prisma } from '@documenso/prisma'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; + export type RequestTeamOwnershipTransferOptions = { /** * The ID of the user initiating the transfer. @@ -93,15 +97,24 @@ export const requestTeamOwnershipTransfer = async ({ token, }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), + ]); + + const i18n = await getI18nInstance(); + await mailer.sendMail({ to: newOwnerUser.email, from: { name: FROM_NAME, address: FROM_ADDRESS, }, - subject: `You have been requested to take ownership of team ${team.name} on Documenso`, - html: render(template), - text: render(template, { plainText: true }), + subject: i18n._( + msg`You have been requested to take ownership of team ${team.name} on Documenso`, + ), + html, + text, }); }, { timeout: 30_000 }, diff --git a/packages/lib/server-only/template/create-document-from-direct-template.ts b/packages/lib/server-only/template/create-document-from-direct-template.ts index 24fdc90ff..733ca9c86 100644 --- a/packages/lib/server-only/template/create-document-from-direct-template.ts +++ b/packages/lib/server-only/template/create-document-from-direct-template.ts @@ -1,10 +1,10 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; import { DateTime } from 'luxon'; import { match } from 'ts-pattern'; import { mailer } from '@documenso/email/mailer'; -import { render } from '@documenso/email/render'; import { DocumentCreatedFromDirectTemplateEmailTemplate } from '@documenso/email/templates/document-created-from-direct-template'; import { nanoid } from '@documenso/lib/universal/id'; import { prisma } from '@documenso/prisma'; @@ -22,6 +22,7 @@ import { } from '@documenso/prisma/client'; import type { TSignFieldWithTokenMutationSchema } from '@documenso/trpc/server/field-router/schema'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; import { DEFAULT_DOCUMENT_DATE_FORMAT } from '../../constants/date-formats'; import { DEFAULT_DOCUMENT_TIME_ZONE } from '../../constants/time-zones'; @@ -38,6 +39,7 @@ import { createRecipientAuthOptions, extractDocumentAuthMethods, } from '../../utils/document-auth'; +import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; import { formatDocumentsPath } from '../../utils/teams'; import { sendDocument } from '../document/send-document'; import { validateFieldAuth } from '../document/validate-field-auth'; @@ -143,6 +145,7 @@ export const createDocumentFromDirectTemplate = async ({ const metaDateFormat = template.templateMeta?.dateFormat || DEFAULT_DOCUMENT_DATE_FORMAT; const metaEmailMessage = template.templateMeta?.message || ''; const metaEmailSubject = template.templateMeta?.subject || ''; + const metaLanguage = template.templateMeta?.language; const metaSigningOrder = template.templateMeta?.signingOrder || DocumentSigningOrder.PARALLEL; // Associate, validate and map to a query every direct template recipient field with the provided fields. @@ -270,6 +273,7 @@ export const createDocumentFromDirectTemplate = async ({ dateFormat: metaDateFormat, message: metaEmailMessage, subject: metaEmailSubject, + language: metaLanguage, signingOrder: metaSigningOrder, }, }, @@ -529,6 +533,13 @@ export const createDocumentFromDirectTemplate = async ({ assetBaseUrl: NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000', }); + const [html, text] = await Promise.all([ + renderEmailWithI18N(emailTemplate, { lang: metaLanguage }), + renderEmailWithI18N(emailTemplate, { lang: metaLanguage, plainText: true }), + ]); + + const i18n = await getI18nInstance(metaLanguage); + await mailer.sendMail({ to: [ { @@ -540,9 +551,9 @@ export const createDocumentFromDirectTemplate = async ({ name: process.env.NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso', address: process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com', }, - subject: 'Document created from direct template', - html: render(emailTemplate), - text: render(emailTemplate, { plainText: true }), + subject: i18n._(msg`Document created from direct template`), + html, + text, }); return { diff --git a/packages/lib/server-only/template/create-document-from-template-legacy.ts b/packages/lib/server-only/template/create-document-from-template-legacy.ts index ea5a45760..f468cdf0e 100644 --- a/packages/lib/server-only/template/create-document-from-template-legacy.ts +++ b/packages/lib/server-only/template/create-document-from-template-legacy.ts @@ -46,6 +46,7 @@ export const createDocumentFromTemplateLegacy = async ({ Recipient: true, Field: true, templateDocumentData: true, + templateMeta: true, }, }); @@ -78,6 +79,17 @@ export const createDocumentFromTemplateLegacy = async ({ token: nanoid(), })), }, + documentMeta: { + create: { + subject: template.templateMeta?.subject, + message: template.templateMeta?.message, + timezone: template.templateMeta?.timezone, + dateFormat: template.templateMeta?.dateFormat, + redirectUrl: template.templateMeta?.redirectUrl, + signingOrder: template.templateMeta?.signingOrder ?? undefined, + language: template.templateMeta?.language, + }, + }, }, include: { diff --git a/packages/lib/server-only/template/create-document-from-template.ts b/packages/lib/server-only/template/create-document-from-template.ts index 1c989fa5b..04bf46dde 100644 --- a/packages/lib/server-only/template/create-document-from-template.ts +++ b/packages/lib/server-only/template/create-document-from-template.ts @@ -11,6 +11,7 @@ import { WebhookTriggerEvents, } from '@documenso/prisma/client'; +import type { SupportedLanguageCodes } from '../../constants/i18n'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import { ZRecipientAuthOptionsSchema } from '../../types/document-auth'; @@ -60,6 +61,7 @@ export type CreateDocumentFromTemplateOptions = { dateFormat?: string; redirectUrl?: string; signingOrder?: DocumentSigningOrder; + language?: SupportedLanguageCodes; }; requestMetadata?: RequestMetadata; }; @@ -179,6 +181,7 @@ export const createDocumentFromTemplate = async ({ override?.signingOrder || template.templateMeta?.signingOrder || DocumentSigningOrder.PARALLEL, + language: override?.language || template.templateMeta?.language, }, }, Recipient: { diff --git a/packages/lib/server-only/user/send-confirmation-token.ts b/packages/lib/server-only/user/send-confirmation-token.ts index ef7c4b104..d2bc0a3aa 100644 --- a/packages/lib/server-only/user/send-confirmation-token.ts +++ b/packages/lib/server-only/user/send-confirmation-token.ts @@ -39,7 +39,7 @@ export const sendConfirmationToken = async ({ mostRecentToken?.createdAt && DateTime.fromJSDate(mostRecentToken.createdAt).diffNow('minutes').minutes > -5 ) { - return; + // return; } const createdToken = await prisma.verificationToken.create({ @@ -64,6 +64,7 @@ export const sendConfirmationToken = async ({ return { success: true }; } catch (err) { + console.log(err); throw new Error(`Failed to send the confirmation email`); } }; diff --git a/packages/lib/translations/de/common.po b/packages/lib/translations/de/common.po index 557739d1d..6960ce450 100644 --- a/packages/lib/translations/de/common.po +++ b/packages/lib/translations/de/common.po @@ -18,14 +18,104 @@ msgstr "" "X-Crowdin-File: common.po\n" "X-Crowdin-File-ID: 4\n" +#: packages/email/template-components/template-document-super-delete.tsx:27 +msgid "\"{documentName}\" has been deleted by an admin." +msgstr "" + +#: packages/email/template-components/template-document-pending.tsx:37 +msgid "“{documentName}” has been signed" +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:41 +#: packages/lib/server-only/document/resend-document.tsx:109 +msgid "{0}" +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:74 +msgid "{0} Document" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:117 +msgid "{0} invited you to {recipientActionVerb} a document" +msgstr "" + +#: packages/email/templates/team-join.tsx:55 +msgid "{0} joined the team {teamName} on Documenso" +msgstr "" + +#: packages/email/templates/team-leave.tsx:55 +msgid "{0} left the team {teamName} on Documenso" +msgstr "" + #: packages/ui/primitives/data-table-pagination.tsx:30 msgid "{0} of {1} row(s) selected." msgstr "{0} von {1} Zeile(n) ausgewählt." +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:119 +#: packages/lib/server-only/document/resend-document.tsx:119 +msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"." +msgstr "" + +#: packages/email/templates/document-invite.tsx:79 +msgid "{inviterName} <0>({inviterEmail})" +msgstr "" + +#: packages/email/templates/document-cancel.tsx:19 +msgid "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." +msgstr "" + +#: packages/email/template-components/template-document-cancel.tsx:24 +msgid "{inviterName} has cancelled the document<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:57 +msgid "{inviterName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:41 +msgid "{inviterName} has invited you to {action} {documentName}" +msgstr "" + +#: packages/email/templates/recipient-removed-from-document.tsx:18 +msgid "{inviterName} has removed you from the document {documentName}." +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:49 +msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:40 +msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}" +msgstr "" + +#: packages/email/templates/team-join.tsx:61 +msgid "{memberEmail} joined the following team" +msgstr "" + +#: packages/email/templates/team-leave.tsx:61 +msgid "{memberEmail} left the following team" +msgstr "" + +#: packages/email/templates/document-created-from-direct-template.tsx:55 +msgid "{recipientName} {action} a document by using one of your direct links" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:55 +msgid "{teamName} ownership transfer request" +msgstr "" + #: packages/ui/primitives/data-table-pagination.tsx:41 msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" msgstr "{visibleRows, plural, one {Eine # Ergebnis wird angezeigt.} other {# Ergebnisse werden angezeigt.}}" +#: packages/email/templates/document-invite.tsx:91 +msgid "`${inviterName} has invited you to ${action} the document \"${documentName}\".`" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:59 +msgid "<0>{senderName} has requested that you take ownership of the following team" +msgstr "" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:53 msgid "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" msgstr "<0>Authentifizierungsmethode erben - Verwenden Sie die in den \"Allgemeinen Einstellungen\" konfigurierte globale Aktionssignatur-Authentifizierungsmethode" @@ -56,20 +146,66 @@ msgstr "<0>Konto erforderlich - Der Empfänger muss angemeldet sein, um das msgid "<0>Require passkey - The recipient must have an account and passkey configured via their settings" msgstr "<0>Passkey erforderlich - Der Empfänger muss ein Konto haben und den Passkey über seine Einstellungen konfiguriert haben" +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:109 +msgid "A document was created by your direct template that requires you to {recipientActionVerb} it." +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts:90 +msgid "A new member has joined your team" +msgstr "" + +#: 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 "" + +#: packages/email/templates/team-join.tsx:29 +msgid "A team member has joined a team on Documenso" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-team-member-left-email.ts:79 +msgid "A team member has left {0}" +msgstr "" + +#: packages/email/templates/team-leave.tsx:29 +msgid "A team member has left a team on Documenso" +msgstr "" + +#: packages/email/templates/team-delete.tsx:27 +#: packages/email/templates/team-delete.tsx:31 +msgid "A team you were a part of has been deleted" +msgstr "" + +#: packages/email/templates/team-invite.tsx:77 +#: packages/email/templates/team-transfer-request.tsx:81 +msgid "Accept" +msgstr "" + +#: packages/email/templates/team-invite.tsx:29 +msgid "Accept invitation to join a team on Documenso" +msgstr "" + +#: packages/email/templates/confirm-team-email.tsx:38 +msgid "Accept team email request for {teamName} on Documenso" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:29 +msgid "Accept team transfer request on Documenso" +msgstr "" + #: packages/ui/primitives/document-dropzone.tsx:69 msgid "Add a document" msgstr "Dokument hinzufügen" -#: packages/ui/primitives/document-flow/add-settings.tsx:336 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:339 +#: packages/ui/primitives/document-flow/add-settings.tsx:378 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:378 msgid "Add a URL to redirect the user to once the document is signed" msgstr "Fügen Sie eine URL hinzu, um den Benutzer nach der Unterzeichnung des Dokuments weiterzuleiten" -#: packages/ui/primitives/document-flow/add-settings.tsx:248 +#: packages/ui/primitives/document-flow/add-settings.tsx:290 msgid "Add an external ID to the document. This can be used to identify the document in external systems." msgstr "Fügen Sie dem Dokument eine externe ID hinzu. Diese kann verwendet werden, um das Dokument in externen Systemen zu identifizieren." -#: packages/ui/primitives/template-flow/add-template-settings.tsx:256 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:295 msgid "Add an external ID to the template. This can be used to identify in external systems." msgstr "Fügen Sie der Vorlage eine externe ID hinzu. Diese kann zur Identifizierung in externen Systemen verwendet werden." @@ -110,8 +246,8 @@ msgstr "Text zum Feld hinzufügen" msgid "Admin" msgstr "Admin" -#: packages/ui/primitives/document-flow/add-settings.tsx:230 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:238 +#: packages/ui/primitives/document-flow/add-settings.tsx:272 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:277 msgid "Advanced Options" msgstr "Erweiterte Optionen" @@ -124,6 +260,14 @@ msgstr "Erweiterte Einstellungen" msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." msgstr "Nach der Übermittlung wird ein Dokument automatisch generiert und zu Ihrer Dokumentenseite hinzugefügt. Sie erhalten außerdem eine Benachrichtigung per E-Mail." +#: packages/email/template-components/template-document-cancel.tsx:31 +msgid "All signatures have been voided." +msgstr "" + +#: packages/email/templates/document-super-delete.tsx:20 +msgid "An admin has deleted your document \"{documentName}\"." +msgstr "" + #: packages/ui/primitives/pdf-viewer.tsx:167 msgid "An error occurred while loading the document." msgstr "Ein Fehler ist beim Laden des Dokuments aufgetreten." @@ -132,6 +276,10 @@ msgstr "Ein Fehler ist beim Laden des Dokuments aufgetreten." msgid "Approve" msgstr "Genehmigen" +#: packages/lib/constants/recipient-roles.ts:68 +#~ msgid "APPROVE_REQUEST" +#~ msgstr "" + #: packages/lib/constants/recipient-roles.ts:9 msgid "Approved" msgstr "Genehmigt" @@ -148,6 +296,10 @@ msgstr "Genehmigende" msgid "Approving" msgstr "Genehmigung" +#: packages/email/template-components/template-confirmation-email.tsx:28 +msgid "Before you get started, please confirm your email address by clicking the button below:" +msgstr "" + #: packages/ui/primitives/signature-pad/signature-pad.tsx:377 msgid "Black" msgstr "Schwarz" @@ -156,6 +308,14 @@ msgstr "Schwarz" msgid "Blue" msgstr "Blau" +#: packages/email/templates/team-invite.tsx:67 +msgid "by <0>{senderName}" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:70 +msgid "By accepting this request, you will take responsibility for any billing items associated with this team." +msgstr "" + #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356 #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58 msgid "Cancel" @@ -206,6 +366,16 @@ msgstr "Klicken, um das Feld einzufügen" msgid "Close" msgstr "Schließen" +#: packages/email/template-components/template-document-completed.tsx:35 +#: packages/email/template-components/template-document-self-signed.tsx:36 +msgid "Completed" +msgstr "" + +#: packages/email/templates/document-completed.tsx:21 +#: packages/email/templates/document-self-signed.tsx:17 +msgid "Completed Document" +msgstr "" + #: packages/lib/constants/template.ts:12 msgid "Configure Direct Recipient" msgstr "Direkten Empfänger konfigurieren" @@ -215,10 +385,22 @@ msgstr "Direkten Empfänger konfigurieren" msgid "Configure the {0} field" msgstr "Konfigurieren Sie das Feld {0}" +#: packages/email/template-components/template-confirmation-email.tsx:38 +msgid "Confirm email" +msgstr "" + #: packages/ui/primitives/document-flow/document-flow-root.tsx:141 msgid "Continue" msgstr "Fortsetzen" +#: packages/email/template-components/template-document-invite.tsx:66 +msgid "Continue by {0} the document." +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:45 +msgid "Continue by downloading the document." +msgstr "" + #: packages/ui/components/document/document-share-button.tsx:46 msgid "Copied to clipboard" msgstr "In die Zwischenablage kopiert" @@ -227,6 +409,14 @@ msgstr "In die Zwischenablage kopiert" msgid "Copy Link" msgstr "Link kopieren" +#: packages/email/template-components/template-document-self-signed.tsx:46 +msgid "Create a <0>free account to access your signed documents at any time." +msgstr "" + +#: packages/email/template-components/template-document-self-signed.tsx:68 +msgid "Create account" +msgstr "" + #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" msgstr "Benutzerdefinierter Text" @@ -237,25 +427,47 @@ msgstr "Benutzerdefinierter Text" msgid "Date" msgstr "Datum" -#: packages/ui/primitives/document-flow/add-settings.tsx:271 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:279 +#: packages/ui/primitives/document-flow/add-settings.tsx:313 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:318 msgid "Date Format" msgstr "Datumsformat" +#: packages/email/templates/team-invite.tsx:83 +msgid "Decline" +msgstr "" + +#: packages/email/templates/reset-password.tsx:65 +msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us." +msgstr "" + #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:570 msgid "Direct link receiver" msgstr "Empfänger des direkten Links" #: packages/ui/components/document/document-global-auth-access-select.tsx:62 -#: packages/ui/primitives/document-flow/add-settings.tsx:174 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:151 +#: packages/ui/primitives/document-flow/add-settings.tsx:216 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:190 msgid "Document access" msgstr "Dokumentenzugriff" +#: packages/lib/server-only/document/super-delete-document.ts:75 +msgid "Document Cancelled" +msgstr "" + +#: 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" +msgstr "" + #: packages/lib/constants/template.ts:20 msgid "Document Creation" msgstr "Dokumenterstellung" +#: packages/lib/server-only/document/send-delete-email.ts:58 +msgid "Document Deleted!" +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:64 #: packages/ui/components/document/document-download-button.tsx:68 msgid "Download" msgstr "Herunterladen" @@ -288,7 +500,7 @@ msgstr "E-Mail" msgid "Email is required" msgstr "E-Mail ist erforderlich" -#: packages/ui/primitives/template-flow/add-template-settings.tsx:184 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:223 msgid "Email Options" msgstr "E-Mail-Optionen" @@ -318,8 +530,8 @@ msgstr "Passwort eingeben" msgid "Error" msgstr "Fehler" -#: packages/ui/primitives/document-flow/add-settings.tsx:241 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:249 +#: packages/ui/primitives/document-flow/add-settings.tsx:283 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:288 msgid "External ID" msgstr "Externe ID" @@ -361,6 +573,14 @@ msgstr "Feldplatzhalter" msgid "Font Size" msgstr "Schriftgröße" +#: packages/lib/server-only/auth/send-forgot-password.ts:61 +msgid "Forgot Password?" +msgstr "" + +#: packages/email/template-components/template-forgot-password.tsx:21 +msgid "Forgot your password?" +msgstr "" + #: packages/ui/primitives/document-flow/types.ts:50 msgid "Free Signature" msgstr "Freie Unterschrift" @@ -377,6 +597,10 @@ msgstr "Zurück" msgid "Green" msgstr "Grün" +#: packages/email/templates/reset-password.tsx:50 +msgid "Hi, {userName} <0>({userEmail})" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:76 msgid "I am a signer of this document" msgstr "Ich bin ein Unterzeichner dieses Dokuments" @@ -410,12 +634,25 @@ msgstr "Ungültige E-Mail" msgid "Invalid email address" msgstr "Ungültige E-Mail-Adresse" +#: packages/email/templates/team-invite.tsx:55 +msgid "Join {teamName} on Documenso" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48 msgid "Label" msgstr "Beschriftung" +#: packages/ui/primitives/document-flow/add-settings.tsx:176 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:150 +msgid "Language" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:87 +msgid "Link expires in 1 hour." +msgstr "" + #: packages/ui/primitives/lazy-pdf-viewer.tsx:15 #: packages/ui/primitives/pdf-viewer.tsx:44 msgid "Loading document..." @@ -434,7 +671,7 @@ msgid "Member" msgstr "Mitglied" #: packages/ui/primitives/document-flow/add-subject.tsx:95 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:215 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:254 msgid "Message <0>(Optional)" msgstr "Nachricht <0>(Optional)" @@ -525,6 +762,22 @@ msgstr "Seite {0} von {numPages}" msgid "Password Required" msgstr "Passwort erforderlich" +#: packages/email/templates/forgot-password.tsx:17 +msgid "Password Reset Requested" +msgstr "" + +#: packages/email/templates/reset-password.tsx:18 +msgid "Password Reset Successful" +msgstr "" + +#: packages/email/template-components/template-reset-password.tsx:22 +msgid "Password updated!" +msgstr "" + +#: packages/email/templates/document-pending.tsx:17 +msgid "Pending Document" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:156 msgid "Pick a number" msgstr "Wählen Sie eine Zahl" @@ -535,6 +788,34 @@ msgstr "Wählen Sie eine Zahl" msgid "Placeholder" msgstr "Platzhalter" +#: packages/email/template-components/template-document-invite.tsx:43 +msgid "Please {0} your document<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:38 +msgid "Please {action} your document {documentName}" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:98 +msgid "Please {recipientActionVerb} this document" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:112 +msgid "Please {recipientActionVerb} this document created by your direct template" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:104 +msgid "Please {recipientActionVerb} your document" +msgstr "" + +#: packages/lib/server-only/auth/send-confirmation-email.ts:67 +msgid "Please confirm your email" +msgstr "" + +#: packages/email/templates/confirm-email.tsx:15 +msgid "Please confirm your email address" +msgstr "" + #: packages/ui/primitives/pdf-viewer.tsx:223 #: packages/ui/primitives/pdf-viewer.tsx:238 msgid "Please try again or contact our support." @@ -561,8 +842,8 @@ msgid "Receives copy" msgstr "Erhält Kopie" #: packages/ui/components/recipient/recipient-action-auth-select.tsx:39 -#: packages/ui/primitives/document-flow/add-settings.tsx:215 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:169 +#: packages/ui/primitives/document-flow/add-settings.tsx:257 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:208 msgid "Recipient action authentication" msgstr "Empfängeraktion Authentifizierung" @@ -570,11 +851,27 @@ msgstr "Empfängeraktion Authentifizierung" msgid "Red" msgstr "Rot" -#: packages/ui/primitives/document-flow/add-settings.tsx:329 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:332 +#: packages/ui/primitives/document-flow/add-settings.tsx:371 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:371 msgid "Redirect URL" msgstr "Weiterleitungs-URL" +#: packages/lib/server-only/document/resend-document.tsx:165 +msgid "Reminder: {0}" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:118 +msgid "Reminder: {0} invited you to {recipientActionVerb} a document" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:110 +msgid "Reminder: Please {recipientActionVerb} this document" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:114 +msgid "Reminder: Please {recipientActionVerb} your document" +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:1110 msgid "Remove" msgstr "Entfernen" @@ -587,6 +884,10 @@ msgstr "Entfernen" msgid "Required field" msgstr "Pflichtfeld" +#: packages/email/template-components/template-forgot-password.tsx:33 +msgid "Reset Password" +msgstr "" + #: packages/ui/components/document/document-share-button.tsx:147 msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" msgstr "Seien Sie versichert, Ihr Dokument ist streng vertraulich und wird niemals geteilt. Nur Ihre Unterzeichnungserfahrung wird hervorgehoben. Teilen Sie Ihre personalisierte Unterschriftkarte, um Ihre Unterschrift zu präsentieren!" @@ -654,6 +955,10 @@ msgstr "Erweiterte Einstellungen anzeigen" msgid "Sign" msgstr "Unterschreiben" +#: packages/email/template-components/template-reset-password.tsx:34 +msgid "Sign In" +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:823 #: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/field-icon.tsx:52 @@ -682,6 +987,15 @@ msgstr "Unterzeichner müssen eindeutige E-Mails haben" msgid "Signing" msgstr "Unterzeichnung" +#: packages/lib/server-only/document/send-completed-email.ts:93 +#: packages/lib/server-only/document/send-completed-email.ts:161 +msgid "Signing Complete!" +msgstr "" + +#: packages/lib/constants/recipient-roles.ts:66 +#~ msgid "SIGNING_REQUEST" +#~ msgstr "" + #: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:34 msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding." msgstr "Einige Unterzeichner haben noch kein Unterschriftsfeld zugewiesen bekommen. Bitte weisen Sie jedem Unterzeichner mindestens ein Unterschriftsfeld zu, bevor Sie fortfahren." @@ -704,7 +1018,7 @@ msgid "Step <0>{step} of {maxStep}" msgstr "Schritt <0>{step} von {maxStep}" #: packages/ui/primitives/document-flow/add-subject.tsx:78 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:195 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:234 msgid "Subject <0>(Optional)" msgstr "Betreff <0>(Optional)" @@ -712,7 +1026,19 @@ msgstr "Betreff <0>(Optional)" msgid "Submit" msgstr "Einreichen" -#: packages/ui/primitives/template-flow/add-template-settings.tsx:134 +#: packages/lib/server-only/team/delete-team-email.ts:96 +msgid "Team email has been revoked for {0}" +msgstr "" + +#: packages/email/templates/team-email-removed.tsx:53 +msgid "Team email removed" +msgstr "" + +#: packages/email/templates/team-email-removed.tsx:27 +msgid "Team email removed for {teamName} on Documenso" +msgstr "" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx:133 msgid "Template title" msgstr "Vorlagentitel" @@ -722,6 +1048,10 @@ msgstr "Vorlagentitel" msgid "Text" msgstr "Text" +#: packages/email/template-components/template-forgot-password.tsx:25 +msgid "That's okay, it happens! Click the button below to reset your password." +msgstr "" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:44 msgid "The authentication required for recipients to sign fields" msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger Felder signieren" @@ -738,10 +1068,22 @@ msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger das Dokume msgid "The document's name" msgstr "Der Name des Dokuments" +#: packages/email/templates/team-delete.tsx:35 +msgid "The following team has been deleted by its owner. You will no longer be able to access this team and its documents" +msgstr "" + +#: packages/email/templates/team-delete.tsx:34 +msgid "The following team has been deleted by you" +msgstr "" + #: packages/ui/primitives/document-password-dialog.tsx:52 msgid "The password you have entered is incorrect. Please try again." msgstr "Das eingegebene Passwort ist falsch. Bitte versuchen Sie es erneut." +#: packages/email/template-components/template-document-super-delete.tsx:38 +msgid "The reason provided for deletion is the following:" +msgstr "" + #: packages/ui/components/recipient/recipient-role-select.tsx:103 msgid "The recipient is not required to take any action and receives a copy of the document after it is completed." msgstr "Der Empfänger muss keine Aktion ausführen und erhält nach Abschluss eine Kopie des Dokuments." @@ -774,10 +1116,18 @@ msgstr "Die E-Mail des Unterzeichners" msgid "The signer's name" msgstr "Der Name des Unterzeichners" +#: packages/email/templates/team-email-removed.tsx:57 +msgid "The team email <0>{teamEmail} has been removed from the following team" +msgstr "" + #: packages/ui/components/document/document-global-auth-action-select.tsx:72 msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step." msgstr "Dies kann überschrieben werden, indem die Authentifizierungsanforderungen im nächsten Schritt direkt für jeden Empfänger festgelegt werden." +#: packages/email/template-components/template-document-super-delete.tsx:31 +msgid "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:757 msgid "This document has already been sent to this recipient. You can no longer edit this recipient." msgstr "Dieses Dokument wurde bereits an diesen Empfänger gesendet. Sie können diesen Empfänger nicht mehr bearbeiten." @@ -786,6 +1136,10 @@ msgstr "Dieses Dokument wurde bereits an diesen Empfänger gesendet. Sie können msgid "This document is password protected. Please enter the password to view the document." msgstr "Dieses Dokument ist durch ein Passwort geschützt. Bitte geben Sie das Passwort ein, um das Dokument anzusehen." +#: packages/email/template-components/template-footer.tsx:14 +msgid "This document was sent using <0>Documenso." +msgstr "" + #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:573 msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." msgstr "Dieses Feld kann nicht geändert oder gelöscht werden. Wenn Sie den direkten Link dieser Vorlage teilen oder zu Ihrem öffentlichen Profil hinzufügen, kann jeder, der darauf zugreift, seinen Namen und seine E-Mail-Adresse eingeben und die ihm zugewiesenen Felder ausfüllen." @@ -802,12 +1156,12 @@ msgstr "Dieser Unterzeichner hat das Dokument bereits unterschrieben." msgid "This will override any global settings." msgstr "Dies überschreibt alle globalen Einstellungen." -#: packages/ui/primitives/document-flow/add-settings.tsx:305 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:309 +#: packages/ui/primitives/document-flow/add-settings.tsx:347 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:348 msgid "Time Zone" msgstr "Zeitzone" -#: packages/ui/primitives/document-flow/add-settings.tsx:153 +#: packages/ui/primitives/document-flow/add-settings.tsx:155 msgid "Title" msgstr "Titel" @@ -846,6 +1200,18 @@ msgstr "Wert" msgid "View" msgstr "Betrachten" +#: packages/email/templates/document-created-from-direct-template.tsx:69 +msgid "View document" +msgstr "" + +#: packages/email/template-components/template-document-self-signed.tsx:79 +msgid "View plans" +msgstr "" + +#: packages/lib/constants/recipient-roles.ts:67 +#~ msgid "VIEW_REQUEST" +#~ msgstr "" + #: packages/lib/constants/recipient-roles.ts:27 msgid "Viewed" msgstr "Betrachtet" @@ -862,10 +1228,34 @@ msgstr "Betrachter" msgid "Viewing" msgstr "Betrachten" +#: packages/email/template-components/template-document-pending.tsx:31 +msgid "Waiting for others" +msgstr "" + +#: packages/lib/server-only/document/send-pending-email.ts:73 +msgid "Waiting for others to complete signing." +msgstr "" + +#: packages/email/template-components/template-document-pending.tsx:41 +msgid "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." +msgstr "" + +#: packages/email/templates/reset-password.tsx:59 +msgid "We've changed your password as you asked. You can now sign in with your new password." +msgstr "" + +#: packages/email/template-components/template-confirmation-email.tsx:24 +msgid "Welcome to Documenso!" +msgstr "" + #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44 msgid "You are about to send this document to the recipients. Are you sure you want to continue?" msgstr "Sie sind dabei, dieses Dokument an die Empfänger zu senden. Sind Sie sicher, dass Sie fortfahren möchten?" +#: packages/email/template-components/template-confirmation-email.tsx:41 +msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)" +msgstr "" + #: packages/ui/components/document/document-send-email-message-helper.tsx:11 msgid "You can use the following variables in your message:" msgstr "Sie können die folgenden Variablen in Ihrer Nachricht verwenden:" @@ -874,7 +1264,48 @@ msgstr "Sie können die folgenden Variablen in Ihrer Nachricht verwenden:" msgid "You cannot upload documents at this time." msgstr "Sie können derzeit keine Dokumente hochladen." +#: packages/email/template-components/template-document-cancel.tsx:35 +msgid "You don't need to sign it anymore." +msgstr "" + +#: packages/lib/server-only/team/create-team-member-invites.ts:168 +msgid "You have been invited to join {0} on Documenso" +msgstr "" + +#: packages/email/templates/team-invite.tsx:59 +msgid "You have been invited to join the following team" +msgstr "" + +#: packages/lib/server-only/recipient/set-recipients-for-document.ts:314 +msgid "You have been removed from a document" +msgstr "" + +#: packages/lib/server-only/team/request-team-ownership-transfer.ts:114 +msgid "You have been requested to take ownership of team {0} on Documenso" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:102 +#: packages/lib/server-only/document/resend-document.tsx:113 +msgid "You have initiated the document {0} that requires you to {recipientActionVerb} it." +msgstr "" + #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Sie haben Ihr Dokumentenlimit erreicht." +#: packages/email/template-components/template-document-self-signed.tsx:42 +msgid "You have signed “{documentName}”" +msgstr "" + +#: packages/email/template-components/template-document-super-delete.tsx:23 +msgid "Your document has been deleted by an admin!" +msgstr "" + +#: packages/email/template-components/template-reset-password.tsx:26 +msgid "Your password has been updated." +msgstr "" + +#: packages/email/templates/team-delete.tsx:26 +#: packages/email/templates/team-delete.tsx:30 +msgid "Your team has been deleted" +msgstr "" diff --git a/packages/lib/translations/de/marketing.po b/packages/lib/translations/de/marketing.po index 51b162dde..9f97b6734 100644 --- a/packages/lib/translations/de/marketing.po +++ b/packages/lib/translations/de/marketing.po @@ -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:165 +#: apps/marketing/src/app/(marketing)/open/page.tsx:164 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:219 +#: apps/marketing/src/app/(marketing)/open/page.tsx:218 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:210 +#: apps/marketing/src/app/(marketing)/open/page.tsx:209 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:233 +#: apps/marketing/src/app/(marketing)/open/page.tsx:232 msgid "GitHub: Total Merged PRs" msgstr "GitHub: Gesamte PRs zusammengeführt" -#: apps/marketing/src/app/(marketing)/open/page.tsx:251 +#: apps/marketing/src/app/(marketing)/open/page.tsx:250 msgid "GitHub: Total Open Issues" msgstr "GitHub: Gesamte offene Issues" -#: apps/marketing/src/app/(marketing)/open/page.tsx:225 +#: apps/marketing/src/app/(marketing)/open/page.tsx:224 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:261 +#: apps/marketing/src/app/(marketing)/open/page.tsx:260 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:289 +#: apps/marketing/src/app/(marketing)/open/page.tsx:288 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:199 +#: apps/marketing/src/app/(marketing)/open/page.tsx:198 msgid "Merged PR's" msgstr "Zusammengeführte PRs" -#: apps/marketing/src/app/(marketing)/open/page.tsx:234 +#: apps/marketing/src/app/(marketing)/open/page.tsx:233 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:194 -#: apps/marketing/src/app/(marketing)/open/page.tsx:252 +#: apps/marketing/src/app/(marketing)/open/page.tsx:193 +#: apps/marketing/src/app/(marketing)/open/page.tsx:251 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:161 +#: apps/marketing/src/app/(marketing)/open/page.tsx:160 #: 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:226 +#: apps/marketing/src/app/(marketing)/open/page.tsx:225 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:293 +#: apps/marketing/src/app/(marketing)/open/page.tsx:292 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 81d733570..c3bd391fb 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -260,12 +260,12 @@ msgstr "Aktive Abonnements" msgid "Add" msgstr "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)/documents/[id]/edit-document.tsx:176 +#: apps/web/src/app/(dashboard)/templates/[id]/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:82 +#: apps/web/src/app/(dashboard)/templates/[id]/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." @@ -281,8 +281,8 @@ msgstr "Fügen Sie einen Authenticator hinzu, um als sekundäre Authentifizierun msgid "Add email" msgstr "E-Mail hinzufügen" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:174 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:86 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 msgid "Add Fields" msgstr "Felder hinzufügen" @@ -295,15 +295,15 @@ msgstr "Mehr hinzufügen" msgid "Add passkey" msgstr "Passkey hinzufügen" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:81 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Platzhalter hinzufügen" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:169 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 msgid "Add Signers" msgstr "Unterzeichner hinzufügen" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:179 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180 msgid "Add Subject" msgstr "Betreff hinzufügen" @@ -311,7 +311,7 @@ msgstr "Betreff hinzufügen" msgid "Add team email" msgstr "Team-E-Mail hinzufügen" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:171 msgid "Add the people who will sign the document." msgstr "Fügen Sie die Personen hinzu, die das Dokument unterschreiben werden." @@ -319,7 +319,7 @@ msgstr "Fügen Sie die Personen hinzu, die das Dokument unterschreiben werden." msgid "Add the recipients to create the document with" msgstr "Fügen Sie die Empfänger hinzu, um das Dokument zu erstellen" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:181 msgid "Add the subject and message you wish to send to signers." msgstr "Fügen Sie den Betreff und die Nachricht hinzu, die Sie den Unterzeichnern senden möchten." @@ -414,13 +414,13 @@ msgstr "Eine E-Mail, in der die Übertragung dieses Teams angefordert wird, wurd msgid "An error occurred" msgstr "Ein Fehler ist aufgetreten" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:266 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:197 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:231 +#: 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 msgid "An error occurred while adding signers." msgstr "Ein Fehler ist aufgetreten, während Unterzeichner hinzugefügt wurden." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:301 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:303 msgid "An error occurred while adding the fields." msgstr "Ein Fehler ist aufgetreten, während die Felder hinzugefügt wurden." @@ -482,7 +482,7 @@ msgstr "Ein Fehler ist aufgetreten, während die Unterschrift entfernt wurde." msgid "An error occurred while removing the text." msgstr "Ein Fehler ist aufgetreten, während der Text entfernt wurde." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:332 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:334 msgid "An error occurred while sending the document." msgstr "Ein Fehler ist aufgetreten, während das Dokument gesendet wurde." @@ -507,8 +507,8 @@ msgstr "Ein Fehler ist aufgetreten, während das Dokument unterzeichnet wurde." 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:232 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:166 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "Ein Fehler ist aufgetreten, während die Dokumenteinstellungen aktualisiert wurden." @@ -869,11 +869,11 @@ msgstr "Abgeschlossene Dokumente" msgid "Completed Documents" msgstr "Abgeschlossene Dokumente" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:166 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:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Konfigurieren Sie die allgemeinen Einstellungen für die Vorlage." @@ -1350,7 +1350,7 @@ msgstr "Dokument erneut gesendet" msgid "Document resealed" msgstr "Dokument wieder versiegelt" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:321 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:323 msgid "Document sent" msgstr "Dokument gesendet" @@ -1579,16 +1579,16 @@ msgstr "Geben Sie hier Ihren Text ein" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:78 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:231 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:265 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:300 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:331 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:233 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:267 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:302 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:333 #: 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:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:196 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:230 +#: 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/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 @@ -1679,8 +1679,8 @@ msgstr "Haben Sie Ihr Passwort vergessen?" msgid "Full Name" msgstr "Vollständiger Name" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:164 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:76 +#: 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/(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 @@ -3244,7 +3244,7 @@ msgstr "Vorlage wurde aktualisiert." msgid "Template moved" msgstr "Vorlage verschoben" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:219 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 msgid "Template saved" msgstr "Vorlage gespeichert" @@ -4521,7 +4521,7 @@ msgstr "Ihr Dokument wurde erfolgreich aus der Vorlage erstellt." msgid "Your document has been re-sent successfully." msgstr "Ihr Dokument wurde erfolgreich erneut gesendet." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:322 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:324 msgid "Your document has been sent successfully." msgstr "Ihr Dokument wurde erfolgreich gesendet." @@ -4612,7 +4612,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:220 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Ihre Vorlagen wurden erfolgreich gespeichert." @@ -4628,4 +4628,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 37f959cf7..596ff4e27 100644 --- a/packages/lib/translations/en/common.po +++ b/packages/lib/translations/en/common.po @@ -13,14 +13,104 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" +#: packages/email/template-components/template-document-super-delete.tsx:27 +msgid "\"{documentName}\" has been deleted by an admin." +msgstr "\"{documentName}\" has been deleted by an admin." + +#: packages/email/template-components/template-document-pending.tsx:37 +msgid "“{documentName}” has been signed" +msgstr "“{documentName}” has been signed" + +#: packages/email/template-components/template-document-completed.tsx:41 +#: packages/lib/server-only/document/resend-document.tsx:109 +msgid "{0}" +msgstr "{0}" + +#: packages/email/template-components/template-document-invite.tsx:74 +msgid "{0} Document" +msgstr "{0} Document" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:117 +msgid "{0} invited you to {recipientActionVerb} a document" +msgstr "{0} invited you to {recipientActionVerb} a document" + +#: packages/email/templates/team-join.tsx:55 +msgid "{0} joined the team {teamName} on Documenso" +msgstr "{0} joined the team {teamName} on Documenso" + +#: packages/email/templates/team-leave.tsx:55 +msgid "{0} left the team {teamName} on Documenso" +msgstr "{0} left the team {teamName} on Documenso" + #: packages/ui/primitives/data-table-pagination.tsx:30 msgid "{0} of {1} row(s) selected." msgstr "{0} of {1} row(s) selected." +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:119 +#: packages/lib/server-only/document/resend-document.tsx:119 +msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"." +msgstr "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"." + +#: packages/email/templates/document-invite.tsx:79 +msgid "{inviterName} <0>({inviterEmail})" +msgstr "{inviterName} <0>({inviterEmail})" + +#: packages/email/templates/document-cancel.tsx:19 +msgid "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." +msgstr "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." + +#: packages/email/template-components/template-document-cancel.tsx:24 +msgid "{inviterName} has cancelled the document<0/>\"{documentName}\"" +msgstr "{inviterName} has cancelled the document<0/>\"{documentName}\"" + +#: packages/email/template-components/template-document-invite.tsx:57 +msgid "{inviterName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "{inviterName} has invited you to {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx:41 +msgid "{inviterName} has invited you to {action} {documentName}" +msgstr "{inviterName} has invited you to {action} {documentName}" + +#: packages/email/templates/recipient-removed-from-document.tsx:18 +msgid "{inviterName} has removed you from the document {documentName}." +msgstr "{inviterName} has removed you from the document {documentName}." + +#: packages/email/template-components/template-document-invite.tsx:49 +msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx:40 +msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}" +msgstr "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}" + +#: packages/email/templates/team-join.tsx:61 +msgid "{memberEmail} joined the following team" +msgstr "{memberEmail} joined the following team" + +#: packages/email/templates/team-leave.tsx:61 +msgid "{memberEmail} left the following team" +msgstr "{memberEmail} left the following team" + +#: 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" + +#: packages/email/templates/team-transfer-request.tsx:55 +msgid "{teamName} ownership transfer request" +msgstr "{teamName} ownership transfer request" + #: packages/ui/primitives/data-table-pagination.tsx:41 msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" msgstr "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}" +#: packages/email/templates/document-invite.tsx:91 +msgid "`${inviterName} has invited you to ${action} the document \"${documentName}\".`" +msgstr "`${inviterName} has invited you to ${action} the document \"${documentName}\".`" + +#: packages/email/templates/team-transfer-request.tsx:59 +msgid "<0>{senderName} has requested that you take ownership of the following team" +msgstr "<0>{senderName} has requested that you take ownership of the following team" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:53 msgid "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" msgstr "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" @@ -51,20 +141,66 @@ msgstr "<0>Require account - The recipient must be signed in to view the doc msgid "<0>Require passkey - The recipient must have an account and passkey configured via their settings" msgstr "<0>Require passkey - The recipient must have an account and passkey configured via their settings" +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:109 +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/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/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" + +#: packages/email/templates/team-join.tsx:29 +msgid "A team member has joined a team on Documenso" +msgstr "A team member has joined a team on Documenso" + +#: packages/lib/jobs/definitions/emails/send-team-member-left-email.ts:79 +msgid "A team member has left {0}" +msgstr "A team member has left {0}" + +#: packages/email/templates/team-leave.tsx:29 +msgid "A team member has left a team on Documenso" +msgstr "A team member has left a team on Documenso" + +#: packages/email/templates/team-delete.tsx:27 +#: packages/email/templates/team-delete.tsx:31 +msgid "A team you were a part of has been deleted" +msgstr "A team you were a part of has been deleted" + +#: packages/email/templates/team-invite.tsx:77 +#: packages/email/templates/team-transfer-request.tsx:81 +msgid "Accept" +msgstr "Accept" + +#: packages/email/templates/team-invite.tsx:29 +msgid "Accept invitation to join a team on Documenso" +msgstr "Accept invitation to join a team on Documenso" + +#: packages/email/templates/confirm-team-email.tsx:38 +msgid "Accept team email request for {teamName} on Documenso" +msgstr "Accept team email request for {teamName} on Documenso" + +#: packages/email/templates/team-transfer-request.tsx:29 +msgid "Accept team transfer request on Documenso" +msgstr "Accept team transfer request on Documenso" + #: packages/ui/primitives/document-dropzone.tsx:69 msgid "Add a document" msgstr "Add a document" -#: packages/ui/primitives/document-flow/add-settings.tsx:336 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:339 +#: packages/ui/primitives/document-flow/add-settings.tsx:378 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:378 msgid "Add a URL to redirect the user to once the document is signed" msgstr "Add a URL to redirect the user to once the document is signed" -#: packages/ui/primitives/document-flow/add-settings.tsx:248 +#: packages/ui/primitives/document-flow/add-settings.tsx:290 msgid "Add an external ID to the document. This can be used to identify the document in external systems." msgstr "Add an external ID to the document. This can be used to identify the document in external systems." -#: packages/ui/primitives/template-flow/add-template-settings.tsx:256 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:295 msgid "Add an external ID to the template. This can be used to identify in external systems." msgstr "Add an external ID to the template. This can be used to identify in external systems." @@ -105,8 +241,8 @@ msgstr "Add text to the field" msgid "Admin" msgstr "Admin" -#: packages/ui/primitives/document-flow/add-settings.tsx:230 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:238 +#: packages/ui/primitives/document-flow/add-settings.tsx:272 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:277 msgid "Advanced Options" msgstr "Advanced Options" @@ -119,6 +255,14 @@ msgstr "Advanced settings" msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." msgstr "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." +#: packages/email/template-components/template-document-cancel.tsx:31 +msgid "All signatures have been voided." +msgstr "All signatures have been voided." + +#: packages/email/templates/document-super-delete.tsx:20 +msgid "An admin has deleted your document \"{documentName}\"." +msgstr "An admin has deleted your document \"{documentName}\"." + #: packages/ui/primitives/pdf-viewer.tsx:167 msgid "An error occurred while loading the document." msgstr "An error occurred while loading the document." @@ -127,6 +271,10 @@ msgstr "An error occurred while loading the document." msgid "Approve" msgstr "Approve" +#: packages/lib/constants/recipient-roles.ts:68 +#~ msgid "APPROVE_REQUEST" +#~ msgstr "APPROVE_REQUEST" + #: packages/lib/constants/recipient-roles.ts:9 msgid "Approved" msgstr "Approved" @@ -143,6 +291,10 @@ msgstr "Approvers" msgid "Approving" msgstr "Approving" +#: packages/email/template-components/template-confirmation-email.tsx:28 +msgid "Before you get started, please confirm your email address by clicking the button below:" +msgstr "Before you get started, please confirm your email address by clicking the button below:" + #: packages/ui/primitives/signature-pad/signature-pad.tsx:377 msgid "Black" msgstr "Black" @@ -151,6 +303,14 @@ msgstr "Black" msgid "Blue" msgstr "Blue" +#: packages/email/templates/team-invite.tsx:67 +msgid "by <0>{senderName}" +msgstr "by <0>{senderName}" + +#: packages/email/templates/team-transfer-request.tsx:70 +msgid "By accepting this request, you will take responsibility for any billing items associated with this team." +msgstr "By accepting this request, you will take responsibility for any billing items associated with this team." + #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356 #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58 msgid "Cancel" @@ -201,6 +361,16 @@ msgstr "Click to insert field" msgid "Close" msgstr "Close" +#: packages/email/template-components/template-document-completed.tsx:35 +#: packages/email/template-components/template-document-self-signed.tsx:36 +msgid "Completed" +msgstr "Completed" + +#: packages/email/templates/document-completed.tsx:21 +#: packages/email/templates/document-self-signed.tsx:17 +msgid "Completed Document" +msgstr "Completed Document" + #: packages/lib/constants/template.ts:12 msgid "Configure Direct Recipient" msgstr "Configure Direct Recipient" @@ -210,10 +380,22 @@ msgstr "Configure Direct Recipient" msgid "Configure the {0} field" msgstr "Configure the {0} field" +#: packages/email/template-components/template-confirmation-email.tsx:38 +msgid "Confirm email" +msgstr "Confirm email" + #: packages/ui/primitives/document-flow/document-flow-root.tsx:141 msgid "Continue" msgstr "Continue" +#: packages/email/template-components/template-document-invite.tsx:66 +msgid "Continue by {0} the document." +msgstr "Continue by {0} the document." + +#: packages/email/template-components/template-document-completed.tsx:45 +msgid "Continue by downloading the document." +msgstr "Continue by downloading the document." + #: packages/ui/components/document/document-share-button.tsx:46 msgid "Copied to clipboard" msgstr "Copied to clipboard" @@ -222,6 +404,14 @@ msgstr "Copied to clipboard" msgid "Copy Link" msgstr "Copy Link" +#: packages/email/template-components/template-document-self-signed.tsx:46 +msgid "Create a <0>free account to access your signed documents at any time." +msgstr "Create a <0>free account to access your signed documents at any time." + +#: packages/email/template-components/template-document-self-signed.tsx:68 +msgid "Create account" +msgstr "Create account" + #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" msgstr "Custom Text" @@ -232,25 +422,47 @@ msgstr "Custom Text" msgid "Date" msgstr "Date" -#: packages/ui/primitives/document-flow/add-settings.tsx:271 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:279 +#: packages/ui/primitives/document-flow/add-settings.tsx:313 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:318 msgid "Date Format" msgstr "Date Format" +#: packages/email/templates/team-invite.tsx:83 +msgid "Decline" +msgstr "Decline" + +#: packages/email/templates/reset-password.tsx:65 +msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us." +msgstr "Didn't request a password change? We are here to help you secure your account, just <0>contact us." + #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:570 msgid "Direct link receiver" msgstr "Direct link receiver" #: packages/ui/components/document/document-global-auth-access-select.tsx:62 -#: packages/ui/primitives/document-flow/add-settings.tsx:174 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:151 +#: packages/ui/primitives/document-flow/add-settings.tsx:216 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:190 msgid "Document access" msgstr "Document access" +#: packages/lib/server-only/document/super-delete-document.ts:75 +msgid "Document Cancelled" +msgstr "Document Cancelled" + +#: 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" +msgstr "Document created from direct template" + #: packages/lib/constants/template.ts:20 msgid "Document Creation" msgstr "Document Creation" +#: packages/lib/server-only/document/send-delete-email.ts:58 +msgid "Document Deleted!" +msgstr "Document Deleted!" + +#: packages/email/template-components/template-document-completed.tsx:64 #: packages/ui/components/document/document-download-button.tsx:68 msgid "Download" msgstr "Download" @@ -283,7 +495,7 @@ msgstr "Email" msgid "Email is required" msgstr "Email is required" -#: packages/ui/primitives/template-flow/add-template-settings.tsx:184 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:223 msgid "Email Options" msgstr "Email Options" @@ -313,8 +525,8 @@ msgstr "Enter password" msgid "Error" msgstr "Error" -#: packages/ui/primitives/document-flow/add-settings.tsx:241 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:249 +#: packages/ui/primitives/document-flow/add-settings.tsx:283 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:288 msgid "External ID" msgstr "External ID" @@ -356,6 +568,14 @@ msgstr "Field placeholder" msgid "Font Size" msgstr "Font Size" +#: packages/lib/server-only/auth/send-forgot-password.ts:61 +msgid "Forgot Password?" +msgstr "Forgot Password?" + +#: packages/email/template-components/template-forgot-password.tsx:21 +msgid "Forgot your password?" +msgstr "Forgot your password?" + #: packages/ui/primitives/document-flow/types.ts:50 msgid "Free Signature" msgstr "Free Signature" @@ -372,6 +592,10 @@ msgstr "Go Back" msgid "Green" msgstr "Green" +#: packages/email/templates/reset-password.tsx:50 +msgid "Hi, {userName} <0>({userEmail})" +msgstr "Hi, {userName} <0>({userEmail})" + #: packages/lib/constants/recipient-roles.ts:76 msgid "I am a signer of this document" msgstr "I am a signer of this document" @@ -405,12 +629,25 @@ msgstr "Invalid email" msgid "Invalid email address" msgstr "Invalid email address" +#: packages/email/templates/team-invite.tsx:55 +msgid "Join {teamName} on Documenso" +msgstr "Join {teamName} on Documenso" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48 msgid "Label" msgstr "Label" +#: packages/ui/primitives/document-flow/add-settings.tsx:176 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:150 +msgid "Language" +msgstr "Language" + +#: packages/email/templates/team-transfer-request.tsx:87 +msgid "Link expires in 1 hour." +msgstr "Link expires in 1 hour." + #: packages/ui/primitives/lazy-pdf-viewer.tsx:15 #: packages/ui/primitives/pdf-viewer.tsx:44 msgid "Loading document..." @@ -429,7 +666,7 @@ msgid "Member" msgstr "Member" #: packages/ui/primitives/document-flow/add-subject.tsx:95 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:215 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:254 msgid "Message <0>(Optional)" msgstr "Message <0>(Optional)" @@ -520,6 +757,22 @@ msgstr "Page {0} of {numPages}" msgid "Password Required" msgstr "Password Required" +#: packages/email/templates/forgot-password.tsx:17 +msgid "Password Reset Requested" +msgstr "Password Reset Requested" + +#: packages/email/templates/reset-password.tsx:18 +msgid "Password Reset Successful" +msgstr "Password Reset Successful" + +#: packages/email/template-components/template-reset-password.tsx:22 +msgid "Password updated!" +msgstr "Password updated!" + +#: packages/email/templates/document-pending.tsx:17 +msgid "Pending Document" +msgstr "Pending Document" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:156 msgid "Pick a number" msgstr "Pick a number" @@ -530,6 +783,34 @@ msgstr "Pick a number" msgid "Placeholder" msgstr "Placeholder" +#: packages/email/template-components/template-document-invite.tsx:43 +msgid "Please {0} your document<0/>\"{documentName}\"" +msgstr "Please {0} your document<0/>\"{documentName}\"" + +#: packages/email/templates/document-invite.tsx:38 +msgid "Please {action} your document {documentName}" +msgstr "Please {action} your document {documentName}" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:98 +msgid "Please {recipientActionVerb} this document" +msgstr "Please {recipientActionVerb} this document" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:112 +msgid "Please {recipientActionVerb} this document created by your direct template" +msgstr "Please {recipientActionVerb} this document created by your direct template" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:104 +msgid "Please {recipientActionVerb} your document" +msgstr "Please {recipientActionVerb} your document" + +#: packages/lib/server-only/auth/send-confirmation-email.ts:67 +msgid "Please confirm your email" +msgstr "Please confirm your email" + +#: packages/email/templates/confirm-email.tsx:15 +msgid "Please confirm your email address" +msgstr "Please confirm your email address" + #: packages/ui/primitives/pdf-viewer.tsx:223 #: packages/ui/primitives/pdf-viewer.tsx:238 msgid "Please try again or contact our support." @@ -556,8 +837,8 @@ msgid "Receives copy" msgstr "Receives copy" #: packages/ui/components/recipient/recipient-action-auth-select.tsx:39 -#: packages/ui/primitives/document-flow/add-settings.tsx:215 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:169 +#: packages/ui/primitives/document-flow/add-settings.tsx:257 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:208 msgid "Recipient action authentication" msgstr "Recipient action authentication" @@ -565,11 +846,27 @@ msgstr "Recipient action authentication" msgid "Red" msgstr "Red" -#: packages/ui/primitives/document-flow/add-settings.tsx:329 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:332 +#: packages/ui/primitives/document-flow/add-settings.tsx:371 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:371 msgid "Redirect URL" msgstr "Redirect URL" +#: packages/lib/server-only/document/resend-document.tsx:165 +msgid "Reminder: {0}" +msgstr "Reminder: {0}" + +#: packages/lib/server-only/document/resend-document.tsx:118 +msgid "Reminder: {0} invited you to {recipientActionVerb} a document" +msgstr "Reminder: {0} invited you to {recipientActionVerb} a document" + +#: packages/lib/server-only/document/resend-document.tsx:110 +msgid "Reminder: Please {recipientActionVerb} this document" +msgstr "Reminder: Please {recipientActionVerb} this document" + +#: packages/lib/server-only/document/resend-document.tsx:114 +msgid "Reminder: Please {recipientActionVerb} your document" +msgstr "Reminder: Please {recipientActionVerb} your document" + #: packages/ui/primitives/document-flow/add-fields.tsx:1110 msgid "Remove" msgstr "Remove" @@ -582,6 +879,10 @@ msgstr "Remove" msgid "Required field" msgstr "Required field" +#: packages/email/template-components/template-forgot-password.tsx:33 +msgid "Reset Password" +msgstr "Reset Password" + #: packages/ui/components/document/document-share-button.tsx:147 msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" msgstr "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" @@ -649,6 +950,10 @@ msgstr "Show advanced settings" msgid "Sign" msgstr "Sign" +#: packages/email/template-components/template-reset-password.tsx:34 +msgid "Sign In" +msgstr "Sign In" + #: packages/ui/primitives/document-flow/add-fields.tsx:823 #: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/field-icon.tsx:52 @@ -677,6 +982,15 @@ msgstr "Signers must have unique emails" msgid "Signing" msgstr "Signing" +#: packages/lib/server-only/document/send-completed-email.ts:93 +#: packages/lib/server-only/document/send-completed-email.ts:161 +msgid "Signing Complete!" +msgstr "Signing Complete!" + +#: packages/lib/constants/recipient-roles.ts:66 +#~ msgid "SIGNING_REQUEST" +#~ msgstr "SIGNING_REQUEST" + #: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:34 msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding." msgstr "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding." @@ -699,7 +1013,7 @@ msgid "Step <0>{step} of {maxStep}" msgstr "Step <0>{step} of {maxStep}" #: packages/ui/primitives/document-flow/add-subject.tsx:78 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:195 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:234 msgid "Subject <0>(Optional)" msgstr "Subject <0>(Optional)" @@ -707,7 +1021,19 @@ msgstr "Subject <0>(Optional)" msgid "Submit" msgstr "Submit" -#: packages/ui/primitives/template-flow/add-template-settings.tsx:134 +#: packages/lib/server-only/team/delete-team-email.ts:96 +msgid "Team email has been revoked for {0}" +msgstr "Team email has been revoked for {0}" + +#: packages/email/templates/team-email-removed.tsx:53 +msgid "Team email removed" +msgstr "Team email removed" + +#: packages/email/templates/team-email-removed.tsx:27 +msgid "Team email removed for {teamName} on Documenso" +msgstr "Team email removed for {teamName} on Documenso" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx:133 msgid "Template title" msgstr "Template title" @@ -717,6 +1043,10 @@ msgstr "Template title" msgid "Text" msgstr "Text" +#: packages/email/template-components/template-forgot-password.tsx:25 +msgid "That's okay, it happens! Click the button below to reset your password." +msgstr "That's okay, it happens! Click the button below to reset your password." + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:44 msgid "The authentication required for recipients to sign fields" msgstr "The authentication required for recipients to sign fields" @@ -733,10 +1063,22 @@ msgstr "The authentication required for recipients to view the document." msgid "The document's name" msgstr "The document's name" +#: packages/email/templates/team-delete.tsx:35 +msgid "The following team has been deleted by its owner. You will no longer be able to access this team and its documents" +msgstr "The following team has been deleted by its owner. You will no longer be able to access this team and its documents" + +#: packages/email/templates/team-delete.tsx:34 +msgid "The following team has been deleted by you" +msgstr "The following team has been deleted by you" + #: packages/ui/primitives/document-password-dialog.tsx:52 msgid "The password you have entered is incorrect. Please try again." msgstr "The password you have entered is incorrect. Please try again." +#: packages/email/template-components/template-document-super-delete.tsx:38 +msgid "The reason provided for deletion is the following:" +msgstr "The reason provided for deletion is the following:" + #: packages/ui/components/recipient/recipient-role-select.tsx:103 msgid "The recipient is not required to take any action and receives a copy of the document after it is completed." msgstr "The recipient is not required to take any action and receives a copy of the document after it is completed." @@ -769,10 +1111,18 @@ msgstr "The signer's email" msgid "The signer's name" msgstr "The signer's name" +#: packages/email/templates/team-email-removed.tsx:57 +msgid "The team email <0>{teamEmail} has been removed from the following team" +msgstr "The team email <0>{teamEmail} has been removed from the following team" + #: packages/ui/components/document/document-global-auth-action-select.tsx:72 msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step." msgstr "This can be overriden by setting the authentication requirements directly on each recipient in the next step." +#: packages/email/template-components/template-document-super-delete.tsx:31 +msgid "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." +msgstr "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." + #: packages/ui/primitives/document-flow/add-fields.tsx:757 msgid "This document has already been sent to this recipient. You can no longer edit this recipient." msgstr "This document has already been sent to this recipient. You can no longer edit this recipient." @@ -781,6 +1131,10 @@ msgstr "This document has already been sent to this recipient. You can no longer msgid "This document is password protected. Please enter the password to view the document." msgstr "This document is password protected. Please enter the password to view the document." +#: packages/email/template-components/template-footer.tsx:14 +msgid "This document was sent using <0>Documenso." +msgstr "This document was sent using <0>Documenso." + #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:573 msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." msgstr "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." @@ -797,12 +1151,12 @@ msgstr "This signer has already signed the document." msgid "This will override any global settings." msgstr "This will override any global settings." -#: packages/ui/primitives/document-flow/add-settings.tsx:305 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:309 +#: packages/ui/primitives/document-flow/add-settings.tsx:347 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:348 msgid "Time Zone" msgstr "Time Zone" -#: packages/ui/primitives/document-flow/add-settings.tsx:153 +#: packages/ui/primitives/document-flow/add-settings.tsx:155 msgid "Title" msgstr "Title" @@ -841,6 +1195,18 @@ msgstr "Value" msgid "View" msgstr "View" +#: packages/email/templates/document-created-from-direct-template.tsx:69 +msgid "View document" +msgstr "View document" + +#: packages/email/template-components/template-document-self-signed.tsx:79 +msgid "View plans" +msgstr "View plans" + +#: packages/lib/constants/recipient-roles.ts:67 +#~ msgid "VIEW_REQUEST" +#~ msgstr "VIEW_REQUEST" + #: packages/lib/constants/recipient-roles.ts:27 msgid "Viewed" msgstr "Viewed" @@ -857,10 +1223,34 @@ msgstr "Viewers" msgid "Viewing" msgstr "Viewing" +#: packages/email/template-components/template-document-pending.tsx:31 +msgid "Waiting for others" +msgstr "Waiting for others" + +#: packages/lib/server-only/document/send-pending-email.ts:73 +msgid "Waiting for others to complete signing." +msgstr "Waiting for others to complete signing." + +#: packages/email/template-components/template-document-pending.tsx:41 +msgid "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." +msgstr "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." + +#: packages/email/templates/reset-password.tsx:59 +msgid "We've changed your password as you asked. You can now sign in with your new password." +msgstr "We've changed your password as you asked. You can now sign in with your new password." + +#: packages/email/template-components/template-confirmation-email.tsx:24 +msgid "Welcome to Documenso!" +msgstr "Welcome to Documenso!" + #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44 msgid "You are about to send this document to the recipients. Are you sure you want to continue?" msgstr "You are about to send this document to the recipients. Are you sure you want to continue?" +#: packages/email/template-components/template-confirmation-email.tsx:41 +msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)" +msgstr "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)" + #: packages/ui/components/document/document-send-email-message-helper.tsx:11 msgid "You can use the following variables in your message:" msgstr "You can use the following variables in your message:" @@ -869,6 +1259,48 @@ msgstr "You can use the following variables in your message:" msgid "You cannot upload documents at this time." msgstr "You cannot upload documents at this time." +#: packages/email/template-components/template-document-cancel.tsx:35 +msgid "You don't need to sign it anymore." +msgstr "You don't need to sign it anymore." + +#: packages/lib/server-only/team/create-team-member-invites.ts:168 +msgid "You have been invited to join {0} on Documenso" +msgstr "You have been invited to join {0} on Documenso" + +#: packages/email/templates/team-invite.tsx:59 +msgid "You have been invited to join the following team" +msgstr "You have been invited to join the following team" + +#: packages/lib/server-only/recipient/set-recipients-for-document.ts:314 +msgid "You have been removed from a document" +msgstr "You have been removed from a document" + +#: packages/lib/server-only/team/request-team-ownership-transfer.ts:114 +msgid "You have been requested to take ownership of team {0} on Documenso" +msgstr "You have been requested to take ownership of team {0} on Documenso" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:102 +#: packages/lib/server-only/document/resend-document.tsx:113 +msgid "You have initiated the document {0} that requires you to {recipientActionVerb} it." +msgstr "You have initiated the document {0} that requires you to {recipientActionVerb} it." + #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "You have reached your document limit." + +#: packages/email/template-components/template-document-self-signed.tsx:42 +msgid "You have signed “{documentName}”" +msgstr "You have signed “{documentName}”" + +#: packages/email/template-components/template-document-super-delete.tsx:23 +msgid "Your document has been deleted by an admin!" +msgstr "Your document has been deleted by an admin!" + +#: packages/email/template-components/template-reset-password.tsx:26 +msgid "Your password has been updated." +msgstr "Your password has been updated." + +#: packages/email/templates/team-delete.tsx:26 +#: packages/email/templates/team-delete.tsx:30 +msgid "Your team has been deleted" +msgstr "Your team has been deleted" diff --git a/packages/lib/translations/en/marketing.po b/packages/lib/translations/en/marketing.po index 427ba58e5..d85ccda92 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:165 +#: apps/marketing/src/app/(marketing)/open/page.tsx:164 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:219 +#: apps/marketing/src/app/(marketing)/open/page.tsx:218 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:210 +#: apps/marketing/src/app/(marketing)/open/page.tsx:209 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:233 +#: apps/marketing/src/app/(marketing)/open/page.tsx:232 msgid "GitHub: Total Merged PRs" msgstr "GitHub: Total Merged PRs" -#: apps/marketing/src/app/(marketing)/open/page.tsx:251 +#: apps/marketing/src/app/(marketing)/open/page.tsx:250 msgid "GitHub: Total Open Issues" msgstr "GitHub: Total Open Issues" -#: apps/marketing/src/app/(marketing)/open/page.tsx:225 +#: apps/marketing/src/app/(marketing)/open/page.tsx:224 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:261 +#: apps/marketing/src/app/(marketing)/open/page.tsx:260 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:289 +#: apps/marketing/src/app/(marketing)/open/page.tsx:288 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:199 +#: apps/marketing/src/app/(marketing)/open/page.tsx:198 msgid "Merged PR's" msgstr "Merged PR's" -#: apps/marketing/src/app/(marketing)/open/page.tsx:234 +#: apps/marketing/src/app/(marketing)/open/page.tsx:233 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:194 -#: apps/marketing/src/app/(marketing)/open/page.tsx:252 +#: apps/marketing/src/app/(marketing)/open/page.tsx:193 +#: apps/marketing/src/app/(marketing)/open/page.tsx:251 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:161 +#: apps/marketing/src/app/(marketing)/open/page.tsx:160 #: 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:226 +#: apps/marketing/src/app/(marketing)/open/page.tsx:225 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:293 +#: apps/marketing/src/app/(marketing)/open/page.tsx:292 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 bcd28a642..b91dad148 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -255,12 +255,12 @@ msgstr "Active Subscriptions" msgid "Add" msgstr "Add" -#: 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)/documents/[id]/edit-document.tsx:176 +#: apps/web/src/app/(dashboard)/templates/[id]/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:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Add all relevant placeholders for each recipient." @@ -276,8 +276,8 @@ msgstr "Add an authenticator to serve as a secondary authentication method when msgid "Add email" msgstr "Add email" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:174 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:86 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 msgid "Add Fields" msgstr "Add Fields" @@ -290,15 +290,15 @@ msgstr "Add more" msgid "Add passkey" msgstr "Add passkey" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:81 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Add Placeholders" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:169 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 msgid "Add Signers" msgstr "Add Signers" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:179 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180 msgid "Add Subject" msgstr "Add Subject" @@ -306,7 +306,7 @@ msgstr "Add Subject" msgid "Add team email" msgstr "Add team email" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:171 msgid "Add the people who will sign the document." msgstr "Add the people who will sign the document." @@ -314,7 +314,7 @@ msgstr "Add the people who will sign the document." msgid "Add the recipients to create the document with" msgstr "Add the recipients to create the document with" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:181 msgid "Add the subject and message you wish to send to signers." msgstr "Add the subject and message you wish to send to signers." @@ -409,13 +409,13 @@ msgstr "An email requesting the transfer of this team has been sent." msgid "An error occurred" msgstr "An error occurred" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:266 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:197 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:231 +#: 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 msgid "An error occurred while adding signers." msgstr "An error occurred while adding signers." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:301 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:303 msgid "An error occurred while adding the fields." msgstr "An error occurred while adding the fields." @@ -477,7 +477,7 @@ msgstr "An error occurred while removing the signature." msgid "An error occurred while removing the text." msgstr "An error occurred while removing the text." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:332 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:334 msgid "An error occurred while sending the document." msgstr "An error occurred while sending the document." @@ -502,8 +502,8 @@ msgstr "An error occurred while signing the document." 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:232 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:166 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "An error occurred while updating the document settings." @@ -864,11 +864,11 @@ msgstr "Completed documents" msgid "Completed Documents" msgstr "Completed Documents" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:166 msgid "Configure general settings for the document." msgstr "Configure general settings for the document." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Configure general settings for the template." @@ -1345,7 +1345,7 @@ msgstr "Document re-sent" msgid "Document resealed" msgstr "Document resealed" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:321 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:323 msgid "Document sent" msgstr "Document sent" @@ -1574,16 +1574,16 @@ msgstr "Enter your text here" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:78 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:231 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:265 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:300 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:331 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:233 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:267 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:302 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:333 #: 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:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:196 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:230 +#: 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/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 @@ -1674,8 +1674,8 @@ msgstr "Forgot your password?" msgid "Full Name" msgstr "Full Name" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:164 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:76 +#: 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/(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 @@ -3239,7 +3239,7 @@ msgstr "Template has been updated." msgid "Template moved" msgstr "Template moved" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:219 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 msgid "Template saved" msgstr "Template saved" @@ -4516,7 +4516,7 @@ msgstr "Your document has been created from the template successfully." msgid "Your document has been re-sent successfully." msgstr "Your document has been re-sent successfully." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:322 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:324 msgid "Your document has been sent successfully." msgstr "Your document has been sent successfully." @@ -4607,7 +4607,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:220 +#: apps/web/src/app/(dashboard)/templates/[id]/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 4a8a9071f..2ca30cc27 100644 --- a/packages/lib/translations/es/common.po +++ b/packages/lib/translations/es/common.po @@ -18,14 +18,104 @@ msgstr "" "X-Crowdin-File: common.po\n" "X-Crowdin-File-ID: 4\n" +#: packages/email/template-components/template-document-super-delete.tsx:27 +msgid "\"{documentName}\" has been deleted by an admin." +msgstr "" + +#: packages/email/template-components/template-document-pending.tsx:37 +msgid "“{documentName}” has been signed" +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:41 +#: packages/lib/server-only/document/resend-document.tsx:109 +msgid "{0}" +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:74 +msgid "{0} Document" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:117 +msgid "{0} invited you to {recipientActionVerb} a document" +msgstr "" + +#: packages/email/templates/team-join.tsx:55 +msgid "{0} joined the team {teamName} on Documenso" +msgstr "" + +#: packages/email/templates/team-leave.tsx:55 +msgid "{0} left the team {teamName} on Documenso" +msgstr "" + #: packages/ui/primitives/data-table-pagination.tsx:30 msgid "{0} of {1} row(s) selected." msgstr "{0} de {1} fila(s) seleccionada." +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:119 +#: packages/lib/server-only/document/resend-document.tsx:119 +msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"." +msgstr "" + +#: packages/email/templates/document-invite.tsx:79 +msgid "{inviterName} <0>({inviterEmail})" +msgstr "" + +#: packages/email/templates/document-cancel.tsx:19 +msgid "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." +msgstr "" + +#: packages/email/template-components/template-document-cancel.tsx:24 +msgid "{inviterName} has cancelled the document<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:57 +msgid "{inviterName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:41 +msgid "{inviterName} has invited you to {action} {documentName}" +msgstr "" + +#: packages/email/templates/recipient-removed-from-document.tsx:18 +msgid "{inviterName} has removed you from the document {documentName}." +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:49 +msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:40 +msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}" +msgstr "" + +#: packages/email/templates/team-join.tsx:61 +msgid "{memberEmail} joined the following team" +msgstr "" + +#: packages/email/templates/team-leave.tsx:61 +msgid "{memberEmail} left the following team" +msgstr "" + +#: packages/email/templates/document-created-from-direct-template.tsx:55 +msgid "{recipientName} {action} a document by using one of your direct links" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:55 +msgid "{teamName} ownership transfer request" +msgstr "" + #: 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.}}" +#: packages/email/templates/document-invite.tsx:91 +msgid "`${inviterName} has invited you to ${action} the document \"${documentName}\".`" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:59 +msgid "<0>{senderName} has requested that you take ownership of the following team" +msgstr "" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:53 msgid "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" msgstr "<0>Heredar método de autenticación - Use el método de autenticación de firma de acción global configurado en el paso \"Configuración General\"" @@ -56,20 +146,66 @@ msgstr "<0>Requerir cuenta - El destinatario debe haber iniciado sesión par msgid "<0>Require passkey - The recipient must have an account and passkey configured via their settings" msgstr "<0>Requerir clave de acceso - El destinatario debe tener una cuenta y clave de acceso configurada a través de sus configuraciones" +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:109 +msgid "A document was created by your direct template that requires you to {recipientActionVerb} it." +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts:90 +msgid "A new member has joined your team" +msgstr "" + +#: 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 "" + +#: packages/email/templates/team-join.tsx:29 +msgid "A team member has joined a team on Documenso" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-team-member-left-email.ts:79 +msgid "A team member has left {0}" +msgstr "" + +#: packages/email/templates/team-leave.tsx:29 +msgid "A team member has left a team on Documenso" +msgstr "" + +#: packages/email/templates/team-delete.tsx:27 +#: packages/email/templates/team-delete.tsx:31 +msgid "A team you were a part of has been deleted" +msgstr "" + +#: packages/email/templates/team-invite.tsx:77 +#: packages/email/templates/team-transfer-request.tsx:81 +msgid "Accept" +msgstr "" + +#: packages/email/templates/team-invite.tsx:29 +msgid "Accept invitation to join a team on Documenso" +msgstr "" + +#: packages/email/templates/confirm-team-email.tsx:38 +msgid "Accept team email request for {teamName} on Documenso" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:29 +msgid "Accept team transfer request on Documenso" +msgstr "" + #: packages/ui/primitives/document-dropzone.tsx:69 msgid "Add a document" msgstr "Agregar un documento" -#: packages/ui/primitives/document-flow/add-settings.tsx:336 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:339 +#: packages/ui/primitives/document-flow/add-settings.tsx:378 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:378 msgid "Add a URL to redirect the user to once the document is signed" msgstr "Agregue una URL para redirigir al usuario una vez que se firme el documento" -#: packages/ui/primitives/document-flow/add-settings.tsx:248 +#: packages/ui/primitives/document-flow/add-settings.tsx:290 msgid "Add an external ID to the document. This can be used to identify the document in external systems." msgstr "Agregue un ID externo al documento. Esto se puede usar para identificar el documento en sistemas externos." -#: packages/ui/primitives/template-flow/add-template-settings.tsx:256 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:295 msgid "Add an external ID to the template. This can be used to identify in external systems." msgstr "Agregue un ID externo a la plantilla. Esto se puede usar para identificar en sistemas externos." @@ -110,8 +246,8 @@ msgstr "Agregar texto al campo" msgid "Admin" msgstr "Admin" -#: packages/ui/primitives/document-flow/add-settings.tsx:230 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:238 +#: packages/ui/primitives/document-flow/add-settings.tsx:272 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:277 msgid "Advanced Options" msgstr "Opciones avanzadas" @@ -124,6 +260,14 @@ msgstr "Configuraciones avanzadas" msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." msgstr "Después de la presentación, se generará automáticamente un documento y se agregará a su página de documentos. También recibirá una notificación por correo electrónico." +#: packages/email/template-components/template-document-cancel.tsx:31 +msgid "All signatures have been voided." +msgstr "" + +#: packages/email/templates/document-super-delete.tsx:20 +msgid "An admin has deleted your document \"{documentName}\"." +msgstr "" + #: packages/ui/primitives/pdf-viewer.tsx:167 msgid "An error occurred while loading the document." msgstr "Se produjo un error al cargar el documento." @@ -132,6 +276,10 @@ msgstr "Se produjo un error al cargar el documento." msgid "Approve" msgstr "Aprobar" +#: packages/lib/constants/recipient-roles.ts:68 +#~ msgid "APPROVE_REQUEST" +#~ msgstr "" + #: packages/lib/constants/recipient-roles.ts:9 msgid "Approved" msgstr "Aprobado" @@ -148,6 +296,10 @@ msgstr "Aprobadores" msgid "Approving" msgstr "Aprobando" +#: packages/email/template-components/template-confirmation-email.tsx:28 +msgid "Before you get started, please confirm your email address by clicking the button below:" +msgstr "" + #: packages/ui/primitives/signature-pad/signature-pad.tsx:377 msgid "Black" msgstr "Negro" @@ -156,6 +308,14 @@ msgstr "Negro" msgid "Blue" msgstr "Azul" +#: packages/email/templates/team-invite.tsx:67 +msgid "by <0>{senderName}" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:70 +msgid "By accepting this request, you will take responsibility for any billing items associated with this team." +msgstr "" + #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356 #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58 msgid "Cancel" @@ -206,6 +366,16 @@ msgstr "Haga clic para insertar campo" msgid "Close" msgstr "Cerrar" +#: packages/email/template-components/template-document-completed.tsx:35 +#: packages/email/template-components/template-document-self-signed.tsx:36 +msgid "Completed" +msgstr "" + +#: packages/email/templates/document-completed.tsx:21 +#: packages/email/templates/document-self-signed.tsx:17 +msgid "Completed Document" +msgstr "" + #: packages/lib/constants/template.ts:12 msgid "Configure Direct Recipient" msgstr "Configurar destinatario directo" @@ -215,10 +385,22 @@ msgstr "Configurar destinatario directo" msgid "Configure the {0} field" msgstr "Configurar el campo {0}" +#: packages/email/template-components/template-confirmation-email.tsx:38 +msgid "Confirm email" +msgstr "" + #: packages/ui/primitives/document-flow/document-flow-root.tsx:141 msgid "Continue" msgstr "Continuar" +#: packages/email/template-components/template-document-invite.tsx:66 +msgid "Continue by {0} the document." +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:45 +msgid "Continue by downloading the document." +msgstr "" + #: packages/ui/components/document/document-share-button.tsx:46 msgid "Copied to clipboard" msgstr "Copiado al portapapeles" @@ -227,6 +409,14 @@ msgstr "Copiado al portapapeles" msgid "Copy Link" msgstr "Copiar enlace" +#: packages/email/template-components/template-document-self-signed.tsx:46 +msgid "Create a <0>free account to access your signed documents at any time." +msgstr "" + +#: packages/email/template-components/template-document-self-signed.tsx:68 +msgid "Create account" +msgstr "" + #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" msgstr "Texto personalizado" @@ -237,25 +427,47 @@ msgstr "Texto personalizado" msgid "Date" msgstr "Fecha" -#: packages/ui/primitives/document-flow/add-settings.tsx:271 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:279 +#: packages/ui/primitives/document-flow/add-settings.tsx:313 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:318 msgid "Date Format" msgstr "Formato de fecha" +#: packages/email/templates/team-invite.tsx:83 +msgid "Decline" +msgstr "" + +#: packages/email/templates/reset-password.tsx:65 +msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us." +msgstr "" + #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:570 msgid "Direct link receiver" msgstr "Receptor de enlace directo" #: packages/ui/components/document/document-global-auth-access-select.tsx:62 -#: packages/ui/primitives/document-flow/add-settings.tsx:174 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:151 +#: packages/ui/primitives/document-flow/add-settings.tsx:216 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:190 msgid "Document access" msgstr "Acceso al documento" +#: packages/lib/server-only/document/super-delete-document.ts:75 +msgid "Document Cancelled" +msgstr "" + +#: 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" +msgstr "" + #: packages/lib/constants/template.ts:20 msgid "Document Creation" msgstr "Creación de documento" +#: packages/lib/server-only/document/send-delete-email.ts:58 +msgid "Document Deleted!" +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:64 #: packages/ui/components/document/document-download-button.tsx:68 msgid "Download" msgstr "Descargar" @@ -288,7 +500,7 @@ msgstr "Correo electrónico" msgid "Email is required" msgstr "Se requiere email" -#: packages/ui/primitives/template-flow/add-template-settings.tsx:184 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:223 msgid "Email Options" msgstr "Opciones de correo electrónico" @@ -318,8 +530,8 @@ msgstr "Ingrese la contraseña" msgid "Error" msgstr "Error" -#: packages/ui/primitives/document-flow/add-settings.tsx:241 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:249 +#: packages/ui/primitives/document-flow/add-settings.tsx:283 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:288 msgid "External ID" msgstr "ID externo" @@ -361,6 +573,14 @@ msgstr "Marcador de posición de campo" msgid "Font Size" msgstr "Tamaño de fuente" +#: packages/lib/server-only/auth/send-forgot-password.ts:61 +msgid "Forgot Password?" +msgstr "" + +#: packages/email/template-components/template-forgot-password.tsx:21 +msgid "Forgot your password?" +msgstr "" + #: packages/ui/primitives/document-flow/types.ts:50 msgid "Free Signature" msgstr "Firma gratuita" @@ -377,6 +597,10 @@ msgstr "Regresar" msgid "Green" msgstr "Verde" +#: packages/email/templates/reset-password.tsx:50 +msgid "Hi, {userName} <0>({userEmail})" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:76 msgid "I am a signer of this document" msgstr "Soy un firmante de este documento" @@ -410,12 +634,25 @@ msgstr "Email inválido" msgid "Invalid email address" msgstr "Dirección de email inválida" +#: packages/email/templates/team-invite.tsx:55 +msgid "Join {teamName} on Documenso" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48 msgid "Label" msgstr "Etiqueta" +#: packages/ui/primitives/document-flow/add-settings.tsx:176 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:150 +msgid "Language" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:87 +msgid "Link expires in 1 hour." +msgstr "" + #: packages/ui/primitives/lazy-pdf-viewer.tsx:15 #: packages/ui/primitives/pdf-viewer.tsx:44 msgid "Loading document..." @@ -434,7 +671,7 @@ msgid "Member" msgstr "Miembro" #: packages/ui/primitives/document-flow/add-subject.tsx:95 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:215 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:254 msgid "Message <0>(Optional)" msgstr "Mensaje <0>(Opcional)" @@ -525,6 +762,22 @@ msgstr "Página {0} de {numPages}" msgid "Password Required" msgstr "Se requiere contraseña" +#: packages/email/templates/forgot-password.tsx:17 +msgid "Password Reset Requested" +msgstr "" + +#: packages/email/templates/reset-password.tsx:18 +msgid "Password Reset Successful" +msgstr "" + +#: packages/email/template-components/template-reset-password.tsx:22 +msgid "Password updated!" +msgstr "" + +#: packages/email/templates/document-pending.tsx:17 +msgid "Pending Document" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:156 msgid "Pick a number" msgstr "Seleccione un número" @@ -535,6 +788,34 @@ msgstr "Seleccione un número" msgid "Placeholder" msgstr "Marcador de posición" +#: packages/email/template-components/template-document-invite.tsx:43 +msgid "Please {0} your document<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:38 +msgid "Please {action} your document {documentName}" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:98 +msgid "Please {recipientActionVerb} this document" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:112 +msgid "Please {recipientActionVerb} this document created by your direct template" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:104 +msgid "Please {recipientActionVerb} your document" +msgstr "" + +#: packages/lib/server-only/auth/send-confirmation-email.ts:67 +msgid "Please confirm your email" +msgstr "" + +#: packages/email/templates/confirm-email.tsx:15 +msgid "Please confirm your email address" +msgstr "" + #: packages/ui/primitives/pdf-viewer.tsx:223 #: packages/ui/primitives/pdf-viewer.tsx:238 msgid "Please try again or contact our support." @@ -561,8 +842,8 @@ msgid "Receives copy" msgstr "Recibe copia" #: packages/ui/components/recipient/recipient-action-auth-select.tsx:39 -#: packages/ui/primitives/document-flow/add-settings.tsx:215 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:169 +#: packages/ui/primitives/document-flow/add-settings.tsx:257 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:208 msgid "Recipient action authentication" msgstr "Autenticación de acción de destinatario" @@ -570,11 +851,27 @@ msgstr "Autenticación de acción de destinatario" msgid "Red" msgstr "Rojo" -#: packages/ui/primitives/document-flow/add-settings.tsx:329 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:332 +#: packages/ui/primitives/document-flow/add-settings.tsx:371 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:371 msgid "Redirect URL" msgstr "URL de redirección" +#: packages/lib/server-only/document/resend-document.tsx:165 +msgid "Reminder: {0}" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:118 +msgid "Reminder: {0} invited you to {recipientActionVerb} a document" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:110 +msgid "Reminder: Please {recipientActionVerb} this document" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:114 +msgid "Reminder: Please {recipientActionVerb} your document" +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:1110 msgid "Remove" msgstr "Eliminar" @@ -587,6 +884,10 @@ msgstr "Eliminar" msgid "Required field" msgstr "Campo obligatorio" +#: packages/email/template-components/template-forgot-password.tsx:33 +msgid "Reset Password" +msgstr "" + #: packages/ui/components/document/document-share-button.tsx:147 msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" msgstr "Ten la seguridad de que tu documento es estrictamente confidencial y nunca será compartido. Solo se destacará tu experiencia de firma. ¡Comparte tu tarjeta de firma personalizada para mostrar tu firma!" @@ -654,6 +955,10 @@ msgstr "Mostrar configuraciones avanzadas" msgid "Sign" msgstr "Firmar" +#: packages/email/template-components/template-reset-password.tsx:34 +msgid "Sign In" +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:823 #: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/field-icon.tsx:52 @@ -682,6 +987,15 @@ msgstr "Los firmantes deben tener correos electrónicos únicos" msgid "Signing" msgstr "Firmando" +#: packages/lib/server-only/document/send-completed-email.ts:93 +#: packages/lib/server-only/document/send-completed-email.ts:161 +msgid "Signing Complete!" +msgstr "" + +#: packages/lib/constants/recipient-roles.ts:66 +#~ msgid "SIGNING_REQUEST" +#~ msgstr "" + #: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:34 msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding." msgstr "Algunos firmantes no han sido asignados a un campo de firma. Asigne al menos 1 campo de firma a cada firmante antes de continuar." @@ -704,7 +1018,7 @@ msgid "Step <0>{step} of {maxStep}" msgstr "Paso <0>{step} de {maxStep}" #: packages/ui/primitives/document-flow/add-subject.tsx:78 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:195 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:234 msgid "Subject <0>(Optional)" msgstr "Asunto <0>(Opcional)" @@ -712,7 +1026,19 @@ msgstr "Asunto <0>(Opcional)" msgid "Submit" msgstr "Enviar" -#: packages/ui/primitives/template-flow/add-template-settings.tsx:134 +#: packages/lib/server-only/team/delete-team-email.ts:96 +msgid "Team email has been revoked for {0}" +msgstr "" + +#: packages/email/templates/team-email-removed.tsx:53 +msgid "Team email removed" +msgstr "" + +#: packages/email/templates/team-email-removed.tsx:27 +msgid "Team email removed for {teamName} on Documenso" +msgstr "" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx:133 msgid "Template title" msgstr "Título de plantilla" @@ -722,6 +1048,10 @@ msgstr "Título de plantilla" msgid "Text" msgstr "Texto" +#: packages/email/template-components/template-forgot-password.tsx:25 +msgid "That's okay, it happens! Click the button below to reset your password." +msgstr "" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:44 msgid "The authentication required for recipients to sign fields" msgstr "La autenticación requerida para que los destinatarios firmen campos" @@ -738,10 +1068,22 @@ msgstr "La autenticación requerida para que los destinatarios vean el documento msgid "The document's name" msgstr "El nombre del documento" +#: packages/email/templates/team-delete.tsx:35 +msgid "The following team has been deleted by its owner. You will no longer be able to access this team and its documents" +msgstr "" + +#: packages/email/templates/team-delete.tsx:34 +msgid "The following team has been deleted by you" +msgstr "" + #: packages/ui/primitives/document-password-dialog.tsx:52 msgid "The password you have entered is incorrect. Please try again." msgstr "La contraseña que ha ingresado es incorrecta. Por favor, inténtelo de nuevo." +#: packages/email/template-components/template-document-super-delete.tsx:38 +msgid "The reason provided for deletion is the following:" +msgstr "" + #: packages/ui/components/recipient/recipient-role-select.tsx:103 msgid "The recipient is not required to take any action and receives a copy of the document after it is completed." msgstr "El destinatario no está obligado a tomar ninguna acción y recibe una copia del documento una vez completado." @@ -774,10 +1116,18 @@ msgstr "El correo electrónico del firmante" msgid "The signer's name" msgstr "El nombre del firmante" +#: packages/email/templates/team-email-removed.tsx:57 +msgid "The team email <0>{teamEmail} has been removed from the following team" +msgstr "" + #: packages/ui/components/document/document-global-auth-action-select.tsx:72 msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step." msgstr "Esto se puede anular configurando los requisitos de autenticación directamente en cada destinatario en el siguiente paso." +#: packages/email/template-components/template-document-super-delete.tsx:31 +msgid "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:757 msgid "This document has already been sent to this recipient. You can no longer edit this recipient." msgstr "Este documento ya ha sido enviado a este destinatario. Ya no puede editar a este destinatario." @@ -786,6 +1136,10 @@ msgstr "Este documento ya ha sido enviado a este destinatario. Ya no puede edita msgid "This document is password protected. Please enter the password to view the document." msgstr "Este documento está protegido por contraseña. Por favor ingrese la contraseña para ver el documento." +#: packages/email/template-components/template-footer.tsx:14 +msgid "This document was sent using <0>Documenso." +msgstr "" + #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:573 msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." msgstr "Este campo no se puede modificar ni eliminar. Cuando comparta el enlace directo de esta plantilla o lo agregue a su perfil público, cualquiera que acceda podrá ingresar su nombre y correo electrónico, y completar los campos que se le hayan asignado." @@ -802,12 +1156,12 @@ msgstr "Este firmante ya ha firmado el documento." msgid "This will override any global settings." msgstr "Esto anulará cualquier configuración global." -#: packages/ui/primitives/document-flow/add-settings.tsx:305 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:309 +#: packages/ui/primitives/document-flow/add-settings.tsx:347 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:348 msgid "Time Zone" msgstr "Zona horaria" -#: packages/ui/primitives/document-flow/add-settings.tsx:153 +#: packages/ui/primitives/document-flow/add-settings.tsx:155 msgid "Title" msgstr "Título" @@ -846,6 +1200,18 @@ msgstr "Valor" msgid "View" msgstr "Ver" +#: packages/email/templates/document-created-from-direct-template.tsx:69 +msgid "View document" +msgstr "" + +#: packages/email/template-components/template-document-self-signed.tsx:79 +msgid "View plans" +msgstr "" + +#: packages/lib/constants/recipient-roles.ts:67 +#~ msgid "VIEW_REQUEST" +#~ msgstr "" + #: packages/lib/constants/recipient-roles.ts:27 msgid "Viewed" msgstr "Visto" @@ -862,10 +1228,34 @@ msgstr "Espectadores" msgid "Viewing" msgstr "Viendo" +#: packages/email/template-components/template-document-pending.tsx:31 +msgid "Waiting for others" +msgstr "" + +#: packages/lib/server-only/document/send-pending-email.ts:73 +msgid "Waiting for others to complete signing." +msgstr "" + +#: packages/email/template-components/template-document-pending.tsx:41 +msgid "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." +msgstr "" + +#: packages/email/templates/reset-password.tsx:59 +msgid "We've changed your password as you asked. You can now sign in with your new password." +msgstr "" + +#: packages/email/template-components/template-confirmation-email.tsx:24 +msgid "Welcome to Documenso!" +msgstr "" + #: 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?" +#: packages/email/template-components/template-confirmation-email.tsx:41 +msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)" +msgstr "" + #: packages/ui/components/document/document-send-email-message-helper.tsx:11 msgid "You can use the following variables in your message:" msgstr "Puede usar las siguientes variables en su mensaje:" @@ -874,7 +1264,48 @@ msgstr "Puede usar las siguientes variables en su mensaje:" msgid "You cannot upload documents at this time." msgstr "No puede cargar documentos en este momento." +#: packages/email/template-components/template-document-cancel.tsx:35 +msgid "You don't need to sign it anymore." +msgstr "" + +#: packages/lib/server-only/team/create-team-member-invites.ts:168 +msgid "You have been invited to join {0} on Documenso" +msgstr "" + +#: packages/email/templates/team-invite.tsx:59 +msgid "You have been invited to join the following team" +msgstr "" + +#: packages/lib/server-only/recipient/set-recipients-for-document.ts:314 +msgid "You have been removed from a document" +msgstr "" + +#: packages/lib/server-only/team/request-team-ownership-transfer.ts:114 +msgid "You have been requested to take ownership of team {0} on Documenso" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:102 +#: packages/lib/server-only/document/resend-document.tsx:113 +msgid "You have initiated the document {0} that requires you to {recipientActionVerb} it." +msgstr "" + #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Ha alcanzado su límite de documentos." +#: packages/email/template-components/template-document-self-signed.tsx:42 +msgid "You have signed “{documentName}”" +msgstr "" + +#: packages/email/template-components/template-document-super-delete.tsx:23 +msgid "Your document has been deleted by an admin!" +msgstr "" + +#: packages/email/template-components/template-reset-password.tsx:26 +msgid "Your password has been updated." +msgstr "" + +#: packages/email/templates/team-delete.tsx:26 +#: packages/email/templates/team-delete.tsx:30 +msgid "Your team has been deleted" +msgstr "" diff --git a/packages/lib/translations/es/marketing.po b/packages/lib/translations/es/marketing.po index 34766aa42..41bce34a4 100644 --- a/packages/lib/translations/es/marketing.po +++ b/packages/lib/translations/es/marketing.po @@ -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:165 +#: apps/marketing/src/app/(marketing)/open/page.tsx:164 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:219 +#: apps/marketing/src/app/(marketing)/open/page.tsx:218 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:210 +#: apps/marketing/src/app/(marketing)/open/page.tsx:209 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:233 +#: apps/marketing/src/app/(marketing)/open/page.tsx:232 msgid "GitHub: Total Merged PRs" msgstr "GitHub: Total de PRs fusionados" -#: apps/marketing/src/app/(marketing)/open/page.tsx:251 +#: apps/marketing/src/app/(marketing)/open/page.tsx:250 msgid "GitHub: Total Open Issues" msgstr "GitHub: Total de problemas abiertos" -#: apps/marketing/src/app/(marketing)/open/page.tsx:225 +#: apps/marketing/src/app/(marketing)/open/page.tsx:224 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:261 +#: apps/marketing/src/app/(marketing)/open/page.tsx:260 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:289 +#: apps/marketing/src/app/(marketing)/open/page.tsx:288 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:199 +#: apps/marketing/src/app/(marketing)/open/page.tsx:198 msgid "Merged PR's" msgstr "PRs fusionados" -#: apps/marketing/src/app/(marketing)/open/page.tsx:234 +#: apps/marketing/src/app/(marketing)/open/page.tsx:233 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:194 -#: apps/marketing/src/app/(marketing)/open/page.tsx:252 +#: apps/marketing/src/app/(marketing)/open/page.tsx:193 +#: apps/marketing/src/app/(marketing)/open/page.tsx:251 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:161 +#: apps/marketing/src/app/(marketing)/open/page.tsx:160 #: 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:226 +#: apps/marketing/src/app/(marketing)/open/page.tsx:225 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:293 +#: apps/marketing/src/app/(marketing)/open/page.tsx:292 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 33b35aafc..9049f6ed5 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -260,12 +260,12 @@ msgstr "Suscripciones Activas" msgid "Add" msgstr "Agregar" -#: 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)/documents/[id]/edit-document.tsx:176 +#: apps/web/src/app/(dashboard)/templates/[id]/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:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Agrega todos los marcadores de posición relevantes para cada destinatario." @@ -281,8 +281,8 @@ msgstr "Agrega un autenticador para servir como método de autenticación secund msgid "Add email" msgstr "Agregar correo electrónico" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:174 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:86 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 msgid "Add Fields" msgstr "Agregar Campos" @@ -295,15 +295,15 @@ msgstr "Agregar más" msgid "Add passkey" msgstr "Agregar clave" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:81 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Agregar Marcadores de posición" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:169 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 msgid "Add Signers" msgstr "Agregar Firmantes" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:179 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180 msgid "Add Subject" msgstr "Agregar Asunto" @@ -311,7 +311,7 @@ msgstr "Agregar Asunto" msgid "Add team email" msgstr "Agregar correo electrónico del equipo" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:171 msgid "Add the people who will sign the document." msgstr "Agrega a las personas que firmarán el documento." @@ -319,7 +319,7 @@ msgstr "Agrega a las personas que firmarán el documento." msgid "Add the recipients to create the document with" msgstr "Agrega los destinatarios con los que crear el documento" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:181 msgid "Add the subject and message you wish to send to signers." msgstr "Agrega el asunto y el mensaje que deseas enviar a los firmantes." @@ -414,13 +414,13 @@ msgstr "Se ha enviado un correo electrónico solicitando la transferencia de est msgid "An error occurred" msgstr "Ocurrió un error" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:266 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:197 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:231 +#: 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 msgid "An error occurred while adding signers." msgstr "Ocurrió un error al agregar firmantes." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:301 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:303 msgid "An error occurred while adding the fields." msgstr "Ocurrió un error al agregar los campos." @@ -482,7 +482,7 @@ msgstr "Ocurrió un error al eliminar la firma." msgid "An error occurred while removing the text." msgstr "Ocurrió un error al eliminar el texto." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:332 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:334 msgid "An error occurred while sending the document." msgstr "Ocurrió un error al enviar el documento." @@ -507,8 +507,8 @@ msgstr "Ocurrió un error al firmar el documento." 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:232 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:166 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "Ocurrió un error al actualizar la configuración del documento." @@ -869,11 +869,11 @@ msgstr "Documentos completados" msgid "Completed Documents" msgstr "Documentos Completados" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:166 msgid "Configure general settings for the document." msgstr "Configurar ajustes generales para el documento." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Configurar ajustes generales para la plantilla." @@ -1350,7 +1350,7 @@ msgstr "Documento reenviado" msgid "Document resealed" msgstr "Documento sellado nuevamente" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:321 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:323 msgid "Document sent" msgstr "Documento enviado" @@ -1579,16 +1579,16 @@ msgstr "Ingresa tu texto aquí" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:78 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:231 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:265 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:300 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:331 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:233 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:267 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:302 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:333 #: 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:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:196 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:230 +#: 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/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 @@ -1679,8 +1679,8 @@ msgstr "¿Olvidaste tu contraseña?" msgid "Full Name" msgstr "Nombre completo" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:164 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:76 +#: 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/(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 @@ -3244,7 +3244,7 @@ msgstr "La plantilla ha sido actualizada." msgid "Template moved" msgstr "Plantilla movida" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:219 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 msgid "Template saved" msgstr "Plantilla guardada" @@ -4521,7 +4521,7 @@ msgstr "Tu documento se ha creado exitosamente a partir de la plantilla." msgid "Your document has been re-sent successfully." msgstr "Tu documento ha sido reenviado con éxito." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:322 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:324 msgid "Your document has been sent successfully." msgstr "Tu documento ha sido enviado con éxito." @@ -4612,7 +4612,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:220 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Tus plantillas han sido guardadas con éxito." @@ -4628,4 +4628,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 d29872c63..6b5a1d366 100644 --- a/packages/lib/translations/fr/common.po +++ b/packages/lib/translations/fr/common.po @@ -18,14 +18,104 @@ msgstr "" "X-Crowdin-File: common.po\n" "X-Crowdin-File-ID: 4\n" +#: packages/email/template-components/template-document-super-delete.tsx:27 +msgid "\"{documentName}\" has been deleted by an admin." +msgstr "" + +#: packages/email/template-components/template-document-pending.tsx:37 +msgid "“{documentName}” has been signed" +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:41 +#: packages/lib/server-only/document/resend-document.tsx:109 +msgid "{0}" +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:74 +msgid "{0} Document" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:117 +msgid "{0} invited you to {recipientActionVerb} a document" +msgstr "" + +#: packages/email/templates/team-join.tsx:55 +msgid "{0} joined the team {teamName} on Documenso" +msgstr "" + +#: packages/email/templates/team-leave.tsx:55 +msgid "{0} left the team {teamName} on Documenso" +msgstr "" + #: packages/ui/primitives/data-table-pagination.tsx:30 msgid "{0} of {1} row(s) selected." msgstr "{0} sur {1} ligne(s) sélectionnée(s)." +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:119 +#: packages/lib/server-only/document/resend-document.tsx:119 +msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"." +msgstr "" + +#: packages/email/templates/document-invite.tsx:79 +msgid "{inviterName} <0>({inviterEmail})" +msgstr "" + +#: packages/email/templates/document-cancel.tsx:19 +msgid "{inviterName} has cancelled the document {documentName}, you don't need to sign it anymore." +msgstr "" + +#: packages/email/template-components/template-document-cancel.tsx:24 +msgid "{inviterName} has cancelled the document<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:57 +msgid "{inviterName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:41 +msgid "{inviterName} has invited you to {action} {documentName}" +msgstr "" + +#: packages/email/templates/recipient-removed-from-document.tsx:18 +msgid "{inviterName} has removed you from the document {documentName}." +msgstr "" + +#: packages/email/template-components/template-document-invite.tsx:49 +msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:40 +msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}" +msgstr "" + +#: packages/email/templates/team-join.tsx:61 +msgid "{memberEmail} joined the following team" +msgstr "" + +#: packages/email/templates/team-leave.tsx:61 +msgid "{memberEmail} left the following team" +msgstr "" + +#: packages/email/templates/document-created-from-direct-template.tsx:55 +msgid "{recipientName} {action} a document by using one of your direct links" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:55 +msgid "{teamName} ownership transfer request" +msgstr "" + #: 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.}}" +#: packages/email/templates/document-invite.tsx:91 +msgid "`${inviterName} has invited you to ${action} the document \"${documentName}\".`" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:59 +msgid "<0>{senderName} has requested that you take ownership of the following team" +msgstr "" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:53 msgid "<0>Inherit authentication method - Use the global action signing authentication method configured in the \"General Settings\" step" msgstr "<0>Hériter du méthode d'authentification - Utiliser la méthode d'authentification de signature d'action globale configurée dans l'étape \"Paramètres Générales\"" @@ -56,20 +146,66 @@ msgstr "<0>Exiger un compte - Le destinataire doit être connecté pour voir msgid "<0>Require passkey - The recipient must have an account and passkey configured via their settings" msgstr "<0>Exiger une clé d'accès - Le destinataire doit avoir un compte et une clé d'accès configurée via ses paramètres" +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:109 +msgid "A document was created by your direct template that requires you to {recipientActionVerb} it." +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-team-member-joined-email.ts:90 +msgid "A new member has joined your team" +msgstr "" + +#: 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 "" + +#: packages/email/templates/team-join.tsx:29 +msgid "A team member has joined a team on Documenso" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-team-member-left-email.ts:79 +msgid "A team member has left {0}" +msgstr "" + +#: packages/email/templates/team-leave.tsx:29 +msgid "A team member has left a team on Documenso" +msgstr "" + +#: packages/email/templates/team-delete.tsx:27 +#: packages/email/templates/team-delete.tsx:31 +msgid "A team you were a part of has been deleted" +msgstr "" + +#: packages/email/templates/team-invite.tsx:77 +#: packages/email/templates/team-transfer-request.tsx:81 +msgid "Accept" +msgstr "" + +#: packages/email/templates/team-invite.tsx:29 +msgid "Accept invitation to join a team on Documenso" +msgstr "" + +#: packages/email/templates/confirm-team-email.tsx:38 +msgid "Accept team email request for {teamName} on Documenso" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:29 +msgid "Accept team transfer request on Documenso" +msgstr "" + #: packages/ui/primitives/document-dropzone.tsx:69 msgid "Add a document" msgstr "Ajouter un document" -#: packages/ui/primitives/document-flow/add-settings.tsx:336 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:339 +#: packages/ui/primitives/document-flow/add-settings.tsx:378 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:378 msgid "Add a URL to redirect the user to once the document is signed" msgstr "Ajouter une URL pour rediriger l'utilisateur une fois le document signé" -#: packages/ui/primitives/document-flow/add-settings.tsx:248 +#: packages/ui/primitives/document-flow/add-settings.tsx:290 msgid "Add an external ID to the document. This can be used to identify the document in external systems." msgstr "Ajouter un ID externe au document. Cela peut être utilisé pour identifier le document dans des systèmes externes." -#: packages/ui/primitives/template-flow/add-template-settings.tsx:256 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:295 msgid "Add an external ID to the template. This can be used to identify in external systems." msgstr "Ajouter un ID externe au modèle. Cela peut être utilisé pour identifier dans des systèmes externes." @@ -110,8 +246,8 @@ msgstr "Ajouter du texte au champ" msgid "Admin" msgstr "Administrateur" -#: packages/ui/primitives/document-flow/add-settings.tsx:230 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:238 +#: packages/ui/primitives/document-flow/add-settings.tsx:272 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:277 msgid "Advanced Options" msgstr "Options avancées" @@ -124,6 +260,14 @@ msgstr "Paramètres avancés" msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email." msgstr "Après soumission, un document sera automatiquement généré et ajouté à votre page de documents. Vous recevrez également une notification par email." +#: packages/email/template-components/template-document-cancel.tsx:31 +msgid "All signatures have been voided." +msgstr "" + +#: packages/email/templates/document-super-delete.tsx:20 +msgid "An admin has deleted your document \"{documentName}\"." +msgstr "" + #: packages/ui/primitives/pdf-viewer.tsx:167 msgid "An error occurred while loading the document." msgstr "Une erreur s'est produite lors du chargement du document." @@ -132,6 +276,10 @@ msgstr "Une erreur s'est produite lors du chargement du document." msgid "Approve" msgstr "Approuver" +#: packages/lib/constants/recipient-roles.ts:68 +#~ msgid "APPROVE_REQUEST" +#~ msgstr "" + #: packages/lib/constants/recipient-roles.ts:9 msgid "Approved" msgstr "Approuvé" @@ -148,6 +296,10 @@ msgstr "Approbateurs" msgid "Approving" msgstr "En attente d'approbation" +#: packages/email/template-components/template-confirmation-email.tsx:28 +msgid "Before you get started, please confirm your email address by clicking the button below:" +msgstr "" + #: packages/ui/primitives/signature-pad/signature-pad.tsx:377 msgid "Black" msgstr "Noir" @@ -156,6 +308,14 @@ msgstr "Noir" msgid "Blue" msgstr "Bleu" +#: packages/email/templates/team-invite.tsx:67 +msgid "by <0>{senderName}" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:70 +msgid "By accepting this request, you will take responsibility for any billing items associated with this team." +msgstr "" + #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356 #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58 msgid "Cancel" @@ -206,6 +366,16 @@ msgstr "Cliquez pour insérer un champ" msgid "Close" msgstr "Fermer" +#: packages/email/template-components/template-document-completed.tsx:35 +#: packages/email/template-components/template-document-self-signed.tsx:36 +msgid "Completed" +msgstr "" + +#: packages/email/templates/document-completed.tsx:21 +#: packages/email/templates/document-self-signed.tsx:17 +msgid "Completed Document" +msgstr "" + #: packages/lib/constants/template.ts:12 msgid "Configure Direct Recipient" msgstr "Configurer le destinataire direct" @@ -215,10 +385,22 @@ msgstr "Configurer le destinataire direct" msgid "Configure the {0} field" msgstr "Configurer le champ {0}" +#: packages/email/template-components/template-confirmation-email.tsx:38 +msgid "Confirm email" +msgstr "" + #: packages/ui/primitives/document-flow/document-flow-root.tsx:141 msgid "Continue" msgstr "Continuer" +#: packages/email/template-components/template-document-invite.tsx:66 +msgid "Continue by {0} the document." +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:45 +msgid "Continue by downloading the document." +msgstr "" + #: packages/ui/components/document/document-share-button.tsx:46 msgid "Copied to clipboard" msgstr "Copié dans le presse-papiers" @@ -227,6 +409,14 @@ msgstr "Copié dans le presse-papiers" msgid "Copy Link" msgstr "Copier le lien" +#: packages/email/template-components/template-document-self-signed.tsx:46 +msgid "Create a <0>free account to access your signed documents at any time." +msgstr "" + +#: packages/email/template-components/template-document-self-signed.tsx:68 +msgid "Create account" +msgstr "" + #: packages/ui/primitives/document-flow/add-signature.tsx:360 msgid "Custom Text" msgstr "Texte personnalisé" @@ -237,25 +427,47 @@ msgstr "Texte personnalisé" msgid "Date" msgstr "Date" -#: packages/ui/primitives/document-flow/add-settings.tsx:271 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:279 +#: packages/ui/primitives/document-flow/add-settings.tsx:313 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:318 msgid "Date Format" msgstr "Format de date" +#: packages/email/templates/team-invite.tsx:83 +msgid "Decline" +msgstr "" + +#: packages/email/templates/reset-password.tsx:65 +msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us." +msgstr "" + #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:570 msgid "Direct link receiver" msgstr "Receveur de lien direct" #: packages/ui/components/document/document-global-auth-access-select.tsx:62 -#: packages/ui/primitives/document-flow/add-settings.tsx:174 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:151 +#: packages/ui/primitives/document-flow/add-settings.tsx:216 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:190 msgid "Document access" msgstr "Accès au document" +#: packages/lib/server-only/document/super-delete-document.ts:75 +msgid "Document Cancelled" +msgstr "" + +#: 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" +msgstr "" + #: packages/lib/constants/template.ts:20 msgid "Document Creation" msgstr "Création de document" +#: packages/lib/server-only/document/send-delete-email.ts:58 +msgid "Document Deleted!" +msgstr "" + +#: packages/email/template-components/template-document-completed.tsx:64 #: packages/ui/components/document/document-download-button.tsx:68 msgid "Download" msgstr "Télécharger" @@ -288,7 +500,7 @@ msgstr "Email" msgid "Email is required" msgstr "L'email est requis" -#: packages/ui/primitives/template-flow/add-template-settings.tsx:184 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:223 msgid "Email Options" msgstr "Options d'email" @@ -318,8 +530,8 @@ msgstr "Entrez le mot de passe" msgid "Error" msgstr "Erreur" -#: packages/ui/primitives/document-flow/add-settings.tsx:241 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:249 +#: packages/ui/primitives/document-flow/add-settings.tsx:283 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:288 msgid "External ID" msgstr "ID externe" @@ -361,6 +573,14 @@ msgstr "Espace réservé du champ" msgid "Font Size" msgstr "Taille de Police" +#: packages/lib/server-only/auth/send-forgot-password.ts:61 +msgid "Forgot Password?" +msgstr "" + +#: packages/email/template-components/template-forgot-password.tsx:21 +msgid "Forgot your password?" +msgstr "" + #: packages/ui/primitives/document-flow/types.ts:50 msgid "Free Signature" msgstr "Signature gratuite" @@ -377,6 +597,10 @@ msgstr "Retourner" msgid "Green" msgstr "Vert" +#: packages/email/templates/reset-password.tsx:50 +msgid "Hi, {userName} <0>({userEmail})" +msgstr "" + #: packages/lib/constants/recipient-roles.ts:76 msgid "I am a signer of this document" msgstr "Je suis un signataire de ce document" @@ -410,12 +634,25 @@ msgstr "Email invalide" msgid "Invalid email address" msgstr "Adresse email invalide" +#: packages/email/templates/team-invite.tsx:55 +msgid "Join {teamName} on Documenso" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48 msgid "Label" msgstr "Étiquette" +#: packages/ui/primitives/document-flow/add-settings.tsx:176 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:150 +msgid "Language" +msgstr "" + +#: packages/email/templates/team-transfer-request.tsx:87 +msgid "Link expires in 1 hour." +msgstr "" + #: packages/ui/primitives/lazy-pdf-viewer.tsx:15 #: packages/ui/primitives/pdf-viewer.tsx:44 msgid "Loading document..." @@ -434,7 +671,7 @@ msgid "Member" msgstr "Membre" #: packages/ui/primitives/document-flow/add-subject.tsx:95 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:215 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:254 msgid "Message <0>(Optional)" msgstr "Message <0>(Optionnel)" @@ -525,6 +762,22 @@ msgstr "Page {0} sur {numPages}" msgid "Password Required" msgstr "Mot de passe requis" +#: packages/email/templates/forgot-password.tsx:17 +msgid "Password Reset Requested" +msgstr "" + +#: packages/email/templates/reset-password.tsx:18 +msgid "Password Reset Successful" +msgstr "" + +#: packages/email/template-components/template-reset-password.tsx:22 +msgid "Password updated!" +msgstr "" + +#: packages/email/templates/document-pending.tsx:17 +msgid "Pending Document" +msgstr "" + #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:156 msgid "Pick a number" msgstr "Choisissez un numéro" @@ -535,6 +788,34 @@ msgstr "Choisissez un numéro" msgid "Placeholder" msgstr "Espace réservé" +#: packages/email/template-components/template-document-invite.tsx:43 +msgid "Please {0} your document<0/>\"{documentName}\"" +msgstr "" + +#: packages/email/templates/document-invite.tsx:38 +msgid "Please {action} your document {documentName}" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:98 +msgid "Please {recipientActionVerb} this document" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:112 +msgid "Please {recipientActionVerb} this document created by your direct template" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:104 +msgid "Please {recipientActionVerb} your document" +msgstr "" + +#: packages/lib/server-only/auth/send-confirmation-email.ts:67 +msgid "Please confirm your email" +msgstr "" + +#: packages/email/templates/confirm-email.tsx:15 +msgid "Please confirm your email address" +msgstr "" + #: packages/ui/primitives/pdf-viewer.tsx:223 #: packages/ui/primitives/pdf-viewer.tsx:238 msgid "Please try again or contact our support." @@ -561,8 +842,8 @@ msgid "Receives copy" msgstr "Recevoir une copie" #: packages/ui/components/recipient/recipient-action-auth-select.tsx:39 -#: packages/ui/primitives/document-flow/add-settings.tsx:215 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:169 +#: packages/ui/primitives/document-flow/add-settings.tsx:257 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:208 msgid "Recipient action authentication" msgstr "Authentification d'action de destinataire" @@ -570,11 +851,27 @@ msgstr "Authentification d'action de destinataire" msgid "Red" msgstr "Rouge" -#: packages/ui/primitives/document-flow/add-settings.tsx:329 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:332 +#: packages/ui/primitives/document-flow/add-settings.tsx:371 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:371 msgid "Redirect URL" msgstr "URL de redirection" +#: packages/lib/server-only/document/resend-document.tsx:165 +msgid "Reminder: {0}" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:118 +msgid "Reminder: {0} invited you to {recipientActionVerb} a document" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:110 +msgid "Reminder: Please {recipientActionVerb} this document" +msgstr "" + +#: packages/lib/server-only/document/resend-document.tsx:114 +msgid "Reminder: Please {recipientActionVerb} your document" +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:1110 msgid "Remove" msgstr "Retirer" @@ -587,6 +884,10 @@ msgstr "Retirer" msgid "Required field" msgstr "Champ requis" +#: packages/email/template-components/template-forgot-password.tsx:33 +msgid "Reset Password" +msgstr "" + #: packages/ui/components/document/document-share-button.tsx:147 msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!" msgstr "Soyez assuré, votre document eststrictement confidentiel et ne sera jamais partagé. Seule votre expérience de signature sera mise en avant. Partagez votre carte de signature personnalisée pour mettre en valeur votre signature !" @@ -654,6 +955,10 @@ msgstr "Afficher les paramètres avancés" msgid "Sign" msgstr "Signer" +#: packages/email/template-components/template-reset-password.tsx:34 +msgid "Sign In" +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:823 #: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/field-icon.tsx:52 @@ -682,6 +987,15 @@ msgstr "Les signataires doivent avoir des e-mails uniques" msgid "Signing" msgstr "Signature en cours" +#: packages/lib/server-only/document/send-completed-email.ts:93 +#: packages/lib/server-only/document/send-completed-email.ts:161 +msgid "Signing Complete!" +msgstr "" + +#: packages/lib/constants/recipient-roles.ts:66 +#~ msgid "SIGNING_REQUEST" +#~ msgstr "" + #: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:34 msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding." msgstr "Certains signataires n'ont pas été assignés à un champ de signature. Veuillez assigner au moins 1 champ de signature à chaque signataire avant de continuer." @@ -704,7 +1018,7 @@ msgid "Step <0>{step} of {maxStep}" msgstr "Étape <0>{step} sur {maxStep}" #: packages/ui/primitives/document-flow/add-subject.tsx:78 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:195 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:234 msgid "Subject <0>(Optional)" msgstr "Objet <0>(Optionnel)" @@ -712,7 +1026,19 @@ msgstr "Objet <0>(Optionnel)" msgid "Submit" msgstr "Soumettre" -#: packages/ui/primitives/template-flow/add-template-settings.tsx:134 +#: packages/lib/server-only/team/delete-team-email.ts:96 +msgid "Team email has been revoked for {0}" +msgstr "" + +#: packages/email/templates/team-email-removed.tsx:53 +msgid "Team email removed" +msgstr "" + +#: packages/email/templates/team-email-removed.tsx:27 +msgid "Team email removed for {teamName} on Documenso" +msgstr "" + +#: packages/ui/primitives/template-flow/add-template-settings.tsx:133 msgid "Template title" msgstr "Titre du modèle" @@ -722,6 +1048,10 @@ msgstr "Titre du modèle" msgid "Text" msgstr "Texte" +#: packages/email/template-components/template-forgot-password.tsx:25 +msgid "That's okay, it happens! Click the button below to reset your password." +msgstr "" + #: packages/ui/components/recipient/recipient-action-auth-select.tsx:44 msgid "The authentication required for recipients to sign fields" msgstr "L'authentification requise pour que les destinataires signent des champs" @@ -738,10 +1068,22 @@ msgstr "L'authentification requise pour que les destinataires visualisent le doc msgid "The document's name" msgstr "Le nom du document" +#: packages/email/templates/team-delete.tsx:35 +msgid "The following team has been deleted by its owner. You will no longer be able to access this team and its documents" +msgstr "" + +#: packages/email/templates/team-delete.tsx:34 +msgid "The following team has been deleted by you" +msgstr "" + #: packages/ui/primitives/document-password-dialog.tsx:52 msgid "The password you have entered is incorrect. Please try again." msgstr "Le mot de passe que vous avez entré est incorrect. Veuillez réessayer." +#: packages/email/template-components/template-document-super-delete.tsx:38 +msgid "The reason provided for deletion is the following:" +msgstr "" + #: packages/ui/components/recipient/recipient-role-select.tsx:103 msgid "The recipient is not required to take any action and receives a copy of the document after it is completed." msgstr "Le destinataire n'est pas tenu de prendre des mesures et reçoit une copie du document après son achèvement." @@ -774,10 +1116,18 @@ msgstr "L'email du signataire" msgid "The signer's name" msgstr "Le nom du signataire" +#: packages/email/templates/team-email-removed.tsx:57 +msgid "The team email <0>{teamEmail} has been removed from the following team" +msgstr "" + #: packages/ui/components/document/document-global-auth-action-select.tsx:72 msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step." msgstr "Cela peut être remplacé par le paramétrage direct des exigences d'authentification pour chaque destinataire à l'étape suivante." +#: packages/email/template-components/template-document-super-delete.tsx:31 +msgid "This document can not be recovered, if you would like to dispute the reason for future documents please contact support." +msgstr "" + #: packages/ui/primitives/document-flow/add-fields.tsx:757 msgid "This document has already been sent to this recipient. You can no longer edit this recipient." msgstr "Ce document a déjà été envoyé à ce destinataire. Vous ne pouvez plus modifier ce destinataire." @@ -786,6 +1136,10 @@ msgstr "Ce document a déjà été envoyé à ce destinataire. Vous ne pouvez pl msgid "This document is password protected. Please enter the password to view the document." msgstr "Ce document est protégé par mot de passe. Veuillez entrer le mot de passe pour visualiser le document." +#: packages/email/template-components/template-footer.tsx:14 +msgid "This document was sent using <0>Documenso." +msgstr "Ce document a été envoyé via <0>Documenso." + #: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:573 msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them." msgstr "Ce champ ne peut pas être modifié ou supprimé. Lorsque vous partagez le lien direct de ce modèle ou l'ajoutez à votre profil public, toute personne qui y accède peut saisir son nom et son email, et remplir les champs qui lui sont attribués." @@ -802,12 +1156,12 @@ msgstr "Ce signataire a déjà signé le document." msgid "This will override any global settings." msgstr "Cela remplacera tous les paramètres globaux." -#: packages/ui/primitives/document-flow/add-settings.tsx:305 -#: packages/ui/primitives/template-flow/add-template-settings.tsx:309 +#: packages/ui/primitives/document-flow/add-settings.tsx:347 +#: packages/ui/primitives/template-flow/add-template-settings.tsx:348 msgid "Time Zone" msgstr "Fuseau horaire" -#: packages/ui/primitives/document-flow/add-settings.tsx:153 +#: packages/ui/primitives/document-flow/add-settings.tsx:155 msgid "Title" msgstr "Titre" @@ -844,7 +1198,19 @@ msgstr "Valeur" #: packages/lib/constants/recipient-roles.ts:26 msgid "View" -msgstr "Vue" +msgstr "Voir" + +#: packages/email/templates/document-created-from-direct-template.tsx:69 +msgid "View document" +msgstr "Voir le document" + +#: packages/email/template-components/template-document-self-signed.tsx:79 +msgid "View plans" +msgstr "Voir les forfaits" + +#: packages/lib/constants/recipient-roles.ts:67 +#~ msgid "VIEW_REQUEST" +#~ msgstr "DEMANDE_DE_CONSULTATION" #: packages/lib/constants/recipient-roles.ts:27 msgid "Viewed" @@ -860,12 +1226,36 @@ msgstr "Spectateurs" #: packages/lib/constants/recipient-roles.ts:28 msgid "Viewing" -msgstr "Visionnage" +msgstr "Consultation" + +#: packages/email/template-components/template-document-pending.tsx:31 +msgid "Waiting for others" +msgstr "En attente des autres" + +#: packages/lib/server-only/document/send-pending-email.ts:73 +msgid "Waiting for others to complete signing." +msgstr "" + +#: packages/email/template-components/template-document-pending.tsx:41 +msgid "We're still waiting for other signers to sign this document.<0/>We'll notify you as soon as it's ready." +msgstr "Nous attendons encore que d'autres signataires signent ce document.<0/>Nous vous préviendrons dès qu'il sera prêt." + +#: packages/email/templates/reset-password.tsx:59 +msgid "We've changed your password as you asked. You can now sign in with your new password." +msgstr "Nous avons changé votre mot de passe comme demandé. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe." + +#: packages/email/template-components/template-confirmation-email.tsx:24 +msgid "Welcome to Documenso!" +msgstr "" #: 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 ?" +#: packages/email/template-components/template-confirmation-email.tsx:41 +msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)" +msgstr "" + #: packages/ui/components/document/document-send-email-message-helper.tsx:11 msgid "You can use the following variables in your message:" msgstr "Vous pouvez utiliser les variables suivantes dans votre message :" @@ -874,7 +1264,52 @@ msgstr "Vous pouvez utiliser les variables suivantes dans votre message :" msgid "You cannot upload documents at this time." msgstr "Vous ne pouvez pas télécharger de documents pour le moment." +#: packages/email/template-components/template-document-cancel.tsx:35 +msgid "You don't need to sign it anymore." +msgstr "Vous n'avez plus besoin de le signer." + +#: packages/lib/server-only/team/create-team-member-invites.ts:168 +msgid "You have been invited to join {0} on Documenso" +msgstr "" + +#: packages/email/templates/team-invite.tsx:59 +msgid "You have been invited to join the following team" +msgstr "Vous avez été invité à rejoindre l'équipe suivante" + +#: packages/lib/server-only/recipient/set-recipients-for-document.ts:314 +msgid "You have been removed from a document" +msgstr "" + +#: packages/lib/server-only/team/request-team-ownership-transfer.ts:114 +msgid "You have been requested to take ownership of team {0} on Documenso" +msgstr "" + +#: packages/lib/jobs/definitions/emails/send-signing-email.ts:102 +#: packages/lib/server-only/document/resend-document.tsx:113 +msgid "You have initiated the document {0} that requires you to {recipientActionVerb} it." +msgstr "" + #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." msgstr "Vous avez atteint votre limite de documents." +#: packages/email/template-components/template-document-self-signed.tsx:42 +#~ msgid "You have signed \"{documentName}\"" +#~ msgstr "Vous avez signé \"{documentName}\"" + +#: packages/email/template-components/template-document-self-signed.tsx:42 +msgid "You have signed “{documentName}”" +msgstr "" + +#: packages/email/template-components/template-document-super-delete.tsx:23 +msgid "Your document has been deleted by an admin!" +msgstr "Votre document a été supprimé par un administrateur !" + +#: packages/email/template-components/template-reset-password.tsx:26 +msgid "Your password has been updated." +msgstr "Votre mot de passe a été mis à jour." + +#: packages/email/templates/team-delete.tsx:26 +#: 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 825a8d817..617549e8f 100644 --- a/packages/lib/translations/fr/marketing.po +++ b/packages/lib/translations/fr/marketing.po @@ -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:165 +#: apps/marketing/src/app/(marketing)/open/page.tsx:164 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:219 +#: apps/marketing/src/app/(marketing)/open/page.tsx:218 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:210 +#: apps/marketing/src/app/(marketing)/open/page.tsx:209 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:233 +#: apps/marketing/src/app/(marketing)/open/page.tsx:232 msgid "GitHub: Total Merged PRs" msgstr "GitHub : Total des PRs fusionnées" -#: apps/marketing/src/app/(marketing)/open/page.tsx:251 +#: apps/marketing/src/app/(marketing)/open/page.tsx:250 msgid "GitHub: Total Open Issues" msgstr "GitHub : Total des problèmes ouverts" -#: apps/marketing/src/app/(marketing)/open/page.tsx:225 +#: apps/marketing/src/app/(marketing)/open/page.tsx:224 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:261 +#: apps/marketing/src/app/(marketing)/open/page.tsx:260 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:289 +#: apps/marketing/src/app/(marketing)/open/page.tsx:288 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:199 +#: apps/marketing/src/app/(marketing)/open/page.tsx:198 msgid "Merged PR's" msgstr "PRs fusionnées" -#: apps/marketing/src/app/(marketing)/open/page.tsx:234 +#: apps/marketing/src/app/(marketing)/open/page.tsx:233 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:194 -#: apps/marketing/src/app/(marketing)/open/page.tsx:252 +#: apps/marketing/src/app/(marketing)/open/page.tsx:193 +#: apps/marketing/src/app/(marketing)/open/page.tsx:251 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:161 +#: apps/marketing/src/app/(marketing)/open/page.tsx:160 #: 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:226 +#: apps/marketing/src/app/(marketing)/open/page.tsx:225 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:293 +#: apps/marketing/src/app/(marketing)/open/page.tsx:292 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 b8d3fc56a..5ab0eaad8 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -260,12 +260,12 @@ msgstr "Abonnements actifs" msgid "Add" msgstr "Ajouter" -#: 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)/documents/[id]/edit-document.tsx:176 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:88 msgid "Add all relevant fields for each recipient." msgstr "Ajouter tous les champs pertinents pour chaque destinataire." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Ajouter tous les espaces réservés pertinents pour chaque destinataire." @@ -281,8 +281,8 @@ msgstr "Ajouter un authentificateur pour servir de méthode d'authentification s msgid "Add email" msgstr "Ajouter un e-mail" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:174 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:86 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 msgid "Add Fields" msgstr "Ajouter des champs" @@ -295,15 +295,15 @@ msgstr "Ajouter davantage" msgid "Add passkey" msgstr "Ajouter une clé de passe" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:81 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Ajouter des espaces réservés" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:169 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 msgid "Add Signers" msgstr "Ajouter des signataires" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:179 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180 msgid "Add Subject" msgstr "Ajouter un sujet" @@ -311,7 +311,7 @@ msgstr "Ajouter un sujet" msgid "Add team email" msgstr "Ajouter un e-mail d'équipe" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:171 msgid "Add the people who will sign the document." msgstr "Ajouter les personnes qui signeront le document." @@ -319,7 +319,7 @@ msgstr "Ajouter les personnes qui signeront le document." msgid "Add the recipients to create the document with" msgstr "Ajouter les destinataires pour créer le document avec" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:181 msgid "Add the subject and message you wish to send to signers." msgstr "Ajouter le sujet et le message que vous souhaitez envoyer aux signataires." @@ -414,13 +414,13 @@ msgstr "Un e-mail demandant le transfert de cette équipe a été envoyé." msgid "An error occurred" msgstr "Une erreur est survenue" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:266 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:197 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:231 +#: 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 msgid "An error occurred while adding signers." msgstr "Une erreur est survenue lors de l'ajout de signataires." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:301 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:303 msgid "An error occurred while adding the fields." msgstr "Une erreur est survenue lors de l'ajout des champs." @@ -482,7 +482,7 @@ msgstr "Une erreur est survenue lors de la suppression de la signature." msgid "An error occurred while removing the text." msgstr "Une erreur est survenue lors de la suppression du texte." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:332 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:334 msgid "An error occurred while sending the document." msgstr "Une erreur est survenue lors de l'envoi du document." @@ -507,8 +507,8 @@ msgstr "Une erreur est survenue lors de la signature du document." msgid "An error occurred while trying to create a checkout session." msgstr "Une erreur est survenue lors de la création d'une session de paiement." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:232 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:166 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "Une erreur est survenue lors de la mise à jour des paramètres du document." @@ -869,11 +869,11 @@ msgstr "Documents complétés" msgid "Completed Documents" msgstr "Documents Complétés" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:166 msgid "Configure general settings for the document." msgstr "Configurer les paramètres généraux pour le document." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Configurer les paramètres généraux pour le modèle." @@ -1350,7 +1350,7 @@ msgstr "Document renvoyé" msgid "Document resealed" msgstr "Document resealé" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:321 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:323 msgid "Document sent" msgstr "Document envoyé" @@ -1579,16 +1579,16 @@ msgstr "Entrez votre texte ici" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:78 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:231 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:265 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:300 -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:331 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:233 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:267 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:302 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:333 #: 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:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:196 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:230 +#: 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/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 @@ -1679,8 +1679,8 @@ msgstr "Mot de passe oublié ?" msgid "Full Name" msgstr "Nom complet" -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:164 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:76 +#: 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/(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 @@ -3244,7 +3244,7 @@ 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:219 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 msgid "Template saved" msgstr "Modèle enregistré" @@ -4521,7 +4521,7 @@ msgstr "Votre document a été créé à partir du modèle avec succès." msgid "Your document has been re-sent successfully." msgstr "Votre document a été renvoyé avec succès." -#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:322 +#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:324 msgid "Your document has been sent successfully." msgstr "Votre document a été envoyé avec succès." @@ -4612,7 +4612,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:220 +#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Vos modèles ont été enregistrés avec succès." @@ -4628,4 +4628,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/is-valid-redirect-url.ts b/packages/lib/utils/is-valid-redirect-url.ts index e89818ac2..de827f69c 100644 --- a/packages/lib/utils/is-valid-redirect-url.ts +++ b/packages/lib/utils/is-valid-redirect-url.ts @@ -4,7 +4,6 @@ export const isValidRedirectUrl = (value: string) => { try { const url = new URL(value); - console.log({ protocol: url.protocol }); if (!ALLOWED_PROTOCOLS.includes(url.protocol.slice(0, -1).toLowerCase())) { return false; } diff --git a/packages/lib/utils/remember.ts b/packages/lib/utils/remember.ts new file mode 100644 index 000000000..1ee146dd1 --- /dev/null +++ b/packages/lib/utils/remember.ts @@ -0,0 +1,18 @@ +declare global { + // eslint-disable-next-line no-var, @typescript-eslint/no-explicit-any + var __documenso_util_remember: Map; +} + +export function remember(name: string, getValue: () => T): T { + const thusly = globalThis; + + if (!thusly.__documenso_util_remember) { + thusly.__documenso_util_remember = new Map(); + } + + if (!thusly.__documenso_util_remember.has(name)) { + thusly.__documenso_util_remember.set(name, getValue()); + } + + return thusly.__documenso_util_remember.get(name); +} diff --git a/packages/lib/utils/render-email-with-i18n.tsx b/packages/lib/utils/render-email-with-i18n.tsx new file mode 100644 index 000000000..172e8d563 --- /dev/null +++ b/packages/lib/utils/render-email-with-i18n.tsx @@ -0,0 +1,36 @@ +import { I18nProvider } from '@lingui/react'; + +import { render } from '@documenso/email/render'; + +import { getI18nInstance } from '../client-only/providers/i18n.server'; +import { + APP_I18N_OPTIONS, + type SupportedLanguageCodes, + isValidLanguageCode, +} from '../constants/i18n'; + +export const renderEmailWithI18N = async ( + component: React.ReactElement, + options?: { + plainText?: boolean; + // eslint-disable-next-line @typescript-eslint/ban-types + lang?: SupportedLanguageCodes | (string & {}); + }, +) => { + try { + const providedLang = options?.lang; + + const lang = isValidLanguageCode(providedLang) ? providedLang : APP_I18N_OPTIONS.sourceLang; + + const i18n = await getI18nInstance(lang); + + i18n.activate(lang); + + return render({component}, { + plainText: options?.plainText, + }); + } catch (err) { + console.error(err); + throw new Error('Failed to render email'); + } +}; diff --git a/packages/prisma/migrations/20241101103425_add_language_column_for_documents_and_templates/migration.sql b/packages/prisma/migrations/20241101103425_add_language_column_for_documents_and_templates/migration.sql new file mode 100644 index 000000000..5a4dde1d8 --- /dev/null +++ b/packages/prisma/migrations/20241101103425_add_language_column_for_documents_and_templates/migration.sql @@ -0,0 +1,5 @@ +-- AlterTable +ALTER TABLE "DocumentMeta" ADD COLUMN "language" TEXT NOT NULL DEFAULT 'en'; + +-- AlterTable +ALTER TABLE "TemplateMeta" ADD COLUMN "language" TEXT NOT NULL DEFAULT 'en'; diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index 7c858c897..343ee2988 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -370,6 +370,7 @@ model DocumentMeta { redirectUrl String? signingOrder DocumentSigningOrder @default(PARALLEL) typedSignatureEnabled Boolean @default(false) + language String @default("en") } enum ReadStatus { @@ -612,6 +613,7 @@ model TemplateMeta { templateId Int @unique template Template @relation(fields: [templateId], references: [id], onDelete: Cascade) redirectUrl String? + language String @default("en") } model Template { diff --git a/packages/trpc/server/document-router/router.ts b/packages/trpc/server/document-router/router.ts index e869eb9a4..d49dd07ef 100644 --- a/packages/trpc/server/document-router/router.ts +++ b/packages/trpc/server/document-router/router.ts @@ -232,6 +232,7 @@ export const documentRouter = router({ dateFormat: meta.dateFormat, timezone: meta.timezone, redirectUrl: meta.redirectUrl, + language: meta.language, userId: ctx.user.id, requestMetadata, }); diff --git a/packages/trpc/server/document-router/schema.ts b/packages/trpc/server/document-router/schema.ts index 8d3063315..64540b077 100644 --- a/packages/trpc/server/document-router/schema.ts +++ b/packages/trpc/server/document-router/schema.ts @@ -1,5 +1,6 @@ import { z } from 'zod'; +import { SUPPORTED_LANGUAGE_CODES } from '@documenso/lib/constants/i18n'; import { ZDocumentAccessAuthTypesSchema, ZDocumentActionAuthTypesSchema, @@ -70,6 +71,7 @@ export const ZSetSettingsForDocumentMutationSchema = z.object({ message: 'Please enter a valid URL, make sure you include http:// or https:// part of the url.', }), + language: z.enum(SUPPORTED_LANGUAGE_CODES).optional(), }), }); diff --git a/packages/trpc/server/singleplayer-router/router.ts b/packages/trpc/server/singleplayer-router/router.ts index 6e8533c32..5cf62cb53 100644 --- a/packages/trpc/server/singleplayer-router/router.ts +++ b/packages/trpc/server/singleplayer-router/router.ts @@ -3,7 +3,6 @@ import { createElement } from 'react'; import { PDFDocument } from 'pdf-lib'; import { mailer } from '@documenso/email/mailer'; -import { renderAsync } from '@documenso/email/render'; import { DocumentSelfSignedEmailTemplate } from '@documenso/email/templates/document-self-signed'; import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; import { FROM_ADDRESS, FROM_NAME, SERVICE_USER_EMAIL } from '@documenso/lib/constants/email'; @@ -11,6 +10,7 @@ import { insertFieldInPDF } from '@documenso/lib/server-only/pdf/insert-field-in import { alphaid } from '@documenso/lib/universal/id'; import { getFile } from '@documenso/lib/universal/upload/get-file'; import { putPdfFile } from '@documenso/lib/universal/upload/put-file'; +import { renderEmailWithI18N } from '@documenso/lib/utils/render-email-with-i18n'; import { prisma } from '@documenso/prisma'; import { DocumentSource, @@ -158,8 +158,8 @@ export const singleplayerRouter = router({ }); const [html, text] = await Promise.all([ - renderAsync(template), - renderAsync(template, { plainText: true }), + renderEmailWithI18N(template), + renderEmailWithI18N(template, { plainText: true }), ]); // Send email to signer. diff --git a/packages/trpc/server/template-router/router.ts b/packages/trpc/server/template-router/router.ts index a1a17d688..ddd4a73ad 100644 --- a/packages/trpc/server/template-router/router.ts +++ b/packages/trpc/server/template-router/router.ts @@ -1,6 +1,7 @@ import { TRPCError } from '@trpc/server'; import { getServerLimits } from '@documenso/ee/server-only/limits/server'; +import { isValidLanguageCode } from '@documenso/lib/constants/i18n'; import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import { sendDocument } from '@documenso/lib/server-only/document/send-document'; import { createDocumentFromDirectTemplate } from '@documenso/lib/server-only/template/create-document-from-direct-template'; @@ -214,7 +215,10 @@ export const templateRouter = router({ teamId, templateId, data, - meta, + meta: { + ...meta, + language: isValidLanguageCode(meta?.language) ? meta?.language : undefined, + }, requestMetadata, }); } catch (err) { diff --git a/packages/trpc/server/template-router/schema.ts b/packages/trpc/server/template-router/schema.ts index d7807ad3d..41847a333 100644 --- a/packages/trpc/server/template-router/schema.ts +++ b/packages/trpc/server/template-router/schema.ts @@ -1,5 +1,6 @@ import { z } from 'zod'; +import { SUPPORTED_LANGUAGE_CODES } from '@documenso/lib/constants/i18n'; import { ZDocumentAccessAuthTypesSchema, ZDocumentActionAuthTypesSchema, @@ -87,6 +88,10 @@ export const ZUpdateTemplateSettingsMutationSchema = z.object({ .max(MAX_TEMPLATE_PUBLIC_DESCRIPTION_LENGTH) .optional(), type: z.nativeEnum(TemplateType).optional(), + language: z + .union([z.string(), z.enum(SUPPORTED_LANGUAGE_CODES)]) + .optional() + .default('en'), }), meta: z .object({ @@ -101,6 +106,7 @@ export const ZUpdateTemplateSettingsMutationSchema = z.object({ message: 'Please enter a valid URL, make sure you include http:// or https:// part of the url.', }), + language: z.enum(SUPPORTED_LANGUAGE_CODES).optional(), }) .optional(), }); diff --git a/packages/ui/primitives/document-flow/add-settings.tsx b/packages/ui/primitives/document-flow/add-settings.tsx index 06cf5e9ea..9b73336f5 100644 --- a/packages/ui/primitives/document-flow/add-settings.tsx +++ b/packages/ui/primitives/document-flow/add-settings.tsx @@ -8,6 +8,7 @@ import { InfoIcon } from 'lucide-react'; import { useForm } from 'react-hook-form'; import { DATE_FORMATS, DEFAULT_DOCUMENT_DATE_FORMAT } from '@documenso/lib/constants/date-formats'; +import { SUPPORTED_LANGUAGES } from '@documenso/lib/constants/i18n'; import { DEFAULT_DOCUMENT_TIME_ZONE, TIME_ZONES } from '@documenso/lib/constants/time-zones'; import { extractDocumentAuthMethods } from '@documenso/lib/utils/document-auth'; import type { TeamMemberRole } from '@documenso/prisma/client'; @@ -98,6 +99,7 @@ export const AddSettingsFormPartial = ({ DATE_FORMATS.find((format) => format.value === document.documentMeta?.dateFormat) ?.value ?? DEFAULT_DOCUMENT_DATE_FORMAT, redirectUrl: document.documentMeta?.redirectUrl ?? '', + language: document.documentMeta?.language ?? 'en', }, }, }); @@ -165,6 +167,46 @@ export const AddSettingsFormPartial = ({ )} /> + ( + + + Language + + + + + + + Controls the language for the document, including the language to be used + for email notifications, and the final certificate that is generated and + attached to the document. + + + + + + + + + + )} + /> + + ( + + + Language + + + + + + + Controls the language for the document, including the language to be used + for email notifications, and the final certificate that is generated and + attached to the document. + + + + + + + + + + )} + /> +